useTableColumnSettings
@astryxdesign/core v0.7.1 · useTableColumnSettings
使用方法
给 Table 做列的显示与排序,只管逻辑,不画控件。插件只留下 key 在 activeColumnKeys 里的列,顺序也按这个数组来,所以列选择器和表格读的是同一份列表。useTableColumnSettingsState 是配套的开关助手:它保存 key,被删掉的 isAlwaysVisible 列会被放回去,还知道「恢复默认」该恢复哪一组。
ts
import { useTableColumnSettings, useTableColumnSettingsState } from '@astryx-vue/core/Table'每次读配置都会重新取值,所以 key 存在 ref 里时要传 getter。直接传对象也能跑,但表格会用第一次读到的 key。
列选择器由你自己搭。MultiSelector 的选项是 { value, label, disabled },把每列映射成这个形状,isAlwaysVisible 的标成禁用即可;选项带上 group 就能把列分成若干组显示。
defaultColumnKeys 是「恢复默认」要恢复的那组列。不传就恢复成全部列。
ts
const state = useTableColumnSettingsState({
columns: columnOptions,
activeColumnKeys: activeKeys,
onChangeActiveColumnKeys(keys) {
activeKeys.value = [...keys]
},
defaultColumnKeys: ['name', 'email'],
})resetToDefault() 把 defaultColumnKeys 交给 onChangeActiveColumnKeys,showAllColumns() 交出去的是全部列。恢复按钮和选择器顶部的「全选」各自调它们。
useTableColumnSettings() 只负责藏起和重排。列本身还是全部交给表格,插件从中挑出要显示的那些。
示例
Table — 列设置
Name | Email | Role | Department | Status |
|---|---|---|---|---|
| Alice Johnson | alice@example.com | Engineer | Platform | Active |
| Bob Smith | bob@example.com | Designer | Product | Active |
| Charlie Brown | charlie@example.com | Manager | Platform | Away |
| Diana Prince | diana@example.com | Engineer | Infra | Active |
| Eve Davis | eve@example.com | Admin | Operations | Inactive |
工具栏里放一个列选择器的表格。可以开关列,Name 列始终保留。