// 页面布局 合并单元格逻辑 :span-method = 'objectSpanMethod'
<el-table :header-cell-style="{background: '#edfdf9'}" :span-method="objectSpanMethod" :data="listNum" border style="width: 100%; margin-top: 0px">
<el-table-column prop="itemName" label="项目">
</el-table-column>
<el-table-column prop="itemScore" label="成绩">
</el-table-column>
<el-table-column prop="itemResult" label="得分">
</el-table-column>
</el-table>
最近项目需要合并table的除表头外的第一行的第二列 + 除表头外的第二行的第二列 ,看了一下element文档 Element - The world's most popular Vue UI frameworkElement,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库https://element.eleme.cn/#/zh-CN/component/installation ,合并单元格完成后发现数据会偏移导致显示不正确,百度半天也测试了好多方法都没有达到想要的结果,虽然没效果但是也总结出了前人的一些经验,最终想到隐藏原有数据的办法,试了一下问题解决了,上代码:
// 合并单元格 rowIndex=行数 columnIndex=列数
// 这里是合并table的除表头外的第一行的第二列 + 除表头外的第二行的第二列
// 注意列数和行数从 0 开始
objectSpanMethod ({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 1 && rowIndex == 0) {
let rowspan = 2
let colspan = 1
return { rowspan, colspan }
}
// 解决偏移的重要代码
// 重点在 else if 判断必须加因为合并单元格数据会出现偏移、
// 否则如果是 第二行 的 第二列 那么隐藏原有第二行 的 第二列的数据使他隐藏
else if (rowIndex === 1 && columnIndex == 1) {
return {
rowspan: 0,
colspan: 0
}
}
},
总结:虽然有时候遇到的问题和前人的问题不同达不到自己想要的结果,但是也要认真思考前人的逻辑从而总结经验,生成自己的一套解决问题的办法达到自己想要的结果。欢迎各位大佬的不同看法,如有更好的请分享一下会给您点赞的
各位程序猿,看了如果好用就点个赞呗!!同时不懂的欢迎提问我们共同进步