diff --git a/src/modules/first-leg/utils/firstLegOrder.test.mjs b/src/modules/first-leg/utils/firstLegOrder.test.mjs index 5191897..8f37853 100644 --- a/src/modules/first-leg/utils/firstLegOrder.test.mjs +++ b/src/modules/first-leg/utils/firstLegOrder.test.mjs @@ -108,7 +108,7 @@ test('only requires sender for pickup and receiver for a private destination', ( assert.ok(validateFirstLegOrderDraft(privateDraft).includes('请填写收件人姓名')) }) -test('requires FBA warehouse and cargo-level shipment, reference, SKU and UPC fields', () => { +test('requires FBA warehouse and cargo-level shipment, reference and SKU while keeping UPC optional', () => { const draft = validDraft() draft.referenceNo = '' draft.amazonWarehouseCode = '' @@ -121,7 +121,7 @@ test('requires FBA warehouse and cargo-level shipment, reference, SKU and UPC fi const errors = validateFirstLegOrderDraft(draft) assert.ok(errors.includes('FBA 订单请填写 Amazon 仓库编码')) assert.ok(errors.includes('第 1 条货物缺少客户 SKU')) - assert.ok(errors.includes('第 1 条货物缺少 UPC')) + assert.ok(!errors.includes('第 1 条货物缺少 UPC')) assert.ok(errors.includes('第 1 条货物缺少货件编号')) assert.ok(errors.includes('第 1 条货物缺少跟踪编号')) }) diff --git a/src/modules/first-leg/utils/firstLegOrder.ts b/src/modules/first-leg/utils/firstLegOrder.ts index 64db76d..02cf989 100644 --- a/src/modules/first-leg/utils/firstLegOrder.ts +++ b/src/modules/first-leg/utils/firstLegOrder.ts @@ -122,7 +122,6 @@ export function validateFirstLegOrderDraft(draft: FirstLegOrderDraft) { if (!item.cargoNameCn.trim()) errors.push(`${line}缺少中文品名`) if (!item.packageType.trim()) errors.push(`${line}缺少包装类型`) if (draft.destinationType === 'FBA' && !item.sku.trim()) errors.push(`${line}缺少客户 SKU`) - if (draft.destinationType === 'FBA' && !item.upc.trim()) errors.push(`${line}缺少 UPC`) if (draft.destinationType === 'FBA' && !item.shipmentId.trim()) errors.push(`${line}缺少货件编号`) if (draft.destinationType === 'FBA' && !item.referenceId.trim()) errors.push(`${line}缺少跟踪编号`) if (!Number.isInteger(item.pieces) || item.pieces <= 0) errors.push(`${line}件数必须为正整数`) diff --git a/src/modules/first-leg/views/FirstLegOrdersView.test.mjs b/src/modules/first-leg/views/FirstLegOrdersView.test.mjs index 6aeeda4..9040d98 100644 --- a/src/modules/first-leg/views/FirstLegOrdersView.test.mjs +++ b/src/modules/first-leg/views/FirstLegOrdersView.test.mjs @@ -394,7 +394,10 @@ test('shows field-level validation and concise guidance for required order input assert.match(source, /prop="consigneePartySnapshot\.address" required/) assert.match(source, /:prop="`items\.\$\{index\}\.cargoNameCn`" required/) assert.match(source, /:prop="`items\.\$\{index\}\.grossWeightKg`" required/) - assert.match(source, /:prop="`items\.\$\{index\}\.upc`"[^>]*:required="form\.destinationType === 'FBA'"[^>]*>\s*\s*]*placeholder="UPC NO\.(选填)"/) + assert.doesNotMatch(source, /:prop="`items\.\$\{index\}\.upc`"[^>]*(?:required|:rules)/) + assert.match(source, /UPC NO\. 选填/) + assert.doesNotMatch(source, /UPC必填/) assert.match(source, /v-model="item\.cargoNameCn"[^>]*placeholder="中文品名"/) assert.match(source, /\.order-form :deep\(\.el-form-item__error\).*position: static/) }) diff --git a/src/modules/first-leg/views/FirstLegOrdersView.vue b/src/modules/first-leg/views/FirstLegOrdersView.vue index 4a3f533..dc5e0ad 100644 --- a/src/modules/first-leg/views/FirstLegOrdersView.vue +++ b/src/modules/first-leg/views/FirstLegOrdersView.vue @@ -1817,7 +1817,7 @@ async function searchOrders(model: QueryModel) { # SKU NO.SKU必填中文品名图片英文品名报关 HS CODE清关 HS CODE包装类型 箱规长 cm箱规宽 cm箱规高 cm每箱数量箱数总毛重总体积总数量总净重 - 清关申报单价 USD清关申报金额 USD材质用途型号品牌产品规格 长×宽×高危险品货件编号货件编号必填跟踪编号跟踪编号必填UPC NO.UPC必填备注操作 + 清关申报单价 USD清关申报金额 USD材质用途型号品牌产品规格 长×宽×高危险品货件编号货件编号必填跟踪编号跟踪编号必填UPC NO.备注操作 {{ index + 1 }} @@ -1830,11 +1830,11 @@ async function searchOrders(model: QueryModel) {
××
- 删除 + 删除 -
SKU NO.、货件编号、跟踪编号、UPC NO. 均为必填项
+
SKU NO.、货件编号、跟踪编号为 FBA 货物必填项,UPC NO. 选填