## 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 组件库