1. 13 Feb, 2026 18 commits
    • - 移除"是否生成说明"字段与"款项提取"配置的强依赖关系
      - "是否希望生成一份允许减少名义金额的提取说明?"现在作为独立字段
      - 删除错误的 watch 监听器,该监听器在选择"否"时会错误清除字段
      - 更新校验逻辑:withdrawal_enabled 改为可选字段
      - 更新架构文档:修正三层结构描述为字段结构说明
      
      影响文件:
      - src/components/plan/PlanTemplates/SavingsTemplate.vue
      - docs/plan/plan-entry-architecture.md
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • - 添加 contactService 和 feedback 功能开关到 src/config/features.js
      - 联系客服功能默认关闭,影响帮助中心页面的联系客服按钮和弹窗
      - 意见反馈功能默认关闭,影响我的页面的意见反馈菜单项
      - 修复 mine/index.vue 中未使用的 index 变量导致的 ESLint 警告
      hookehuyr authored
    • - 忽略 docs/parsed-backup/ 备份目录
      - 忽略 docs/to-parse/*.md 待处理文档
      - 保留 docs/to-parse/README.md 说明文件
      
      Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
      hookehuyr authored
    • - 添加缺失的 handlePlanClose 事件处理函数
      - 关闭时清空 selectedProduct 避免数据残留
      
      Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
      hookehuyr authored
    • - myListAPI 和 detailAPI 接口联调完成
      - 更新总体进度:96.6% (28/29)
      - 消息模块接口状态从"后端开发中"更新为"已完成"
      - 添加消息详情页布局和状态优化记录到 CHANGELOG
      hookehuyr authored
    • - 修复计划书信息列表布局,长文本自动换行不再挤压标签
      - 添加 pending(橙色) 和 processing(蓝色) 状态样式
      - 状态标记颜色与计划书列表页保持一致
      
      Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
      hookehuyr authored
    • ### 优化
      - 调整首页"臻奇荟"标题位置至左上方(pt-[128rpx])
      - 优化标题对齐方式为 text-left,适配整体页面布局
      - 调整 PlanPopup 弹窗高度从 90% 至 80%
      
      ---
      
      **详细信息**:
      - **影响文件**: src/pages/index/index.vue, src/components/plan/PlanPopupNew.vue
      - **技术栈**: Vue 3, Tailwind CSS
      - **测试状态**: 已通过
      - **备注**: 保持原有高度占位,防止布局塌陷
      
      Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
      hookehuyr authored
    • - pre-commit: 使用 tr | xargs 处理多行文件列表
      - commit-msg: 简化正则避免括号转义问题
      hookehuyr authored
    • - 消息列表页优先使用 API 返回的 title 字段
      - 保留 getItemTitle 作为降级方案
      - 更新 API 文档以反映 title 字段
      - 同步更新消息详情页
      hookehuyr authored
    • - 新增 usePlanView composable 封装计划书查看逻辑
      - 支持单文件直接预览,多文件显示选择弹框
      - 预览成功后自动标记为已查看
      - 消息列表第一页插入3条测试数据(1001/1002/1003)
      - 更新测试文件地址,使用项目 CDN 资源
      
      Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
      hookehuyr authored
    • hookehuyr authored
    • hookehuyr authored
    • - 配置 Vitest 测试框架
      - 添加 search/index.test.js 测试套件
      - 更新 README.md 和 MaterialCard 组件文档
      - 更新 pnpm 依赖
      
      Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
      hookehuyr authored
    • Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
      hookehuyr authored
    • 页面加载时使用 usePermission composable 检查用户登录状态,未登录时弹出登录提示并引导跳转
      
      Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
      hookehuyr authored
    • - 移除 material-list 页面中重复的 usePermission 导入和调用
      - 权限检查完全由 ListItemActions 组件内部处理
      - 简化 onView 函数直接调用 handleFileClick
      - 添加 ListItemActions 组件 README 文档
      
      Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
      hookehuyr authored
    • 更新API端点参数值以匹配后端接口规范,同时更新相关文档说明
      hookehuyr authored
    • - 新增 showMessageBadge 计算属性,从 userStore.unreadMsgCount 读取
      - 为菜单项添加 key 属性,用于识别消息菜单
      - 添加 .menu-badge 样式,与 TabBar 红点保持一致
      - 红点仅在未读消息数大于 0 时显示
      
      Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
      hookehuyr authored
  2. 12 Feb, 2026 22 commits
    • 创建统一的配置文件 src/config/app.js 管理 Mock 开关
      
      变更内容:
      - 新增 src/config/app.js 统一配置文件
      - 更新 8 个页面使用统一的 USE_MOCK_DATA 配置:
        - src/pages/material-list/index.vue
        - src/pages/feedback-list/index.vue
        - src/pages/message/index.vue
        - src/pages/week-hot-material/index.vue
        - src/pages/favorites/index.vue
        - src/pages/plan/index.vue
        - src/pages/search/index.vue
        - src/pages/product-center/index.vue
      
      收益:
      - 便于开发和测试环境的 Mock 数据切换
      - 统一代码风格,提升可维护性
      - 符合 DRY 原则
      
      Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
      hookehuyr authored
    • - 消息详情页获取详情后调用 userStore.fetchUserInfo(true)
      - 刷新用户信息以更新 unreadMsgCount
      - 从而使 TabBar 红点状态同步更新
      
      修改文件:
      - src/pages/message-detail/index.vue: 添加 useUserStore 导入和刷新调用
      - src/api/news.js: 修复注释格式(全角分号)
      
      Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
      hookehuyr authored
    • Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • - 新增 optimizeImageUrl 工具函数,自动为 CDN 图片添加缩略图参数
      - 反馈列表图片使用 200px 缩略图(200x 质量 70),点击预览加载原图
      - 消息详情页优化布局和样式(背景色、间距、字号)
      - 消息列表优化卡片样式(标题、状态标签、预览文本)
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • - 更新 CLAUDE.md:添加 2026-02-12 最新变更记录
      - 更新 README.md:完善项目说明和最新更新内容
      - 更新经验教训总结:新增 3 个重要实践案例
        * 权限检查 Composable 模式
        * 全局状态管理与页面生命周期协调
        * 导航返回按钮与路由栈协调
      
      记录了计划书模块、认证权限、消息功能等最佳实践
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • - 创建 usePlanPermission composable 统一权限检查逻辑
      - 首页:在模板层添加权限检查
      - 搜索页:在模板层添加权限检查
      - 产品中心页:保持 openPlanPopup 函数内的权限检查
      - 产品详情页:在模板层添加权限检查
      - 修复权限重复调用问题(只在模板层检查一次)
      
      影响文件:
      - src/composables/usePlanPermission.js
      - src/pages/index/index.vue
      - src/pages/search/index.vue
      - src/pages/product-center/index.vue
      - src/pages/product-detail/index.vue
      hookehuyr authored
    • - 在 logout() 函数中添加 unreadMsgCount.value = 0
      - 确保用户退出登录后 TabBar 红点正确消失
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • hookehuyr authored
    • hookehuyr authored
    • hookehuyr authored
    • - 移除 PlanFormContainer 中的 "提交成功" toast
      - 避免用户从结果页返回时看到重复提示
      - 结果页已清晰显示成功/失败状态,无需额外 toast
      
      影响文件:
      - src/components/plan/PlanFormContainer.vue
      - components.d.ts
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • - 创建 usePlanSubmit composable 统一处理弹窗关闭、状态清空、导航跳转
      - 重构 index、search、product-detail、product-center 页面使用 composable
      - 移除重复的 handlePlanSubmit 函数实现(~100 行)
      
      🤖 Generated with assistance from Claude Code
      hookehuyr authored
    • - 移除 console.log 调试语句
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • - 添加 unreadMsgCount 状态单独存储未读消息数
      - 修复从 res.data 读取 unread_msg_count 字段(该字段不在 user 对象中)
      - 优化 TabBarBadges 计算逻辑,直接从 unreadMsgCount 读取
      - 消息列表页面添加自动刷新已读状态功能
      
      影响文件:
      - src/stores/user.js
      - src/pages/message/index.vue
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • hookehuyr authored
    • 优化计划书提交成功后的用户体验,消除模态框关闭与页面跳转之间的延迟。
      
      ## 核心改动
      
      ### PlanFormContainer 组件优化
      - 添加 isClosingFromChild 状态,避免弹窗关闭时重复重置表单
      - 优化 visible watch 逻辑,在弹窗关闭时正确清理状态
      - 移除提交成功后的 toast 提示,改为立即触发 close 事件
      
      ### 父组件优化(index, search, product-center, product-detail)
      - handlePlanSubmit 改为 async 函数
      - 移除 500ms 延迟跳转,改为立即导航
      - 使用双 nextTick 确保 DOM 更新后再重置状态
      - 添加 handlePlanClose 函数统一处理弹窗关闭逻辑
      
      ## 技术细节
      
      **问题根源**:
      - 原流程:提交成功 → API 返回 → 500ms 延迟 → 关闭弹窗 → 导航
      - 用户感知:点击提交后模态框停留 1-2 秒才关闭,体验不佳
      
      **解决方案**:
      - PlanFormContainer:API 成功后立即 emit('close'),不等待 toast
      - 父组件:close 事件触发后,使用双 nextTick 确保:
        1. 第一次 nextTick:DOM 更新,模态框关闭动画开始
        2. 第二次 nextTick:动画完成,表单重置
        3. 立即导航到结果页
      
      ## 影响范围
      
      - src/components/plan/PlanFormContainer.vue
      - src/pages/index/index.vue
      - src/pages/search/index.vue
      - src/pages/product-center/index.vue
      - src/pages/product-detail/index.vue
      
      ## 测试建议
      
      1. 测试计划书提交流程是否正常工作
      2. 验证模态框关闭是否立即响应
      3. 确认表单数据在导航后正确清理
      4. 检查返回上一页时不会显示残留数据
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • hookehuyr authored
    • Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • hookehuyr authored
    • hookehuyr authored
    • - 增大按钮字体
      - 调整圆角样式
      - 使用真实API
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • …字段名为 unread_msg_count
      hookehuyr authored