Files
shanxia2.0/docs/superpowers/plans/2026-10-23-mobile-eight-pages-sequential-parity.md
T

14 KiB
Raw Blame History

移动端八页面完整一致性串行修改与验收计划

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking. 按本文逐页执行,不同时修改多个业务页面。

Goal: 在现有多轮完善的代码上补齐细节,使八个移动入口及其全部子界面,在用户明确排除项及授权判断不适合移动的桌面功能之外,与Web的业务信息、规则、操作和数据结果对应,采用适合触屏的交互。

Architecture: 先只读盘点八页面的范围、排除项和共享依赖,再逐页执行“完整核对 → 差异清单 → 最小修改 → 验证 → 关闭该页”。复用已有实现与测试,保护 Web 行为;共享组件变更纳入当前页面的影响验证。

Tech Stack: uni-app WebView、Vue 3、现有移动组件、业务 API、现有 Node/TypeScript 测试与浏览器交互测试、微信真机。


1. 本次要求与阶段

  • 用户最新明确(2026-10-24):导出、导入、打印、富文本、列表Excel复制、列表列宽调整/自适应不实现;允许在比对中自行判断其他不适合小程序的桌面功能并记录排除理由。业务内容与必要操作仍需对应,子界面继续核对。
  • 用户明确:修改一个界面,验证一个,再接着下一个;避免在多个界面间来回修补。
  • 用户补充:现有代码已多次修改完善,本次在现有版本上集中完善细节,不推倒重做,不随意换布局、组件或业务实现。
  • 本文为修改与验收执行计划。本次编制只读核对了入口、部分代码、测试和历史记录,未进行八页面完整审计或执行验收,不预先声称存在具体缺陷或已经通过。
  • 现有工作区有大量修改,包括业务代码、历史计划和测试。执行前记录实际工作区基线,不覆盖、回滚或把其他工作的改动计入本次成果。
  • 历史参考:docs/superpowers/plans/2026-10-21-mobile-eight-pages-qa.md、docs/testing/mobile-eight-pages/2026-10-21/ 与现有后续记录。历史通过记录按代码版本、场景和证据复用;不以旧结论代替新增的一致性检查,也不无理由重做有效验证。

2. 不可放宽的执行规则

  1. 同一时间仅有一个业务页面处于修改或验收阶段。初始全局只读盘点不算跨页修改。
  2. “一个页面”是一个完整菜单入口,包括列表、详情、新增编辑、所有页签、弹层、选择器、确认框、嵌套子界面以及入口内直接关联的业务操作。
  3. 当前页面先完整展开 Web 元素和行为,再集中形成差异清单;不能看到一个问题就改一个,然后跳到其他页。
  4. 先判断移动适用性,再核对实现。按scope.md记录明确排除项;其他不适合小程序的桌面交互已获用户授权可自行排除,记录理由、替代入口和业务影响,不逐项等待确认。不能因复杂、缺少样本或测试困难而排除核心业务规则。排除项不计为通过,字段设置继续保留。
  5. PC Web页面与功能不修改;移动WebView代码在web-admin/src/views/m/,不能因目录名称混淆范围。现有代码只改已证实的差异。已正确的行为保留;不做无关重构、全量格式化或视觉重新设计。Web 作为对照基准,不能为了消除差异而改小 Web 能力。
  6. 2026-10-24用户已批准:当前页完成代码改造与现有环境验证后可顺序推进,外部角色/上传/样本条件记录为最终待验,不冒充通过。真机由用户操作,代理不操作真机。每页仍先集中修改再验证,不能同时分散修改多页。
  7. 后续共享改动必须重跑受影响的已验收用例。复核通过不等于重新修改旧页;出现实际回归时,暂停推进并明确记录重开原因,不能为了维持“一次通过”的记录隐瞒问题。

3. 前置阶段:一次性全局盘点

读取入口:miniprogram/config/workbench-menus.js、miniprogram/config/api.js、miniprogram/pages/common/mp-webview.vue、web-admin/src/router/routes/staticRoutes.ts。

读取规范:.cursorrules、docs/miniprogram-ui-spec-sanqiang.md、当前 OpenSpec UI/API 规范。桌面与移动端视觉按各自规范执行,业务内容完整对应。

共享依赖重点:web-admin/src/components/mp/、web-admin/src/components/business/ 中被这些入口引用的组件、web-admin/src/layouts/MpWebviewShell.vue、web-admin/src/styles/mp-webview.scss、web-admin/src/styles/mp-crm-primitives.scss、web-admin/src/views/m/crm/useListReturnState.ts。以实际 import 和调用关系确定影响范围,不将整个目录作为修改目标。

  • 记录提交版本、相关工作区变更和运行环境;不输出密钥、凭据。
  • 核对八入口与桌面对应入口,读取历史设计和验收记录,建立明确排除项表(功能、适用页面、依据)。
  • 建立八页共享组件/样式/业务函数依赖表,识别会影响后续页面的行为。
  • 提前检查真实接口、专用测试数据、Web/移动账号、审批角色及 Android/iPhone 验证条件。避免到最后才发现核心链路无法验证。
  • 约定并记录共享组件的选择、确认、取消、清空、回填、异步响应与卸载行为。确需调整时在首次使用它的页面阶段集中修改,验证全部受影响入口;不单独展开全项目组件重构。
  • 建立本次验收记录目录 docs/testing/mobile-eight-pages/2026-10-23-sequential-parity/,其中 scope.md 记录范围与排除项,progress.md 记录串行状态,M01.md 至 M08.md 记录逐页证据。

本阶段仅盘点,不先分散修改八个页面。

4. 固定执行顺序与代码定位

顺序 页面 / 移动入口 Web 对照范围 移动修改候选范围 本页重点
M01 客户管理 /m/crm/customer web-admin/src/views/crm/customer/ web-admin/src/views/m/crm/customer/ 列表、完整详情页签、联系人、跟进、商机、合同关联、开票、日志、表单、附件及所有操作弹层
M02 产品管理 /m/crm/product web-admin/src/views/crm/product/ 及实际引用的产品表单/详情组件 web-admin/src/views/m/crm/product/ 全部字段、分类及路径、上下架、新增编辑、复制、确认框、返回状态
M03 报价单管理 /m/crm/quote web-admin/src/views/crm/quote/ web-admin/src/views/m/crm/quote/ 客户产品选择、完整明细、计算、自动补全、提审、版本及操作;提前核对与审批共享详情的完整字段
M04 报价单审批 /m/crm/quote/approval Web 报价审批实际入口与共享详情/审批组件 web-admin/src/views/m/crm/quote/approval.vue 及其引用组件 待办已办、审核详情、意见、审批过程、状态与人员权限、处理后刷新
M05 合同管理 /m/crm/contract web-admin/src/views/crm/contract/ web-admin/src/views/m/crm/contract/ 主体、客户产品、金额日期、全部明细、附件、单条批量操作;提前核对审批共享详情字段
M06 合同审批 /m/crm/contract/approval Web 合同审批实际入口与共享详情/审批组件 web-admin/src/views/m/crm/contract/approval.vue 及其引用组件 完整详情、单条批量审核、意见、部分失败、轨迹与状态同步
M07 运输计划 /m/pl/plan web-admin/src/views/pl/plan/ 及引用的运输业务组件 web-admin/src/views/m/pl/plan/ 及共享组件移动分支 合同与产品明细、客户车辆人员、地址段次、自动填充、安排调整、复制、保存重开
M08 危化品证上传 /m/pl/plan-cert web-admin/src/views/pl/plan-cert/ 及引用组件 web-admin/src/views/m/pl/plan-cert/ 计划筛选、段次产品、证书分组、齐备规则、上传预览移除重试、保存回显

表中的重点不是范围上限。每页以实际 Web 元素树递归盘点补全;目录仅为定位候选,具体修改文件由证实的差异决定。修复不另行在本仓库 Python 后端实现 CRM 业务。

5. 每一页必须完整执行的流程

以下步骤在 M01 至 M08 各自记录中逐项勾选;当前页全部关闭后才切换下一页。

  • 完整盘点。 使用相同账号、数据和业务状态,逐层展开 Web 页面。为每个字段、按钮、提示、筛选、选项、页签、状态、条件出现的元素建立唯一编号;点击进入下一级继续盘点。
  • 逐项映射。 记录 Web 路径、移动路径、显示条件、只读/必填/默认/校验规则、行为、数据结果和排除依据。表格改卡片、弹窗改移动面板不能减少信息、筛选或操作。
  • 形成完整差异清单。 区分缺失、错误、已一致、明确排除和待验证。每项差异记录复现步骤、预期、实际、代码位置及影响范围。未核实的疑点不直接改代码。
  • 集中制定本页修改步骤。 将相关问题按根因合并,列出确切文件、修改点和对应回归用例;缺陷清单完整后再动手,不根据猜测预写修复代码。
  • 补充可复现用例并最小修复。 对已证实行为缺陷先复现失败,再修复并验证。源码字符串检查只作辅助,不能代替真实交互。无需为单纯低风险样式调整编写镜像实现的测试。
  • 验证元素与交互。 覆盖打开、搜索、选择、确认、取消、关闭、重开,以及必填、禁用、隐藏、状态变化、错误反馈和恢复。
  • 验证自动填充。 覆盖首次选 A、A 改 B、清空、手改后重选、编辑回显、快速切换及迟到响应;逐字段断言结果和最终提交值。
  • 验证真实保存闭环。 使用专用测试记录完成保存、重开、刷新、Web 回查;明确检查移动展示值、请求值及最终读取值。模拟接口通过单独标记,不当成真实落库通过。
  • 验证移动展示和微信运行。 375/414 宽度检查关键界面,360 宽度补查复杂表单和长内容;核对遮挡、溢出、触达、滚动、返回、键盘、登录态与附件操作;Android/iPhone 真机结果分别记录。
  • 检查状态与权限。 使用实际角色及相应业务状态验证可见性和允许操作,禁止只用管理员或模拟权限代替全部角色结论。
  • 验证共享影响。 本页改动涉及共享组件时,验证其消费者;涉及桌面共用逻辑时验证 PC 分支。对已验收页面只执行受影响回归,通过后保留其关闭状态。
  • 关闭本页。 对照项全部有结果;应实现项全部通过;无遗留缺陷、未经约定的差异及待验证项;附具体证据、测试命令/结果、修改文件与剩余风险。功能缺陷未修复时继续本页;仅缺外部条件时按用户最新批准记录最终待验后顺序推进,不声称全验关闭。

矩阵每行至少包含:编号、元素完整路径、触发/权限/状态、Web 预期、移动对应、差异编号、修改文件、测试步骤、实际结果、证据、结论。分别统计“清单映射覆盖率”和“实际验证通过率”。

6. 复用现有验证设施

执行时先阅读现有脚本的运行前提和断言,按本次差异补齐,不另起一套重复框架。

页面 现有测试入口示例(均在 web-admin/scripts/)
M01 test-mp-crm-customer.mjs、test-mp-crm-customer-dom.mjs、mobile-customer-validation.test.ts、mobile-customer-panel-identity.test.ts
M02 test-mp-crm-product.mjs、test-mp-crm-product-dom.mjs、test-mp-crm-product-confirm-dom.mjs
M03/M04 test-mp-crm-quote.mjs、mobile-quote-selectors.test.ts、mobile-quote-persistence.test.ts、mobile-quote-versions-lifecycle.test.ts
M05/M06 test-mp-crm-contract.mjs、mobile-contract-form.test.ts、mobile-contract-picker.test.ts、mobile-contract-review.test.ts
M07 mobile-pl-plan-form.test.ts、mobile-pl-plan-persistence.test.ts、mobile-pl-plan-arrange.test.ts、mobile-pl-contract-line-picker.test.ts、mobile-pl-plan-detail.test.ts
M08 test-mp-pl-plan-cert.mjs

从 web-admin/ 执行纯 Node 脚本示例:node scripts/test-mp-crm-customer-dom.mjs;TypeScript 测试需读取脚本后确认其 runner,再采用项目已有命令。浏览器测试要先核对服务地址、fixture 和写入对象,不直接对不明业务环境运行。

编译检查使用 pnpm build:typecheck。将原有问题与本次新问题区分记录,不能通过删减断言制造通过。代码改动按仓库要求更新对应项目知识图谱;仅本计划文档新增无需更新代码图谱。

7. 最终收尾与进度报告

  • 八页面按顺序分别关闭,每次报告:本页核对范围、实际修复、测试结果、证据、是否满足进入下一页条件。
  • 最后只做跨页面连接与关键链路回归,重点是客户/产品 → 报价/审批 → 合同/审批 → 运输 → 证书,以及工作台进入和返回。
  • 汇总排除项、逐页对照表、问题与修复记录、自动测试结果、真实接口和真机证据。
  • 最终回归发现真实缺陷必须修复并重验,记录影响,不以“一次性完成”为理由省略必要返修。

本计划通过前置完整核对、最小修改和逐页验收减少反复;不承诺无法验证的“绝无遗漏”。完成结论必须基于实际证据。

2026-10-24 后续范围覆盖

用户取消八个列表中的刷新、清空筛选、字段设置、列统计、多选及对应批量操作,不添加不适合小程序的桌面管理工具。此前关于字段设置的设计批准不再适用。保留默认业务字段、搜索筛选、详情与单条必要业务操作。已有页仅因本次范围变化做定向收敛验证。共用文件可以改,但只能影响小程序,PC执行分支不改。