8.3 KiB
8.3 KiB
业务功能迁移验收清单
文档状态
- 状态:阶段 0 盘点产物
- 日期:2026-05-25
- 目标:按业务闭环跟踪 Vue3 Web 迁移进度
状态说明
| 状态 | 含义 |
|---|---|
| Not Started | 未开始 |
| Inventory | 已完成盘点,等待迁移 |
| In Progress | 正在迁移 |
| Web Ready | Web 版本可验收 |
| Deferred | 延后迁移 |
| Dropped | 明确废弃 |
模块总览
| 优先级 | 模块 | 当前源码 | Web 目标目录 | 状态 | 主要风险 |
|---|---|---|---|---|---|
| P0 | 应用基座 | src/main.js、src/App.vue、vite.config.js |
web/src/app |
Not Started | 启动、环境、网络恢复逻辑 |
| P0 | 平台适配层 | uni.* 分散调用 |
web/src/services |
Not Started | 替换不完整会造成隐性缺陷 |
| P0 | 配置和 Store | src/constant、src/store |
web/src/constants、web/src/stores |
Not Started | 持久化和客户端配置 |
| P0 | 请求和登录 | src/request、src/manager、src/hooks |
web/src/services/http、web/src/features/auth |
Not Started | token、424、微信授权 |
| P0 | AI 聊天 | src/pages/ChatMain、src/pages/ChatModule、src/utils/WebSocketManager.js |
web/src/features/chat |
Not Started | WebSocket、流式响应、滚动键盘 |
| P1 | 首页和发现 | src/pages/index、src/pages/Discovery |
web/src/features/chat、web/src/features/discovery |
Not Started | 首页发现与聊天联动 |
| P1 | 商品详情 | src/pages/goods、src/components/GoodDetail |
web/src/features/goods |
Not Started | 图片、日期、地图 |
| P1 | 预订 | src/pages-booking |
web/src/features/booking |
Not Started | 表单、金额、支付参数 |
| P1 | 订单 | src/pages-order |
web/src/features/order |
Not Started | 支付、退款、二维码 |
| P2 | 工单服务 | src/pages-service、src/components/CreateServiceOrder |
web/src/features/service |
Not Started | 图片上传、电话、反馈 |
| P2 | 快捷入口 | src/pages-quick |
web/src/features/quick |
Not Started | 与聊天指令联动 |
| P2 | WebView 桥接 | src/pages/webview、src/pages-bridge |
web/src/features/bridge |
Not Started | iframe、postMessage、外部页面兼容 |
| P2 | 通用组件 | src/components |
web/src/components |
Not Started | uni 标签、弹窗、滚动、canvas |
| P3 | 测试页和 demo | src/pages/test、各组件 demo |
web/src/features/dev |
Deferred | 非核心路径 |
阶段 0:盘点和基线冻结
- 输出总体迁移计划:
docs/MIGRATION_PLAN.md - 输出路由映射:
docs/ROUTE_MIGRATION_MAP.md - 输出 uni API 替换矩阵:
docs/UNI_API_REPLACEMENT_MATRIX.md - 输出业务功能迁移验收清单:
docs/FEATURE_MIGRATION_CHECKLIST.md - 录制或截图旧版本核心流程,作为视觉和行为基线。
- 明确目标 Web 运行环境:普通 H5、微信公众号、企业微信、内嵌 WebView 或多环境。
- 明确登录和支付在 Web 端的目标方案。
阶段 1:Vue3 Web 工程骨架
验收项:
- 新建
web/工程。 - 配置 Vue3、TypeScript、Vite、Pinia、Vue Router、Tailwind CSS。
- 配置
@/路径别名。 - 新增移动端基础布局和 CSS reset。
- 新增健康页、404 页和最小路由。
- 新工程不依赖
@dcloudio/*。 web工程可以启动和构建。
阶段 2:平台适配层
验收项:
services/router支持push、replace、back、reLaunch。services/storage支持 token 和普通持久化。services/event-bus支持 typedemit/on/off。services/feedback支持 toast、modal、loading。services/http支持 baseUrl、clientId、token、位置请求头、424 登出。services/browser支持图片选择、下载、定位、电话、分享的基础封装或降级。- 新 Web 业务代码不直接调用
uni.*、wx.*。
阶段 3:配置、Store 和 API
验收项:
- 客户端配置迁移,能读取当前
zhinian配置。 - 服务地址配置迁移,支持测试/生产切换。
- token key 和 refresh token 逻辑迁移。
appstore 迁移。locationstore 迁移。picturestore 迁移。selectedDatestore 迁移。- 登录 API 迁移并补基础类型。
- 首页、会话、商品、订单、工单、反馈 API 迁移。
阶段 4:AI 聊天主链路
验收项:
- 首页聊天页面可打开。
- 聊天消息模型 TypeScript 化。
- WebSocket 连接、心跳、重连、队列发送可用。
- 流式响应 parser 可解析服务端数据。
- 文本消息发送可用。
- AI 流式回复可展示。
toolCall.componentName能分发到对应卡片。- 至少支持快捷预订卡、发现卡、反馈卡、商品图文卡中的一类。
- 长文本卡详情页可打开。
- 停止生成可用。
- 超时、失败、断线有反馈。
- 移动端滚动到底和输入区键盘适配通过手工验收。
阶段 5:首页和发现
验收项:
- 首页顶部导航迁移。
- 欢迎区和背景图迁移。
- 发现页内容流可加载。
- 快捷问题可触发聊天发送。
- 发现页定位能力有授权失败降级。
- 轮播和 tabs 在移动端可用。
- 首页和聊天 tab 切换状态稳定。
阶段 6:商品、预订和订单
验收项:
- 商品详情可通过
/goods/:commodityId打开。 - 商品图片相册可预览。
- 酒店商品日期选择可用。
- 套餐、设施、位置展示可用。
- 预订确认页表单可填写。
- 金额计算和预订参数正确。
- 下单接口调用可用。
- 支付方案可用或有明确降级。
- 订单列表可加载。
- 订单详情可打开。
- 退款/取消/状态刷新可用。
- 二维码或券码展示可用。
阶段 7:工单、反馈、快捷入口和桥接
验收项:
- 工单列表可加载。
- 工单卡片信息完整。
- 服务呼叫表单可提交。
- 图片选择和上传可用。
- 反馈表单可提交。
- 快捷入口列表可打开。
- 快捷入口可触发聊天指令或跳转。
- WebView 改为 iframe 或外链跳转。
- 外部页面能通过
postMessage与主应用通信。 - 保存图片/下载能力有浏览器兼容提示。
阶段 8:Tailwind 和 UI 收敛
验收项:
- 主题色迁移到 Tailwind config 和 CSS variables。
- 基础间距、字体、颜色工具类映射完成。
- 新 Web 页面主要使用 Tailwind。
- 不再新增旧 SCSS 工具类依赖。
- 底部输入区、安全区、弹窗、抽屉形成统一实现。
- 移动端常见 viewport 无明显遮挡和溢出。
阶段 9:测试、灰度和旧栈下线
验收项:
- 请求层单元测试。
- 事件总线单元测试。
- 流式 parser 单元测试。
- WebSocket 管理器单元测试或集成测试。
- 聊天核心流程 E2E。
- 商品预订订单流程 E2E。
- 登录失效和 424 登出 E2E。
- 新旧版本核心路径对照验收。
- 旧 uni-app 代码零活跃依赖后再删除。
Web 端待确认问题
这些问题在阶段 1 之前需要产品或后端确认:
- 新 Web 应用运行在哪些容器:普通浏览器、微信公众号、企业微信、App WebView、PC 浏览器?
- 微信登录是否继续使用 openId/code 换 token,还是改为手机号/验证码/静默登录?
- 支付使用 JS-SDK、H5 支付、中间页跳转,还是仅保留下单不支付?
- 外部 H5 页面是否必须兼容旧
url + token query桥接方式? - 地图打开使用哪个地图服务:腾讯地图、高德地图、浏览器地图 URL?
- 保存图片在 Web 端是否接受“下载文件/长按保存”降级?
每个业务切片的完成定义
一个模块只有同时满足以下条件,才能标记为 Web Ready:
- 对应 Vue Router 路由已接入。
- 依赖 API 已通过新请求层调用。
- 页面不直接依赖
uni.*或wx.*。 - 关键状态进入 Pinia 或局部 composable,职责清晰。
- 移动端布局通过手工验收。
- 错误、空数据、加载态、登录失效有处理。
- 有构建、单元测试或手工验收记录。