优化配送订单合同气瓶候选显示

This commit is contained in:
czl231
2026-08-14 00:08:00 +08:00
parent 4d2acbaf46
commit eafb6fadf3
8 changed files with 144 additions and 3 deletions

View File

@@ -532,7 +532,7 @@ export const resources: ResourceUiDefinition[] = [
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', [
}), f('gasorder_contract_product_identities', { label: '合同气瓶', required: true, type: 'identity-list', relation: '/gasorder_contract_product', placeholder: '请输入气瓶编码或类型搜索', relationOptionLabelKey: 'product_type_name', relationEmptyText: '该合同暂无可用气瓶,请先为合同绑定气瓶', 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] } },

View File

@@ -92,7 +92,7 @@
v-model="model[field.key]"
:disabled="disabledSet.has(field.key) || relationRequiresParent(field)"
:multiple="field.type === 'identity-list'"
:placeholder="field.placeholder"
:placeholder="relationPlaceholder(field)"
:loading="relationLoading[field.relation ?? '']"
allow-clear
allow-search
@@ -203,6 +203,14 @@ function relationRequiresParent(field: ResourceField) {
);
}
/** 父级未选择时直接在控件内提示操作顺序,选择后恢复字段搜索提示。 */
function relationPlaceholder(field: ResourceField) {
if (!relationRequiresParent(field)) return field.placeholder;
return field.relationLinkage?.parentKey === 'gasorder_contract_identity'
? '请先选择配送合同'
: '请先选择上级数据';
}
/** 根据父级和候选状态给出明确的关联选择引导。 */
function relationEmptyText(field: ResourceField) {
if (relationRequiresParent(field)) {