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