<template>
  <view class="wrap" :style="{ height: `${height}px` }">
    <view class="divider" :style="[elStyle]"></view>
  </view>
</template>

<script setup>
  /**
   * 分割线
   */

  import { computed } from 'vue';

  // 接收参数
  const props = defineProps({
    // 线条颜色
    lineColor: {
      type: String,
      default: '#000',
    },
    // 线条样式：'dotted', 'solid', 'double', 'dashed'
    borderType: {
      type: String,
      default: 'dashed',
    },
    // 线条宽度
    lineWidth: {
      type: Number,
      default: 1,
    },
    // 高度
    height: {
      type: [Number, String],
      default: 'auto',
    },
    // 左右边距：none - 无边距，horizontal - 左右留边
    paddingType: {
      type: String,
      default: 'none',
    },
  });

  const elStyle = computed(() => {
    return {
      'border-top-width': `${props.lineWidth}px`,
      'border-top-color': props.lineColor,
      'border-top-style': props.borderType,
      margin: props.paddingType === 'none' ? '0' : '0px 16px',
    };
  });
</script>

<style lang="scss" scoped>
  .wrap {
    display: flex;
    align-items: center;

    .divider {
      width: 100%;
    }
  }
</style>
