647556386
6 天以前 f29f358f589f5b1c2589c07b65845650be7aafef
ÏîÄ¿´úÂë/WIDESEA_WMSClient/src/extension/stock/stockView.js
@@ -31,7 +31,7 @@
      //       });
      //   }
      // }
      // this.columns.forEach(column => {
      this.columns.forEach(column => {
      //   if (column.field == 'materielCode') {
      //     column.formatter = (row) => {
      //       var str = '';
@@ -74,22 +74,74 @@
      //     }
      //   }
      //   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: #F56C6C">' + sum + row.details[0].unit + '</span>';
      //       } else {
      //         return '<span style="color: #F56C6C">' + "1个" + '</span>';
      //       }
        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: #F56C6C">' + sum + row.details[0].unit + '</span>';
            } else {
              return '<span style="color: #F56C6C">' + "1个" + '</span>';
            }
      //     }
      //   }
      // })
          }
        }
        if (column.field === 'orderStatistics') {
          column.formatter = (row) => {
            // æ ¡éªŒdetails是否存在且有数据
            if (row.details && row.details.length > 0) {
              // æŒ‰materielCode分组统计stockQuantity总和,并记录单位(取第一个非空单位)
              const materielSumMap = row.details.reduce((acc, item) => {
                const materielCode = item.materielCode || '未知物料';
                const quantity = Number(item.stockQuantity) || 0;
                const unit = item.unit || ''; // èŽ·å–å•ä½ï¼Œæ— åˆ™ä¸ºç©º
                // ç´¯åŠ æ•°é‡
                acc[materielCode] = {
                  total: (acc[materielCode]?.total || 0) + quantity,
                  unit: acc[materielCode]?.unit || unit // ä¿ç•™ç¬¬ä¸€ä¸ªéžç©ºå•位
                };
                return acc;
              }, {});
              // æ¯ä¸ªç‰©æ–™é¡¹ç”Ÿæˆç‹¬ç«‹div,跨行显示(包含单位)
              const displayItems = Object.entries(materielSumMap).map(([code, data]) => {
                // å¤„理单位显示:有单位则加空格显示,无则不显示
                const unitText = data.unit ? ` ${data.unit}` : '';
                return `<div style="line-height: 1.5; white-space: normal;">${code}:${data.total}${unitText}</div>`;
              });
              const displayContent = displayItems.join('');
              return `<div style="color: #F56C6C; white-space: normal; word-break: break-all;">${displayContent}</div>`;
            } else {
              return '<span style="color: #F56C6C">空箱</span>';
            }
          };
        }
        if (column.field == 'stockOrderNo') {
          column.formatter = (row) => {
            // æœ‰æ˜Žç»†æ•°æ®æ—¶å¤„理
            if (row.details && row.details.length > 0) {
              // æå–所有非空的orderNO并去重
              const uniqueOrderNOs = [...new Set(
                row.details.map(item => item.orderNo).filter(no => no) // è¿‡æ»¤ç©ºå•据号
              )];
              // æœ‰æœ‰æ•ˆå•据号则换行显示,否则显示默认文本
              if (uniqueOrderNOs.length > 0) {
                return `<span style="color: #F56C6C">${uniqueOrderNOs.join('<br>')}</span>`;
              } else {
                return '<span style="color: #F56C6C">暂无单据</span>';
              }
            } else {
              // æ— æ˜Žç»†æ•°æ®æ—¶æ˜¾ç¤ºé»˜è®¤æ–‡æœ¬
              return '<span style="color: #F56C6C">暂无单据</span>';
            }
          }
        }
      })
    },
    onInited() {
      //框架初始化配置后