<script setup lang="ts">
withDefaults(
  defineProps<{
    // 标签文本
    label?: string
    // 宽度
    width?: number | string
    // 最小宽度
    minWidth?: number | string
    // 对齐方式
    align?: 'left' | 'center' | 'right'
    // 表头对齐方式， 若不设置该项，则使用表格的对齐方式
    headerAlign?: 'left' | 'center' | 'right'
    // 列是否固定在左侧或者右侧。 true 表示固定在左侧
    fixed?: boolean | 'left' | 'right'
    // 当内容过长被隐藏时显示 tooltip
    showOverflowTooltip?: boolean
    // 是否显示
    visible?: boolean
  }>(),
  {
    visible: true
  }
)
</script>
<template>
  <el-table-column
    :label="label"
    :width="width"
    :min-width="minWidth"
    :align="align"
    :header-align="headerAlign"
    :fixed="fixed"
    :show-overflow-tooltip="showOverflowTooltip"
  >
    <template #default="scope">
      <slot :row="scope?.row" :index="scope?.$index"></slot>
    </template>
  </el-table-column>
</template>
