elementUI表格小合计

 在表格中指定位置插入小合计

     //小合计,在指定行下插入合计行
      handleTable(Human) {
        let doctorMap = {};
        for (let i = 0; i < Human.length; i++) {//找出相同名称的行数
          let doctorName = Human[i].deptName;
          if (doctorMap[doctorName] !== undefined) {
            doctorMap[doctorName].push(i);
          } else {
            doctorMap[doctorName] = [i];
          }
        }
        //打印doctorMap 
        // {
        //  "中医科":[ 0, 1, 2,  3 ],
        //  "外科":[ 4, 5 ]
        // } 
        let keyArr = []
        //取出key并倒序,防止正序插入会影响行下标
        for (let k in doctorMap) {
          keyArr.unshift(k)      
        }
        keyArr.forEach((ele, index) => {
            //定义需要插入的数据
          let sumObj = {
            deptName: ele,
            aaa:0,
            doctorName: '合计',//需要把哪个字段变成合计
            //....需要插入合计的列名字段,与后端返回字段一致
          };
          //循环计算相同名称的行数据,例如'中医科':[0,1,2,3] 共计算四行数据
          for (let i = 0; i < doctorMap[ele].length; i++) {
            const e = doctorMap[ele][i];
            //计算累加数据
            //......
            //例:
            sumObj.aaa+= Human[e].aaa- 0 //与sumObj里的字段对应
          }
          let lastIndex = doctorMap[ele][doctorMap[ele].length - 1] //找出相同科室最后一行插入合计数据
          Human.splice(lastIndex + 1, 0, sumObj); //插入到指定位置
        })

      },
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值