From 375ff3d362716240137e83361a27a167be249f02 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期二, 21 四月 2026 10:06:17 +0800
Subject: [PATCH] 销售发货单打印逻辑
---
src/views/salesManagement/salesLedger/components/salesDeliveryPrint.js | 104 ++++++++++++++++++++++++++++++++++++++++++++++------
src/views/salesManagement/salesLedger/components/processCardPrint.js | 2
2 files changed, 93 insertions(+), 13 deletions(-)
diff --git a/src/views/salesManagement/salesLedger/components/processCardPrint.js b/src/views/salesManagement/salesLedger/components/processCardPrint.js
index a48bc88..da7d45d 100644
--- a/src/views/salesManagement/salesLedger/components/processCardPrint.js
+++ b/src/views/salesManagement/salesLedger/components/processCardPrint.js
@@ -207,6 +207,7 @@
return `
<div class="page">
<div class="header">
+ <div class="title">楣ゅ澶╂矏閽㈠寲鐜荤拑鍘�<br /><span class="sub-title">鐢熶骇娴佺▼鍗�(鎴愬搧)</span></div>
${
qrDataUrl
? `<div class="qr-block">
@@ -214,7 +215,6 @@
</div>`
: ""
}
- <div class="title">楣ゅ澶╂矏閽㈠寲鐜荤拑鍘�<br /><span class="sub-title">鐢熶骇娴佺▼鍗�(鎴愬搧)</span></div>
</div>
<div class="table-wrap">
<div class="page-mark">绗�${pageIndex + 1}椤碉紝鍏�${totalPages}椤�</div>
diff --git a/src/views/salesManagement/salesLedger/components/salesDeliveryPrint.js b/src/views/salesManagement/salesLedger/components/salesDeliveryPrint.js
index d0f6868..696e94d 100644
--- a/src/views/salesManagement/salesLedger/components/salesDeliveryPrint.js
+++ b/src/views/salesManagement/salesLedger/components/salesDeliveryPrint.js
@@ -30,6 +30,69 @@
const getOrderNo = (data, row, item) =>
item?.salesContractNo || item?.orderNo || data?.salesContractNo || row?.salesContractNo || "";
+const PRODUCT_NAME_FIELD_KEYS = [
+ "productDescription",
+ "productName",
+ "name",
+ "title",
+ "goodsName",
+ "materialName",
+ "glassName",
+];
+
+const PRODUCT_NAME_LIST_FIELD_KEYS = [
+ "productDescriptionList",
+ "productNameList",
+ "productDescriptions",
+ "productNames",
+ "nameList",
+ "goodsNameList",
+ "detailProductNames",
+ "productInfoList",
+];
+
+const normalizeNameList = (value) => {
+ if (Array.isArray(value)) {
+ return value
+ .flatMap((item) => normalizeNameList(item))
+ .map((item) => String(item).trim())
+ .filter(Boolean);
+ }
+ if (value && typeof value === "object") {
+ const objectListNames = PRODUCT_NAME_LIST_FIELD_KEYS.flatMap((key) => normalizeNameList(value?.[key]));
+ if (objectListNames.length) return objectListNames;
+ return PRODUCT_NAME_FIELD_KEYS.flatMap((key) => normalizeNameList(value?.[key]));
+ }
+ if (typeof value === "string") {
+ const text = value.trim();
+ if (!text) return [];
+ const parts = text
+ .split(/[,\n锛屻�侊紱;]/)
+ .map((item) => item.trim())
+ .filter(Boolean);
+ return parts.length > 1 ? parts : [text];
+ }
+ if (value === null || value === undefined) return [];
+ const text = String(value).trim();
+ return text ? [text] : [];
+};
+
+const extractNameListByKeys = (source, keys) => {
+ if (!source || typeof source !== "object") return [];
+ return keys.flatMap((key) => normalizeNameList(source?.[key]));
+};
+
+const resolveProductName = (item, fallbackNames, index) => {
+ const itemNames = [
+ ...extractNameListByKeys(item, PRODUCT_NAME_LIST_FIELD_KEYS),
+ ...extractNameListByKeys(item, PRODUCT_NAME_FIELD_KEYS),
+ ];
+ if (itemNames.length > 1) {
+ return itemNames[index] || itemNames[0] || "";
+ }
+ return itemNames[0] || fallbackNames[index] || fallbackNames[0] || "";
+};
+
const splitItemsByPage = (items, pageSize) => {
const list = Array.isArray(items) ? items : [];
if (list.length === 0) return [[]];
@@ -42,19 +105,36 @@
const normalizeInvoiceData = (raw, selectedRow) => {
const data = raw ?? {};
- const groups = Array.isArray(data.groups) ? data.groups : [];
- if (!groups.length) return data;
+ const groups = Array.isArray(data.groups)
+ ? data.groups
+ : Array.isArray(data.groupList)
+ ? data.groupList
+ : [];
+ const dataLevelNames = [
+ ...extractNameListByKeys(data, PRODUCT_NAME_LIST_FIELD_KEYS),
+ ...extractNameListByKeys(data, PRODUCT_NAME_FIELD_KEYS),
+ ];
- const items = groups.flatMap((group) =>
- (Array.isArray(group?.items) ? group.items : []).map((item) => ({
- ...item,
- // 浼樺厛浣跨敤鏄庣粏鑷韩浜у搧鍚嶏紝閬垮厤鍒嗙粍鍚嶇О瑕嗙洊瀵艰嚧鈥滀竴涓骇鍝佸悕鎸傚绉嶆槑缁嗏��
- productDescription:
- item?.productDescription || item?.productName || group?.productName || "",
- salesContractNo: group?.salesContractNo || item?.salesContractNo || "",
- widthHeight: item?.widthHeight || "",
- }))
- );
+ const items = groups.length
+ ? groups.flatMap((group) => {
+ const groupItems = Array.isArray(group?.items) ? group.items : [];
+ const groupNames = [
+ ...extractNameListByKeys(group, PRODUCT_NAME_LIST_FIELD_KEYS),
+ ...extractNameListByKeys(group, PRODUCT_NAME_FIELD_KEYS),
+ ];
+ return groupItems.map((item, index) => ({
+ ...item,
+ // 浼樺厛浣跨敤鏄庣粏鑷韩浜у搧鍚嶏紝鍏煎鈥滃悕绉版暟缁�/鍒嗛殧瀛楃涓测�濈殑鎺ュ彛鏍煎紡
+ productDescription: resolveProductName(item, groupNames, index),
+ salesContractNo: group?.salesContractNo || item?.salesContractNo || "",
+ widthHeight: item?.widthHeight || "",
+ }));
+ })
+ : (Array.isArray(data.items) ? data.items : []).map((item, index) => ({
+ ...item,
+ productDescription: resolveProductName(item, dataLevelNames, index),
+ widthHeight: item?.widthHeight || "",
+ }));
return {
...data,
--
Gitblit v1.9.3