完善配送订单创建联动

This commit is contained in:
czl231
2026-08-23 11:30:52 +08:00
parent c07c9ea6f2
commit 59a01192c0
15 changed files with 935 additions and 163 deletions

View File

@@ -98,6 +98,9 @@ const attachmentState = read('src/views/resource/use-contract-attachment.ts');
const detailContent = read('src/views/resource/ResourceDetailContent.vue');
const detailContract = read('src/api/resource-detail-contract.ts');
const resourceDisplay = read('src/api/resource-display.ts');
const relationLinkage = read('src/views/resource/use-resource-relations.ts');
const orderCreation = read('src/api/order-creation.ts');
const orderPreview = read('src/views/resource/OrderAmountPreview.vue');
assert(definitions.includes("type: 'contract-file'"), '合同附件仍按普通文本字段渲染');
assert(recordPage.includes('title="合同附件"'), '合同详情页缺少附件状态卡片');
assert(recordPage.includes('downloadContractAttachment'), '合同详情页缺少独立下载入口');
@@ -120,5 +123,20 @@ assert(detailContent.includes('智能气阀名称取当前设备资料'), '合
assert(resourceDisplay.includes("user_service_active: '签约用户仍属合同气站'"), '签约服务关系缺少中文业务标签');
assert(resourceDisplay.includes("activate: '启用合同'"), '合同修订动作未中文化');
assert(recordPage.includes("record.value.user_service_active === false"), '失效服务关系下未限制合同动作');
assert(definitions.includes("relationFilters: { candidate: 'order' }"), '订单合同候选未限定可履约范围');
assert(definitions.includes("f('request_no', { required: true })"), '请求流水号未按 5173 保持人工必填');
assert(definitions.includes("f('contact_name', { required: true })"), '订单联系人未保持独立必填');
assert(definitions.includes("f('contact_phone', { required: true })"), '订单联系电话未保持独立必填');
assert(definitions.includes("filterKey: 'gasorder_contract_identity'"), '收货地址未按配送合同联动');
assert(definitions.includes("filterKey: 'contract_identity'"), '合同气瓶未按配送合同联动');
assert(definitions.includes("relationOptionLabelKey: 'address'"), '收货地址候选仍可能显示裸唯一标识');
assert(definitions.includes("relationOptionDisplay: 'product-name-type'"), '合同气瓶缺少名称、编码和类型组合展示');
assert(relationLinkage.includes('const versions = new Map'), '关系联动缺少过期响应版本守卫');
assert(relationLinkage.includes("field.type === 'identity-list' ? [] : ''"), '切换合同时未清空旧关联值');
assert(recordPage.includes('relationBusy || Boolean(relationUnavailableMessage)'), '关联候选加载或为空时仍可保存');
assert(recordPage.includes('if (saving.value) return'), '订单保存缺少显式防重入');
assert(orderCreation.includes('productAmount + deliveryFee - discountAmount'), '订单金额预估公式不正确');
assert(orderCreation.includes("优惠金额必须小于商品金额与配送费之和"), '优惠金额缺少应付金额正数校验');
assert(orderPreview.includes('金额仅供预览'), '订单金额预估未声明服务端最终计算');
console.log(`独立资源页面契约通过:详情 ${listResources.length},新建 ${creatable.size},编辑 ${editable.size}`);