# Implementation Plan: Vue2 to Vue3 Migration ## Overview 本实施计划将「农小禹智慧农业系统」从 uni-app Vue2 迁移到 uni-app Vue3,以支持 HarmonyOS 打包。迁移将按照"基础设施 → 工具函数 → 公共组件 → 页面组件"的顺序进行,确保每个阶段都经过充分测试后再进入下一阶段。 实现语言: **JavaScript** (保持当前项目语言,降低迁移成本) ## Tasks - [x] 1. 环境准备和依赖升级 - 创建新分支 `feature/vue3-migration` - 备份当前项目代码 - 更新 package.json 中的依赖版本 - 更新 manifest.json 配置 - _Requirements: 4.1, 4.2, 4.4_ - [x] 1.1 编写依赖升级验证测试 - 验证 package.json 中 Vue 版本为 3.x - 验证 Vuex 版本为 4.x - 验证 uni-app 版本支持 Vue3 - _Requirements: 4.1, 4.2, 4.4_ - [x] 2. 迁移入口文件 main.js - 将 `new Vue()` 改为 `createSSRApp()` - 更新 Vuex store 的注册方式 - 迁移全局过滤器为全局方法 - 迁移 Vue.prototype 属性到 app.config.globalProperties - 更新 uview-ui 导入 (升级到 uview-plus) - 处理 Jessibuca 插件的条件编译 - _Requirements: 9.1, 9.2, 4.3_ - [x] 2.1 编写 main.js 迁移验证测试 - 验证使用 createSSRApp 创建应用 - 验证全局属性正确注册 - 验证插件正确加载 - _Requirements: 9.1, 9.2_ - [x] 3. 迁移 Vuex Store - 将 `new Vuex.Store()` 改为 `createStore()` - 移除 `Vue.use(Vuex)` - 保持所有 state、getters、mutations、actions 的业务逻辑不变 - _Requirements: 3.1, 3.4_ - [x] 3.1 编写 Store 功能测试 - 测试 state 读取 - 测试 mutations 提交 - 测试 actions 调度 - 验证业务逻辑一致性 - _Requirements: 3.4_ - [x] 4. 迁移工具函数模块 - 检查 utils 目录下的所有工具函数 - 移除 window/document 直接引用,替换为 uni-app API - 更新导出方式 (如需要) - _Requirements: 10.1, 10.2_ - [x] 4.1 编写工具函数单元测试 - 测试日期格式化函数 - 测试坐标转换函数 - 测试存储工具函数 - _Requirements: 10.1, 10.2_ - [x] 5. 迁移 API 服务模块 - 检查 api/services 目录下的所有服务文件 - 确保请求拦截器兼容 Vue3 - 更新 store 引用方式 (如有) - _Requirements: 11.1_ - [x] 6. Checkpoint - 基础设施验证 - 确保所有基础设施迁移完成 - 运行所有单元测试 - 询问用户是否有问题 - [x] 7. 迁移公共组件 - dict-tag.vue - 将 Options API 转换为 Composition API - 使用 `