element-ui 表格合并行实现

1、获取合并行数组如:[2,0,1,3,0,0]

     如何获取呢,我自己写了个方法

        //获取合并行数组
        getColumnArray( name){
            let spanArray = new Array(this.tableData.length).fill(0);
            // 从表格中获取字段作为数组
            let arr = this.tableData.map(a => a[name]) ;
            //去重
            let lastArr = [...new Set(arr )];
            //获取元素在数组中出现的次数和第一次出现的下标
            for(let i in lastArr){
                let index = arr.findIndex(item => item === lastArr[i])
                let count = 0;
                // two:
                for(let j in arr){
                    if(lastArr[i] == arr[j]){
                        count++ ;
                    }else{
                        spanArray[index] = count == 0 ? 1 : count ;
                        // break two;
                    }
                }
            }
            return spanArray ;
        }
        //合并单元格
        arraySpanMethod({ row, column, rowIndex, columnIndex }) {
            if (columnIndex === 0) {
                const _row = this.getColumnArray('productName')[rowIndex];
                const _col = _row > 0 ? 1 : 0;
                return {
                    rowspan: _row,
                    colspan: _col
                };
            }

            if(columnIndex === 1){
                const _row = this.getColumnArray('productType')[rowIndex];
                const _col = _row > 0 ? 1 : 0;
                return {
                    rowspan: _row,
                    colspan: _col
                };
            }
        }

注意:

该方法是可以实现合并行,但是给我留下疑惑,希望有大神看到,能指点指点:

1.当在数组中查询出现的次数时,break two; 语句,该语句我是想当出现不同时,就不继续往下查找了,跳出循环

   但是该加上该语句时,count就不对了。

2.还有就是因为我们的表格查询的数据并不多,一页也就十来条数据,所以合并时可以在表格的函数里面遍历,如果有比较多的数据的话,还请把getColumnArray函数放在给表格赋值前遍历出来,不然表格有多少行数据它就会遍历多少次

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值