647556386
2025-10-18 d01658c63cd541fe4ea5cec5c4bd7f23b9408cdb
WMS/WIDESEA_WMSClient/src/extension/stock/stockView.js
@@ -1,5 +1,6 @@
//此js文件是用来自定义扩展业务代码,可以扩展一些自定义页面或者重新配置生成的代码
import { el } from "element-plus/es/locales.mjs";
let extension = {
    components: {
@@ -17,11 +18,109 @@
    methods: {
       //下面这些方法可以保留也可以删除
      onInit() {  
      let SelectTake = this.buttons.find(x => x.value == 'SelectStockTake');
      if (SelectTake) {
        SelectTake.onClick = function () {
          let stockViews = this.$refs.table.getSelected();
          this.http
            .post("api/Task/TakeOutbound",stockViews, "数据处理中")
            .then((x) => {
              if (!x.status) return this.$message.error(x.message);
              this.$message.success("操作成功");
              this.refresh();
            });
        }
      }
      this.columns.forEach(column => {
        if (column.field == 'materielCode') {
          column.formatter = (row) => {
            var str = '';
            var list = row.materielCode.split(',');
            for (let index = 0; index < list.length; index++) {
              str += list[index] + '<br>';
            }
            return str = list[0] == "" ? "空箱" : str;
          }
        }
        if (column.field == 'batchNo') {
          column.formatter = (row) => {
            var str = '';
            var list = row.batchNo.split(',');
            for (let index = 0; index < list.length; index++) {
              str += list[index] + '<br>';
            }
            return str = list[0] == "" ? "无" : str;
          }
        }
      if (column.field == 'inventoryage') {
          const today = new Date()
          column.formatter = (row) => {
              if (row.details.length > 0) {
                  const closestDate = row.details
                      .map(x => {
                          const date = new Date(x.createDate);
                          const ageInDays = Math.ceil((today - date) / (1000 * 60 * 60 * 24));
                          return { date, ageInDays };
                      })
                      .reduce((closest, current) => (current.ageInDays < closest.ageInDays ? current : closest))
                      .date;
                  const inventoryAge = Math.ceil((today - closestDate) / (1000 * 60 * 60 * 24));
                  row.inventoryAge = inventoryAge;
                  return `${inventoryAge} 天`;
              }
              // 如果没有明细,返回空或提示信息
              return '-';
          }
        }
        if (column.field == 'sumStock') {
          column.formatter = (row) => {
            if (row.details.length > 0) {
              var sum = 0;
              const closestDate = row.details
                .map(x => {
                  sum += (x.stockQuantity)
                })
              return '<span style="color: rgb(24, 18, 18)">' + sum.toFixed(3) + '</span>';
            } else {
              return '<span style="color: rgb(24, 18, 18)">' + "1个" + '</span>';
            }
          }
        }
      })
      this.columns.forEach((column) => {
        column.cellStyle = (row) => {
          if (row.expirationlabel !== undefined && row.expirationlabel !== null) {
            if (row.expirationlabel === 2) {
              return { background: 'yellow' };
            } else if (row.expirationlabel === 3) {
              return { background: '#ffc0cb' };
            }
          }
          return {};
        };
      });
      },
      onInited() {
        //框架初始化配置后
        //如果要配置明细表,在此方法操作
        //this.detailOptions.columns.forEach(column=>{ });
      this.detailOptions.summary = true;
        this.detailOptions.columns.forEach(x => {
          if (x.field == 'stockQuantity') {
              x.summary = true;
              //计算平均值
              // x.summary = 'avg';//2023.05.03更新voltable文件后才能使用
              //设置小数显示位数(默认2位)
              // x.numberLength = 4;
          }
        });
      },
      searchBefore(param) {
        //界面查询前,可以给param.wheres添加查询参数
@@ -55,4 +154,3 @@
    }
  };
  export default extension;