← Return to Artifact Archive

ARTIFACT / REMEPUI

RemepUI

PROTOTYPE

Remipedia 的 Web 管理端:管患者、设备、绑定关系与健康数据,菜单和路由按后端的模块权限收窄。

ARTIFACT ID
remepui
COMPILED
2026-10-23
STATUS / 状态
原型(主流程可用,依赖后端)
remipedia ↗ remepmobile ↗

仓库:https://github.com/fire-disposal/remepui

RemepUI

Remipedia 的 Web 管理端:管患者、设备、绑定关系与健康数据,菜单和路由按后端的模块权限收窄。

状态:原型(主流程可用,依赖后端);入口:本地 pnpm dev,生产为 nginx 静态托管;仓库:https://github.com/fire-disposal/remepui 相关仓库:后端 remipedia、移动端联调工具 remepmobile 后端接口:https://iomt.205716.xyz/api-docs/openapi.json

本质

消费 remipedia 接口、按模块权限展示设备、绑定与患者数据的 Web 管理端。

选型

基于 React + Vite 的纯前端 SPA,后端消费 remipedia REST,数据 TanStack Query 缓存,部署 nginx 静态站点。

  • 运行时与构建
    • Node 20
    • pnpm
    • Vite
    • TypeScript
  • 前端
    • React 19
      • TanStack Router
      • TanStack Query
      • TanStack Table
      • Zustand
      • axios
    • Mantine 8
      • core
      • dates
      • hooks
      • modals
      • notifications
      • Tabler Icons
    • dayjs
  • 可视化
    • ECharts
    • echarts-for-react
    • React Flow
    • three
    • @react-three/fiber
    • @react-three/drei
    • d3-scale
    • d3-axis
    • d3-time-format
  • 后端
    • remipedia REST
  • 部署
    • Docker
    • Nginx

功能

  • 15 条路由:登录、仪表板、患者、设备、绑定关系、绑定可视化、数据查询、健康时间轴、原始数据、用户、角色、模块权限、审计日志、外壳设置、压疮仿真。
  • 认证:登录、刷新、登出、改密、/auth/me;token 存在 localStorage,启动时 hydrate,过期前 5 分钟判为需刷新;401 进刷新队列,失败才弹过期对话框登出。
  • 权限:路由级 checkModuleAccess 与组件级 PermissionGuard,通配 * 视为全权;无可用模块的普通账号会被登出。
  • 患者/设备/绑定:增删改查,设备注册与“绑定患者”从列表页发起,绑定可结束与切换。
  • 数据:条件查询与分页、活跃告警、事件确认与解决;健康时间轴按患者排列指标与事件。
  • 原始数据:统计、payload 与元数据 JSON 查看、原始文本、导出。
  • 管理:用户增删改查、角色与模块权限批量分配、审计日志查询。
  • 压疮仿真:界面压力与风险系数驱动伤害累积、可逆转临界时间、体位与受压点、翻身建议、Bland 评分、音频提醒、记录导入导出。
  • 外壳:8 套预设(通用、设备、患者、分析、管理员、简约、活力、压疮教学),只换菜单/LOGO/主色,落 localStorage。
  • 未完成:单元测试与 e2e;WebSocket 订阅通道已封装但后端无对应接入。

启动流程

pnpm install
cp .env.example .env      # VITE_API_BASE_URL=http://localhost:18000/api
pnpm dev                  # http://localhost:5173
  • 后端先起:remipedia 里 docker compose up -d,应用映射到 127.0.0.1:18000。
  • 校验:pnpm build(tsc -b && vite build)、pnpm lint、pnpm preview。
  • 生产:docker build -t remepui .,或把 dist/ 交给宿主机 nginx。
  • 首次登录用后端初始化的管理员账号(ADMIN_USERNAME / ADMIN_PASSWORD),部署前必须改密。
  • 可选变量:VITE_API_BASE_URL、VITE_APP_TITLE。

边界与已知问题

  • 前端不定义后端能力:字段与错误码以 openapi.json 为准,这里只按上面前缀调用。
  • 权限只控制展示与跳转,接口能不能过取决于后端角色模块。
  • 压疮仿真的记录存 localStorage,换浏览器即丢。
  • QUICK_START.md / SETUP.md / IMPLEMENTATION_COMPLETE.md 描述的是早期结构(src/app/routes/、src/widgets/、4 套外壳),与现在的单文件 router.tsx 和 8 套外壳不一致。
  • 文档里的示例接口(如 /device/list)不是当前后端路径,照着写会 404。
  • 没有测试文件,靠 tsc、eslint 和构建把关。

文档索引