diff --git a/inventory-web/src/views/stock/inbound/product.vue b/inventory-web/src/views/stock/inbound/product.vue index 70af968..645a09d 100644 --- a/inventory-web/src/views/stock/inbound/product.vue +++ b/inventory-web/src/views/stock/inbound/product.vue @@ -1418,6 +1418,14 @@ const submitForm = async () => { production_end_time: form.production_time_range?.[1] } delete payload.production_time_range + // Update 模式:无成本/售价权限则剥离敏感字段,防止库管修改已入库的数据 + // Create 模式:保留成本字段,确保 BOM 自动计算的值能正确提交 + if (dialogStatus.value === 'update') { + if (!hasFormFieldPermission('raw_material_cost')) delete payload.raw_material_cost + if (!hasFormFieldPermission('unit_total_cost')) delete payload.unit_total_cost + if (!hasFormFieldPermission('total_price')) delete payload.total_price + if (!hasFormFieldPermission('sale_price')) delete payload.sale_price + } try { if(dialogStatus.value === 'create') { const res: any = await createProductInbound(payload) diff --git a/inventory-web/src/views/stock/inbound/semi.vue b/inventory-web/src/views/stock/inbound/semi.vue index aed6a32..e3dd44c 100644 --- a/inventory-web/src/views/stock/inbound/semi.vue +++ b/inventory-web/src/views/stock/inbound/semi.vue @@ -1507,6 +1507,13 @@ const submitForm = async () => { production_end_time: form.production_time_range?.[1] || null } delete payload.production_time_range + // Update 模式:无成本权限则剥离成本字段,防止库管修改已入库的成本数据 + // Create 模式:保留成本字段,确保 BOM 自动计算的值能正确提交 + if (dialogStatus.value === 'update') { + if (!hasFormFieldPermission('raw_material_cost')) delete payload.raw_material_cost + if (!hasFormFieldPermission('unit_total_cost')) delete payload.unit_total_cost + if (!hasFormFieldPermission('total_price')) delete payload.total_price + } try { if (dialogStatus.value === 'create') { const res: any = await createSemiInbound(payload)