3.5 KiB
3.5 KiB
小程序 WebView 模块接入
后续管理端业务进入微信小程序时,只加 H5 路由与工作台入口,不要再复制鉴权、登录注入或第二个 web-view 页。
权威决策见 docs/superpowers/specs/2026-09-14-mp-webview-transport-plan-design.md。已落地:运输计划 /#/m/pl/plan、CRM 产品 /#/m/crm/product、CRM 报价 /#/m/crm/quote*。
已有骨架(不要新建)
| 层 | 路径 |
|---|---|
| 小程序壳 | miniprogram/pages/common/mp-webview.vue(主包已注册) |
| 换票 | POST /api/web/auth/mp-webview-ticket(需登录,走加密)→ H5 POST /api/web/auth/mp-webview-exchange(加密排除) |
| H5 壳 | web-admin/src/layouts/MpWebviewShell.vue |
| 路由识别 | isMpWebviewPath(/m/ 前缀)、静态路由 meta.isMpWebview |
| 视觉 | 三墙绿 #0a9f6d(src/styles/mp-webview.scss),不是管理端 Fresh Mint |
新模块 5 步
- H5 页面:在
web-admin/src/views/m/<module>/写列表/详情等;套MpWebviewShell。桌面弹窗可加variant="page"全屏复用,不要重写业务规则。 - 静态路由:
web-admin/src/router/routes/staticRoutes.ts增加/m/...,meta: { isHideTab: true, isMpWebview: true },且必须写在 catch-all 之前。不要挂桌面index/index布局。 - 工作台入口:
miniprogram/config/workbench-menus.js增加一项;config/api.js的WORKBENCH_ROUTE_MAP指向同一个壳:pages/common/mp-webview?path=+encodeURIComponent('/m/...')。 - 双权限:入口菜单用
mini:...;业务 API 仍校验对应 Webperms。角色需同时具备两者(参考docs/sql/migrations/2026-09-14-mini-pl-plan-webview-menus.sql)。 - 发版:微信业务域名已配置时,只发
web-admin静态资源即可,不必提审小程序。
禁止:每个模块再做一个 web-view 页面、再做一套登录注入、URL 长期带 accessToken、把公开司机/现场 token 页(/#/public/pl/transport/:token)当登录模板。
运输计划对照
- 列表
/m/pl/plan,详情/:id,表单/new/:id/edit/:id/arrange,打印/:id/print,三方人车/paste - 工作台 code
pl-plan-webview,permsmini:pl:plan:manage - 与原生现场页
pages/pl/transport-plan/*(mini:pl:transportPlan:list)并存,不要混名
CRM 产品对照
- 列表
/m/crm/product,详情/:id,表单/new/:id/edit,分类/categories - 工作台 code
crm-product-webview,permsmini:crm:product:list - 业务 API:现有
/web/crm/products/*、/web/crm/product-categories/* - 不做:导入/导出/批量上下架
CRM 报价对照
- 管理列表
/m/crm/quote,审批列表/m/crm/quote/approval,详情/:id,表单/new/:id/edit,版本/:id/versions - 工作台 code
crm-quote-webview/crm-quote-approval-webview,permsmini:crm:quote:list/mini:crm:quote:approve - 业务 API:现有报价 list/detail/CRUD/submit/invalid/versions/approval;审批人设置仅 get 预填
- 不做:分享、转合同、生成报价单/PDF、导出、批量提交/审批、审批人设置菜单
回归清单
- ticket 第二次 exchange 失败
- 换票后列表租户数据与桌面同账号一致
- 新增草稿、安排、复制、等通知、作废、打印预览、三方人车可走通
- 401 回小程序登录,不到
/#/auth/login - 只发 web-admin:改卡片文案在小程序 WebView 内可见
- 原生「运输计划单」现场页仍可用
- 生产加密:exchange 明文、后续计划 API 加密