<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<script src="https://unpkg.com/vue@2/dist/vue.js"></script>
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<div id="app">
<el-table :data="tableData" border :span-method="arraySpanMethod">
<el-table-column prop="id" label="ID">
</el-table-column>
<el-table-column prop="name" label="姓名">
</el-table-column>
<el-table-column prop="value1" label="参数1">
</el-table-column>
<el-table-column prop="value2" label="参数2">
</el-table-column>
<el-table-column prop="address" label="地址">
</el-table-column>
</el-table>
</div>
xxxxxxxxxx
const data = [{
id: 1,
name: '张三',
value1: 'aa',
value2: 'bb',
address: '上海市普陀区金沙江路 110 弄'
}, {
id: 2,
name: '李四',
value1: 'aa',
value2: 'aa',
address: '上海市普陀区金沙江路 111 弄'
}, {
id: 3,
name: '王五',
value1: 'bb',
value2: 'bb',
address: '上海市普陀区金沙江路 112 弄'
}, {
id: 4,
name: '赵六',
value1: 'aa',
value2: 'bb',
address: '上海市普陀区金沙江路 113 弄'
}]
new Vue({
el: '#app',
data() {
return {
tableData: data
}
},
methods: {
arraySpanMethod({ row, column, rowIndex, columnIndex}) {
// 如果当前行,value===value2
if (row.value1 === row.value2) {
if (columnIndex === 2) {
// 如果为第3列,则合并
return [1, 2];
} else if (columnIndex === 3) {
// 如果是第四列,则填充
return [0, 0];
}
}
}
}
})