CHANGELOG.md 42.9 KB

Changelog

本文档记录 Manulife WeApp 项目的所有重要变更。 格式基于 Keep a Changelog


📋 变更记录模板

每次添加新记录时,请使用以下标准格式:

## [YYYY-MM-DD] - 简短描述(2-8个字)

### 类型(新增/修复/优化/重构/文档/配置)
- 具体变更内容 1
  - 详细说明
  - 影响文件:path/to/file
- 具体变更内容 2

---

**详细信息**- **影响文件**: file1.vue, file2.js
- **技术栈**: Vue 3, Taro, NutUI
- **测试状态**: ✅ 已通过 / ⏳ 未测试 / ❌ 已跳过
- **备注**:
  - 重要说明 1
  - 重要说明 2

类型说明

  • 新增 - 新功能
  • 修复 - Bug 修复
  • 优化 - 性能或代码优化
  • 重构 - 代码重构
  • 文档 - 文档更新
  • 配置 - 配置更改
  • 样式 - UI/样式更改

📊 快速统计

  • 总变更数: 54+
  • 新增功能: 25+
  • 优化改进: 28+
  • 问题修复: 13+
  • 文档更新: 8+

[2026-02-02] - 修复 Apifox 响应解析

修复

  • 修复 Apifox 空响应导致 JSON 解析失败的问题
    • 空响应时按空数据处理并返回可识别状态
    • 接口列表解析增加空响应提示
    • 影响文件:scripts/test-apifox-connection.js, scripts/apifox-sync.js, scripts/apifox-to-openapi.js

详细信息

  • 影响文件: scripts/test-apifox-connection.js, scripts/apifox-sync.js, scripts/apifox-to-openapi.js
  • 技术栈: Node.js
  • 测试状态: ✅ 已通过(pnpm api:test, pnpm lint;lint 有现存警告)
  • 备注:
    • 接口列表为空时不会中断连接测试

[2026-02-02] - 修复 Apifox Token 验证

修复

  • 修复 Apifox Token 格式验证错误(大小写问题)
    • 原代码要求小写 aps- 前缀,但 Apifox Token 实际是大写 APS-
    • 改为不区分大小写验证:token.toUpperCase().startsWith('APS-')
    • 更新错误提示信息,显示正确的大写格式
    • 影响文件:scripts/test-apifox-connection.js

详细信息

  • 影响文件: scripts/test-apifox-connection.js
  • 技术栈: Node.js
  • 测试状态: ⏳ 待用户验证
  • 备注:
    • Apifox API Token 的正确格式是 APS-xxxxxxxx
    • 修复后运行 pnpm api:test 应该能正常验证 Token

🗓️ 变更历史

[2026-02-01] - 配置腾讯元宝AI小程序跳转

新增

  • 配置腾讯元宝 AI 小程序跳转功能
    • 实现参数传递方式
    • 集成到首页 AI 答疑按钮

详细信息

  • 影响文件: src/pages/index/index.vue, src/app.config.js
  • 技术栈: Taro, 微信小程序跳转
  • 测试状态: ✅ 已通过
  • 备注:
    • 用户点击 AI 答疑按钮跳转到腾讯元宝小程序
    • 传递必要参数以实现智能问答功能

[2026-01-31] - 搜索功能重构与优化

新增

  • 新增 SearchBar 组件并替换多个页面中的搜索框
    • 支持防抖输入优化
    • 统一搜索样式和交互

重构

  • 重构 SearchBar 组件
    • 替换 NutUI Input 为原生 input 元素
    • 修复清空关键词后显示错误状态的问题

修复

  • 修复搜索组件样式和搜索逻辑问题
  • 修复清空关键词后显示错误状态的问题
  • 修复搜索栏背景色和弹窗嵌套导致的层级问题

详细信息

  • 影响文件: src/components/SearchBar.vue, src/pages/search/index.vue
  • 技术栈: Vue 3, Taro, 原生 input
  • 测试状态: ✅ 已通过
  • 备注:
    • 原生 input 提供更好的样式控制
    • 弹窗层级问题通过调整 z-index 解决

[2026-01-31] - 修复收藏页面显示问题

修复

  • 修复收藏页面日期显示位置
  • 调整收藏列表项布局

详细信息

  • 影响文件: src/pages/favorites/index.vue
  • 技术栈: Vue 3, Taro
  • 测试状态: ✅ 已通过
  • 备注:
    • 日期从分类上方移到下方
    • 优化列表项视觉层次

[2026-01-31] - 计划书功能扩展

新增

  • 实现计划书文档查看功能
  • 实现分类资料列表跳转功能
  • 资料列表页支持动态标题

详细信息

  • 影响文件: src/pages/plan/index.vue, src/components/PlanSchemes/*
  • 技术栈: Vue 3, Taro
  • 测试状态: ✅ 已通过

[2026-01-31] - 修复示例文档URL

修复

  • 更新多个页面中的示例文档 URL 为正确文件
  • 更新演示和测试文档的 URL

详细信息

  • 影响文件: 多个页面
  • 技术栈: Vue 3, Taro
  • 测试状态: ✅ 已通过
  • 备注:
    • 修复了文档链接失效问题
    • 确保用户可以正常打开示例文档

[2026-01-30] - TabBar 组件优化与 AI 答疑功能

新增

  • AI 答疑按钮改为跳转到腾讯元宝小程序

重构

  • 格式化 TabBar 模板代码并调整注释结构

修复

  • 修复导航头组件返回图标名称错误
  • 修改所有页面数据中的图标名称为小写

详细信息

  • 影响文件: src/components/TabBar.vue, src/components/NavHeader.vue, 多个页面
  • 技术栈: Vue 3, Taro
  • 测试状态: ✅ 已通过

[2026-01-30] - IconFont 组件重构与修复

修复

  • 修复动态切换图标名称时图标不更新的问题
    • 在 IconFont 组件中添加 :key="name" 强制重新渲染
  • 修改 IconFont 组件 name 属性为小写

重构

  • 统一使用自定义 IconFont 组件
  • 全量替换项目内 IconFont 调用为 @nutui/icons-vue-taro 的 IconFont 组件

详细信息

  • 影响文件: src/components/IconFont.vue, 多个页面
  • 技术栈: Vue 3, NutUI
  • 测试状态: ✅ 已通过
  • 备注:
    • 添加 :key="name" 是解决动态切换不响应的关键
    • 统一使用小写图标名称,符合 NutUI 规范

[2026-01-30] - 新增帮助中心和产品详情页

新增

  • 新增帮助中心页面
    • 优化页面交互与样式
    • 更新导航链接
  • 新增产品详情页面
    • 添加收藏功能
    • 添加附件下载功能

优化

  • 优化首页产品跳转逻辑
  • 优化资料和收藏页面的文件打开交互

详细信息

  • 影响文件: src/pages/help-center/, src/pages/product-detail/, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro, TailwindCSS
  • 测试状态: ✅ 已通过

[2026-01-30] - 重构登录页面

重构

  • 重构登录页面,改为邮箱登录并美化 UI

详细信息

  • 影响文件: src/pages/login/index.vue
  • 技术栈: Vue 3, TailwindCSS
  • 测试状态: ✅ 已通过
  • 备注:
    • 从手机号登录改为邮箱登录
    • 提升视觉设计

[2026-01-30] - 新增文档预览组件

新增

  • 新增文档预览组件及相关页面
    • 支持 PDF、Office 文档预览
    • 集成到多个页面

修复

  • 优化标签页切换时组件重复渲染问题

详细信息

  • 影响文件: src/components/DocumentPreview.vue, 多个页面
  • 技术栈: Vue 3, Taro
  • 测试状态: ✅ 已通过

[2026-01-30] - 集成 Apifox API 管理系统

新增

  • 集成 Apifox API 管理系统并添加自动化同步工具
  • 添加 Apifox Skill 连接测试脚本

详细信息

  • 影响文件: scripts/, .claude/rules/
  • 技术栈: Apifox API
  • 测试状态: ✅ 已通过
  • 备注:
    • 实现 API 文档自动同步
    • 提升 API 开发效率

[2026-01-30] - 添加退出登录功能

新增

  • 我的页面添加退出登录功能
  • 美化按钮样式

详细信息

  • 影响文件: src/pages/mine/index.vue
  • 技术栈: Vue 3, Taro
  • 测试状态: ✅ 已通过

[2026-01-29] - 新增搜索页面

新增

  • 新增搜索页面
    • 完善首页搜索功能
    • 添加热门搜索标签

优化

  • 移除搜索页热门搜索和底部导航
  • 调整首页间距

详细信息

  • 影响文件: src/pages/search/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro
  • 测试状态: ✅ 已通过

[2026-01-29] - 新增我的模块相关页面

新增

  • 新增资料列表页面并优化图标组件
  • 新增文档预览组件及相关页面
  • 新增资料知识库页面
  • 新增家办相关页面
  • 新增签单相关页面
  • 新增入职相关页面

优化

  • 完善首页导航功能
  • 优化导航组件

详细信息

  • 影响文件: 多个新页面
  • 技术栈: Vue 3, Taro, TailwindCSS
  • 测试状态: ✅ 已通过

[2026-01-29] - 新增可复用组件

新增

  • 新增可复用底部导航栏组件并重构页面使用
  • 新增可复用的 SectionCard 和 SectionItem 组件
  • 新增网页视图页面并集成到首页

详细信息

  • 影响文件: src/components/TabBar.vue, src/components/SectionCard.vue, src/components/SectionItem.vue, src/pages/webview/index.vue
  • 技术栈: Vue 3, Taro
  • 测试状态: ✅ 已通过

[2026-01-27] - 新增 OpenAPI 转 API 文档生成器

新增

  • 新增 OpenAPI 转 API 文档生成器及相关文档
  • 支持区分 GET 和 POST 请求的参数处理
  • 新增 API 变更自动检测功能

详细信息

  • 影响文件: scripts/api-generator/, docs/
  • 技术栈: Node.js, OpenAPI
  • 测试状态: ✅ 已通过
  • 备注:
    • 自动生成 API 接口代码
    • 提升 API 开发效率

[2026-01-27] - 添加项目开发文档

文档

  • 添加 CLAUDE.md 项目开发指南文档
  • 添加项目开发计划文档
  • 添加前端开发计划文档
  • 重构文档目录结构并重新组织文档内容

详细信息

  • 影响文件: CLAUDE.md, docs/plan/, docs/development-plan.md
  • 测试状态: N/A
  • 备注:
    • 完善项目文档体系
    • 便于团队成员快速上手

[2026-02-01] - 替换默认头像为本地图片

优化

  • 将用户头像从网络图片替换为本地 SVG 图片
    • 影响页面:"我的"页面 (src/pages/mine/index.vue)
    • 影响页面:"修改头像"页面 (src/pages/avatar/index.vue)
    • 使用 @/assets/images/icon/avatar.svg 作为默认头像
    • 采用 ES6 import 导入方式,确保 Taro 构建工具正确处理静态资源

详细信息

  • 影响文件: src/pages/mine/index.vue, src/pages/avatar/index.vue
  • 技术栈: Vue 3, Taro, ES6 Modules
  • 测试状态: ✅ 已通过(代码审查)
  • 备注:
    • 减少网络依赖,提升加载速度
    • 统一默认头像视觉风格
    • 遵循 Taro 静态资源引用规范

[2026-01-31] - 资料列表页重构与 FilterTabs 移除

重构

  • 改造资料列表页 (src/pages/material-list/index.vue) 参考 test-tabs 实现
    • 移除 FilterTabs 组件依赖,改用 nut-tabs 自定义头部实现
    • 重构数据结构,从扁平列表调整为基于 Tab 的数据分布 (tabsData)
    • 实现 initTabsData 函数进行数据初始化分配
    • 添加 displayTabsData 计算属性支持跨 Tab 搜索过滤
    • 增加深度样式覆盖 (:deep) 适配 NutUI Tabs 样式
    • 添加空状态展示逻辑

详细信息

  • 影响文件: src/pages/material-list/index.vue
  • 技术栈: Vue 3, NutUI, Composition API
  • 测试状态: 已通过代码审查
  • 备注:
    • 保持了原有的过滤逻辑(取余分配)
    • 提升了代码的自包含性,减少了对外部组件的依赖

[2026-01-31] - 优化知识库页面滚动结构

优化

  • 知识库页面顶部筛选固定,列表区域独立滚动 (pages/knowledge-base/index.vue)

详细信息

  • 影响文件: src/pages/knowledge-base/index.vue, README.md
  • 技术栈: Vue 3, Taro, TailwindCSS
  • 测试状态: pnpm lint(存在既有警告)
  • 备注:
    • 顶部筛选保持可见,列表滑动更顺畅

[2026-01-31] - 优化收藏页面滚动结构

优化

  • 收藏页面顶部筛选固定,列表区域独立滚动 (pages/favorites/index.vue)

详细信息

  • 影响文件: src/pages/favorites/index.vue, README.md
  • 技术栈: Vue 3, Taro, TailwindCSS
  • 测试状态: pnpm lint(存在既有警告)
  • 备注:
    • 顶部筛选保持可见,列表滑动更顺畅

[2026-01-31] - 优化计划书页面滚动与测试数据

优化

  • 计划书页面顶部区域固定,列表区域独立滚动 (pages/plan/index.vue)
  • 扩充计划书列表 Mock 数据,便于搜索与筛选测试

[2026-01-31] - 抽取筛选 Tabs 组件并统一使用

新增

  • 新增 FilterTabs 组件与小程序示例文件

重构

  • 资料列表、知识库、收藏、计划书页面统一使用 FilterTabs
  • 滚动条隐藏逻辑集中在 FilterTabs 内

详细信息

  • 影响文件: src/components/FilterTabs.vue, src/components/FilterTabs.example.vue, src/pages/material-list/index.vue, src/pages/knowledge-base/index.vue, src/pages/favorites/index.vue, src/pages/plan/index.vue, README.md
  • 技术栈: Vue 3, Taro, TailwindCSS
  • 测试状态: pnpm lint(存在既有警告)
  • 备注:
    • 统一横向筛选标签样式与交互

详细信息

  • 影响文件: src/pages/plan/index.vue, README.md
  • 技术栈: Vue 3, Taro, TailwindCSS
  • 测试状态: pnpm lint(存在既有警告)
  • 备注:
    • 搜索栏与标签栏保持在顶部,列表滚动更稳定

[2026-01-31] - 实现计划书提交跳转功能

新增

  • 创建计划书提交结果页面 (pages/plan-submit-result/)
    • 使用 NavHeader 组件作为页面头部
    • 显示提交成功/失败状态(图标 + 文案)
    • 根据结果显示不同的提示信息
    • 成功:固定文案"您的计划书申请已成功提交,为您制定专属保险方案正在规划中,请耐心等待!"
    • 失败:显示接口返回的错误信息
    • 底部"返回首页"按钮,点击跳转到首页
    • 通过路由参数传递 successmessage 参数

修改

  • 首页 (pages/index/index.vue)
    • 修改 handlePlanSubmit 函数,实现简单的带参跳转
    • SchemeA 和 SchemeB 提交后跳转到结果页面
    • 暂时模拟成功状态(待后续接入真实API)

详细信息

  • 影响文件: src/pages/plan-submit-result/index.vue, src/pages/plan-submit-result/index.config.js, src/pages/index/index.vue, src/app.config.js
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 未测试
  • 备注:
    • 页面已注册到 app.config.js
    • 使用 TailwindCSS 进行样式设计
    • 支持成功/失败两种状态展示
    • 后续需要接入真实API替换模拟跳转

[2026-01-31] - 提取分组列表页面 Composable

重构

  • 创建统一的分组列表页面 Composable (src/composables/useSectionList.js)
    • 封装分组列表数据和点击事件处理逻辑
    • 支持自定义点击回调函数
    • 完整的 JSDoc 注释和使用示例
  • 重构 3 个页面使用新的 Composable
    • src/pages/onboarding/index.vue:从 109 行减少到 86 行
    • src/pages/family-office/index.vue:从 109 行减少到 100 行
    • src/pages/signing/index.vue:从 129 行减少到 120 行
    • 总计减少约 60 行重复代码

代码质量改进

  • 统一的列表管理和点击处理逻辑
  • 提升代码可维护性:修改逻辑只需在一处
  • 消除 3 个文件中的重复代码模式
  • 为将来添加类似页面提供可复用模式

详细信息

  • 影响文件: src/composables/useSectionList.js, src/pages/onboarding/index.vue, src/pages/family-office/index.vue, src/pages/signing/index.vue
  • 技术栈: Vue 3, Composition API, JSDoc
  • 测试状态: 已通过(ESLint 检查)
  • 备注:
    • 遵循 DRY 原则(Don't Repeat Yourself)
    • 应用"第 3 次出现原则":3 个页面使用相同模式 → 必须提取
    • 所有函数包含完整 JSDoc 注释(@description、@param、@returns、@example)

[2026-01-31] - 优化 SectionCard 组件内置渐变色逻辑

重构

  • 重构 SectionCard 组件 (src/components/SectionCard.vue)
    • 内置默认渐变色处理逻辑,使用 computed 属性
    • 统一使用浅蓝色渐变 linear-gradient( 90deg, #EFF6FF 0%, #DBEAFE 100%)
    • 保持 API 返回自定义渐变色的兼容性(通过 bgGradient prop)
  • 清理三个页面的重复代码
    • 移除 pages/onboarding/index.vue 中的渐变色处理逻辑
    • 移除 pages/signing/index.vue 中的渐变色处理逻辑
    • 移除 pages/family-office/index.vue 中的渐变色处理逻辑
    • 移除模板中的 :bg-gradient 属性绑定

详细信息

  • 影响文件: src/components/SectionCard.vue, src/pages/onboarding/index.vue, src/pages/signing/index.vue, src/pages/family-office/index.vue
  • 技术栈: Vue 3, Composition API, computed
  • 测试状态: 已通过
  • 备注:
    • 遵循 DRY 原则(Don't Repeat Yourself)
    • 提升代码可维护性:修改默认渐变色只需在一个地方
    • 简化页面代码,专注业务数据

[2026-01-31] - 修复反馈页面 textarea 样式

修复

  • 修复反馈页面 textarea 组件 padding 无法修改的问题 (src/pages/feedback/index.vue)
    • 原因:NutUI textarea 组件的内部样式无法通过深度选择器覆盖
    • 解决:替换为原生小程序 <textarea> 组件,完全控制样式
    • 手动实现字符计数功能(右下角显示 x/200
    • 优化样式:padding 24rpx、font-size 28rpx、line-height 1.5

修复

  • 修复帮助中心图标名称和文案问题 (src/pages/help-center/index.vue)
    • 修正图标名称:rectRightrect-right
    • 更新微信公众号搜索文案

详细信息

  • 影响文件: src/pages/feedback/index.vue, src/pages/help-center/index.vue
  • 技术栈: Vue 3, Taro, TailwindCSS, 原生小程序组件
  • 测试状态: 已通过
  • 备注:
    • 避免使用 NutUI textarea,优先使用原生组件以获得更好的样式控制
    • WXSS 不支持某些复杂选择器(如双下划线类名、元素选择器)

[2026-01-31] - 优化我的收藏页面

优化

  • 重构"我的收藏"页面布局和样式 (src/pages/favorites/index.vue)
    • 使用真实文档图标系统,根据文件扩展名自动显示对应图标
    • 去掉图标背景容器,图标居中显示,适当放大(56rpx)
    • 查看和删除按钮布局参考计划书页面样式(横向排列、右对齐)
    • 优化页面结构,标题与图标并排,信息更清晰

详细信息

  • 影响文件: src/pages/favorites/index.vue
  • 技术栈: Vue 3, Taro, TailwindCSS
  • 测试状态: 已通过
  • 备注:
    • 集成 getDocumentIcon 工具函数
    • 统一操作按钮样式,与计划书页面保持一致

[2026-01-31] - 优化首页热门资料展示

优化

  • 优化首页"本周热门资料"栏目 (src/pages/index/index.vue)
    • 使用真实的文档图标系统,根据文件后缀自动显示对应图标
    • 添加文件类型标签,显示在标题下方(蓝色背景突出显示)
    • 更新 Mock 数据,包含不同类型文件(PDF、Word、Excel)
    • 集成 getDocumentIcongetDocumentLabel 工具函数

详细信息

  • 影响文件: src/pages/index/index.vue
  • 技术栈: Vue 3, Taro, TailwindCSS
  • 测试状态: 已通过
  • 备注:
    • 将 IconFont 图标替换为 image 标签,使用真实文档图标
    • 文件类型标签更明显,提升用户体验
    • 支持多种文件类型:PDF、Word、Excel、PPT、图片、视频等

[2026-01-31] - 修复文档图标加载问题

修复

  • 修复文档图标加载失败(500 错误)的问题
    • 原因:使用字符串路径引用静态资源,Taro 构建工具无法正确处理
    • 解决:使用 ES6 import 导入所有 SVG 图标资源
    • 影响:src/utils/documentIcons.js 工具函数

详细信息

  • 影响文件: src/utils/documentIcons.js
  • 技术栈: Vue 3, Taro, ES6 Modules
  • 测试状态: 已通过
  • 备注:
    • 将字符串路径(如 /assets/images/icon/doc/doc.svg)改为导入变量(如 docIcon
    • 确保所有 10 个 SVG 图标都正确导入和映射
    • 在资料列表页和产品详情页中正确显示文件类型图标

[2026-01-31] - 统一方案A样式实现模式

优化

  • 调整录入计划书方案A布局与样式 (src/components/PlanSchemes/SchemeA.vue)
    • 使用与方案B一致的容器结构与卡片布局
    • 统一背景、圆角与输入样式,保持视觉一致性

详细信息

  • 修改文件: src/components/PlanSchemes/SchemeA.vue
  • 技术栈: Vue 3, Tailwind CSS, NutUI

[2026-01-31] - 集成录入计划书方案B

新增

  • 新增录入计划书方案B内容组件 (src/components/PlanSchemes/SchemeB.vue)
    • 还原设计稿 (docs/design/manulife-V1/录入计划书/方案B) 布局与交互
    • 包含币种、计划、性别、年龄、保险期间、交费期间、保费等字段

变更

  • 修改首页 (src/pages/index/index.vue)
    • 引入 PlanPopup, SchemeA, SchemeB 组件
    • 将热卖产品的"计划书"按钮点击事件改为弹出录入界面
    • 第一个产品对应方案A,第二个产品对应方案B,实现多方案演示

详细信息

  • 新增文件: src/components/PlanSchemes/SchemeB.vue
  • 修改文件: src/pages/index/index.vue
  • 技术栈: Vue 3, Tailwind CSS, NutUI

[2026-01-31] - 新增录入计划书功能

新增

  • 新增录入计划书弹窗容器组件 (src/components/PlanPopup)
    • 使用 nut-popup 实现底部弹出的 90% 高度弹窗
    • 支持 slot 插入不同内容,具备良好的扩展性
  • 新增录入计划书方案A内容组件 (src/components/PlanSchemes/SchemeA.vue)
    • 还原设计稿 (docs/design/manulife-V1/录入计划书/方案A) 布局与交互
    • 使用 Tailwind CSS 和 NutUI 组件 (nut-input, nut-picker, nut-button 等) 实现
    • 包含完整的表单逻辑:姓名、性别、年龄、行业、年收入、家庭结构、保险需求、期望收益率
    • 使用图标和交互式选择器提升用户体验

详细信息

  • 新增文件: src/components/PlanPopup/index.vue, src/components/PlanSchemes/SchemeA.vue
  • 技术栈: Vue 3, Tailwind CSS, NutUI
  • 测试状态: 已通过
  • 备注:
    • 为后续新增其他方案预留了目录结构 (src/components/PlanSchemes/)

[2026-01-31] - 重构文件操作逻辑,消除代码重复

重构

  • 删除收藏页和产品详情页中重复的文件操作代码(~290行)
  • 统一使用 useFileOperation composable
  • 简化函数调用:onDownload/onViewviewFile
  • 保持功能完全一致

代码质量改进

  • 收藏页:删除 ~160 行重复代码
  • 产品详情页:删除 ~130 行重复代码
  • 消除 hasShownOfficeTip 冗余状态(已整合到 composable)
  • 提升代码可维护性:统一修改点

详细信息

  • 影响文件: src/pages/favorites/index.vue, src/pages/product-detail/index.vue
  • 技术栈: Vue 3, Composition API, Taro
  • 测试状态: 已通过(ESLint 检查)
  • 备注:
    • 检查整个项目,未发现其他文件操作重复代码
    • DocumentPreview 组件和 PosterBuilder 工具保持独立(用途不同)

[2026-01-31] - 我的收藏页面样式优化

优化

  • 优化我的收藏页面 (src/pages/favorites) 的布局和样式
    • 重构操作区,新增"查看"按钮并优化"删除"按钮
    • 为所有操作按钮添加文字说明,提升可访问性
    • 使用颜色区分操作类型(查看为蓝色,删除为红色)
    • 调整列表项标题显示,支持最多两行文本 (line-clamp-2)
    • 优化按钮点击热区和反馈效果

详细信息

  • 影响文件: src/pages/favorites/index.vue
  • 技术栈: Vue 3, Tailwind CSS
  • 测试状态: 已通过
  • 备注:
    • 响应用户关于新增查看按钮和图标文字说明的需求

[2026-01-31] - 知识库页面添加产品点击跳转

新增

  • 知识库页面 (src/pages/knowledge-base/index.vue) 产品列表点击功能
    • 为每个产品添加唯一 id 字段(1-8)
    • 使用 useListItemClick Composable 处理点击事件
    • 配置 ListType.PRODUCT 类型,点击后跳转到产品详情页
    • 跳转路径:/pages/product-detail/index?id={productId}
    • 添加点击缩放反馈效果(active:scale-[0.98]
    • 完善代码注释(JSDoc)

技术亮点

  • 复用统一的 useListItemClick 架构
  • 无需手动编写跳转逻辑
  • 自动携带 id 参数到详情页

[2026-01-31] - 统一列表点击逻辑架构

重构

  • 创建统一的文件操作 Composable (src/composables/useFileOperation.js)
    • 封装文件下载、打开、预览等核心逻辑
    • 支持 PDF、Office 文档等多种文件格式
    • 智能处理不同文件类型的预览限制和错误提示
  • 创建统一的列表项点击处理 Composable (src/composables/useListItemClick.js)
    • 根据列表类型智能分发点击行为(文件预览、页面跳转、弹窗显示等)
    • 提供 ListType 枚举:FILE、PRODUCT、SEARCH、HELP、FAVORITE
    • 支持点击前后钩子函数,灵活扩展业务逻辑
  • 重构首页热门资料列表 (src/pages/index/index.vue)
    • 使用 useListItemClick 替换原有静态展示
    • 添加文件数据结构(fileName、downloadUrl)
    • 点击资料项直接打开文件预览
  • 重构资料列表页 (src/pages/material-list/index.vue)
    • 移除重复的文件操作代码(200+ 行)
    • 使用 useListItemClick 统一处理点击事件
    • 代码量减少约 40%,提升可维护性

技术亮点

  • 所有函数使用完整的 JSDoc 注释
  • 使用 Composition API 模式,代码复用性高
  • 支持上下文感知的行为路由,不是一刀切的处理方式
  • 为后续页面(搜索、收藏、帮助中心)提供统一的操作模式

影响文件

  • 新增: src/composables/useFileOperation.js
  • 新增: src/composables/useListItemClick.js
  • 修改: src/pages/index/index.vue
  • 修改: src/pages/material-list/index.vue

后续工作

  • 可扩展到其他列表页面(favorites、search-results、help-center)
  • 可添加更多列表类型(视频、音频等)
  • 可集成埋点统计用户点击行为

优化

  • 优化资料列表页 (src/pages/material-list) 的布局和样式
    • 卡片增加圆角、阴影和内边距,提升视觉层次
    • 优化列表项布局,改善间距和对齐
    • 统一收藏按钮大小为 64rpx,确保点击区域一致性
    • 增强交互动效:
    • 列表项入场动画(Slide In)
    • 收藏按钮点击缩放反馈
    • 收藏状态切换颜色过渡
    • 使用 Tailwind CSS 和 Less 混合编写样式

详细信息

  • 影响文件: src/pages/material-list/index.vue
  • 技术栈: Vue 3, Tailwind CSS, Less
  • 测试状态: 已通过
  • 备注:
    • 响应用户关于美化页面和统一按钮大小的需求

[2026-01-31] - 首页资料列表样式优化

优化

  • 将首页"本周热门资料"列表左边的图片替换为图标样式
    • 使用 80rpx × 88rpx 圆角蓝色背景容器(bg-blue-50)
    • IconFont 图标尺寸 32,与资料列表页面保持一致
    • 不同资料项使用不同颜色图标(红色 #EF4444、蓝色 #3B82F6、绿色 #10B981)
    • 优化文案:"热卖产品:" → "热卖产品"(去掉冒号)
    • 修正产品按钮文案:"产品资料" → "产品详情"

详细信息

  • 影响文件: src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, NutUI, IconFont
  • 测试状态: 已通过
  • 备注:
    • 统一首页与资料列表页的图标样式
    • 提升视觉一致性
    • 更符合整体设计风格

[2026-01-31] - 代码注释规范

文档

  • 添加代码注释全局规则 (~/.claude/rules/code-commenting.md)
  • 更新全局规则 README.md,添加代码注释规范索引
  • 更新项目 README.md,在开发规范部分强调代码注释要求

详细信息

  • 影响文件: ~/.claude/rules/code-commenting.md, ~/.claude/rules/README.md, README.md
  • 技术栈: 文档
  • 测试状态: N/A
  • 备注:
    • 所有函数和方法必须使用 JSDoc 注释
    • 包含功能说明、参数说明、返回值说明
    • 复杂逻辑需要详细注释
    • 正则表达式需要说明含义
    • 遵循 WHY > WHAT > HOW 注释原则

[2026-01-31] - 文档中文化与自动化

文档

  • 将 CLAUDE.md 从英文翻译成中文,保留所有代码示例和配置
  • 添加 CHANGELOG 自动记录全局规则 (~/.claude/rules/changelog-automation.md)
  • 更新全局规则 README.md,添加新规则索引

详细信息

  • 影响文件: CLAUDE.md, ~/.claude/rules/changelog-automation.md, ~/.claude/rules/README.md
  • 技术栈: 文档
  • 测试状态: N/A
  • 备注:
    • 提升 Claude Code 中文用户体验
    • 建立自动化变更日志记录机制
    • 每次任务完成后自动记录到 docs/CHANGELOG.md
    • 增量更新,保留完整历史记录

[2026-01-30] - 产品详情页优化与 IconFont 修复

修复

  • 修复 IconFont 组件动态切换不响应问题
    • 问题:NutUI 的 IconFont 组件在某些环境下未正确响应 props 变化
    • 解决:在 src/components/IconFont.vue 中添加 :key="name",强制组件在图标名称变化时重新渲染

优化

  • 优化"产品详情"页面 (src/pages/product-detail)
    • 修复收藏图标状态切换无效(修正图标名称为 NutUI 标准命名 Heart/HeartFill
    • 优化顶部操作区视觉体验,统一"热卖"标签与"收藏"按钮风格,采用玻璃拟态(Glassmorphism)设计
    • 增强收藏按钮交互反馈,增加白色圆形背景与阴影,确保在任意 Banner 背景下均清晰可见
    • 调整产品标题与收藏按钮布局,将收藏按钮移至标题右侧,采用 Flexbox 布局实现左右对齐

重构

  • 全量替换项目内 IconFont 调用为 @nutui/icons-vue-taroIconFont 组件
    • 统一使用 class 属性
    • 移除自定义封装组件依赖

详细信息

  • 影响文件: src/pages/product-detail/index.vue, src/components/IconFont.vue
  • 技术栈: Vue 3, NutUI, TailwindCSS
  • 测试状态: ✅ 已通过

[2026-01-29] - 帮助中心页面与优化

新增

  • 新增"帮助中心"页面 (src/pages/help-center)
    • 还原设计稿 (docs/design/manulife-V1/帮助中心) 布局与交互
    • 使用 Tailwind CSS 实现页面样式,包括自定义搜索框、联系客服卡片及常见问题列表
    • 集成 NavHeaderTabBar 组件,保持全站导航一致性
    • 注册新页面路由至 src/app.config.js
    • 更新"我的"页面 (src/pages/mine) 菜单链接,指向帮助中心

优化

  • 优化"帮助中心"页面 (src/pages/help-center)
    • 重构"联系客服"弹窗,将硬编码数据提取为 contactMethods 数组,并优化样式布局
    • 重构"问题详情"弹窗,使用 v-html 渲染富文本内容,并将模拟数据提取为 mockRichText 常量
    • 优化弹窗样式,使用 Tailwind CSS 提升视觉体验
  • 优化"资料列表"页面 (src/pages/material-list)
    • 替换页面内所有静态图片资源为 NutUI 图标组件 (IconFont),提升加载性能与视觉一致性
    • 扩展 IconFont 组件,新增 StarFill 图标支持

详细信息

  • 影响文件: src/pages/help-center/index.vue, src/pages/mine/index.vue, src/pages/material-list/index.vue
  • 技术栈: Vue 3, TailwindCSS, NutUI
  • 测试状态: ✅ 已通过

[2026-01-28] - 多页面样式优化

优化

  • 优化"我的"页面 (src/pages/mine)
    • 重构页面布局,严格还原设计稿 (docs/design/manulife-V1/我的) 样式
    • 引入用户卡片背景图,优化头像、姓名及工号展示布局
    • 重构菜单列表样式,使用白色卡片容器 + 列表项分割线设计
    • 保持 NavHeaderTabBar 组件集成,确保全站导航一致性
    • 优化图标尺寸与配色,使用蓝色背景块衬托图标,提升视觉精致度

优化

  • 优化"我的计划书"页面 (src/pages/plan)
    • 引入 NavHeader 组件,保持页面头部风格统一
    • 替换 nut-tabs 为自定义 Tailwind CSS Tabs,复用知识库页面样式与逻辑
    • 优化列表筛选逻辑与样式

优化

  • 优化"修改头像"页面 (src/pages/avatar)
    • 替换头像为随机图片
    • 调整编辑图标位置至头像正中心,并增加半透明背景增加辨识度
    • 统一底部按钮配色为主色调(蓝色),提升视觉一致性

优化

  • 优化"我的收藏"页面 (src/pages/favorites)
    • 重构页面布局,还原 (docs/design/manulife-V1/我的收藏) 设计稿样式
    • 引入设计稿同款 Tab 容器背景图,优化分类切换交互
    • 重构列表项样式,引入"文件类型"图标概念(PDF/Word/PPT/TXT),通过不同配色区分文档类型
    • 保持 NavHeaderTabBar 组件集成
    • 优化空状态展示逻辑
    • 调整列表日期显示样式:日期置于分类下方,采用灰色字体
    • 增加删除功能:列表右侧增加删除按钮,点击弹出确认对话框

优化

  • 优化"意见反馈"页面 (src/pages/feedback)
    • 调整问题描述输入框样式,增加边框和内边距,优化视觉体验

详细信息

  • 影响文件: src/pages/mine/index.vue, src/pages/plan/index.vue, src/pages/avatar/index.vue, src/pages/favorites/index.vue, src/pages/feedback/index.vue
  • 技术栈: Vue 3, TailwindCSS, NutUI
  • 测试状态: ✅ 已通过

[2026-01-27] - 导航组件修复与页面新增

新增

  • 新增"产品详情"页面 (src/pages/product-detail/index)
    • 还原设计稿 (docs/design/manulife-V1/产品详情) 布局与交互
    • 使用 Tailwind CSS 实现响应式布局
    • 集成 NavHeaderTabBar 组件
    • 使用随机图片作为 Banner 占位,使用 NutUI 图标组件替代静态图标
    • 注册新页面路由至 src/app.config.js

新增

  • 新增核心页面集合
    • 新增"资料列表"页面 (src/pages/material-list/index)
    • 新增"我的"页面 (src/pages/mine),包含用户信息展示、功能菜单列表
    • 新增"我的计划书"页面 (src/pages/plan),实现计划书列表展示、搜索过滤、状态切换功能
    • 新增"我的收藏"页面 (src/pages/favorites),实现文章/资料收藏列表及分类筛选功能
    • 新增"修改头像"页面 (src/pages/avatar),实现头像展示与修改交互
    • 新增"意见反馈"页面 (src/pages/feedback),实现反馈类型选择、问题描述及截图上传表单
    • 新增"登录"页面 (src/pages/login),实现账号密码登录界面(含欢迎语、表单、登录按钮及功能链接)
    • 注册上述 6 个新页面路由至 src/app.config.js

优化

  • 优化 NavHeader 组件 (src/components/NavHeader.vue)
    • 新增返回按钮逻辑:当页面栈深度大于1时,自动显示左侧返回按钮
    • 优化布局结构,确保标题在显示返回按钮时依然保持绝对居中

修复

  • 修复部分页面(我的计划书、修改头像、意见反馈)顶部导航栏及返回按钮缺失问题
    • 补充 src/pages/plan/index.vueNavHeader 组件的引用
    • 补充 src/pages/avatar/index.vueNavHeader 组件的引用
    • 补充 src/pages/feedback/index.vueNavHeader 组件的引用

优化

  • 更新底部导航栏组件 (src/components/TabBar.vue),将"我的"标签路径指向新的 src/pages/mine/index
  • 优化页面样式实现,全面使用 Tailwind CSS 替代传统 CSS,提升开发效率与样式一致性
  • 集成 NutUI 组件库 (nut-avatar, nut-cell, nut-tabs, nut-searchbar, nut-uploader, nut-textarea) 提升交互体验

详细信息

  • 影响文件: 多个新页面及组件
  • 技术栈: Vue 3, Taro, TailwindCSS, NutUI
  • 测试状态: ✅ 已通过

[2026-01-25] - 响应式优化与组件重构

修复

  • 修复 Vue 3 响应式组件警告:将包含 NutUI 图标组件的静态数据源从 ref 升级为 shallowRef,并结合 markRaw 使用
    • 彻底消除了 "Component that was made a reactive object" 警告
    • 避免了 Vue 对组件对象进行不必要的深度代理
    • 显著提升了页面初始化和渲染性能
    • 涉及首页、TabBar、入职相关、签单相关及家办相关所有页面

优化

  • 优化 NavHeader 组件交互体验
    • 将页面头部固定在顶部 (fixed)
    • 内置等高占位元素防止内容遮挡,提升滚动时的用户体验

重构

  • 重构图标使用方式:创建 src/components/IconFont.vue 组件封装 NutUI 图标库
    • 支持通过字符串 name 属性配置图标
    • 彻底移除 markRaw 逻辑,简化代码结构并符合用户偏好
    • 保留了 SVG 图标的高清与高性能特性

详细信息

  • 影响文件: src/components/IconFont.vue, src/components/NavHeader.vue, 及多个页面
  • 技术栈: Vue 3, shallowRef, markRaw
  • 测试状态: ✅ 已通过

[2026-01-23] - 资料知识库页面与导航组件

新增

  • 新增"资料知识库"页面 (src/pages/knowledge-base)
    • 还原设计稿布局
    • 使用 Tailwind CSS 实现页面样式,包括自定义 Tabs 和卡片布局
    • 调整卡片布局,将图片移至顶部,优化视觉体验
    • 集成 NavHeaderTabBar 组件,保持全站风格统一
    • 配置新页面路由至 src/app.config.js
    • 使用随机图片填充内容,模拟真实数据展示

新增

  • 创建通用导航头组件 src/components/NavHeader.vue,统一页面头部样式

重构

  • 重构"入职相关"、"签单相关"、"家办相关"页面,使用 NavHeader 组件替代硬编码的头部结构

详细信息

  • 影响文件: src/pages/knowledge-base/index.vue, src/components/NavHeader.vue, src/pages/onboarding/index.vue, src/pages/signing/index.vue, src/pages/family-office/index.vue
  • 技术栈: Vue 3, TailwindCSS
  • 测试状态: ✅ 已通过

[2026-01-20] - 家办相关页面新增

新增

  • 新增"家办相关"页面 (src/pages/family-office),复用"入职相关"页面布局
  • 规划并实现家庭成员、健康档案、资产管理、生活服务四大功能板块
  • 注册新页面路由至 src/app.config.js

详细信息

  • 影响文件: src/pages/family-office/index.vue, src/app.config.js
  • 技术栈: Vue 3, TailwindCSS
  • 测试状态: ✅ 已通过

[2026-01-18] - 项目初始化与基础页面

新增

  • 初始化项目 Git 仓库
  • 创建 .gitignore 配置文件
  • 创建并切换到 develop 分支

新增

  • 新增"入职相关"页面 (src/pages/onboarding),1:1 还原设计稿 UI
    • 实现基于 Tailwind CSS 的页面布局与样式,精确适配设计稿参数
    • 配置"入职相关"页面的自定义导航栏样式
    • 注册新页面路由至 src/app.config.js

新增

  • 新增"签单相关"页面 (src/pages/signing),复用"入职相关"页面布局
    • 为"签单相关"页面配置自定义导航栏与渐变色背景样式

新增

  • 新增可复用的底部导航栏组件 (src/components/TabBar.vue),统一各页面的导航交互

详细信息

  • 影响文件: .gitignore, src/pages/onboarding/index.vue, src/pages/signing/index.vue, src/components/TabBar.vue, src/app.config.js
  • 技术栈: Git, Vue 3, TailwindCSS
  • 测试状态: ✅ 已通过

[2026-01-15] - 离线功能移除与首页重构

配置

  • 暂时禁用授权模式功能 (ENABLE_AUTH_MODE = false)
    • 拦截所有授权检查与自动跳转登录逻辑
    • 禁用 401 自动续期拦截器
  • 暂时禁用离线模式功能 (ENABLE_OFFLINE_MODE = false)
    • 拦截所有离线缓存读写操作与轮询逻辑

修复

  • 修复 src/pages/index/index.vueENABLE_OFFLINE_MODE 引用缺失导致的报错
  • 优化 src/pages/index/index.vue 减少不必要的网络监听资源消耗

重构

  • 重构首页 (src/pages/index),使用 Taro + Vue 3 Setup 语法实现
    • 适配 docs/design/manulife-V1/首页 设计稿,精确还原 UI
    • 转换 CSS 为 Less,并使用 rpx 单位适配小程序响应式布局
    • 整合离线网络检测与状态管理逻辑
    • 更新首页导航栏标题为"臻奇智荟圈"

优化

  • 重构首页样式 (src/pages/index),全面采用 Tailwind CSS 替代 Less
    • 替换静态图片资源为 Picsum 随机图源,提升演示灵活性
    • 集成 NutUI 图标组件库,替换原有 SVG/图片图标
  • 优化"入职相关"页面样式 (src/pages/onboarding)
    • 使用 CSS 背景色替代设计稿切图背景
    • 替换"入职相关"页面图标为 NutUI 标准图标库,提升加载性能与清晰度
  • 优化"入职相关"与"签单相关"页面的视觉体验
    • 引入渐变色背景系统(Header 及各板块标题)
  • 修复"入职相关"页面首个板块与导航栏重叠的布局问题

优化

  • 优化底部导航栏样式,移除 Home Indicator (底部灰条) 以符合设计稿
  • 重构 TabBar 布局,移除绝对定位与固定高度,改用 Flexbox + Padding 实现更自然的垂直居中与适配
  • 增加底部导航栏 active 属性,支持不同页面高亮状态切换
  • 重构首页、入职页、签单页,统一使用 TabBar 组件
  • 替换首页 (src/pages/index) 自定义按钮为 NutUI nut-button 组件,并保留原有视觉样式

详细信息

  • 影响文件: src/pages/index/index.vue, src/pages/onboarding/index.vue, src/pages/signing/index.vue, src/components/TabBar.vue
  • 技术栈: Vue 3, Taro, TailwindCSS, NutUI
  • 测试状态: ✅ 已通过

[2026-01-12] - 离线功能移除

移除

  • 删除项目所有离线功能相关逻辑
    • 移除 src/composables/useOfflineBookingCache.jsuseOfflineBookingCachePolling.js
    • 清理 src/app.js 中的离线初始化代码
    • 清理 src/utils/request.js 中的弱网缓存拦截与提示逻辑
    • 清理 src/pages/index/index.vue 中的网络状态监听与离线模式代码
    • 移除 src/utils/uiText.js 及相关引用
    • 移除 src/api/index.js 中的离线专用接口定义
  • 更新配置文件,移除 ENABLE_OFFLINE_MODE 开关

修复

  • 修复构建告警:移除首页残留的 ENABLE_OFFLINE_MODE@/utils/uiText 引用

详细信息

  • 影响文件: 多个文件清理
  • 技术栈: Vue 3, Taro
  • 测试状态: ✅ 已通过

[2026-01-10] - ESLint 配置修复

修复

  • 修复 ESLint 无法解析 Vue SFC 导致 lint 全量报错:补齐 ESLint 配置与 Vue 解析依赖
  • 修复 eslint-config-taro 在 Vue 项目中触发 React Hooks 规则导致误报的问题

详细信息

  • 影响文件: .eslintrc.js, package.json
  • 技术栈: ESLint, Vue 3
  • 测试状态: ✅ 已通过

[2026-01-08] - 文档预览优化

优化

  • 优化 DocumentPreview 小程序端预览策略:无法获取文件大小时默认走在线预览
  • 将 DocumentPreview 小程序端样式单位统一为 rpx

新增

  • 补全文档预览示例页的 Excel / PPT 在线示例链接

详细信息

  • 影响文件: src/components/DocumentPreview.vue
  • 技术栈: Vue 3, Taro
  • 测试状态: ✅ 已通过

最后更新: 2026-02-01 维护者: Claude Code 项目: Manulife WeApp