vueElement之table合并单元格
运用情景:在某些场景需要table表格 合并行 或者合并列
合并行:你需要知道那一列需要合并行,需要合并几行。
如图:我需要在第一列合并projectItem相等的行数,所以我们需要算出projectItem相等的行数有几行
计算出那些行数需要合并(projectItem相等的行数)
getSpanArr (data) {//
// console.log(data)//从后台获取的数据
if(!data){
return
}
this.spanArr = []
for (var i = 0; i < data.length; i++) {
console.log("i",i)
if (i === 0) {
// 如果是第一条记录(即索引是0的时候),向数组中加入1
this.spanArr.push(1)
this.pos = 0
} else {
if (data[i].projectItem === data[i - 1].projectItem) {
// 如果projectItem相等就累加,并且push 0
this.spanArr[this.pos] += 1
this.spanArr.push(0)
console.log("相等",this.spanArr,this.pos)
} else {
// 不相等push 1
this.spanArr.push(1)
this.pos = i
console.log("不相等",this.spanArr,this.pos)
}
}
}
// console.log("aa",this.spanArr)
},
table组件
//:span-method="objectSpanMethod"合并单元格的方法
<el-table
:data="tableData"
style="width: 100%"
:span-method="objectSpanMethod"
>
....
....
</el-table>
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
// columnIndex === 0 找到第一列,实现合并随机出现的行数
if (columnIndex === 0) {
const _row = this.spanArr[rowIndex]; //拿到需要合并的行数
const _col = _row > 0 ? 1 : 0; //如果需要合并的行数大于0返回1 否则返回0
return {
rowspan: _row, //要合并的行
colspan: _col,//要合并的列
}
}
},
还没有评论,来说两句吧...