优化配送订单收货地址联动显示

This commit is contained in:
czl231
2026-08-13 22:50:37 +08:00
parent 457bcfb450
commit 029724a46c
12 changed files with 367 additions and 116 deletions

View File

@@ -33,6 +33,10 @@ export type ResourceRelationLinkage = {
backfillParent?: boolean;
/** 仅使用父字段筛选候选项,不校验候选项中的父标识。 */
filterOnly?: boolean;
/** 父字段为空时不加载候选项,并禁用当前关联选择器。 */
requiresParent?: boolean;
/** 父字段变化并清空当前值时展示的中文提示。 */
parentChangeMessage?: string;
};
export type ResourceField = {
@@ -56,6 +60,14 @@ export type ResourceField = {
readonlyOnCreate?: boolean;
unknownValueLabel?: string;
relationLinkage?: ResourceRelationLinkage;
/** 关联选项优先使用的业务展示字段。 */
relationOptionLabelKey?: string;
/** 该字段为真时,在关联选项后追加“默认地址”。 */
relationOptionDefaultKey?: string;
/** 候选加载完成后自动选中该布尔字段为真的选项。 */
relationAutoSelectKey?: string;
/** 关联候选为空时展示的业务引导。 */
relationEmptyText?: string;
staffRelation?: import('./resource-staff-relation').StaffRelationPolicy;
};
@@ -502,7 +514,16 @@ 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), f('creator_type', { required: true, type: 'select', options: resourceSearchEnumOptions('gasorder_basic', 'creator_type') }), f('creator_identity', { required: true }), relation('user_address_identity', '/user_address', true), f('gasorder_contract_product_identities', { required: true, type: 'identity-list', relation: '/gasorder_contract_product' }), f('contact_name', { required: true }), f('contact_phone', { required: true }), f('discount_amount'), f('remark')], 'list', [
define('gasorder_basic', '气体配送订单', 'append_only', [f('request_no', { required: true }), relation('gasorder_contract_identity', '/gasorder_contract', true, { label: '配送合同', placeholder: '请选择配送合同' }), f('creator_type', { required: true, type: 'select', options: resourceSearchEnumOptions('gasorder_basic', 'creator_type') }), f('creator_identity', { required: true }), relation('user_address_identity', '/user_address', true, {
label: '收货地址', placeholder: '请先选择配送合同,再选择该合同用户的收货地址',
relationOptionLabelKey: 'address', relationOptionDefaultKey: 'is_default',
relationAutoSelectKey: 'is_default', relationEmptyText: '该合同用户暂无收货地址,请先维护用户地址',
relationLinkage: {
parentKey: 'gasorder_contract_identity', optionParentKey: '',
filterKey: 'gasorder_contract_identity', filterOnly: true, requiresParent: true,
parentChangeMessage: '配送合同已变更,请重新选择该合同用户的收货地址',
},
}), f('gasorder_contract_product_identities', { required: true, type: 'identity-list', relation: '/gasorder_contract_product', placeholder: '请先选择配送合同,再选择该合同可用的气瓶', relationLinkage: { parentKey: 'gasorder_contract_identity', optionParentKey: '', filterKey: 'contract_identity', filterOnly: true, requiresParent: true, parentChangeMessage: '配送合同已变更,请重新选择该合同可用的气瓶' } }), f('contact_name', { required: true }), f('contact_phone', { required: true }), f('discount_amount'), f('remark')], 'list', [
{ name: '分配订单', resource: '/gasorder_basic/:identity/assign', fields: [relation('delivery_basic_identity', '/delivery_basic', true), relation('staff_account_identity', '/staff_account', true, { staffRelation: { roles: ['delivery'], enabledOnly: true, workStatus: 'on_duty' } }), ...reason], visibleFor: { field: 'order_status', values: [16, 18] } },
{ name: '开始罐装', resource: '/gasorder_basic/:identity/filling', fields: reason, visibleFor: { field: 'order_status', values: [18] } },
{ name: '待配送', resource: '/gasorder_basic/:identity/ready', fields: reason, visibleFor: { field: 'order_status', values: [19] } },