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); //插入到指定位置
        })

      },

你可能感兴趣的:(elementui,前端,javascript)