# Table-select-pro 下拉表格 🎉 V2.5.2
Table-select-pro 由 Select 和 Table 派生而来。
# 代码演示
👋 各位开发同事好:
w-table-select 组件现已升级为 w-table-select-pro(原组件仍保留)。
🚀 新版本亮点:
✅ 支持 v-model 双向绑定:用法更符合 Vue 规范,易于维护。
✅ 分页功能优化:支持分页状态保留、选中项不丢失。
✅ 虚拟滚动表格升级:应对大数据量更流畅。
✅ 修复数据引用问题:在单选或多选场景下,已修正源数据与选中项之间的引用问题,防止相互影响,确保数据隔离。
📌 使用建议:
建议在新开发中优先使用 w-table-select-pro,以享受更完善的功能和更清晰的数据流逻辑。
原组件 w-table-select 仍可兼容使用,但后续不再新增功能。
如有迁移问题或使用建议,欢迎随时反馈。
感谢支持!❤️
# API
# TableSelect Attributes (继承 w-table 及 w-select 属性)
| 参数 | 说明 | 类型 | 可选值 | 默认值 | Version |
|---|---|---|---|---|---|
| data | 显示的数据 | Array | — | — | |
| columns | 列配置项 | Array | — | — | |
| max-height | Table 的最大高度。合法的值为数字或者单位为 px 的高度。 | String | Number | — | — | |
| height | Table 的高度,默认为自动高度。如果 height 为 number 类型,单位 px;如果 height 为 String 类型,则这个高度会设置为 Table 的 style.height 的值,Table 的高度会受控于外部样式。 | String | Number | — | — | |
| table-width | table 宽度 | Number/String | 550px | ||
| clearable | 是否可以清空选项 | Boolean | — | false | |
| collapse-tags | 多选时是否将选中值按文字的形式展示 | Boolean | — | false | |
| disabled | 是否禁用 | Boolean | — | false | |
| filterable | 是否可搜索 | Boolean | — | false | |
| filter-method | 自定义搜索方法 | Function | — | — | |
| multiple | 是否多选 | Boolean | — | false | |
| placeholder | 占位符 | String | — | 请选择 | |
| popper-class | Select 下拉框的类名 | String | — | — | |
| popper-append-to-body | 是否将弹出框插入至 body 元素。在弹出框的定位出现问题时,可将该属性设置为 false | Boolean | — | true | |
| size | 输入框尺寸 | String | 'medium' | 'small' | 'mini' | — | |
| tags-threshold | 开启多选且折叠标签时,超过该阈值的选项将被折叠 | Number | — | 1 | |
| value / v-model | 绑定值 | String | Number | Boolean | Object | — | — | |
| draggable-tag | 开启 multiple 且不合并情况下可以配置拖拽已选中 tag 顺序 | Boolean | true/false | - | |
| suffix-icon | 自定义尾部图标的类名(此时尾部禁止点击打开面板) | String | — | ||
| maxlength | 可输入时的最大长度 | Number | — | 0 | |
| overflow-height | 最大高度,合法的值为数字或者单位为 px 的高度。 | String / Number | — | - | |
| show-pagination | 是否开启分页 | Boolean | — | false | |
| solid-icon | 设置后缀图标是否是实心 | Boolean | — | false | |
| long | 设置选择器宽度随着容器宽度进行适配 | Boolean | — | false | |
| currentPage | 当前第几页 | Number | — | 1 | |
| pageSize | 每页显示个数 | Number | — | ||
| props | 配置选项 | Object | — | ||
| w-table attributes | 参考基础表格 | Object | — |
# TableSelect Events(继承 w-table 及 w-select 属性)
| 事件名称 | 说明 | 回调参数 | Version |
|---|---|---|---|
| blur | 当 input 失去焦点时触发 | (event: Event) | |
| change | 选中值发生变化时触发 | 目前的选中值 | |
| clear | 可清空的单选模式下用户点击清空按钮时触发 | — | |
| focus | 当 input 获得焦点时触发 | (event: Event) | |
| remove-tag | 多选模式下移除 tag 时触发 | 移除的 tag 值 | |
| visible-change | 下拉框出现/隐藏时触发 | 出现则为 true,隐藏则为 false | |
| tag-drag-start | tag 开始拖拽时触发的事件 | event | |
| tag-drag-end | tag 拖拽结束时触发的事件 | event、绑定值 |
# TableSelect Methods(继承 w-table 及 w-select 属性)
| 事件名称 | 说明 | 回调参数 | Version |
|---|---|---|---|
| clear | 清空选中项 | ||
| focus | 使 input 获取焦点 | ||
| blur | 使 input 失去焦点,并隐藏下拉框 |
# TableSelect Slots
| name | 说明 | Version |
|---|---|---|
| dropdown-header | 下拉框头部插槽 | |
| dropdown-footer | 下拉框底部插槽 |