fix(material): 基础信息(Odoo)补回参考价格脏检查白名单

buyOdoo.vue 是 list.vue 的手工副本。8791914 修复「参考价格不可改」时只改了
list.vue,同一个 bug 在 Odoo 页存活至今:

- 只改参考价格:payload 无变更,提示「没有检测到数据变更,无需保存」
- 连带改其他字段:提示「修改成功」,但 payload 不含 referencePrice,价格未入库

compareFields 补上 referencePrice,与 list.vue 对齐。
This commit is contained in:
yueli
2026-09-18 10:07:18 +08:00
parent eafdf992c7
commit 243355bc68

View File

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