优化配送订单状态记录显示

This commit is contained in:
czl231
2026-08-15 12:07:55 +08:00
parent 45cf524df8
commit beb0e0f1af
4 changed files with 14 additions and 1 deletions

View File

@@ -13,6 +13,8 @@
-`product_amount``payable_amount` 的页面名称分别统一为“商品金额(元)”“应付金额(元)”,并沿用金额分转元格式。 -`product_amount``payable_amount` 的页面名称分别统一为“商品金额(元)”“应付金额(元)”,并沿用金额分转元格式。
-`contract_display_name` 从通用详情字段中排除;该字段继续用于“配送合同”显示“标题(合同编号)”。 -`contract_display_name` 从通用详情字段中排除;该字段继续用于“配送合同”显示“标题(合同编号)”。
- 将状态记录中的 `gasorder_basic_identity` 统一显示为“配送订单唯一标识”。
- 将关联记录中的 `*_at` 日期时间列统一设置为 150px不改变字段顺序。
- 保持后端 JSON 字段、数据库结构和敏感信息保护规则不变。 - 保持后端 JSON 字段、数据库结构和敏感信息保护规则不变。
## 操作后状态 ## 操作后状态
@@ -20,6 +22,7 @@
- 配送订单详情不再出现重复的合同辅助字段。 - 配送订单详情不再出现重复的合同辅助字段。
- 商品金额和应付金额均使用中文业务名称展示。 - 商品金额和应付金额均使用中文业务名称展示。
- 配送合同的可读标题和唯一标识复制入口不受影响。 - 配送合同的可读标题和唯一标识复制入口不受影响。
- 状态记录的日期时间列宽固定为 150px避免列宽过大。
## 验证结果 ## 验证结果

View File

@@ -7,9 +7,11 @@ const listPage = fs.readFileSync(new URL('../src/views/shared/CrudListPage.vue',
const detailPage = fs.readFileSync(new URL('../src/views/resource/ResourceDetailContent.vue', import.meta.url), 'utf8'); const detailPage = fs.readFileSync(new URL('../src/views/resource/ResourceDetailContent.vue', import.meta.url), 'utf8');
const assertions = [ const assertions = [
[resources.includes("gasorder_basic_identity: '配送订单唯一标识'"), '状态记录中的配送订单标识缺少中文名称'],
[resources.includes("product_amount: '商品金额(元)'"), '订单商品金额缺少中文名称'], [resources.includes("product_amount: '商品金额(元)'"), '订单商品金额缺少中文名称'],
[resources.includes("payable_amount: '应付金额(元)'"), '订单应付金额缺少中文名称'], [resources.includes("payable_amount: '应付金额(元)'"), '订单应付金额缺少中文名称'],
[detailPage.includes("'contract_display_name'"), '订单详情未隐藏重复的合同标题辅助字段'], [detailPage.includes("'contract_display_name'"), '订单详情未隐藏重复的合同标题辅助字段'],
[detailPage.includes("column.endsWith('_at')) return 150"), '关联记录的日期时间列未固定为 150px'],
[resources.includes("listDisplayKey: 'creator_display_name'"), '创建方未配置可读名称字段'], [resources.includes("listDisplayKey: 'creator_display_name'"), '创建方未配置可读名称字段'],
[resources.includes('listDisplayIdentityCopy: true'), '创建方未保留唯一标识复制入口'], [resources.includes('listDisplayIdentityCopy: true'), '创建方未保留唯一标识复制入口'],
[resources.includes("detailDisplayKey: 'contract_display_name'"), '订单详情未配置合同标题展示字段'], [resources.includes("detailDisplayKey: 'contract_display_name'"), '订单详情未配置合同标题展示字段'],

View File

@@ -303,6 +303,7 @@ const fieldLabels: Record<string, string> = {
ec_category_identity: '商品分类唯一标识', ec_category_identity: '商品分类唯一标识',
ec_product_identity: '商品唯一标识', ec_product_identity: '商品唯一标识',
gas_basic_identity: '气站唯一标识', gas_basic_identity: '气站唯一标识',
gasorder_basic_identity: '配送订单唯一标识',
gasorder_contract_identity: '配送合同唯一标识', gasorder_contract_identity: '配送合同唯一标识',
gasorder_contract_product_identities: '合同气瓶唯一标识', gasorder_contract_product_identities: '合同气瓶唯一标识',
producer_account_identity: '生产商唯一标识', producer_account_identity: '生产商唯一标识',

View File

@@ -28,7 +28,7 @@
v-for="column in collection.columns" v-for="column in collection.columns"
:key="column" :key="column"
:title="resourceFieldLabel(definition, column, collection.key)" :title="resourceFieldLabel(definition, column, collection.key)"
:width="column.includes('identity') ? 220 : 160" :width="collectionColumnWidth(column)"
ellipsis ellipsis
tooltip tooltip
> >
@@ -78,6 +78,13 @@ type DetailEntry = {
identityValue: string; identityValue: string;
}; };
/** 统一关联记录表列宽:日期时间列保持紧凑,唯一标识列保留完整复制空间。 */
function collectionColumnWidth(column: string) {
if (column.endsWith('_at')) return 150;
if (column.includes('identity')) return 220;
return 160;
}
const entries = computed<DetailEntry[]>(() => { const entries = computed<DetailEntry[]>(() => {
const row = primaryRecord(props.detail); const row = primaryRecord(props.detail);
const excluded = new Set([ const excluded = new Set([