完善配送订单列表可读信息
This commit is contained in:
@@ -49,6 +49,10 @@ export type ResourceField = {
|
||||
listCopyable?: boolean;
|
||||
/** 关联选项优先展示的业务字段。 */
|
||||
relationOptionLabelKey?: string;
|
||||
/** 列表使用后端派生的只读展示字段,不改变提交字段。 */
|
||||
listDisplayKey?: string;
|
||||
/** 列表摘要可直接进入当前记录详情。 */
|
||||
listDetailLink?: boolean;
|
||||
/** 合同气瓶等关系的组合展示方式。 */
|
||||
relationOptionDisplay?: 'product-name-type';
|
||||
/** 为默认候选追加中文标识,并在加载完成后自动选择。 */
|
||||
@@ -564,6 +568,9 @@ const deliveryOverrides: ResourceUiDefinition[] = [
|
||||
}),
|
||||
relation('user_address_identity', '/user_address', true, {
|
||||
label: '收货地址',
|
||||
listDisplayKey: 'address',
|
||||
listDetailLink: false,
|
||||
emptyText: '未填写',
|
||||
placeholder: '请先选择配送合同,再选择该合同用户的收货地址',
|
||||
relationOptionLabelKey: 'address',
|
||||
relationOptionDefaultKey: 'is_default',
|
||||
@@ -581,6 +588,9 @@ const deliveryOverrides: ResourceUiDefinition[] = [
|
||||
required: true,
|
||||
type: 'identity-list',
|
||||
relation: '/gasorder_contract_product',
|
||||
listDisplayKey: 'contract_products_summary',
|
||||
listDetailLink: true,
|
||||
emptyText: '未填写',
|
||||
placeholder: '请输入智能气阀名称、气瓶类型或气瓶编码搜索',
|
||||
relationOptionDisplay: 'product-name-type',
|
||||
relationEmptyText: '该合同暂无可用气瓶,请先为合同绑定气瓶',
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!-- 功能描述:展示配送点标准资源列表并导航到独立记录页。版本:v1.1.0。 -->
|
||||
<!-- 功能描述:展示配送点标准资源列表并导航到独立记录页。版本:v1.2.0。 -->
|
||||
<template>
|
||||
<a-card :title="listTitle" :bordered="false">
|
||||
<template v-if="isCredentialList" #extra>
|
||||
@@ -75,11 +75,15 @@
|
||||
@click="previewListContractAttachment(record)"
|
||||
>查看附件</a-button>
|
||||
<span v-else-if="field.type === 'contract-file'">暂无附件</span>
|
||||
<a-link v-else-if="field.listDetailLink" @click="openRecord('detail', record)">
|
||||
{{ displayListField(field, record) }}
|
||||
</a-link>
|
||||
<template v-else-if="field.listDisplayKey">{{ displayListField(field, record) }}</template>
|
||||
<IdentityText
|
||||
v-else-if="(field.type === 'identity' || field.listCopyable) && fieldValue(field, record)"
|
||||
:value="fieldValue(field, record)"
|
||||
/>
|
||||
<template v-else>{{ displayResourceValue(definition, field.key, record[field.key] ?? record[`${field.key}_masked`]) }}</template>
|
||||
<template v-else>{{ displayListField(field, record) }}</template>
|
||||
</template>
|
||||
</a-table-column>
|
||||
<a-table-column title="状态" :width="100">
|
||||
@@ -245,6 +249,19 @@ function fieldValue(field: ResourceField, row: ResourceRow) {
|
||||
return String(row[field.key] ?? row[`${field.key}_masked`] ?? '');
|
||||
}
|
||||
|
||||
/** 优先使用后端受控派生字段展示列表摘要,空值使用字段业务文案。 */
|
||||
function displayListField(field: ResourceField, row: ResourceRow) {
|
||||
if (field.listDisplayKey) {
|
||||
const value = row[field.listDisplayKey];
|
||||
return value == null || value === '' ? (field.emptyText ?? '-') : String(value);
|
||||
}
|
||||
return displayResourceValue(
|
||||
props.definition,
|
||||
field.key,
|
||||
row[field.key] ?? row[`${field.key}_masked`],
|
||||
);
|
||||
}
|
||||
|
||||
/** 加载当前列表和来源关系筛选。 */
|
||||
async function load() {
|
||||
avatarLoader.reset();
|
||||
|
||||
Reference in New Issue
Block a user