结果如图:

区域,成功率,清单率为表头,右侧为动态的数据
废话不多说直接上代码:
1.先声明表格,使用框架自带a-table,核心点就在data和columns上
- <div style="margin-bottom: 60px;">
- <a-table style="width: 100%" :data-source="getValues()" :columns="areaHeader" :showHeader="false"
- :pagination="false" :rowKey="(record,index)=>{return index}">
- a-table>
- div>
2. 设置表头columns:
-
- //mock 数据 之后这个数据要来自后台
- tableData: [
- {
- area: '上海',
- success: '86',
- detail: '85'
- },
- {
- area: '浙江',
- success: '85',
- detail: '90'
- },
- {
- area: '内蒙古',
- success: '65',
- detail: '90'
- },
- {
- area: '北京',
- success: '35',
- detail: '70'
- }],
-
- //转换表头的一个方法
-
- getHeaders () {
- let data = this.tableData.reduce((pre, cur, index) => pre.concat({ 'dataIndex': `value${index}` }), [{ 'dataIndex': 'title' }])
- console.log('headers===>', data)
- this.areaHeader = data
- },
然后绑定数据即可:
-
- //左侧定义好的表头
- headers: [
- {
- prop: 'area',
- label: '区域'
- },
- {
- prop: 'success',
- label: '成功率(%)'
- },
- {
- prop: 'detail',
- label: '清单率(%)'
- }
- ],
-
-
- getValues () {
- let data = this.headers.map(item => {
- return this.tableData.reduce((pre, cur, index) => Object.assign(pre, { ['value' + index]: cur[item.prop] }), { 'title': item.label })
- })
- console.log('value===>', data)
- return data
- },