日期: 2026-09-15
状态: 待实现(Demo 已验收)
前置架构:docs/superpowers/specs/2026-09-14-mp-webview-transport-plan-design.md(壳页、ticket、权限、路由骨架已落地)
权威 Demo:bak/mobile-ui/shanxia-mp-pl-plan-mobile-redesign-demo.html
视觉规范:docs/miniprogram-ui-spec-sanqiang.md(三墙 Token;WebView 内 H5 使用#0a9f6d链,不套 Fresh Mint)
现网 /#/m/pl/plan* 已能跑通业务,但多为桌面弹窗/variant=page 硬套窄屏,信息过密、选择器不适配手指。
本期在 不改后端业务规则、不改小程序壳与 ticket 的前提下,按已验收 Demo 重写移动端 UI/交互,使列表 → 详情 → 表单(含安排)→ 打印 → 三方人车 全链路达到与 Web 管理端同等能力、手机可用。
成功标准:
PlPlanFormDialog / 列表操作一致。web-admin 静态资源即可更新体验,不必提审小程序。| # | 项 | 决策 |
|---|---|---|
| D1 | 交付路径 | 方案 1:先 HTML SPA Demo 验收,再按 Demo 重写 /#/m/pl/*(已完成 Demo) |
| D2 | 范围 | 全链路:列表、详情、表单、安排、打印、三方人车快速创建 |
| D3 | 表单布局 | 长页滚动 + 分区锚点(基础 / 运输 / 装货 / 送货 / 备注) |
| D4 | 选择器 / 确认 | Bottom Sheet(车辆、人员、客户、产品、承运商、合同、地址库、更多操作、危险确认) |
| D5 | 安排 vs 编辑 | 与 Web 相同:同一表单,openForArrange / 安排模式;底栏按钮随模式变化,不做第二套安排页 |
| D6 | 架构边界 | 沿用 2026-09-14 文档:小程序通用 WebView 壳 + ticket;本期 只改 H5 UI |
| D7 | 列表筛选 | 对齐 Web PL_PLAN_LIST_TABS(含「全部」在草稿中之后);日期快捷 + 自定义区间;京东式双下拉,非一排 Chip 硬挤 |
| D8 | 列表新增入口 | 右下角 Speed Dial(新增计划 / 三方人车快速创建),不要底栏双主按钮 |
| D9 | 详情底栏 | 「⋯ 更多」+ 最多 2 个主操作(优先编辑、安排/调整);复制/等通知/打印/作废进更多 |
| D10 | 危化证 | 详情按产品展示证书槽位(易制毒:购买证+运输证;易制爆:合法证明);上传/齐备确认仍在「危化品证上传」页,不塞进计划表单 |
| D11 | 运费 | 详情只读展示;编辑态不在本期(Web 主编辑在归档弹窗,非计划表单) |
| D12 | 打印 | WebView 内预览 + 引导长按/存图;送(提)货单须先选送货客户 |
| D13 | 非本期 | 列设置、导出、强制改状态;独立危化证上传移动端重做(可后续单独立项) |
mp-webview 壳、ticket/exchange、菜单 perms(除非发现缺口再开小变更)。el-dialog 作为 WebView 主交互形态保留。| 文档 | 关系 |
|---|---|
2026-09-14-mp-webview-transport-plan-design.md |
架构仍有效:ticket、壳、权限、路由前缀 /#/m/pl/plan* |
| 本文 | 替换该文档 §7 的 UI 形态说明;权威 Demo 改为 shanxia-mp-pl-plan-mobile-redesign-demo.html |
现网 web-admin/src/views/m/pl/plan/* |
实现基线,按本文与 Demo 重写页面结构与样式,优先复用 API / composable / 表单子逻辑 |
列表 /m/pl/plan
├─ Speed Dial → 新增 /m/pl/plan/new
├─ Speed Dial → 三方人车 /m/pl/plan/paste
├─ 卡片 → 详情 /m/pl/plan/:id
└─ 卡片 复制 / 安排 → 表单(copy / arrange)
详情
├─ 主操作 → 编辑 / 安排(同表单不同 mode)
├─ 更多 → 复制 / 等通知·取消等通知 / 打印 / 作废
└─ 车辆「查看」→ Bottom Sheet 只读详情
表单(new | edit | arrange | copy)
└─ 锚点分区;选择器均为 Sheet;底栏对齐 Web 显隐规则
打印 /m/pl/plan/:id/print
三方人车 /m/pl/plan/paste
路由可继续沿用现有 /#/m/pl/plan* 路径;安排不必独立路由(与 Web 一致用表单 mode)。若现有 /arrange 路由已存在,可保留为打开同一表单组件的入口,避免双实现。
PL_PLAN_LIST_TABS 顺序)。分区顺序对齐 Web PlPlanViewTabs:
底栏:见 D9。
PlPlanFormDialog):字段对齐 PlPasteRecognizeDialog(vehicle-bundle):原文识别、承运商、主挂车、核载、驾驶员三要素、押运员三要素、冲突处理(复用/覆盖/取消)、确认生成。承运商用 Sheet。
| 单元 | 约定 |
|---|---|
| Token | 三墙:--brand #0a9f6d 等;禁止 WebView 页用 #10b981 作主色 |
| Sheet | 遮罩无 backdrop blur;点遮罩关闭;列表类 Sheet 顶部模糊搜索 |
| 底栏 | 贴底 flex,预留 safe-area-inset-bottom;勿用悬浮留白断层 |
| 状态 Tag | 语义色与 Web/小程序一致(待安排警告、已安排成功、等通知等待、草稿中性) |
| 复用 | 优先复用 planApi、usePlFreightCalc(详情只读)、危化槽位工具 getRequiredCertSlots、装送货 stop form utils;UI 层按移动端重写,避免再包一层 el-dialog |
| 层 | 路径 |
|---|---|
| Demo(已完成) | bak/mobile-ui/shanxia-mp-pl-plan-mobile-redesign-demo.html |
| H5 页面 | web-admin/src/views/m/pl/plan/{index,detail,form,print,paste}.vue |
| 壳 / 守卫 | 原则上不动 MpWebviewShell、ticket;仅当样式冲突时做最小调整 |
| 共享逻辑 | 现有 @/api/pl、@/composables/usePl*、@/utils/pl-*、表单子组件按需抽「无 dialog」用法 |
| 样式 | 页内 SCSS 或 web-admin/src/styles 下 mp-webview 专用片段,对齐三墙 Token |
建议实现顺序:
| 情况 | 行为 |
|---|---|
无 pl:plan:* |
页内无权限空态(沿用现网) |
| 安排时危化证未齐 | 拦截提示,不进入成功安排 |
| Sheet 无匹配 | 「无匹配结果」空态 |
| 打印未选送货客户 | Toast,不生成预览 |
| 网络/401 | 沿用 2026-09-14 文档(清 token → 小程序登录) |
PlPlanFormDialog 提交 payload 为核对表。/m/pl/* 已上线,重写时建议按屏替换并保留 API 层,避免中断 ticket 壳。