优化配送订单合同标题显示

This commit is contained in:
czl231
2026-08-14 23:29:15 +08:00
parent b49b070cae
commit b219023a59
7 changed files with 88 additions and 5 deletions

View File

@@ -8,6 +8,8 @@ const listPage = fs.readFileSync(new URL('../src/views/shared/CrudListPage.vue',
const assertions = [
[resources.includes("listDisplayKey: 'creator_display_name'"), '创建方未配置可读名称字段'],
[resources.includes('listDisplayIdentityCopy: true'), '创建方未保留唯一标识复制入口'],
[resources.includes("detailDisplayKey: 'contract_display_name'"), '订单详情未配置合同标题展示字段'],
[resources.includes("listDisplayKey: 'contract_display_name'"), '订单列表未配置合同标题展示字段'],
[listPage.includes('field.listDisplayIdentityCopy && identityFieldValue(field, record)'), '可读名称分支未优先于通用唯一标识分支'],
[listPage.includes(':name="displayListField(field, record)"'), '创建方复制组件未使用列表可读名称'],
];
@@ -16,4 +18,4 @@ for (const [passed, message] of assertions) {
if (!passed) throw new Error(message);
}
console.log('配送订单列表创建方显示检查通过');
console.log('配送订单列表与详情可读显示检查通过');

View File

@@ -277,7 +277,8 @@ export function displayResourceField(
Array<{ label: string; value: string | number }>
> = {},
) {
const value = row[field.key] ?? row[`${field.key}_masked`];
const displayValue = field.detailDisplayKey ? row[field.detailDisplayKey] : undefined;
const value = displayValue ?? row[field.key] ?? row[`${field.key}_masked`];
if (value == null || value === '') return field.emptyText ?? '-';
const hasOptionSource =
Object.prototype.hasOwnProperty.call(fieldOptions, field.key) ||

View File

@@ -80,6 +80,8 @@ export type ResourceField = {
listCopyable?: boolean;
/** 列表读取另一个只读响应字段展示,表单仍使用原业务字段。 */
listDisplayKey?: string;
/** 详情读取另一个只读响应字段展示,原关系唯一标识仍用于复制。 */
detailDisplayKey?: string;
/** 点击列表展示内容时进入当前记录详情。 */
listDetailLink?: boolean;
/** 列表以可读展示字段为主文案,同时保留原关系唯一标识复制入口。 */
@@ -561,7 +563,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, listDisplayKey: 'creator_display_name', listDisplayIdentityCopy: 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: '配送合同', listDisplayKey: 'contract_display_name', detailDisplayKey: 'contract_display_name', listDisplayIdentityCopy: true, showIdentityCopy: true, 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', listDisplayIdentityCopy: 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' },