From 6c2941eb055879adf2b3ecb981c26b9612e149ed Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期二, 09 十二月 2025 19:36:58 +0800
Subject: [PATCH] 前端优化
---
项目代码/WIDESEA_WMSClient/src/extension/stock/stockView.js | 150 +++++++++++++++++++++++++++++++++++--------------
1 files changed, 106 insertions(+), 44 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/stock/stockView.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/stock/stockView.js"
index 92ad623..c58c825 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/stock/stockView.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/stock/stockView.js"
@@ -1,8 +1,4 @@
-//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
-
-import { el } from "element-plus/es/locales.mjs";
-
let extension = {
components: {
//鏌ヨ鐣岄潰鎵╁睍缁勪欢
@@ -36,48 +32,48 @@
// }
// }
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 == 'materielInfo') {
- const today = new Date()
- column.formatter = (row) => {
- if (row.details.length > 0) {
- const today = new Date();
- const closestDate = row.details
- .map(x => {
- const date = new Date(x.effectiveDate);
- const diffInDays = Math.ceil(Math.abs((today - date) / (1000 * 60 * 60 * 24)));
- return { date, diffInDays };
- })
- .reduce((closest, current) => (current.diffInDays < closest.diffInDays ? current : closest))
- .date;
+ // 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 == 'materielInfo') {
+ // const today = new Date()
+ // column.formatter = (row) => {
+ // if (row.details.length > 0) {
+ // const today = new Date();
+ // const closestDate = row.details
+ // .map(x => {
+ // const date = new Date(x.effectiveDate);
+ // const diffInDays = Math.ceil(Math.abs((today - date) / (1000 * 60 * 60 * 24)));
+ // return { date, diffInDays };
+ // })
+ // .reduce((closest, current) => (current.diffInDays < closest.diffInDays ? current : closest))
+ // .date;
- const daysSinceClosest = Math.ceil(Math.abs((today - closestDate) / (1000 * 60 * 60 * 24)));
- return '<span style="color: #F56C6C">' + daysSinceClosest + "澶�" + '</span>';
- } else {
- return '<span style="color: #F56C6C">' + "鏃犱繚璐ㄦ湡" + '</span>';
- }
+ // const daysSinceClosest = Math.ceil(Math.abs((today - closestDate) / (1000 * 60 * 60 * 24)));
+ // return '<span style="color: #F56C6C">' + daysSinceClosest + "澶�" + '</span>';
+ // } else {
+ // return '<span style="color: #F56C6C">' + "鏃犱繚璐ㄦ湡" + '</span>';
+ // }
- }
- }
+ // }
+ // }
if (column.field == 'sumStock') {
column.formatter = (row) => {
if (row.details.length > 0) {
@@ -93,6 +89,72 @@
}
}
+ if (column.field === 'orderStatistics') {
+ column.formatter = (row) => {
+ // 鏍¢獙details鏄惁瀛樺湪涓旀湁鏁版嵁
+ if (row.details && row.details.length > 0) {
+ // 鎸塨arcode + 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 || ''; // 鑾峰彇鍗曚綅锛屾棤鍒欎负绌�
+
+ // 缁勫悎鍒嗙粍閿紙鍙牴鎹渶瑕佽皟鏁存樉绀烘牸寮忥級
+ const groupKey = `${supplyCode}|${batchNo}|${materielCode}`;
+
+ // 绱姞鏁伴噺锛屼繚鐣欑涓�涓潪绌哄崟浣�
+ acc[groupKey] = {
+ total: (acc[groupKey]?.total || 0) + quantity,
+ unit: acc[groupKey]?.unit || unit,
+ supplyCode,
+ batchNo,
+ materielCode
+ };
+ return acc;
+ }, {});
+
+ // 姣忎釜鍒嗙粍椤圭敓鎴愮嫭绔媎iv锛岃法琛屾樉绀猴紙鍖呭惈鎵�鏈夊垎缁勭淮搴﹀拰鍗曚綅锛�
+ const displayItems = Object.entries(groupSumMap).map(([_, data]) => {
+ // 澶勭悊鍗曚綅鏄剧ず锛氭湁鍗曚綅鍒欏姞绌烘牸鏄剧ず锛屾棤鍒欎笉鏄剧ず
+ const unitText = data.unit ? ` ${data.unit}` : '';
+
+ // 缁勮鏄剧ず鏂囨湰锛堝彲鏍规嵁闇�姹傝皟鏁村瓧娈垫樉绀洪『搴忓拰鏍煎紡锛�
+ 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: #716cf5ff; 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() {
--
Gitblit v1.9.3