Files
EmailBill/openspec/changes/archive/2026-02-13-budget-page-v2/proposal.md
SunCheng 162b6d02dd
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 26s
Docker Build & Deploy / Deploy to Production (push) Successful in 8s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 2s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
fix
2026-02-13 22:49:07 +08:00

2.5 KiB
Raw Blame History

Why

当前预算页面BudgetView.vue存在多个问题

  1. 风格不一致:与其他 v2 页面calendarV2、statisticsV2的页头设计不一致使用的是自定义的 van-nav-bar 而非统一的 DateSelectHeader 组件
  2. 代码质量问题:页面存在多个 bug包括状态管理混乱、数据刷新逻辑不清晰、存款计划日期切换不稳定等问题
  3. 维护困难代码结构复杂1000+ 行),组件职责不清晰,难以维护和扩展

需要重写预算页面以解决这些问题,并保持页面简洁高效。

What Changes

  • 页头重构:使用 DateSelectHeader 组件替代当前的 van-nav-bar,实现年月选择器(支持左右箭头切换月份)
  • 业务 tabs 布局调整:将"支出/收入/计划"tabs 紧随页头之后,保持原有业务逻辑
  • 预算内容重构
    • 保留现有的预算统计、分类列表、图表分析等核心功能
    • 重构数据加载逻辑,消除现有 bug未覆盖分类加载、存款计划切换、日期同步等问题
    • 优化组件结构,将复杂逻辑拆分为可复用的子模块
    • 改善状态管理,统一数据流
  • 统一交互体验
    • 实现左右滑动切换月份
    • 统一下拉刷新行为
    • 统一加载状态和错误处理

Capabilities

New Capabilities

  • budget-v2-page-layout: 新的预算 v2 页面布局,包含 DateSelectHeader + 业务 tabs + 内容区域
  • budget-v2-data-loading: 重构后的预算数据加载逻辑,消除现有 bug

Modified Capabilities

Impact

前端影响

  • 新增文件
    • Web/src/views/budgetV2/Index.vue - 新的预算 v2 主页面
    • Web/src/views/budgetV2/modules/ - 预算子模块(图表、列表、编辑等)
  • 修改文件
    • Web/src/router/index.js - 添加新路由或更新现有预算路由
    • 可能需要调整现有的 @/components/Budget/ 下的组件以适配新结构
  • 复用组件
    • @/components/DateSelectHeader.vue - 页头年月选择器
    • @/components/Budget/BudgetCard.vue - 预算卡片
    • @/components/Budget/BudgetEditPopup.vue - 预算编辑弹窗
    • @/components/Budget/SavingsConfigPopup.vue - 储蓄配置弹窗
    • @/components/Budget/BudgetChartAnalysis.vue - 预算图表分析

后端影响

  • 无需修改后端 API复用现有的预算相关接口

依赖关系

  • 依赖现有的 @/api/budget 模块提供的 API
  • 依赖 @/stores/ 中的相关状态管理(如有)
  • 依赖 Vant UI 组件库