petstore-docs/门店管理后台-技术选型草案.md

3.4 KiB
Raw Blame History

门店 Web 后台 · 技术选型草案Q5

状态:推荐方案(编码前口头确认即可;不阻塞 PRD
日期2026-07-10
上游:docs/门店管理后台-PhaseA-页面清单PRD.mddocs/门店管理后台升级方案-对标宠老板.md
约束:rule:BR-ADMIN-004;与小程序共用 /api/** 与 service 规则


1. 结论(推荐)

选择
形态 独立 SPA:仓库内新建 admin/(与 frontend/ 小程序并列)
框架 Vue 3 + Vite + TypeScript
UI Element Plus(中后台表格/筛选/抽屉成熟)
路由/状态 Vue Router + Pinia
鉴权 复用现网 sessionToken;请求头与小程序一致
API axios/fetch 封装;禁止另造业务状态机
部署 静态资源独立域名或 /admin/ pathNginx 反代 /api → 现网后端

不推荐:在 uni-app 里硬撑 PC 后台;用 React 另起技术栈(团队已是 Vue 3把 admin 塞进 frontend/ 与小程序同构建。


2. 方案对比

方案 优点 缺点 结论
A. monorepo admin/ + Vue3 + Element Plus 与现网 Vue 技能复用;桌面组件全;与小程序构建隔离 多一个前端工程 推荐
B. uni-app H5 加宽屏布局 少一个仓 表格/筛选体验差;与门店端页面耦合
C. React + Ant Design Pro 中后台模板多 与现网 Vue 分裂;学习/规范成本 否(除非专招 React
D. 纯后端模板Thymeleaf 等) 无前端仓 交互与迭代慢;难复用 H5 预览

3. 目录与边界(建议)

petstore/
├── frontend/          # uni-app 小程序 + H5既有
├── admin/             # Web 门店后台(新建)
│   ├── src/views/     # workbench / appointments / …
│   ├── src/api/       # 仅调 /api/**
│   └── …
└── backend/           # 共用;新增 /api/admin/service-customers 等
Owner 写入
Store Admin FE新建角色 admin/**
Backend Core GET /api/admin/service-customers 及工作台聚合(若做)
Report Media Backend 报告列表/成片重试相关若需扩展时
Store Miniapp FE 不写 admin小程序履约页保持原边界

4. 与现网契约

  • 登录:GET /api/user/info 校验 boss|staffcustomer → 403 文案。
  • 预约开始服务Web 调 POST /api/appointment/start(与小程序同规则)。
  • 客户列表: GET /api/admin/service-customers(见 PRD §7.6)。
  • 公开报告预览:新开现有 H5/report-view,不在 admin 内嵌改报告。
  • 本体:实现时把 planned entrypoint 升 anchored,跑 validate_ontology + audit_drift

5. 非功能

Phase A 口径
浏览器 近两年版 Chrome / Edge不做 IE
响应式 桌面优先;平板可用;不做手机后台
国际化 仅中文
主题 简洁中后台即可;不对标宠老板视觉像素级

6. 开放确认

  • Q5 推荐:Vue3 + Vite + Element Plus + admin/
  • 编码启动前负责人口头确认(或提出改 React / 改目录名)
  • Q4 成片 processing 超时:30 分钟 算异常(工作台/报告筛选)

修订记录

日期 说明
2026-07-10 首版推荐方案