1、配置 columns 属性,数据源数组 data-source ——
span
标签写插槽
<a-table :columns="columns" :data-source="data">
<a slot="name" slot-scope="text">{{ text }}</a>
<span slot="customTitle"><a-icon type="smile-o" /> 姓名</span>
<span slot="tags" slot-scope="record">
<a-tag
v-for="tag in record"
:key="tag"
:color="tag === 'loser' ? 'volcano' : tag.length > 5 ? 'geekblue' : 'green'"
{{ tag.toUpperCase() }}
</a-tag>
</span>
<span slot="action" slot-scope="text, record">
<a>姓名 - {{ record.name }}</a>
<a-divider type="vertical" />
<a>删除</a>
<a-divider type="vertical" />
<a class="ant-dropdown-link"> 更多 <a-icon type="down" /> </a>
</span>
</a-table>
export default {
data() {
return {
data: [
key: '1',
name: '张三',
age: 32,
address: 'New York No. 1 Lake Park',
tags: ['nice', 'developer'],
key: '2',
name: '李四',
age: 42,
address: 'London No. 1 Lake Park',
tags: ['loser'],
key: '3',
name: '王五',
age: 32,
address: 'Sidney No. 1 Lake Park',
tags: ['cool', 'teacher'],
columns: [
dataIndex: 'name',
slots: { title: 'customTitle' },
scopedSlots: { customRender: 'name' }
title: '年龄',
dataIndex: 'age',
title: '地址',
dataIndex: 'address',
title: '标签',
dataIndex: 'tags',
scopedSlots: { customRender: 'tags' },
title: '操作',
scopedSlots: { customRender: 'action' },
显示结果:
2、template 风格的 API(需要设置key属性)—— a-table-column 列标签 直接用
<a-table :data-source="data">
<a-table-column key="name" data-index="name">
<span slot="customTitle"><a-icon type="smile-o" /> 姓名</span>
</a-table-column>
<a-table-column key="age" title="年龄" data-index="age" />
<a-table-column key="address" title="地址" data-index="address" />
<a-table-column key="action" title="操作">
<template slot-scope="text, record">
<a>姓名 - {{ record.name }}</a>
<a-divider type="vertical" />
<a>删除</a>
</span>
</template>
</a-table-column>
</a-table>
columns 常用 API
对某一列数据进行筛选,使用列的 filters 属性来指定需要筛选菜单的列,onFilter 用于筛选当前数据,filterMultiple 用于指定多选和单选。
对某一列数据进行排序,通过指定列的 sorter 函数即可启动排序按钮:
sorter: function(rowA, rowB) { ... }, rowA、rowB 为比较的两个行数据;
如果是服务端进行排序,设置 sorter 为 true,再设置 sortOrder 属性
sortDirections: ['ascend' | 'descend']改变每列可用的排序方式,切换排序时按数组内容依次切换,设置在 table props 上时对所有列生效。
使用 defaultSortOrder 属性,设置列的默认排序顺序。
table表格的 change 事件
触发条件:分页 、筛选、排序 变化时触发
接收参数:
Function(pagination, filters, sorter, { currentDataSource })
<a-table :columns="columns" :data-source="data" @change="onChange" />
methods: {
onChange: (pagination, filters, sorter) => {
console.log('params', pagination, filters, sorter)
复制代码