功能:优化用户地址账户名称展示

This commit is contained in:
czl231
2026-08-11 21:33:20 +08:00
parent e375e9851b
commit 8d6ffca1e2
9 changed files with 281 additions and 22 deletions

View File

@@ -0,0 +1,48 @@
# 用户地址账户名称展示操作日志
操作时间2026-08-11
操作类型:扩展
影响模块:平台总后台用户地址列表
## 操作前状态
用户地址列表的“用户唯一标识”列直接显示截断标识,详情页则显示“账户名称+标识”,同一关系在两个页面的识别方式不一致。
## 具体操作
1. 为资源字段增加仅列表生效的关系名称展示配置。
2. 用户地址列表列名改为“用户账户”,主内容显示账户名称。
3. 名称悬停展示完整唯一标识,名称旁提供复制按钮。
4. 关系名称缺失时降级显示完整唯一标识。
5. 详情页及其他资源保持原展示规则。
6. 新增静态回归检查和 v1.1 项目文档。
## 操作后状态
用户地址列表可以直接按账户名称识别所属用户,同时仍可查看、复制完整唯一标识。详情页继续显示账户名称和唯一标识。
## 代码变更
- `frontend/platform_admin/src/api/resources.ts`:新增字段级列表关系名称配置并应用于用户地址。
- `frontend/platform_admin/src/views/shared/CrudListPage.vue`:新增配置驱动的关系名称列表分流及名称降级。
- `frontend/platform_admin/src/views/shared/RelationNameText.vue`:新增关系名称、标识悬停与复制组件。
- `frontend/platform_admin/src/views/shared/resource-list-field-display.ts`:拆分关系名称、标识读取和列宽判断,控制共享列表文件规模。
- `frontend/platform_admin/scripts/check-user-address-relation-display.mjs`:新增静态回归检查。
- `frontend/platform_admin/package.json`:新增检查命令。
- `docs/项目文档_用户地址受控展示_v1.1.md`:新增版本化项目文档。
## 验证结果
- `pnpm.cmd user-address-display:check`:通过,账户名称、标识降级、悬停与复制入口均已覆盖。
- `pnpm.cmd type:check`:通过。
- 项目内 Biome 对本次前端文件执行定向检查:通过;仅报告项目现有的 Vue 模板识别告警,无错误。
- `pnpm.cmd contract:check`:通过,共校验 48 个资源。
- `pnpm.cmd build`通过Vite 成功构建 2611 个模块。
- `git diff --check`:通过。
- `http://localhost:5173`:服务可访问并启用 Vite 热更新;自动化浏览器无平台登录态,未读取受保护的真实用户地址列表。
## 风险评估
风险较低。新配置默认关闭且只应用于用户地址所属用户字段;不改变接口、权限、详情页或其他资源展示。关系数据加载失败时通过标识降级避免空白。

View File

@@ -0,0 +1,60 @@
# 用户地址受控展示项目文档 v1.1
## 1. 项目概述
- 项目名称:平台总后台用户地址受控展示。
- 实施范围:平台 API 的 `user_address` 资源,以及端口 5173 的平台总后台列表、详情和编辑页。
- 主要功能:受控展示真实地址及坐标;用户地址列表以账户名称识别所属用户,并保留唯一标识查看与复制能力。
- 技术栈Go、Gin、GORM、Vue 3、TypeScript、Arco Design。
## 2. 目录结构
```text
platforms/
├── backend/api/internal/logic/platform/user/
│ └── relation.go # 用户地址受控位置字段恢复
├── frontend/platform_admin/
│ ├── scripts/
│ │ └── check-user-address-relation-display.mjs # 用户账户列表展示检查
│ └── src/
│ ├── api/resources.ts # 用户地址字段级列表展示配置
│ └── views/shared/
│ ├── CrudListPage.vue # 字段配置驱动的列表分流
│ ├── RelationNameText.vue # 名称、标识悬停与复制组件
│ └── resource-list-field-display.ts # 列表字段展示工具
└── docs/
└── 11-数据接口与安全.md # 用户地址资源级安全例外
```
## 3. 核心文件说明
### 3.1 用户地址字段配置
`frontend/platform_admin/src/api/resources.ts` 通过 `listRelationNameOnly` 明确声明列表以关系名称展示。该配置只在用户地址的所属用户字段启用,详情页和其他资源不读取该规则。
### 3.2 列表展示组件
`RelationNameText.vue` 以账户名称作为列表主内容,悬停显示完整用户唯一标识,并提供独立复制按钮。关系选项尚未加载或账户名称缺失时,列表降级显示完整唯一标识,确保记录仍可定位。
## 4. 行为变化
| 场景 | 变更前 | 变更后 |
| --- | --- | --- |
| 用户地址列表列名 | 用户唯一标识 | 用户账户 |
| 用户地址列表内容 | 截断的唯一标识 | 账户名称 |
| 完整标识获取 | 点击标识复制 | 悬停查看、复制按钮复制 |
| 关系名称缺失 | 显示原始标识 | 保持显示完整原始标识 |
| 用户地址详情 | 名称与标识 | 保持不变 |
| 其他资源关系字段 | 原有规则 | 保持不变 |
## 5. 安全与兼容性
- 不修改后端接口、数据库结构或敏感字段授权范围。
- 唯一标识来自已授权列表响应,不新增敏感数据请求。
- 字段级开关默认关闭,其他资源保持向下兼容。
## 6. 维护与验证
- 新增类似关系名称列表展示时,应显式配置字段,不按资源名称硬编码。
- 执行 `pnpm user-address-display:check` 验证目标交互规则。
- 执行 `pnpm type:check`、定向 Biome 检查和 `pnpm build` 验证前端。