优化配送订单列表可读信息显示
This commit is contained in:
@@ -78,6 +78,10 @@ export type ResourceField = {
|
||||
readonlyRelationText?: boolean;
|
||||
/** 列表中以可悬浮、可复制的紧凑文本展示普通字段。 */
|
||||
listCopyable?: boolean;
|
||||
/** 列表读取另一个只读响应字段展示,表单仍使用原业务字段。 */
|
||||
listDisplayKey?: string;
|
||||
/** 点击列表展示内容时进入当前记录详情。 */
|
||||
listDetailLink?: boolean;
|
||||
options?: Array<{ label: string; value: string | number }>;
|
||||
defaultValue?: string | number | boolean;
|
||||
readonlyOnCreate?: boolean;
|
||||
@@ -555,7 +559,7 @@ 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: '请先选择配送合同和创建方类型', readonlyRelationText: true, relationFilters: { status: '1' }, relationEmptyText: '当前合同下暂无可用的创建方', dynamicRelation: {
|
||||
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, listDisplayKey: 'creator_display_name', 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' },
|
||||
@@ -567,7 +571,7 @@ export const resources: ResourceUiDefinition[] = [
|
||||
parentChangeMessage: '创建方类型已变更,已按当前合同重新匹配创建方',
|
||||
contextChangeMessage: '配送合同已变更,创建方已按新合同重新匹配',
|
||||
} }), relation('user_address_identity', '/user_address', true, {
|
||||
label: '收货地址', placeholder: '请先选择配送合同,再选择该合同用户的收货地址',
|
||||
label: '收货地址', listDisplayKey: 'address', emptyText: '未填写', placeholder: '请先选择配送合同,再选择该合同用户的收货地址',
|
||||
relationOptionLabelKey: 'address', relationOptionDefaultKey: 'is_default',
|
||||
relationAutoSelectKey: 'is_default', relationEmptyText: '该合同用户暂无收货地址,请先维护用户地址',
|
||||
relationLinkage: {
|
||||
@@ -575,7 +579,7 @@ export const resources: ResourceUiDefinition[] = [
|
||||
filterKey: 'gasorder_contract_identity', filterOnly: true, requiresParent: true,
|
||||
parentChangeMessage: '配送合同已变更,请重新选择该合同用户的收货地址',
|
||||
},
|
||||
}), f('gasorder_contract_product_identities', { label: '合同气瓶', required: true, type: 'identity-list', relation: '/gasorder_contract_product', placeholder: '请输入智能气阀名称、设备类型或设备编码搜索', relationOptionDisplay: 'product-name-type', 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', [
|
||||
}), f('gasorder_contract_product_identities', { label: '合同气瓶', required: true, type: 'identity-list', listDisplayKey: 'contract_products_summary', listDetailLink: true, emptyText: '未填写', relation: '/gasorder_contract_product', placeholder: '请输入智能气阀名称、设备类型或设备编码搜索', relationOptionDisplay: 'product-name-type', 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] } },
|
||||
|
||||
@@ -70,6 +70,9 @@
|
||||
v-else-if="field.listCopyable && record[field.key]"
|
||||
:value="String(record[field.key])"
|
||||
/>
|
||||
<a-link v-else-if="field.listDetailLink" @click="openRecord('detail', record)">
|
||||
{{ displayListField(field, record) }}
|
||||
</a-link>
|
||||
<template v-else>{{ displayListField(field, record) }}</template>
|
||||
</template>
|
||||
</a-table-column>
|
||||
@@ -464,6 +467,10 @@ async function changePage(next: number) {
|
||||
|
||||
/** 使用资源静态选项或运行时平台角色名称显示列表字段。 */
|
||||
function displayListField(field: ResourceField, row: ResourceRow) {
|
||||
if (field.listDisplayKey) {
|
||||
const value = row[field.listDisplayKey];
|
||||
return value == null || value === '' ? (field.emptyText ?? '-') : String(value);
|
||||
}
|
||||
return displayResourceField(field, row, relations.options, fieldOptions);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user