guoyuji
2025-02-07 82685a4ec94db01c564561582141c03054012ea3
north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue
@@ -8,6 +8,7 @@
import {changeFilterEvent, filterChanged} from "@/hook"
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum";
//语言获取
const { t } = useI18n()
let router=useRouter()
@@ -58,7 +59,9 @@
      }
      //gridOptions.columns = JSON.parse(JSON.stringify(columns))
      res.data.title.forEach((item, index) => {
        let column = { slots: { default: 'quantitySum' }, width: 90, title: item.process };
        let column = { slots: { default: 'quantitySum' }, width: 90, title: item.process,
          field: `dynamicColumn${index}` // 为动态列添加唯一的 field
        };
        const insertIndex = 5;  // 设置插入位置的索引
        gridOptions.columns = [
          ...gridOptions.columns.slice(0, insertIndex + index), // 取插入位置之前的部分
@@ -76,6 +79,15 @@
      ElMessage.warning(res.msg)
    }
  })
}
const footSumDynamic = (data, columnTitle) => {
  let sum = 0;
  data.forEach(item => {
    const value = Number(item.reportWorkQuantity[columnTitle]) || 0; // 从 reportWorkQuantity 中提取值并转换为数字
    sum += value;
  });
  return sum.toFixed(2);
}
const quantitySum = ( row,column )=>{
  const reportWorkQuantity = row.reportWorkQuantity[column.title] || 0
@@ -157,20 +169,24 @@
  data:  [
  ],//table body实际数据
  //脚部求和
  // footerMethod ({ columns, data }) {//页脚函数
  //   let footList=['7','8','9','10']
  //   return[
  //     columns.map((column, columnIndex) => {
  //       if (columnIndex === 0) {
  //         return '合计:'
  //       }
  //       if (footList.includes(column.field)) {
  //         return sumNum(data, column.field)
  //       }
  //       return ''
  //     })
  //   ]
  // }
  footerMethod ({ columns, data }) {
    return [
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return t('basicData.total')
        }
        const List = ["quantity", "inventoryNum", "inventoryArea"]; // 静态列的求和
        if (List.includes(column.field)) {
          return footSum(data, column.field)
        }
        // 动态列的求和
        if (column.field && column.field.startsWith('dynamicColumn')) {
          return footSumDynamic(data, column.title)
        }
        return ''
      })
    ]
  }
})