新增 B 端上传接口与列表接口,统一文件上传和分页查询能力 上传能力支持医院级数据隔离:系统管理员需显式指定医院,院内角色按登录医院自动隔离 图片上传自动压缩并转为 webp,视频上传自动转码并压缩为 mp4,普通文件按原始类型存储 增加上传目录与公开访问能力,统一输出可直接预览的访问地址 前端新增影像库页面,支持按类型筛选、关键字检索、分页浏览、在线预览与原文件访问 前端新增通用上传组件,支持在页面内复用并返回上传结果 管理后台新增影像库菜单与路由,并补充页面级角色权限控制 患者手术相关表单接入上传复用能力,支持术前资料与设备标签上传回填 新增上传模块 e2e 用例,覆盖成功路径、权限矩阵与关键失败场景 补充上传模块文档与安装依赖说明,完善工程内使用说明
87 lines
4.4 KiB
Markdown
87 lines
4.4 KiB
Markdown
# 前端接口接入说明(`tyt-admin`)
|
||
|
||
## 1. 本次接入范围
|
||
|
||
- 登录页:`/auth/login`,支持可选 `hospitalId`。
|
||
- 首页看板:按角色拉取组织与患者统计。
|
||
- 设备页:新增管理员专用设备 CRUD,复用真实设备接口。
|
||
- 任务页:改为只读调压记录页,接入真实任务列表接口。
|
||
- 用户页:修复用户列表响应结构、组织字段联动、工程师分配医院参数。
|
||
- 患者页:接入真实患者字段与生命周期查询参数(`phone + idCard`),
|
||
后端直接保存身份证号原文,不再做哈希转换;调压任务入口迁到患者页。
|
||
- 新增影像库页:接入真实上传接口,支持图片/视频/文件上传与分页查看。
|
||
|
||
## 2. 接口契约对齐点
|
||
|
||
- `GET /users` 当前返回数组,前端已在 `api/users.js` 做本地分页与筛选适配。
|
||
- `PATCH /b/users/:id/assign-engineer-hospital` 参数为单个 `hospitalId`,非数组。
|
||
- `GET /b/patients` 返回数组,前端已改为本地分页与筛选。
|
||
- `GET /b/devices` 已支持服务端分页与筛选,前端直接透传 `page/pageSize`。
|
||
- `GET /b/tasks` 返回 `{ list, total, page, pageSize }`,供任务页只读展示调压记录。
|
||
- `POST /b/uploads` 使用 `multipart/form-data` 上传文件,返回上传资产元数据。
|
||
- `GET /b/uploads` 返回 `{ list, total, page, pageSize }`,仅供系统管理员/医院管理员影像库分页展示。
|
||
- `GET /b/tasks/engineers` 返回可选接收工程师列表,患者页发布调压任务前需要先拉取。
|
||
- `GET /c/patients/lifecycle` 必须同时传 `phone` 和 `idCard`。
|
||
- 患者表单中的 `idCard` 字段直接传身份证号;
|
||
服务端只会做去空格与 `x/X` 标准化,不会转哈希。
|
||
- 患者手术、调压任务、设备目录中的压力值全部按字符串挡位标签传输,例如 `0.5`、`1`、`1.5`、`10`。
|
||
|
||
## 3. 角色权限提示
|
||
|
||
- 任务接口权限:
|
||
- `SYSTEM_ADMIN/HOSPITAL_ADMIN/DOCTOR/DIRECTOR/LEADER`:发布时必须指定接收工程师;可取消自己创建的任务
|
||
- `ENGINEER`:仅可完成分配给自己的任务
|
||
- 患者列表权限:
|
||
- `SYSTEM_ADMIN` 查询时必须传 `hospitalId`
|
||
- 用户管理接口:
|
||
- `SYSTEM_ADMIN/HOSPITAL_ADMIN` 可创建、编辑、删除
|
||
- `DIRECTOR` 可只读查看本科室下级医生/组长
|
||
- 工程师绑定医院仅 `SYSTEM_ADMIN`
|
||
- 删除:`SYSTEM_ADMIN` 可删除任意无关联用户;`HOSPITAL_ADMIN` 可删除本院无关联、且非管理员用户
|
||
|
||
## 3.1 结构图页面交互调整
|
||
|
||
- 医院管理员视角下,右侧下级列表会优先显示“人员”节点,再显示组织节点。
|
||
- 选中人员节点时,右侧展示人员详情(角色、手机号、所属医院/科室/小组),不再显示空白占位。
|
||
|
||
## 3.2 后台页面路由权限(与后端 RBAC 对齐)
|
||
|
||
- `organization/tree`、`organization/departments`、`organization/groups`、`users`
|
||
- `organization/tree`、`organization/groups`:
|
||
`SYSTEM_ADMIN`、`HOSPITAL_ADMIN`、`DIRECTOR`、`LEADER` 可访问
|
||
- `organization/departments`:
|
||
仅 `SYSTEM_ADMIN`、`HOSPITAL_ADMIN` 可访问
|
||
- `users`:`SYSTEM_ADMIN`、`HOSPITAL_ADMIN` 可管理;`DIRECTOR` 可只读查看
|
||
- `devices`:仅 `SYSTEM_ADMIN`、`HOSPITAL_ADMIN` 可访问
|
||
- `uploads`:仅 `SYSTEM_ADMIN`、`HOSPITAL_ADMIN` 可访问
|
||
- `organization/hospitals`
|
||
- 仅 `SYSTEM_ADMIN` 可访问
|
||
- `tasks`
|
||
- `SYSTEM_ADMIN`、`HOSPITAL_ADMIN`、`DOCTOR`、`DIRECTOR`、`LEADER`、`ENGINEER` 可访问
|
||
- `patients`
|
||
- `SYSTEM_ADMIN`、`HOSPITAL_ADMIN`、`DIRECTOR`、`LEADER`、`DOCTOR` 可访问
|
||
|
||
患者页负责发起调压任务并指定接收人,任务页仅查看调压记录,不再提供发布或接收入口。
|
||
|
||
患者手术表单中的主刀医生不再单独选择,直接跟随患者归属医生展示和保存。
|
||
|
||
前端已在路由守卫和侧边栏菜单同时做权限控制,无权限角色会被拦截并跳转到首页,避免进入页面后触发接口 `403`。
|
||
|
||
## 3.3 主任/组长组织管理范围
|
||
|
||
- `DIRECTOR`
|
||
- 仅保留业务使用和患者管理能力,不再承担科室/小组/医生管理
|
||
- `LEADER`
|
||
- 仅保留业务使用和患者管理能力,不再承担科室/小组/医生管理
|
||
- 主任/组长不再显示“科室管理”“小组管理”“用户管理”页面。
|
||
- 负责人设置(设主任/设组长)入口仍仅 `SYSTEM_ADMIN`、`HOSPITAL_ADMIN` 显示。
|
||
|
||
## 4. 本地运行
|
||
|
||
在 `tyt-admin` 目录执行:
|
||
|
||
```bash
|
||
pnpm install
|
||
pnpm dev
|
||
```
|