61 lines
2.8 KiB
Markdown
61 lines
2.8 KiB
Markdown
# 用户地址受控展示项目文档 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` 验证前端。
|