diff --git a/src/api/system/jdorder.js b/src/api/system/jdorder.js index 10a3fc5..c120902 100644 --- a/src/api/system/jdorder.js +++ b/src/api/system/jdorder.js @@ -27,12 +27,39 @@ export function getJDOrder(id) { }) } +/** + * 列表编辑行为 Vue 响应式对象时,axios 内部 JSON.stringify 可能遗漏部分枚举字段; + * 先转为普通对象,并始终带上 extraCost(对应后端 JDOrder.extraCost / jd_order.extra_cost)。 + */ +export function normalizeJDOrderPutPayload(data) { + if (!data || typeof data !== 'object') return {} + let plain + try { + plain = JSON.parse(JSON.stringify(data)) + } catch (e) { + plain = Object.assign({}, data) + } + const pick = v => { + if (v === undefined || v === null || v === '') return undefined + return v + } + const raw = + pick(data.extraCost) ?? + pick(data.extra_cost) ?? + pick(plain.extraCost) ?? + pick(plain.extra_cost) + const num = raw !== undefined ? Number(raw) : NaN + plain.extraCost = Number.isFinite(num) ? num : 0 + delete plain.extra_cost + return plain +} + // 更新JD订单 export function updateJDOrder(data) { return request({ url: '/system/jdorder', method: 'put', - data: data + data: normalizeJDOrderPutPayload(data) }) } diff --git a/src/views/system/jdorder/orderList.vue b/src/views/system/jdorder/orderList.vue index b204bc7..ac4e341 100644 --- a/src/views/system/jdorder/orderList.vue +++ b/src/views/system/jdorder/orderList.vue @@ -1298,7 +1298,7 @@