4.0 KiB
4.0 KiB
版本切换功能测试文档
功能说明
在设置的开发者选项中添加了版本切换功能,用户可以在 V1 和 V2 版本之间切换。当选择 V2 时,如果有对应的 V2 路由则自动跳转,否则保持当前路由。
实现文件
- Store:
Web/src/stores/version.js- 版本状态管理 - View:
Web/src/views/SettingView.vue- 设置页面添加版本切换入口 - Router:
Web/src/router/index.js- 路由守卫实现版本路由重定向
功能特性
- ✅ 版本状态持久化存储(localStorage)
- ✅ 设置页面显示当前版本(V1/V2)
- ✅ 点击弹出对话框选择版本
- ✅ 自动检测并跳转到对应版本路由
- ✅ 如果没有对应版本路由,保持当前路由
- ✅ 路由守卫自动处理版本路由
测试步骤
1. 基础功能测试
- 启动应用并登录
- 进入"设置"页面
- 找到"开发者"分组下的"切换版本"选项
- 当前版本应显示为 "V1"(首次使用)
2. 切换到 V2 测试
- 点击"切换版本"
- 弹出对话框,显示"选择版本"标题
- 对话框有两个按钮:"V1"(取消按钮)和"V2"(确认按钮)
- 点击"V2"按钮
- 应显示提示"已切换到 V2"
- "切换版本"选项的值应更新为 "V2"
3. V2 路由跳转测试
测试有 V2 路由的情况(日历页面)
- 确保当前版本为 V2
- 点击导航栏的"日历"(路由名:
calendar) - 应自动跳转到
calendar-v2(CalendarV2.vue) - 地址栏 URL 应为
/calendar-v2
测试没有 V2 路由的情况
- 确保当前版本为 V2
- 点击导航栏的"账单分析"(路由名:
bill-analysis) - 应保持在
bill-analysis路由(没有 v2 版本) - 地址栏 URL 应为
/bill-analysis
4. 切换回 V1 测试
- 当前版本为 V2,在
calendar-v2页面 - 进入"设置"页面,点击"切换版本"
- 点击"V1"按钮
- 应显示提示"已切换到 V1"
- 如果当前在 V2 路由(如
calendar-v2),应自动跳转到 V1 路由(calendar) - 地址栏 URL 应为
/calendar
5. 持久化测试
- 切换到 V2 版本
- 刷新页面
- 重新登录后,进入"设置"页面
- "切换版本"选项应仍显示 "V2"
- 访问有 V2 路由的页面,应自动跳转到 V2 版本
6. 路由守卫测试
直接访问 V2 路由(V1 模式下)
- 确保当前版本为 V1
- 在地址栏直接输入
/calendar-v2 - 应自动重定向到
/calendar
直接访问 V1 路由(V2 模式下)
- 确保当前版本为 V2
- 在地址栏直接输入
/calendar - 应自动重定向到
/calendar-v2
当前支持 V2 的路由
calendar→calendar-v2(CalendarV2.vue)
代码验证
版本 Store 检查
// 打开浏览器控制台
const versionStore = useVersionStore()
console.log(versionStore.currentVersion) // 应输出 'v1' 或 'v2'
console.log(versionStore.isV2()) // 应输出 true 或 false
LocalStorage 检查
// 打开浏览器控制台
console.log(localStorage.getItem('app-version')) // 应输出 'v1' 或 'v2'
预期结果
- ✅ 所有路由跳转正常
- ✅ 版本切换提示正常显示
- ✅ 版本状态持久化正常
- ✅ 路由守卫正常工作
- ✅ 没有控制台错误
- ✅ UI 响应流畅
潜在问题
- 如果用户在 V2 路由页面直接切换到 V1,可能会出现短暂的页面重载
- 某些页面可能没有 V2 版本,切换后会保持在 V1 版本
后续扩展
如需添加更多 V2 路由,只需:
- 创建新的 Vue 组件(如
XXXViewV2.vue) - 在
router/index.js中添加路由,命名格式为原路由名-v2 - 路由守卫会自动处理版本切换逻辑
示例:添加新的 V2 路由
// router/index.js
{
path: '/budget-v2',
name: 'budget-v2',
component: () => import('../views/BudgetViewV2.vue'),
meta: { requiresAuth: true }
}
添加后,当用户选择 V2 版本并访问 /budget 时,会自动跳转到 /budget-v2。