# TableColumnControl 使用指南 ## 两种使用方式 ### 方式一:自动提取(推荐)✨ 自动从 `el-table` 中提取列配置,无需手动配置。 ```vue ``` **优点:** - ✅ 无需手动配置列信息 - ✅ 自动同步表格列的变化 - ✅ 代码更简洁 ### 方式二:手动配置 手动传入列配置,适合需要自定义列信息的场景。 ```vue ``` ## 自动提取的配置选项 ```typescript interface AutoExtractOptions { // 默认隐藏的列(prop 或 label) defaultHidden?: string[]; // 始终显示的列(prop 或 label) alwaysShow?: string[]; // 列配置映射(用于自定义列的显示名称等) columnMap?: Record>; } ``` ### 示例 ```vue ``` ## 注意事项 1. **自动提取的限制**: - 需要在表格渲染完成后才能提取列配置 - 如果表格列是动态生成的,可能需要调用 `refreshColumns()` 方法 2. **固定列**: - 使用 `fixed="left"` 或 `fixed="right"` 的列会自动标记为不可隐藏 - 在 `alwaysShow` 中指定的列也会不可隐藏 3. **存储键(storageKey)**: - 建议为每个页面使用唯一的 `storageKey`,避免列配置冲突 - 格式建议:`页面名称-table-columns`,如 `user-list-table-columns` 4. **性能考虑**: - 自动提取会在组件挂载和表格更新时执行 - 对于大型表格,建议使用手动配置以获得更好的性能 ## 迁移指南 从手动配置迁移到自动提取: **之前(手动配置):** ```vue ``` **之后(自动提取):** ```vue ``` 只需要: 1. 将 `:columns` 改为 `:table-ref="tableRef"` 2. 在 `el-table` 上添加 `ref="tableRef"` 3. 移除 `tableColumnConfig` 和 `isColumnVisible` 函数(如果不再需要)