# TableColumnControl 表格列显隐控制组件
一个通用的表格列显示/隐藏控制组件,支持动态控制表格列的显示状态。
## 功能特性
- ✅ 动态控制表格列的显示/隐藏
- ✅ 支持全选/全不选
- ✅ 支持重置为默认值
- ✅ 支持 localStorage 持久化
- ✅ 支持固定列(不可隐藏)
- ✅ 支持始终显示的列
- ✅ 可自定义触发按钮样式
## 使用方法
### 基础用法
```vue
```
### 使用 localStorage 持久化
```vue
```
### 固定列(不可隐藏)
```vue
const tableColumns = [
{ prop: 'name', label: '姓名', fixed: 'left' }, // 固定左侧,不可隐藏
{ prop: 'age', label: '年龄' },
{ prop: 'action', label: '操作', fixed: 'right' } // 固定右侧,不可隐藏
]
```
### 始终显示的列
```vue
const tableColumns = [
{ prop: 'name', label: '姓名', alwaysShow: true }, // 始终显示,不可隐藏
{ prop: 'age', label: '年龄' }
]
```
### 自定义触发按钮
```vue
```
## Props
| 参数 | 说明 | 类型 | 默认值 |
|------|------|------|--------|
| columns | 表格列配置数组 | Column[] | 必填 |
| modelValue | 当前显示的列的 prop 或 label 数组 | string[] | - |
| storageKey | localStorage 存储的 key,用于持久化 | string | - |
| triggerType | 触发按钮的类型 | 'default' \| 'primary' \| 'success' \| 'warning' \| 'danger' \| 'info' \| 'text' | 'default' |
| triggerSize | 触发按钮的大小 | 'large' \| 'default' \| 'small' | 'default' |
| triggerCircle | 触发按钮是否为圆形 | boolean | false |
| triggerText | 触发按钮的文字 | string | '' |
| triggerLink | 触发按钮是否为链接样式 | boolean | false |
## Events
| 事件名 | 说明 | 回调参数 |
|--------|------|----------|
| update:modelValue | 显示的列变化时触发 | (columns: string[]) |
| change | 显示的列变化时触发 | (columns: string[]) |
## Column 接口
```typescript
interface Column {
prop?: string // 列的 prop,用于标识列
label: string // 列的标签
fixed?: boolean | 'left' | 'right' // 固定列,不可隐藏
alwaysShow?: boolean // 始终显示的列,不可隐藏
[key: string]: any // 其他属性
}
```
## 插槽
| 插槽名 | 说明 |
|--------|------|
| trigger | 自定义触发按钮内容 |