通过API.column接口可指定数据列,支持筛选、排序及格式转换,按需返回结构化
API 列配置详解(api.column
)
核心概念
api.column
是用于定义数据表格列配置的核心参数,常见于后端接口返回的表格数据结构或前端组件(如 Element UI、Ant Design)的列定义中,它控制数据的映射、排序、过滤、隐藏等行为。
常用配置项
参数名 | 类型 | 说明 |
---|---|---|
prop | String | 数据源字段名,必填(用于映射数据) |
label | String | ,必填(用于显示) |
width | Number /String | 列宽度(px 或百分比) |
sortable | Boolean /Object | 是否启用排序(true 或自定义排序规则) |
filter | Boolean /Array | 是否启用过滤(true 或自定义过滤选项) |
fixed | String | 固定列位置(left /right ) |
hidden | Boolean | 是否隐藏列 |
formatter | Function | 自定义数据格式化函数 |
children | Array | 子列配置(用于多级表头) |
典型应用场景
基础列配置
// 示例:定义简单的表格列 const columns = [ { prop: 'name', label: '姓名', width: 150 }, { prop: 'age', label: '年龄', sortable: true }, { prop: 'address', label: '地址', hidden: true } ];
高级功能配置
功能 | 配置示例 |
---|---|
排序 | sortable: { type: 'desc' } (默认降序) |
过滤 | filter: [{ text: '男', value: 'male' }, { text: '女', value: 'female' }] |
自定义渲染 | formatter: (row, column) => row[column.prop] + '岁' |
多级表头 | 通过 children 嵌套子列 |
常见问题与解决方案
列宽自适应
- 问题:固定宽度可能导致表格溢出或空白过多。
- 方案:使用百分比宽度或响应式断点配置。
{ prop: 'description', label: '描述', width: '30%' } // 百分比宽度
动态隐藏列
- 问题:需要根据用户权限动态显示/隐藏列。
- 方案:在渲染前过滤
columns
数组。 %ignore_pre_3%
框架适配差异
框架/库 | 特殊配置项 |
---|---|
Element UI | align (文本对齐)、headerAlign 对齐) |
Ant Design | dataIndex (替代 prop )、key (唯一标识) |
Bootstrap Table | searchable (是否可搜索)、switchable (是否可切换显示) |
相关问题与解答
问题 1:如何实现拖拽排序调整列顺序?
解答:需结合前端框架的拖拽事件(如 onDrag
)动态更新 columns
数组顺序。
// 监听拖拽事件并重新排序 handleDrag(newOrder) { this.columns = newOrder; }
问题 2:如何处理多级表头的列配置?
解答:通过嵌套 children
属性定义子列,并设置 colspan
合并标题。
{ label: '用户信息', children: [ { prop: 'name', label: '姓名' }, { prop: 'age', label: '年龄' } ] }
小伙伴们,上文介绍了“api.column”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复