diff --git a/docs/操作日志_合同终止恢复与修订字段优化_20260813.md b/docs/操作日志_合同终止恢复与修订字段优化_20260813.md index 3dc4a30..98cd548 100644 --- a/docs/操作日志_合同终止恢复与修订字段优化_20260813.md +++ b/docs/操作日志_合同终止恢复与修订字段优化_20260813.md @@ -37,3 +37,8 @@ ## 风险评估 调用方若尝试对已终止合同执行启用将收到状态错误;应改用续签接口。数据库字段和公开接口路径保持不变。 + +## 入口一致性补充 + +- 修复平台、气站和配送点管理端部分资源定义遗漏 `13(已终止)`,导致详情页没有续签入口的问题。 +- 三端续签按钮现统一在 `11(生效中)`、`12(已过期)`、`13(已终止)` 状态显示。 diff --git a/frontend/delivery_admin/src/api/resources.ts b/frontend/delivery_admin/src/api/resources.ts index bde507d..39f183f 100644 --- a/frontend/delivery_admin/src/api/resources.ts +++ b/frontend/delivery_admin/src/api/resources.ts @@ -362,7 +362,7 @@ const platformResources: ResourceUiDefinition[] = [ define('gasorder_contract', '配送合同', 'managed', [f('contract_no', { required: true }), relation('user_account_identity', '/user_account', true), relation('gas_basic_identity', '/gas_basic', true), relation('delivery_basic_identity', '/delivery_basic'), f('title', { required: true }), f('terms'), f('file_uri'), f('default_delivery_fee'), f('signed_at', { required: true }), f('effective_at', { required: true }), f('expired_at')], 'list', [ { name: '启用合同', resource: '/gasorder_contract/:identity/activate', fields: reason, visibleFor: { field: 'contract_status', values: [0] } }, - { name: '续签合同', resource: '/gasorder_contract/:identity/renew', fields: [f('effective_at', { required: true }), f('expired_at'), ...reason], visibleFor: { field: 'contract_status', values: [11, 12] } }, + { name: '续签合同', resource: '/gasorder_contract/:identity/renew', fields: [f('effective_at', { required: true }), f('expired_at'), ...reason], visibleFor: { field: 'contract_status', values: [11, 12, 13] } }, { name: '终止合同', resource: '/gasorder_contract/:identity/terminate', danger: true, fields: reason, visibleFor: { field: 'contract_status', values: [11] } }, ], { canCreate: true, canEdit: true }), define('gasorder_contract_product', '合同气瓶', 'append_only', [relation('gasorder_contract_identity', '/gasorder_contract', true), relation('product_info_identity', '/product_info', true), f('unit_price')], 'list', [ diff --git a/frontend/gas_admin/src/api/resources.ts b/frontend/gas_admin/src/api/resources.ts index 4b94d02..583acdd 100644 --- a/frontend/gas_admin/src/api/resources.ts +++ b/frontend/gas_admin/src/api/resources.ts @@ -362,7 +362,7 @@ const platformResources: ResourceUiDefinition[] = [ define('gasorder_contract', '配送合同', 'managed', [f('contract_no', { required: true }), relation('user_account_identity', '/user_account', true), relation('gas_basic_identity', '/gas_basic', true), relation('delivery_basic_identity', '/delivery_basic'), f('title', { required: true }), f('terms'), f('file_uri'), f('default_delivery_fee'), f('signed_at', { required: true }), f('effective_at', { required: true }), f('expired_at')], 'list', [ { name: '启用合同', resource: '/gasorder_contract/:identity/activate', fields: reason, visibleFor: { field: 'contract_status', values: [0] } }, - { name: '续签合同', resource: '/gasorder_contract/:identity/renew', fields: [f('effective_at', { required: true }), f('expired_at'), ...reason], visibleFor: { field: 'contract_status', values: [11, 12] } }, + { name: '续签合同', resource: '/gasorder_contract/:identity/renew', fields: [f('effective_at', { required: true }), f('expired_at'), ...reason], visibleFor: { field: 'contract_status', values: [11, 12, 13] } }, { name: '终止合同', resource: '/gasorder_contract/:identity/terminate', danger: true, fields: reason, visibleFor: { field: 'contract_status', values: [11] } }, ], { canCreate: true, canEdit: true }), define('gasorder_contract_product', '合同气瓶', 'append_only', [relation('gasorder_contract_identity', '/gasorder_contract', true), relation('product_info_identity', '/product_info', true), f('unit_price')], 'list', [ diff --git a/frontend/platform_admin/scripts/check-resource-pages.mjs b/frontend/platform_admin/scripts/check-resource-pages.mjs index 3ba46ac..94ab384 100644 --- a/frontend/platform_admin/scripts/check-resource-pages.mjs +++ b/frontend/platform_admin/scripts/check-resource-pages.mjs @@ -69,6 +69,9 @@ for (const marker of [ if (!resourceSource.includes("visibleFor: { field: 'contract_status', values: [0] }")) { fail('合同启用动作未限制为草稿状态'); } +if (!resourceSource.includes("visibleFor: { field: 'contract_status', values: [11, 12, 13] }")) { + fail('合同续签动作未覆盖已终止状态'); +} if (!detailSource.includes("!['deleted_at', 'DeletedAt'].includes(column)")) { fail('聚合详情表未隐藏公共软删除字段'); } diff --git a/frontend/platform_admin/src/api/resources.ts b/frontend/platform_admin/src/api/resources.ts index 368350a..6fa83a9 100644 --- a/frontend/platform_admin/src/api/resources.ts +++ b/frontend/platform_admin/src/api/resources.ts @@ -467,7 +467,7 @@ export const resources: ResourceUiDefinition[] = [ f('signed_at', { required: true }), f('effective_at', { required: true }), f('expired_at', { required: true, emptyText: '待补录' }), ], 'list', [ { name: '启用合同', resource: '/gasorder_contract/:identity/activate', fields: reason, visibleFor: { field: 'contract_status', values: [0] } }, - { name: '续签合同', resource: '/gasorder_contract/:identity/renew', fields: [f('effective_at', { required: true }), f('expired_at', { required: true }), ...reason], visibleFor: { field: 'contract_status', values: [11, 12] } }, + { name: '续签合同', resource: '/gasorder_contract/:identity/renew', fields: [f('effective_at', { required: true }), f('expired_at', { required: true }), ...reason], visibleFor: { field: 'contract_status', values: [11, 12, 13] } }, { name: '终止合同', resource: '/gasorder_contract/:identity/terminate', danger: true, fields: reason, visibleFor: { field: 'contract_status', values: [11] } }, ], { canCreate: true, canEdit: true }), define('gasorder_contract_product', '合同气瓶', 'append_only', [relation('gasorder_contract_identity', '/gasorder_contract', true, {