<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      el-table合并單元格指定行小計、總計

      <div>
            <el-table
              :data="tableData"
              :span-method="arraySpanMethod"
              :cell-style="cellStyleMethod"
              border
              style="width: 100%"
            >
              <el-table-column prop="name" label="姓名"> </el-table-column>
              <el-table-column prop="id" label="ID" width="180"> </el-table-column>
              <el-table-column prop="amount1" sortable label="數(shù)值 1">
              </el-table-column>
              <el-table-column prop="amount2" sortable label="數(shù)值 2">
              </el-table-column>
              <el-table-column prop="amount3" sortable label="數(shù)值 3">
              </el-table-column>
            </el-table>
          </div>
      data() {
          return {
            tableData: [
              {
                id: '12987122',
                name: '王小虎',
                amount1: 1,
                amount2: '3.2',
                amount3: 10
              },
              {
                id: '12987122',
                name: '王小虎',
                amount1: 1,
                amount2: '3.2',
                amount3: 10
              },
              {
                id: '12987123',
                name: '王小虎',
                amount1: 2,
                amount2: '4.43',
                amount3: 12
              },
              {
                id: '12987124',
                name: '王小二',
                amount1: 3,
                amount2: '1.9',
                amount3: 9
              },
              {
                id: '12987125',
                name: '王小二',
                amount1: 6,
                amount2: '2.2',
                amount3: 17
              },
              {
                id: '12987125',
                name: '王小二',
                amount1: 6,
                amount2: '2.2',
                amount3: 17
              },
              {
                id: '12987126',
                name: '王小三',
                amount1: 4,
                amount2: '4.1',
                amount3: 15
              },
              {
                id: '12987126',
                name: '王小三',
                amount1: 539,
                amount2: '4.1',
                amount3: 15
              },
              {
                id: '12987127',
                name: '王小三',
                amount1: 539,
                amount2: '4.1',
                amount3: 15
              },
              {
                id: '12987127',
                name: '王小三',
                amount1: 539,
                amount2: '4.1',
                amount3: 15
              }
            ],
            spanNameArr: [],
            namePos: '',
            spanIdArr: [],
            idPos: ''
        }
      },
      mounted() {
      this.
      formatData()
      },
      methods: {
          formatData() {
            let data = JSON.parse(JSON.stringify(this.tableData));
            let pos = 0;
            let temp = {};
            for (let i = 0; i < data.length; i++) {
              if (temp[data[i].name]) {
                temp[data[i].name]['amount1'] += parseFloat(data[i].amount1);
              } else {
                temp[data[i].name] = {};
                temp[data[i].name]['amount1'] = parseFloat(data[i].amount1);
              }
              if (i > 0 && data[i].name !== data[i - 1].name) {
                let amount1 = temp[data[i - 1].name]['amount1'];
                this.tableData.splice(i + pos, 0, {
                  id: '合計',
                  name: '合計',
                  amount1: amount1,
                  amount2: '3.2',
                  amount3: 10
                });
                pos++;
              } else if (i === data.length - 1) {
                let amount1 = temp[data[i - 1].name]['amount1'];
                this.tableData.push({
                  id: '合計',
                  name: '合計',
                  amount1: amount1,
                  amount2: '3.2',
                  amount3: 10
                });
                pos++;
              }
            }
            let totalAmount1 = 0;
      
            for (let key in temp) {
              totalAmount1 += parseFloat(temp[key].amount1);
            }
            this.tableData.push({
              id: '總計',
              name: '總計',
              amount1: totalAmount1,
              amount2: '3.2',
              amount3: 10
            });
            this.getSpanArr(this.tableData, this.spanNameArr, this.namePos, 'name');
            this.getSpanArr(this.tableData, this.spanIdArr, this.idPos, 'id');
          },
          cellStyleMethod({ row, column, rowIndex, columnIndex }) {
            if (row.name === '合計' || row.name === '總計') {
              if (columnIndex === 0) {
                return { 'text-align': 'right' };
              }
            }
          },
          arraySpanMethod({ row, column, rowIndex, columnIndex }) {
            if (row.name === '合計' || row.name === '總計') {
              if (columnIndex === 0) {
                return [1, 2];
              } else if (columnIndex === 1) {
                return [0, 0];
              }
            } else {
              if (columnIndex == 0) {
                const _row = this.spanNameArr[rowIndex];
                const _col = _row > 0 ? 1 : 0;
                return {
                  // [0,0] 表示這一行不顯示, [2,1]表示行的合并數(shù)
                  rowspan: _row,
                  colspan: _col
                };
              }
              if (columnIndex == 1) {
                const _row = this.spanIdArr[rowIndex];
                const _col = _row > 0 ? 1 : 0;
                return {
                  // [0,0] 表示這一行不顯示, [2,1]表示行的合并數(shù)
                  rowspan: _row,
                  colspan: _col
                };
              }
            }
          },
          getSpanArr(data, temp, pos, label) {
            // data就是我們從后臺拿到的數(shù)據(jù)
            for (let i = 0; i < data.length; i++) {
              if (i === 0) {
                temp.push(1);
                pos = 0;
              } else {
                // 判斷當(dāng)前元素與上一個元素是否相同
                if (data[i][label] === data[i - 1][label]) {
                  temp[pos] += 1;
                  temp.push(0);
                } else {
                  temp.push(1);
                  pos = i;
                }
              }
            }
          },
      }     

       

       



      posted @ 2023-01-06 14:10  你丫才美工  閱讀(1362)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 国产大尺度一区二区视频| caoporn成人免费公开| 亚洲精品中文字幕尤物综合| 在线观看潮喷失禁大喷水无码| 高清精品视频一区二区三区| 国产精品亚洲片夜色在线| 无套内谢少妇毛片aaaa片免费| XXXXXHD亚洲日本HD| 亚洲日韩国产精品第一页一区| 亚洲精品熟女一区二区| 强奷乱码中文字幕| 性色欲情网站iwww九文堂| 国产欧美另类久久久精品不卡| 国产精品无码无在线观看| 加勒比中文字幕无码一区| 亚洲人成人影院在线观看| 久久99热只有频精品8| 定日县| 性色a码一区二区三区天美传媒 | 免费大片av手机看片高清| 色综合天天综合网中文伊| 免费av深夜在线观看| 国产白丝jk捆绑束缚调教视频| 福利一区二区1000| 麻豆一区二区中文字幕| 999精品色在线播放| 人妻综合专区第一页| av中文无码乱人伦在线观看| 老熟女重囗味hdxx69| 91中文字幕一区在线| 亚洲中文字幕第一页在线| 野花在线观看免费观看高清| 最新亚洲人成网站在线影院| 粉嫩国产av一区二区三区| 亚洲乱熟乱熟女一区二区| 国产明星精品无码AV换脸| 亚洲精品毛片一区二区| 潘金莲高清dvd碟片| 日韩成人精品一区二区三区| 五月综合网亚洲乱妇久久| 日韩人妖精品一区二区av|