Files
platforms/docs/项目文档_账户资料页_v1.1.md
czl231 7242048abf feat: 新增账户资料页与头像上传
将工作人员和用户的详情、编辑改为独立账户资料页。

增加受控头像上传与读取、图片安全校验、接口测试,并优化只读及编辑布局。

同步更新平台需求、接口安全说明、项目文档和操作日志。
2026-08-10 22:35:47 +08:00

88 lines
4.5 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. 项目概述
- 项目名称:平台总后台工作人员与用户账户资料页。
- 主要功能:工作人员和用户账户使用独立资料页查看、编辑基本信息,并支持头像本地预览、受控上传和鉴权读取。
- 本版重点:优化宽屏内容密度、资料卡对齐、查看/编辑状态区分和必填标识位置。
- 技术栈Vue 3、TypeScript、Arco Design、Less、Go、Gin、GORM。
- 运行环境Node.js 20.19+、Go 1.26.1、项目现有 PostgreSQL 与 JWT 配置。
- 实施范围:仅 `frontend/platform_admin` 的工作人员和用户账户共享资料页;气站后台、配送后台及后端接口行为不变。
## 2. 目录结构说明
```text
platforms/
├── frontend/platform_admin/src/
│ ├── api/avatar.ts # 头像上传和鉴权读取客户端
│ ├── router/routes/modules/platform.ts # 工作人员、用户账户资料页路由
│ └── views/
│ ├── account/
│ │ ├── AccountProfilePage.vue # 资料查看、编辑和头像交互
│ │ └── AccountProfilePage.less # 资料页布局、状态和响应式样式
│ └── shared/CrudListPage.vue # 目标资源跳转入口
├── backend/api/internal/
│ ├── logic/upload/avatar.go # 头像校验、保存和受控读取
│ ├── logic/platform/staff/staff.go # 工作人员头像与资料更新
│ ├── logic/platform/user/user.go # 用户头像与资料更新
│ └── routers/ # 平台头像读取与上传路由
└── docs/ # 需求、安全、项目和操作日志
```
## 3. 核心文件说明
### `AccountProfilePage.vue`
- `loadProfile`:加载账户详情、关联选项与受保护头像。
- `displayProfileValue`:将普通字段、枚举、布尔值、金额、日期和关联标识转换为只读文本。
- `startEdit``leaveEditMode`:通过 `?mode=edit` 切换编辑与查看状态。
- `save`:验证表单,在需要时上传头像,再复用原资源更新接口。
- 查看态只渲染纯文本值;编辑态才创建输入、选择和日期控件,避免将详情误呈现为禁用表单。
### `AccountProfilePage.less`
- 顶部使用 `900px` 最大宽度网格,将头像列与身份信息列作为整体居中。
- 基本信息表单使用 `760px` 内容宽度,查看态文本和编辑态控件共享标签基线。
- 必填符号通过页面局部样式压缩为固定 `8px` 宽,不影响其他 Arco 表单。
- 小屏幕下顶部网格切换为单列,表单宽度与标签列同步收缩。
### 头像服务
- 头像内容保持原样展示,本版不进行图片语义判断或自动替换。
- 上传、鉴权读取、文件类型、大小和像素限制均沿用 v1.0,不修改接口或数据库结构。
## 4. 变更记录
### v1.12026-08-10
- 顶部资料卡内容组居中,减少宽屏右侧无效留白。
- 头像缩小为 120px身份标题调整为 20px标签和内容统一左基线。
- 卡片间距调整为 16px资料卡和基本信息卡按内容压缩高度。
- 查看态由禁用输入框改为纯文本,编辑态保留原表单控件。
- 表单内容区扩展并居中,输入框宽度和按钮基线保持一致。
- 修复必填星号与“名称”标签分离问题。
- 工作人员和用户账户共享同一优化结果。
- 未修改头像数据、后端接口、路由、数据库或其他后台页面。
### v1.0
- 新增账户独立资料页、头像上传与鉴权读取能力。
- 新增安装、配送、运维工作人员及用户账户资料路由。
## 5. 维护指南
- 新增字段时必须同时检查 `displayProfileValue` 的只读格式与编辑控件类型。
- 页面布局宽度统一在 `AccountProfilePage.less` 维护,不应在模板中写内联尺寸。
- 必填符号覆盖仅限 `.profile-form`,禁止改动 Arco 全局样式。
- 头像仍是业务资源内容;合法但内容特殊的 PNG/JPG 应原样显示。
- 验证命令:
- `npm run build`(目录:`frontend/platform_admin`
- `git diff --check`
- 浏览器验证:检查用户和工作人员资料页的查看态、编辑态、取消恢复及宽屏/小屏布局。
## 6. 已知边界
- 本版不新增头像裁剪、删除或语义识别。
- 不改变新增账户、审核、归档和钱包操作。
- 气站后台与配送后台仍使用原有页面交互。