Appearance
tableSelect 表格下拉 
基础用法 
vue
<script setup lang="ts">
const data = ref('')
const request = function ({ pageNo }: any) {
  return new Promise((resolve) => {
    setTimeout(() => {
      const data = {
        list: [
          { name: '张三' + pageNo, sex: '男', id: '' + pageNo + 1 },
          { name: '李四' + pageNo, sex: '女', id: '' + pageNo + 2 },
          { name: '王五' + pageNo, sex: '男', id: '' + pageNo + 3 },
          { name: '赵六' + pageNo, sex: '女', id: '' + pageNo + 4 },
          { name: '张三' + pageNo, sex: '男', id: '' + pageNo + 5 },
        ],
        total: 10,
      }
      resolve(data)
    }, 1500)
  })
}
const tableConfig: TableConfig = {
  column: [
    {
      title: '#',
      type: 'seq',
      width: 45,
      align: 'center',
    },
    {
      title: '姓名',
      field: 'name',
      align: 'center',
    },
    {
      title: '性别',
      align: 'center',
      slot: 'sex',
    },
  ],
  /* 实际开发应传入接口方法 */
  request: request,
  pageSize: 5,
}
</script>
<template>
  <el-table-select v-model="data" :tableConfig="tableConfig">
    <template #sex="{ row }">
      <el-tag size="small">{{ row.sex }}</el-tag>
    </template>
  </el-table-select>
</template>自定义搜索 
vue
<script setup lang="ts">
const tableSelectRef = ref()
const data = ref('')
const form = ref({
  name: '',
  sex: '',
})
const request = function ({ pageNo }: any) {
  return new Promise((resolve) => {
    setTimeout(() => {
      const data = {
        list: [
          { name: '张三' + pageNo, sex: '男', id: '' + pageNo + 1 },
          { name: '李四' + pageNo, sex: '女', id: '' + pageNo + 2 },
          { name: '王五' + pageNo, sex: '男', id: '' + pageNo + 3 },
          { name: '赵六' + pageNo, sex: '女', id: '' + pageNo + 4 },
          { name: '张三' + pageNo, sex: '男', id: '' + pageNo + 5 },
        ],
        total: 10,
      }
      resolve(data)
    }, 1500)
  })
}
const tableConfig: TableConfig = {
  column: [
    {
      title: '#',
      type: 'seq',
      width: 45,
      align: 'center',
    },
    {
      title: '姓名',
      field: 'name',
      align: 'center',
    },
    {
      title: '性别',
      align: 'center',
      slot: 'sex',
    },
  ],
  /* 实际开发应传入接口方法 */
  request: request,
  pageSize: 5,
}
/* 重新加载表格数据 */
const search = () => {
  tableSelectRef.value.reload({ pageNo: 1, ...form.value })
}
</script>
<template>
  <el-table-select v-model="data" :tableConfig="tableConfig">
    <template #top-extra>
      <el-form :model="form" label-width="40px">
        <el-row :gutter="15">
          <el-col :span="8">
            <el-form-item label="姓名">
              <el-input
                placeholder="请填写姓名"
                :maxLength="20"
                v-model="form.name"
              ></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="性别" prop="sex">
              <el-select
                placeholder="请选择性别"
                v-model="form.sex"
              ></el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-button type="primary" @click="search">查询</el-button>
          </el-col>
        </el-row>
      </el-form>
    </template>
    <template #sex="{ row }">
      <el-tag size="small">{{ row.sex }}</el-tag>
    </template>
  </el-table-select>
</template>设置回显数据 
vue
<script setup lang="ts">
const initValue = ref()
const initValue2 = ref()
const setInitValue = () => {
  /* 模拟接口响应 */
  setTimeout(() => {
    // 单选
    initValue.value = { name: '张三2', sex: '男', id: '21' }
    // 多选
    initValue2.value = [
      { name: '李四2', sex: '女', id: '22' },
      { name: '王五3', sex: '男', id: '33' },
      { name: '王五4', sex: '男', id: '43' },
      { name: '赵六4', sex: '女', id: '44' }
    ]
  }, 300)
}
</script>
<template>
  <!-- 将获取到的数据传入组件 -->
  <el-table-select :init-value="initValue">
</template>属性 
| 参数 | 说明 | 类型 | 默认值 | 可选值 | 
|---|---|---|---|---|
| modelValue | v-model | String | ||
| placeholder | 提示文字 | String | 请选择 | |
| multiple | 是否多选 | Boolean | false | false | 
| disabled | 是否禁用 | Boolean | false | true | 
| size | 尺寸大小 | String | default | large,default,small | 
| clearable | 是否支持清除 | Boolean | true | false | 
| valueKey | value 的属性名 | String | id | |
| labelKey | label 的属性名 | String | name | |
| initValue | 回显数据 | Object | ||
| placement | popper 位置 | String | 详见 el-popover 位置 | |
| popperWidth | popper 宽度 | String | 560px | |
| popperClass | popper 类名 | String | ||
| popperOptions | popper 选项 | Object | bottom | 详见 el-popover 位置 | 
| tableConfig | 表格配置 | TableConfig[] | ||
| tagType | 多选显示 tag 类型 | String | info | 详见 el-tag 类型 | 
| maxTagCount | 显示 tag 数量 | Number | 5 | |
| transformData | 自定义数据转换方法 | Function | 
TableConfig 
| 参数 | 说明 | 类型 | 默认值 | 可选值 | 
|---|---|---|---|---|
| column | 表格列配置 | TableColumn[] | ||
| request | 表格数据 | Function | ||
| pageSize | 每页显示条数 | Number | 
TableColumn 
| 参数 | 说明 | 类型 | 默认值 | 可选值 | 
|---|---|---|---|---|
| type | 类型 | String | ||
| field | 列名 | String | ||
| title | 标题 | String | ||
| width | 表格宽度 | String | ||
| align | 对齐方式 | String | ||
| slot | 插槽 | String | 
事件 
| 名称 | 说明 | 返回值 | 
|---|---|---|
| clear | 清除按钮点击事件 | |
| item-clear | 多选单个清除事件 | 改变后的值 | 
| focus | 获取焦点事件 | e | 
| blur | 失去焦点事件 | e | 
| change | 值改变事件 | 改变后的值 | 
插槽 
| 名称 | 说明 | 参数 | 
|---|---|---|
| top-extra | 表格头部插槽 | |
| bottom-extra | 表格底部插槽 | 
