From 06b6f0ee624ade9a2e4fbdbdb40523b1a4c32efa Mon Sep 17 00:00:00 2001 From: czl231 <3286836406@qq.com> Date: Tue, 18 Aug 2026 21:15:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B0=94=E7=AB=99=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E8=AF=A6=E6=83=85=E4=B8=BB=E6=A1=A3=E4=B8=8E=E9=85=8D?= =?UTF-8?q?=E9=80=81=E7=82=B9=E5=9B=9E=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/操作日志_气站工作人员头像适配_20260818.md | 2 ++ .../gas_admin/scripts/check-resource-pages.mjs | 8 +++++++- frontend/gas_admin/src/api/resource-display.ts | 15 ++++++++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/docs/操作日志_气站工作人员头像适配_20260818.md b/docs/操作日志_气站工作人员头像适配_20260818.md index 8382de0..f5121ea 100644 --- a/docs/操作日志_气站工作人员头像适配_20260818.md +++ b/docs/操作日志_气站工作人员头像适配_20260818.md @@ -24,6 +24,7 @@ - `/staff/add` 顶部显示账户摘要与头像选择区,布局和交互参考 5173。 - 工作人员与用户列表显示 32 像素圆形头像;无头像或加载失败时回退默认头像。 - 用户账户列表以“所属配送点”为列名并显示配送点业务名称,唯一标识仅用于悬停查看和复制。 +- 用户账户详情与编辑页从聚合响应中恢复用户主档和配送点关系,用户名、名称、电话、实名及所属配送点均可正确回填。 - 工作人员与用户的详情、编辑页可安全读取现有头像。 - 普通资料编辑不会误清空头像;主动恢复默认头像仍会提交空值。 @@ -33,6 +34,7 @@ - `frontend/gas_admin/src/api/avatar.ts`:使用气站 API 前缀读取受保护头像。 - `frontend/gas_admin/src/views/shared/protected-list-avatar-loader.ts`:开放工作人员与用户缩略图渲染。 - `frontend/gas_admin/src/api/resources.ts`:用户账户的配送点关系列表以业务名称为主展示,并保留唯一标识复制能力。 +- `frontend/gas_admin/src/api/resource-display.ts`:识别用户聚合详情并合并配送点关系上下文。 - `frontend/gas_admin/scripts/check-resource-pages.mjs`:新增用户账户配送点名称展示的静态回归检查。 - `backend/api/internal/logic/gas/staff.go`、`user.go`:新增范围受限头像读取并保护头像更新语义。 - `backend/api/internal/logic/gas/user_test.go`:校验用户列表携带配送点关系且保留气站范围。 diff --git a/frontend/gas_admin/scripts/check-resource-pages.mjs b/frontend/gas_admin/scripts/check-resource-pages.mjs index a701707..8f630de 100644 --- a/frontend/gas_admin/scripts/check-resource-pages.mjs +++ b/frontend/gas_admin/scripts/check-resource-pages.mjs @@ -1,6 +1,6 @@ /** * 功能:静态检查气站管理端全部标准资源是否具备独立记录页配置。 - * 版本:v1.3.0 + * 版本:v1.4.0 */ import { readFileSync, existsSync } from 'node:fs'; import { fileURLToPath } from 'node:url'; @@ -90,6 +90,12 @@ if ( ) { fail('用户账户列表未按文档以所属配送点名称为主展示'); } +if ( + !displaySource.includes('detail.user') || + !displaySource.includes('relation.delivery_basic_identity ?? user.delivery_basic_identity') +) { + fail('用户账户详情未恢复主档与配送点关系上下文'); +} const createCount = listResources.filter((item) => createModes.has(item.mode)).length; console.log( diff --git a/frontend/gas_admin/src/api/resource-display.ts b/frontend/gas_admin/src/api/resource-display.ts index 710c5bd..da43e97 100644 --- a/frontend/gas_admin/src/api/resource-display.ts +++ b/frontend/gas_admin/src/api/resource-display.ts @@ -1,6 +1,6 @@ /** * 功能:统一资源列表与详情页面的字段名称、关系、金额、状态和时间展示。 - * 版本:v1.7.0 + * 版本:v1.8.0 */ import dayjs from 'dayjs'; import type { RecordPageMode, ResourceRow } from './resource-page-rules'; @@ -174,6 +174,19 @@ export function primaryRecord(detail: ResourceRow): ResourceRow { return detail.contract as ResourceRow; if (detail.track && typeof detail.track === 'object') return detail.track as ResourceRow; + if (detail.user && typeof detail.user === 'object') { + const user = detail.user as ResourceRow; + const relation = + detail.relation && typeof detail.relation === 'object' + ? (detail.relation as ResourceRow) + : {}; + // 用户详情由主档、服务关系和地址组成;编辑表单需同时恢复主档与配送点上下文。 + return { + ...user, + delivery_basic_identity: + relation.delivery_basic_identity ?? user.delivery_basic_identity, + }; + } return detail; }