wangxinhui
昨天 526b70eecc5dac5aea91bfffbe0b98118f25827f
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js
@@ -1,5 +1,9 @@
//此js文件是用来自定义扩展业务代码,可以扩展一些自定义页面或者重新配置生成的代码
import gridBody from './extend/materielcodeprintView.vue'
import modelHeader from './extend/materielcodeSelectView.vue'
import modelBody from './extend/purchaseOrderNoSelectView.vue'
import modelFooter from './extend/GetOrderQuantityView.vue'
import modelSpec from './extend/GetOrderMaterielSpec.vue'
let extension = {
  components: {
    //查询界面扩展组件
@@ -7,9 +11,10 @@
    gridBody: gridBody,
    gridFooter: '',
    //新建、编辑弹出框扩展组件
    modelHeader: '',
    modelBody: '',
    modelFooter: ''
    modelHeader: modelHeader,
    modelBody: modelBody,
    modelFooter: modelFooter,
    modelSpec: modelSpec
  },
  tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写)
  buttons: { view: [], box: [], detail: [] }, //扩展的按钮
@@ -26,29 +31,143 @@
      })
      return option;
    },
    formatDate(dateStr) {
      let date = new Date(dateStr);
      let year = date.getFullYear();
      let month = String(date.getMonth() + 1).padStart(2, "0");
      let day = String(date.getDate()).padStart(2, "0");
      return year + "-" + month + "-" + day;
    },
    //下面这些方法可以保留也可以删除
    onInit() {  //框架初始化配置前,
      let materielCodeOption = this.getOption("materielCode");
      let purchaseOrderNoOption = this.getOption("purchaseOrderNo");
      purchaseOrderNoOption.onChange = (val, option) => {
        this.editFormFields.materielCode = "";
        materielCodeOption.data = [];
        if (val == null || val == 0) {
          return this.$error("请选择物料编号!")
        }
        // console.log(val)
        // console.log(option)
        this.http.post("/api/PurchaseOrder/GetPurchaseOrderInfo?purchaseOrderNo=" + val, {}, true).then(
          source => {
            if (!source.status) return this.$error(source.message);
            for (let i = 0; i < source.data.length; i++) {
              materielCodeOption.data.push({ key: i, value: source.data[i] })
      this.$nextTick(() => {
        this.editFormOptions.forEach((option) => {
          option.forEach((item) => {
            if (item.field == 'materielCode') {
              //初始化弹出框选择器配置
              item.extra = {
                icon: 'el-icon-zoom-out', //显示图标
                text: '选择数据', //显示文本
                style: 'color: #3a8ee6;font-size: 13px;cursor: pointer;',
                //触发事件
                click: (item) => {
                  this.$refs.modelHeader.open(this.editFormFields.warehouseId);
                }
              };
            }
            // this.editFormFields.InputOder_itemname = source.data.itemName;
            // this.$success(source.data.itemName);
            this.refresh();
          })
      }
          });
        });
        this.editFormOptions.forEach((option) => {
          option.forEach((item) => {
            if (item.field == 'purchaseOrderNo') {
              //初始化弹出框选择器配置
              item.extra = {
                icon: 'el-icon-zoom-out', //显示图标
                text: '选择数据', //显示文本
                style: 'color: #3a8ee6;font-size: 13px;cursor: pointer;',
                //触发事件
                click: (item) => {
                  this.$refs.modelBody.open(this.editFormFields.materielCode);
                }
              };
            }
          });
        });
        this.editFormOptions.forEach((option) => {
          option.forEach((item) => {
            if (item.field == 'quantity') {
              //初始化弹出框选择器配置
              item.extra = {
                icon: 'el-icon-zoom-out', //显示图标
                text: '采购单最大数量', //显示文本
                style: 'color: #3a8ee6;font-size: 13px;cursor: pointer;',
                //触发事件
                click: (item) => {
                  this.$refs.modelFooter.open(this.editFormFields.purchaseOrderNo);
                }
              };
            }
          });
        });
        this.editFormOptions.forEach((option) => {
          option.forEach((item) => {
            if (item.field == 'materielSpec') {
              //初始化弹出框选择器配置
              item.extra = {
                icon: 'el-icon-zoom-out', //显示图标
                text: '选择物料规格', //显示文本
                style: 'color: #3a8ee6;font-size: 13px;cursor: pointer;',
                //触发事件
                click: (item) => {
                  this.$refs.modelSpec.open(this.editFormFields.purchaseOrderNo,this.editFormFields.materielCode);
                }
              };
            }
          });
        });
        // warehouseIdOption.onChange = (val, option) => {
        //   this.editFormFields.materielCode = "";
        //   materielCodeOption.data = [];
        //   this.editFormFields.purchaseOrderNo = "";
        //   purchaseOrderNoOption.data = [];
        //   if (val == null || val == 0) {
        //     return this.$error("请选择仓库!")
        //   }
        //   this.http.post("/api/PurchaseOrderDetail/GetPurchaseOrderDetailMaterielCode?warehouseId=" + val, {}, true).then(
        //     source => {
        //       if (!source.status) return this.$error(source.message);
        //       this.$nextTick(() => {
        //         for (let i = 0; i < source.data.length; i++) {
        //           materielCodeOption.data.push({ key: source.data[i], value: source.data[i] })
        //         }
        //       })
        //     })
        // }
        // materielCodeOption.onChange = (val, option) => {
        //   this.editFormFields.purchaseOrderNo = "";
        //   purchaseOrderNoOption.data = [];
        //   if (val == null || val == 0) {
        //     return this.$error("请选择物料编号!")
        //   }
        //   this.http.post("/api/PurchaseOrderDetail/GetPurchaseOrderNos?materielCode=" + val, {}, true).then(
        //     source => {
        //       if (!source.status) return this.$error(source.message);
        //       this.$nextTick(() => {
        //         for (let i = 0; i < source.data.length; i++) {
        //           purchaseOrderNoOption.data.push({ key: source.data[i], value: source.data[i] })
        //         }
        //       });
        //     })
        // }
      });
      // é¡µé¢åŠ è½½æ—¶åˆå§‹åŒ–å·²é«˜äº®çš„è¡Œ
      const initHighlightedRows = () => {
        try {
          const highlightedRowIds = localStorage.getItem('highlightedRowIds');
          if (highlightedRowIds) {
            this.highlightedRowIds = JSON.parse(highlightedRowIds);
          } else {
            this.highlightedRowIds = [];
          }
        } catch (e) {
          console.error('Failed to load highlighted rows from localStorage:', e);
          this.highlightedRowIds = [];
        }
      };
      // ä¿å­˜é«˜äº®è¡ŒID到本地存储
      const saveHighlightedRows = () => {
        try {
          localStorage.setItem('highlightedRowIds', JSON.stringify(this.highlightedRowIds));
        } catch (e) {
          console.error('Failed to save highlighted rows to localStorage:', e);
        }
      };
      // åœ¨ç»„件初始化时调用
      initHighlightedRows();
      this.columns.push({
        field: '操作',
@@ -58,12 +177,45 @@
        align: 'center',
        formatter: (row) => {
          return (
            '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-printer">打印</i>'
            '<i style="cursor: pointer;color: #2d8cf0;" class="el-icon-printer">打印</i>'
          );
        },
        click: (row) => {
          // æ‰“开详情
          this.$refs.gridBody.open(row);
          // èŽ·å–è¡Œçš„å”¯ä¸€æ ‡è¯†ï¼ˆå‡è®¾row.id是唯一ID)
          const rowId = row.id;
          // æ·»åŠ åˆ°å·²é«˜äº®åˆ—è¡¨
          if (!this.highlightedRowIds.includes(rowId)) {
            this.highlightedRowIds.push(rowId);
            // ä¿å­˜åˆ°æœ¬åœ°å­˜å‚¨
            saveHighlightedRows();
            // åˆ·æ–°è¡¨æ ¼ä»¥åº”用样式
            this.$refs.gridBody.refresh();
          }
        }
      });
      // é…ç½®cellStyle
      this.columns.forEach((column) => {
        // ä¿å­˜åŽŸæœ‰çš„cellStyle函数
        const originalCellStyle = column.cellStyle;
        column.cellStyle = (row) => {
          // å…ˆåº”用原有的样式逻辑
          let style = originalCellStyle ? originalCellStyle(row) : {};
          // å¦‚果行被标记为高亮,则添加绿色背景
          if (this.highlightedRowIds.includes(row.id)) {
            style = {
              ...style,
              background: '#d4edda',
              color: '#155724'
            };
          }
          return style;
        };
      });
    },
    onInited() {
@@ -99,6 +251,20 @@
      //(3)this.editFormFields.字段='xxx';
      //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值
      //看不懂就把输出看:console.log(this.editFormOptions)
      let isAdd = this.currentAction == 'Add';
      if (isAdd) {
        let date = new Date();
        let year = date.getFullYear();
        let month = String(date.getMonth() + 1).padStart(2, "0");
        let day = String(date.getDate()).padStart(2, "0");
        let hour= String(date.getHours()).padStart(2, "0");
        let minute= String(date.getMinutes()).padStart(2, "0");
        let second= String(date.getSeconds()).padStart(2, "0");
        //将year截取后两位
        this.editFormFields.lotNo = (year.toString().substr(-2)) + month+day + hour + minute+second;
        this.editFormFields.productionDate = year + "-" + month + "-" + day;
        this.editFormFields.effectiveDate = year + 2 + "-" + month + "-" + day;
      }
    }
  }
};