From dacc95761cf7090c628fc37a5d4f8bb825ccbbb0 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期六, 16 五月 2026 15:41:45 +0800
Subject: [PATCH] 企业新闻和通知公告
---
src/components/AIChatSidebar/index.vue | 40 +++++++++++++++++++++++++++-------------
1 files changed, 27 insertions(+), 13 deletions(-)
diff --git a/src/components/AIChatSidebar/index.vue b/src/components/AIChatSidebar/index.vue
index d40d863..a2a365a 100644
--- a/src/components/AIChatSidebar/index.vue
+++ b/src/components/AIChatSidebar/index.vue
@@ -1529,12 +1529,7 @@
if (visibleValue === undefined || visibleValue === null) return clonePurchasePayloadValue(hiddenValue)
if (Array.isArray(visibleValue) && Array.isArray(hiddenValue)) {
- const maxLength = Math.max(visibleValue.length, hiddenValue.length)
- const merged = []
- for (let i = 0; i < maxLength; i++) {
- merged[i] = mergePurchasePayloadWithHidden(visibleValue[i], hiddenValue[i])
- }
- return merged
+ return visibleValue.map((item, index) => mergePurchasePayloadWithHidden(item, hiddenValue[index]))
}
if (
@@ -1937,6 +1932,23 @@
''
}
+const prunePurchaseProductRecord = (record) => {
+ if (!record || typeof record !== 'object' || Array.isArray(record)) return null
+ const normalizedRecord = normalizePurchaseProductRecord(record)
+ const hasVisibleFieldValue = Object.entries(normalizedRecord).some(([key, value]) => {
+ if (shouldHidePurchaseField(key)) return false
+ return hasMeaningfulPayloadValue(value)
+ })
+ return hasVisibleFieldValue ? normalizedRecord : null
+}
+
+const normalizeAndFilterPurchaseProductData = (value) => {
+ if (!Array.isArray(value)) return value
+ return value
+ .map(item => prunePurchaseProductRecord(item))
+ .filter(Boolean)
+}
+
const mergeLegacyProductDataIntoLedgers = (payload) => {
if (!payload || typeof payload !== 'object' || Array.isArray(payload)) return payload
if (!Array.isArray(payload.purchaseLedgers) || !Array.isArray(payload.productData) || !payload.productData.length) {
@@ -1945,13 +1957,11 @@
const ledgers = payload.purchaseLedgers.map(ledger => ({
...ledger,
- productData: Array.isArray(ledger.productData)
- ? ledger.productData.map(normalizePurchaseProductRecord)
- : []
+ productData: normalizeAndFilterPurchaseProductData(ledger.productData) || []
}))
const unmatchedProducts = []
- payload.productData.map(normalizePurchaseProductRecord).forEach(product => {
+ normalizeAndFilterPurchaseProductData(payload.productData).forEach(product => {
const productMatchKey = getPurchaseProductMatchKey(product)
const matchedLedger = ledgers.find(ledger => {
const ledgerKeys = [
@@ -1990,9 +2000,7 @@
if (!record || typeof record !== 'object' || Array.isArray(record)) return record
const normalizedRecord = {
...record,
- productData: Array.isArray(record.productData)
- ? record.productData.map(normalizePurchaseProductRecord)
- : record.productData
+ productData: normalizeAndFilterPurchaseProductData(record.productData)
}
return Object.entries(normalizedRecord).reduce((result, [key, value]) => {
if (purchaseLedgerAllowedFieldKeys.has(key)) {
@@ -2190,6 +2198,12 @@
if (Array.isArray(sanitized.purchaseLedgers)) {
sanitized.purchaseLedgers = sanitized.purchaseLedgers.map(filterPurchaseLedgerRecord)
}
+ if (Array.isArray(sanitized.productData)) {
+ sanitized.productData = normalizeAndFilterPurchaseProductData(sanitized.productData)
+ }
+ if (Array.isArray(sanitized.productData) && !sanitized.productData.length) {
+ delete sanitized.productData
+ }
purchaseApprovalFieldKeys.forEach(key => {
if (!Array.isArray(sanitized)) {
--
Gitblit v1.9.3