Vue Element ui table 合并单元格

 <el-table
                :data="tableData"
                border
                :span-method="objectSpanMethod"
                style="width: 100%">
                <el-table-column
                prop="order"
                label="序号"
                align="center"
                width="50">
                </el-table-column>
                <el-table-column
                prop="name"
                :label="'名称'"
                align="center"
                fixed="left"
                width="70">
                </el-table-column>
</el-table>


<script>
export default {
  name: 'StationsStaTable',
  data () {
    return {
		tableData: [],
    },
 methods: {
    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
// 对第一列 第二列 进行合并
        if (columnIndex === 1 || columnIndex === 0) {
            // 当 当前行与上一行内容相同时 返回0 0 意味消除
			if(rowIndex > 0 && row[column.property] === this.tableData[rowIndex - 1][column.property]){
				return {
					rowspan: 0,
					colspan: 0
				};
			}else{
				let rows = 1;
                // 反之 查询相同的内容有多少行 进行合并
				for(let i = rowIndex; i < this.tableData.length - 1; i++){
					if (row[column.property] === this.tableData[i + 1][column.property]) {
						rows++;
					}
				}
                // 返回相同内容的行数
				return {
					rowspan: rows,
					colspan: 1
				};
			}
        }
      }
 }

使用span-method 进行合并

如果 是首次出现的内容就计算具体有多少行是一样的 然后返回rows行数作为rowspan

如果是与上一行内容相同 就返回0 0消除该单元格

返回rowspancolspan的对象 意味着合并的行数和列

如果 不参与合并就返回0 0 以免出现多出行或列而导致错位的情况发生

转载于:https://my.oschina.net/xiaohuai4869/blog/3071048

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值