Files
platforms/docs/项目文档_用户地址受控展示_v1.1.md
2026-08-11 21:33:20 +08:00

61 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 用户地址受控展示项目文档 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` 验证前端。