Files
EmailBill/openspec/changes/archive/2026-02-17-remove-v1-calendar-stats-budget/specs/routing/spec.md
SunCheng c49f66757e
Some checks failed
Docker Build & Deploy / Build Docker Image (push) Waiting to run
Docker Build & Deploy / Deploy to Production (push) Has been cancelled
Docker Build & Deploy / Cleanup Dangling Images (push) Has been cancelled
Docker Build & Deploy / WeChat Notification (push) Has been cancelled
1
2026-02-18 21:16:45 +08:00

2.8 KiB
Raw Blame History

REMOVED Requirements

Requirement: Calendar View Route

Reason: V1 日历页面已由 V2 版本完全替代V1 路由不再需要
Migration: 用户应访问 /calendar-v2 路由,使用新版日历功能


Requirement: Budget View Route

Reason: V1 预算页面已由 V2 版本完全替代V1 路由不再需要
Migration: 用户应访问 /budget-v2 路由,使用新版预算管理功能


Requirement: Statistics V1 Default Route

Reason: V1 统计页面已由 V2 版本完全替代V1 默认路由不再需要
Migration: 系统默认路由应指向 /statistics-v2,用户将自动使用新版统计功能


Requirement: V1/V2 Version Toggle Logic

Reason: V1 版本完全下线后,版本切换逻辑不再需要
Migration: 移除 useVersionStore 中的版本切换代码,简化路由守卫逻辑。所有用户默认使用 V2 版本。


Context

本规范定义了 EmailBill 前端路由系统中 V1 相关路由的移除操作。随着 V2 版本的稳定上线V1 的日历、预算、统计三个核心模块的路由定义已成为遗留代码。

受影响的路由

  • /calendar → CalendarView.vue (V1 日历视图)
  • /budget → BudgetView.vue (V1 预算管理)
  • / → statisticsV1/Index.vue (V1 统计页面,默认首页)

现有版本控制机制

  • useVersionStore 提供 isV2() 方法判断用户偏好
  • 路由守卫根据版本偏好自动跳转到对应的 V1 或 V2 路由
  • V2 路由命名规则: 原路由名 + -v2 后缀

移除后的预期行为

  • 访问 /calendar/budget/ 将返回 404 或重定向到 V2 版本
  • useVersionStore 中的版本切换逻辑被简化或移除
  • 路由守卫不再需要判断 V1/V2 版本

Validation

验证标准

  1. 路由配置文件 (Web/src/router/index.js):

    • 不包含 /calendar, /budget, / 的 V1 路由定义
    • V2 路由 (/calendar-v2, /budget-v2, /statistics-v2) 正常工作
  2. 版本控制逻辑 (Web/src/stores/version.js 或类似文件):

    • 移除或简化 isV2() 相关的版本切换代码
    • 确保所有路由默认使用 V2 版本
  3. 手动测试验证:

    • 直接访问 /calendar 不会加载 V1 页面
    • 直接访问 /budget 不会加载 V1 页面
    • 访问根路径 / 自动跳转到 V2 统计页面或返回 404
    • V2 路由 (/calendar-v2, /budget-v2, /statistics-v2) 正常访问

Dependencies

移除 V1 路由的前置条件:

  1. V1 页面文件 (CalendarView.vue, BudgetView.vue, statisticsV1/Index.vue) 已删除
  2. V2 页面功能已验证完整,可以完全替代 V1
  3. 用户已迁移到 V2 版本,或系统强制使用 V2

移除后不影响:

  • V2 路由配置和页面功能
  • 路由守卫的认证检查逻辑 (requiresAuth)
  • 其他非核心模块的路由 (如 /login, /settings)