修复配送订单创建方合同约束

This commit is contained in:
czl231
2026-08-14 01:15:33 +08:00
parent 9c3abf76d5
commit 08f1a917b3
9 changed files with 407 additions and 26 deletions

View File

@@ -45,6 +45,21 @@ export type ResourceDynamicRelation = {
parentLabel: string;
resources: Record<string, string>;
parentChangeMessage?: string;
/** 额外业务上下文,例如配送合同;上下文变化时重新限定动态候选。 */
contextParentKey?: string;
/** 按类型从上下文选项直接取得唯一主体,适用于合同用户、气站和配送点。 */
fixedIdentityKeys?: Record<string, string>;
/** 上下文缺少固定主体时展示的业务提示。 */
missingIdentityMessages?: Record<string, string>;
/** 按类型把上下文字段转换为服务端精确筛选参数。 */
scopeFilters?: Record<string, Array<{
filterKey: string;
optionKey: string;
required?: boolean;
emptyFilterKey?: string;
emptyFilterValue?: string;
}>>;
contextChangeMessage?: string;
};
export type ResourceField = {
@@ -533,7 +548,18 @@ export const resources: ResourceUiDefinition[] = [
{ name: '解绑气瓶', resource: '/gasorder_contract_product/:identity/unbind', danger: true, fields: reason },
]),
define('gasorder_contract_revision', '合同修订记录', 'readonly', []),
define('gasorder_basic', '气体配送订单', 'append_only', [f('request_no', { required: true }), relation('gasorder_contract_identity', '/gasorder_contract', true, { label: '配送合同', placeholder: '请选择当前可履约的生效合同', relationFilters: { candidate: 'order' }, relationStrictFilter: true, relationInvalidMessage: '所选配送合同已不可履约,已清空,请重新选择', relationEmptyText: '暂无可下单的生效合同,请先启用或续签配送合同' }), f('creator_type', { required: true, type: 'select', options: resourceSearchEnumOptions('gasorder_basic', 'creator_type') }), f('creator_identity', { label: '创建方', required: true, placeholder: '请选择创建方', relationEmptyText: '当前类型暂无可用的创建方数据', dynamicRelation: { parentKey: 'creator_type', parentLabel: '创建方类型', resources: { user: '/user_account', staff: '/staff_account', delivery: '/delivery_basic', gas: '/gas_basic' }, parentChangeMessage: '创建方类型已变更,请重新选择创建方' } }), relation('user_address_identity', '/user_address', true, {
define('gasorder_basic', '气体配送订单', 'append_only', [f('request_no', { required: true }), relation('gasorder_contract_identity', '/gasorder_contract', true, { label: '配送合同', placeholder: '请选择当前可履约的生效合同', relationFilters: { candidate: 'order' }, relationStrictFilter: true, relationInvalidMessage: '所选配送合同已不可履约,已清空,请重新选择', relationEmptyText: '暂无可下单的生效合同,请先启用或续签配送合同' }), f('creator_type', { required: true, type: 'select', options: resourceSearchEnumOptions('gasorder_basic', 'creator_type') }), f('creator_identity', { label: '创建方', required: true, placeholder: '请选择配送合同和创建方类型', readonlyRelationText: true, relationFilters: { status: '1' }, relationEmptyText: '当前合同下暂无可用的创建方', dynamicRelation: {
parentKey: 'creator_type', parentLabel: '创建方类型', contextParentKey: 'gasorder_contract_identity',
resources: { user: '/user_account', staff: '/staff_account', delivery: '/delivery_basic', gas: '/gas_basic' },
fixedIdentityKeys: { user: 'user_account_identity', gas: 'gas_basic_identity', delivery: 'delivery_basic_identity' },
missingIdentityMessages: { delivery: '所选合同未指定配送点,不能以配送点作为创建方' },
scopeFilters: { staff: [
{ filterKey: 'gas_basic_identities', optionKey: 'gas_basic_identity', required: true },
{ filterKey: 'delivery_basic_identities', optionKey: 'delivery_basic_identity', emptyFilterKey: 'delivery_basic_unassigned', emptyFilterValue: 'true' },
] },
parentChangeMessage: '创建方类型已变更,已按当前合同重新匹配创建方',
contextChangeMessage: '配送合同已变更,创建方已按新合同重新匹配',
} }), relation('user_address_identity', '/user_address', true, {
label: '收货地址', placeholder: '请先选择配送合同,再选择该合同用户的收货地址',
relationOptionLabelKey: 'address', relationOptionDefaultKey: 'is_default',
relationAutoSelectKey: 'is_default', relationEmptyText: '该合同用户暂无收货地址,请先维护用户地址',