avue elementUI table 求和/平均數(shù)

今天做表格的求和 / 均值 做個記錄:

<avue-crud :option="option" :summary-method="summaryMethod"></avue-crud>

data() {
  return {
    option: {
        ......
        showSummary: true, //會在表格尾部展示合計行
      }
  }
}

methods: {
  // 自定義邏輯方法
  summaryMethod(param)  {
    const { columns, data } = param; // 這里可以看出,自定義函數(shù)會傳入每一列,以及數(shù)據(jù)
    const sums = [];
    columns.forEach((column, index) => {
    if (index === 0) {
      sums[index] = '總計';
    } else if (index >= 1) { // index>=1后的列進行求和               
    // 頁面分別統(tǒng)計 處理
    const values = data.map(item => item[column.property]);
      if (!values.every(value => isNaN(value))) {
        // 求和計算方法
        // sums[index] = values.reduce((prev, curr) => {
        //  const value = curr;
        //  if (!isNaN(value)) {
        //      return parseFloat((prev + curr).toFixed(10));
        //  } else {
        //      return prev;
        //  }
        // }, 0);
                
            
        // 求均值計算方法
        let totalCount = 0; // 求平均數(shù)時的次數(shù)
        sums[index] = values.reduce((prev, curr) => {
            const value = Number(curr);
            if (!isNaN(value)) {
                totalCount++;
                return prev + curr;
            } else {
                return prev;
            }
        }, 0);
        sums[index] = sums[index] / totalCount;
        sums[index] = sums[index].toFixed(2);


        } else {
          sums[index] = '--'; // 如果列的值有一項不是數(shù)字,就顯示這個自定義內容
        }
      } else {
        sums[index] = '--'
      }
    });
    return sums; // 最后返回合計行的數(shù)據(jù)
  }
}



elementUI官網(wǎng)地址:點擊此處https://element.eleme.cn/#/zh-CN/component/table
借鑒大神文章:點擊此處https://blog.csdn.net/haosicx/article/details/117904087

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容