仅桌面端保证样式
ColumnSettings 列设置
表格列设置触发器:列显隐复选 + 拖拽排序,storageKey 提供时自动持久化到 localStorage(经安全封装),列定义变化自动收敛。
规则要点:
v-model是按显示顺序排列的可见列prop数组——顺序即拖拽结果,缺失的prop即隐藏列;- 至少保留一列可见,取消最后一列的勾选会被忽略;重新勾选时列回到其在
columns中的定义位置; - 非受控(不传
v-model)时组件内部维护状态,配storage-key可在刷新后恢复; - 列定义变化时自动剔除已不存在的列、把新增列按定义顺序补尾。
基础用法
通常放在 EbDataTable 的 toolbar 插槽内:
与 DataTable 联动
把 v-model 结果映射回 columns 即完成联动:隐藏列不渲染,拖拽排序直接改变表格列顺序;实例方法 reset() 等价于面板内的重置按钮。
共 0 条
10
- 1
试试取消勾选金额列或把创建时间拖到最前,表格即时跟随。
持久化到本地
非受控 + storage-key:选择结果写入 localStorage,刷新页面后自动恢复(仅恢复仍然存在的列,新列补尾);change 事件可用于同步到服务端偏好。
当前可见列:(尚未操作,默认全显)
不传 button-text 时触发器只显示齿轮图标,适合空间紧张的工具栏。
API
ColumnSettings Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| columns | 全量列定义(定义顺序),项为 { prop, label } | { prop, label }[] | [] |
| v-model | 按显示顺序的可见列 prop 数组;未传时组件内部维护 | string[] | — |
| storageKey | localStorage 持久化 key(非受控时生效) | string | |
| buttonText | 触发按钮文字(缺省只显示图标) | string |
Events
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| update:modelValue | 显隐/排序变化 | (props: string[]) => void | — |
| change | 同上(同时触发,非受控时用它拿到结果) | (props: string[]) => void | — |
Methods
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| reset | 恢复定义顺序全显 | () => void | — |
本组件无插槽;弹出面板(复选列表 + 重置按钮)由组件内置。