heshaofeng
6 天以前 18ca3750ce28d407afb518cadecdd29d79876c8b
ÏîÄ¿´úÂë/WIDESEA_WMSClient/src/extension/stock/stockView.js
@@ -93,28 +93,42 @@
          column.formatter = (row) => {
            // æ ¡éªŒdetails是否存在且有数据
            if (row.details && row.details.length > 0) {
              // æŒ‰materielCode分组统计stockQuantity总和,并记录单位(取第一个非空单位)
              const materielSumMap = row.details.reduce((acc, item) => {
                const materielCode = item.materielCode || '未知物料';
              // æŒ‰barcode + supplyCode + BatchNo ç»„合维度分组统计stockQuantity总和,并记录单位(取第一个非空单位)
              const groupSumMap = row.details.reduce((acc, item) => {
                // èŽ·å–åˆ†ç»„å…³é”®å­—æ®µï¼Œä¸ºç©ºæ—¶èµ‹äºˆé»˜è®¤å€¼
                const supplyCode = item.supplyCode || '未知供应商编码';
                const batchNo = item.batchNo || '未知批次号';
                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 // ä¿ç•™ç¬¬ä¸€ä¸ªéžç©ºå•位
                // ç»„合分组键(可根据需要调整显示格式)
                const groupKey = `${supplyCode}|${batchNo}|${materielCode}`;
                // ç´¯åŠ æ•°é‡ï¼Œä¿ç•™ç¬¬ä¸€ä¸ªéžç©ºå•ä½
                acc[groupKey] = {
                  total: (acc[groupKey]?.total || 0) + quantity,
                  unit: acc[groupKey]?.unit || unit,
                  supplyCode,
                  batchNo,
                  materielCode
                };
                return acc;
              }, {});
              // æ¯ä¸ªç‰©æ–™é¡¹ç”Ÿæˆç‹¬ç«‹div,跨行显示(包含单位)
              const displayItems = Object.entries(materielSumMap).map(([code, data]) => {
              // æ¯ä¸ªåˆ†ç»„项生成独立div,跨行显示(包含所有分组维度和单位)
              const displayItems = Object.entries(groupSumMap).map(([_, data]) => {
                // å¤„理单位显示:有单位则加空格显示,无则不显示
                const unitText = data.unit ? ` ${data.unit}` : '';
                return `<div style="line-height: 1.5; white-space: normal;">${code}:${data.total}${unitText}</div>`;
                // ç»„装显示文本(可根据需求调整字段显示顺序和格式)
                return `<div style="line-height: 1.5; white-space: normal; margin-bottom: 4px;">
                  ä¾›åº”商编码:${data.supplyCode} | æ‰¹æ¬¡å·ï¼š${data.batchNo} | ç‰©æ–™ç¼–码:${data.materielCode}:${data.total}${unitText}
        </div>`;
              });
              const displayContent = displayItems.join('');
              return `<div style="color: #F56C6C; white-space: normal; word-break: break-all;">${displayContent}</div>`;
              return `<div style="color: #716cf5ff; white-space: normal; word-break: break-all;">${displayContent}</div>`;
            } else {
              return '<span style="color: #F56C6C">空箱</span>';
            }