From 243355bc68fc1d15cc4cd0888bb85b1ef9d7fc06 Mon Sep 17 00:00:00 2001 From: yueli Date: Fri, 18 Sep 2026 10:07:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(material):=20=E5=9F=BA=E7=A1=80=E4=BF=A1?= =?UTF-8?q?=E6=81=AF(Odoo)=E8=A1=A5=E5=9B=9E=E5=8F=82=E8=80=83=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E8=84=8F=E6=A3=80=E6=9F=A5=E7=99=BD=E5=90=8D=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit buyOdoo.vue 是 list.vue 的手工副本。8791914 修复「参考价格不可改」时只改了 list.vue,同一个 bug 在 Odoo 页存活至今: - 只改参考价格:payload 无变更,提示「没有检测到数据变更,无需保存」 - 连带改其他字段:提示「修改成功」,但 payload 不含 referencePrice,价格未入库 compareFields 补上 referencePrice,与 list.vue 对齐。 --- inventory-web/src/views/material/buyOdoo.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/inventory-web/src/views/material/buyOdoo.vue b/inventory-web/src/views/material/buyOdoo.vue index 65319ab..0a9f486 100644 --- a/inventory-web/src/views/material/buyOdoo.vue +++ b/inventory-web/src/views/material/buyOdoo.vue @@ -1413,7 +1413,10 @@ const isArraysEqual = (a: any[], b: any[]): boolean => { const buildPartialPayload = (current: any, original: any): any => { const payload: any = { id: current.id }; - const compareFields = ['name', 'commonName', 'category', 'type', 'spec', 'unit', 'visibilityLevel', 'isEnabled', 'isInspectionRequired', 'generalImage', 'generalManual', 'companyName', 'productImageRemark', 'manualLinkRemark', 'purchaseLink']; + // ★ referencePrice 必须在内:漏掉它会走成「未变更」——只改参考价格时提示 + // 「没有检测到数据变更,无需保存」,连带改其他字段时提示「修改成功」 + // 但 payload 里压根没有该字段,价格静默丢失。(与 list.vue 对齐) + const compareFields = ['name', 'commonName', 'category', 'type', 'spec', 'unit', 'referencePrice', 'visibilityLevel', 'isEnabled', 'isInspectionRequired', 'generalImage', 'generalManual', 'companyName', 'productImageRemark', 'manualLinkRemark', 'purchaseLink']; for (const key of compareFields) { const currentVal = current[key]; const originalVal = original[key]; if (Array.isArray(currentVal) && Array.isArray(originalVal)) { if (!isArraysEqual(currentVal, originalVal)) payload[key] = currentVal; }