vue怎样实现单元格合并的功能?单元格合并的功能对表格属性的朋友应该都了解,本文主要给大家分享vue实现单元格多列合并的功能,实现效果及代码如下,感兴趣的朋友就继续往下看吧。
1.在el-table中添加:span-method="objectSpanMethod"属性来控制合并单元格,如下图

2.合并代码,每一列都要设置一个不同的key,这样可以防止合并的时候上下内容一样导致错误的问题
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
if (this.myObj[row.channel_type].start === rowIndex) {
return {
rowspan: this.myObj[row.channel_type].step,
colspan: 1
};
} else {
return {
rowspan: 0,
colspan: 0
};
}
}
if (columnIndex === 1) {
if (
this.myObj_two[row.channel_name_chinese + row.channel_type].start ===
rowIndex
) {
return {
rowspan: this.myObj_two[row.channel_name_chinese + row.channel_type]
.step,
colspan: 1
};
} else {
return {
rowspan: 0,
colspan: 0
};
}
}
},
// 合并单元格第一列
resolveData(arr) {
var obj = {};
arr.forEach((val, key) => {
if (!obj[val.channel_type]) {
obj[val.channel_type] = {
start: key,
step: 1
};
} else {
obj[val.channel_type].step++;
}
});
this.myObj = obj;
console.log(obj);
},
// 合并单元格第二列
resolveData_two(arr) {
var obj = {};
arr.forEach((val, key) => {
if (!obj[val.channel_name_chinese + val.channel_type]) {
obj[val.channel_name_chinese + val.channel_type] = {
start: key,
step: 1
};
} else {
obj[val.channel_name_chinese + val.channel_type].step++;
}
});
this.myObj_two = obj;
console.log(this.myObj_two, "this.myObj");
},
3.需要调用一下下面两个函数,data为你所获取的所有数据
this.resolveData_two(data);
this.resolveData(data);
4.合并结果如下图

关于“vue怎样实现单元格合并的功能”就介绍到这,上述实例具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多vue实现单元格合并的内容,大家可以关注其它的相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理