н¨Îļþ¼Ð/WMS/src/extension/Alarm/MessageInfo.js
@@ -15,8 +15,104 @@
  buttons: { view: [], box: [], detail: [] }, //扩展的按钮
  methods: {
    onInit() {
      this.buttons.forEach(x => {
        if (x.name == "删 é™¤") {
          x.name = "处 ç†";
          x.icon = 'el-icon-edit';
          x.type = 'primary';
        }
      });
        // åœ¨ onInit ä¸­ç›´æŽ¥ä¿®æ”¹åˆ—配置
      this.fixColumnFormatter();
    },
       // ç›´æŽ¥ä¿®æ”¹åˆ—配置
    fixColumnFormatter() {
      // å»¶è¿Ÿæ‰§è¡Œï¼Œç¡®ä¿åˆ—已加载
      this.$nextTick(() => {
        setTimeout(() => {
          const col = this.columns?.find(c => c.field === 'messageGroupBy');
          if (col) {
            // å®Œå…¨æ›¿æ¢ formatter
            col.formatter = (row) => {
              const value = row.messageGroupBy;
              const text = this.getTextByValue(value);
              if (value === 1) {
                // åº“存过期预警 - æ ¹æ®å¤©æ•°åˆ†ä¸‰ç§é¢œè‰²
                const info = row.messageInfo || '';
                const days = this.extractDays(info);
                // è®¾ç½®æ ·å¼
                let style = '';
                if (days !== null) {
                  if (days < 0) {
                    // å·²è¿‡æœŸ - çº¢è‰²
                    style = 'background-color:#fff0f0;color:#f56c6c;border:1px solid #f56c6c33;';
                  } else if (days <= 30) {
                    // 1个月内过期 - çº¢è‰²
                    style = 'background-color:#fff0f0;color:#f56c6c;border:1px solid #f56c6c33;';
                  } else if (days <= 120) {
                    // å¤§äºŽ30天且小于等于120天 - æ©™è‰²
                    style = 'background-color:#fdf6ec;color:#e6a23c;border:1px solid #e6a23c33;';
                  } else {
                    // å¤§äºŽ120天 - ç»¿è‰²
                    style = 'background-color:#f0f9eb;color:#67c23a;border:1px solid #67c23a33;';
                  }
                } else {
                  // é»˜è®¤æ ·å¼
                  style = 'background-color:#f5f5f5;color:#909399;border:1px solid #dcdfe6;';
                }
                return `<span style="${style} padding:3px 10px;border-radius:12px;font-weight:600;font-size:12px;display:inline-block;line-height:1;">${text}</span>`;
              }
              // å…¶ä»–分组 - ä¿æŒåŽŸæœ‰çš„æ ·å¼
              return this.getOtherGroupStyle(value, text);
            };
            console.log('列格式化函数已设置');
          }
        }, 200);
      });
    },
    // å…¶ä»–分组的样式
    getOtherGroupStyle(value, text) {
      const styleMap = {
        0: 'background-color:#e8f4ff;color:#0088ff;border:1px solid #0088ff33;', // è®¾å¤‡æŠ¥è­¦ - äº®è“è‰²
        2: 'background-color:#fff2e8;color:#ff8800;border:1px solid #ff880033;', // ä½Žåº“存预警 - äº®æ©™è‰²
        3: 'background-color:#ffe8e8;color:#ff4444;border:1px solid #ff444433;', // ç‰©æ–™å¾…维护报警 - äº®çº¢è‰²
        4: 'background-color:#f0e8ff;color:#8844ff;border:1px solid #8844ff33;', // å…¥åº“单报警 - ç´«è‰²
        5: 'background-color:#e8fffb;color:#00aa88;border:1px solid #00aa8833;', // å‡ºåº“单报警 - é’色
        6: 'background-color:#fff8e8;color:#ffaa00;border:1px solid #ffaa0033;', // ä¸ŽERP同步报警 - é‡‘色
      };
      
      const style = styleMap[value] || 'background-color:#f5f5f5;color:#909399;border:1px solid #dcdfe6;';
      
      return `<span style="${style} padding:3px 10px;border-radius:12px;font-weight:600;font-size:12px;display:inline-block;line-height:1;">${text}</span>`;
    },
    getTextByValue(value) {
      const map = {
        0: '设备报警',
        1: '库存过期预警',
        2: '低库存预警',
        3: '物料待维护报警',
        4: '入库单报警',
        5: '出库单报警',
        6: '与ERP同步报警'
      };
      return map[value] || `分组${value}`;
    },
    extractDays(info) {
      if (!info) return null;
      const match1 = info.match(/还有(\d+)天过期/);
      const match2 = info.match(/已过期(\d+)天/);
      if (match1) return parseInt(match1[1]);
      if (match2) return -parseInt(match2[1]);
      return null;
    },
    onInited() {
@@ -27,7 +123,7 @@
    // è®¾ç½®è®¾å¤‡çŠ¶æ€ä¸‹æ‹‰æ¡†é€‰é¡¹
    setDeviceStatusOptions() {
    },
    searchBefore(param) {
@@ -58,7 +154,7 @@
    modelOpenAfter(row) {
      //点击编辑、新建按钮弹出框后,可以在此处写逻辑
    }
  }
};