<template>
<!-- 动态合并表头 -->
<div>
<a-table :columns="columns" :data-source="data" bordered :customRow="customRow">
</a-table>
</div>
</template>
<script>
export default {
name: "dataQuery",
data() {
return {
columns:[],
data: [{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
},
{
date: ' 2021-11-01 ',
batchNo: ' 1 ',
x1: 8.1,
x2: 10.6,
x3: 9.8,
x4: 9,
x5: 9.4,
x6: 9.3,
x7: 10.2,
x8: 11.7,
avgX: 9.7625,
r: 3.6
}
]
}
},
created() {},
mounted() {
this.columns = this.createColumns();
},
methods: {
//设置表格隔行变色
customRow(record, index) {
return {
style: {
// 字体颜色
color: record.remarkDesc ? record.remarkDesc.fontColor : '#262626',
// 行背景色
'background-color': index % 2 == 0 ? '#FAFAFA' : '#FFFFFF'
}
}
},
createColumns() {
// 动态生成表头,合并表头
// 第一列和第二列
let column1 = {
title: '日期',
dataIndex: 'date',
key: 'date'
};
let column2 = {
title: '批次号',
dataIndex: 'batchNo',
key: 'batchNo'
};
// 第三列是合并列,把n列合并成一列
let column3 = [];
let n = 8;
for (let i = 1; i <= n; i++) {
// 第一个的colSpan=n,后面的colSpan=0
let col = {};
if(i==1){
col = {
title: '测量值',
dataIndex: 'x' + i,
key: 'x' + i,
colSpan: n,
}
}else{
col = {
title: '测量值',
dataIndex: 'x' + i,
key: 'x' + i,
colSpan: 0,
}
}
column3.push(col);
}
let column4 = {
title: '平均值X',
dataIndex: 'avgX',
key: 'avgX',
};
let column5 = {
title: '极差R',
dataIndex: 'r',
key: 'r',
};
// 把第一列和第二列加到第三列的前面,第四列和第五列加到第三列的后面
column3.unshift(column2);
column3.unshift(column1);
column3.push(column4);
column3.push(column5);
return column3;
}
}
}
</script>
<style scoped>
</style>
data和n是动态从接口获取的数据,这里只是一个举例而已,所以直接写死在代码里了。