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; }