CHANGELOG-archive-2024-2026.md 121 KB

[2026-02-12] - 修复登录页返回按钮

修复

  • NavHeader 组件添加 @back 事件支持
  • NavHeader 组件添加 preventDefaultBack prop,用于控制默认返回行为
  • 登录页实现自定义返回逻辑:点击返回按钮时清空 router store 并跳转到首页

详细信息

  • 影响文件: src/components/navigation/NavHeader.vue, src/pages/login/index.vue
  • 技术栈: Vue 3, Taro
  • 测试状态: 已通过
  • 备注: 修复 401 跳转后,登录页返回按钮无法工作的问题(导航栈已被清空)

[2026-02-12] - 计划书查看状态仅预览成功后翻转

修复

  • 预览成功后才调用查看接口,避免预览失败也翻状态
  • 本地列表状态即时更新,避免刷新导致位置变化

[2026-02-12] - 优化消息列表卡片布局

优化

  • 重构消息列表卡片布局,提升信息可读性
  • 简化卡片结构:第一行展示消息内容,第二行左侧展示时间,右侧展示状态
  • 调整标题、时间、状态的视觉层级
  • 使用 IconFont 组件替换旧的图标实现
  • 优化消息详情页布局:移除标题提取逻辑,仅展示“发送时间”(右上角)和完整内容,避免内容重复显示
  • 增加未读消息红点提示

[2026-02-12] - 修复结果页返回后表单未重置

修复

  • 关闭弹框时清理已选产品,确保返回后表单为空

详细信息

  • 影响文件: src/pages/index/index.vue, src/pages/search/index.vue
  • 技术栈: Vue 3, Taro 4
  • 测试状态: 未执行
  • 备注: 避免结果页返回后表单残留

[2026-02-12] - 优化计划书提交跳转体验

优化

  • 提交后关闭并重置弹框,跳转结果页去除固定延迟

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/index/index.vue, src/pages/search/index.vue, src/pages/product-detail/index.vue, src/pages/product-center/index.vue
  • 技术栈: Vue 3, Taro 4
  • 测试状态: 未执行
  • 备注: 避免关闭弹框后等待造成的困惑

[2026-02-12] - 优化错误提示并关闭Mock数据

优化

  • 消息列表页添加 API 错误提示
  • 资料列表页关闭 Mock 数据,使用真实接口

详细信息

  • 影响文件: src/pages/message/index.vue, src/pages/material-list/index.vue
  • 技术栈: Vue 3, Taro
  • 测试状态: 已通过
  • 备注: 提升用户体验,使用真实接口数据

[2026-02-12] - 计划书模块联调完成

新增

  • 计划书模块接口联调完成
    • submitPlanAPI(提交计划书表单):接口正常工作
    • listAPI(我的计划书列表):接口正常工作
  • 📊 API 集成进度更新
    • 已完成接口:26/29(89.7%)
    • 联调中接口:0 个

[2026-02-12] - 优化提取金额字段并新增每年提取字段

新增

  • 每年提取金额字段 (annual_withdrawal_amount):

    • 添加"每年提取金额"输入框,支持金额键盘输入
    • 与年缴保费字段使用相同的 PlanFieldAmount 组件
    • 自动进行分→元转换后提交到后端 API
  • 每年递增提取百分比字段 (annual_increase_percentage):

    • 添加"每年递增提取之百分比"输入框
    • 实时输入验证:只允许数字和小数点,最多2位小数
    • 范围限制:0-100,超出范围自动修正
    • 使用 Number.isNaN() 替代 isNaN() 以符合 ESLint 规范

优化

  • 统一提取币种为 USD

    • 修改 src/config/plan-templates.js 中所有储蓄型产品(GS、GC、FA、LV2)的 default_currencyHKD 改为 USD
    • 统一币种配置,简化后端处理
  • 动态输入提示文字

    • AmountKeyboard 组件添加 inputLabel prop,支持自定义键盘弹窗顶部的提示文字
    • 更新所有模板组件使用 :input-label prop
    • 提升用户体验,明确当前输入的金额类型

修复

  • 修复属性类型不匹配问题

    • annual_withdrawal_amountannual_increase_percentage 的默认值从空字符串 '' 改为 null
    • 解决 AmountKeyboard 组件期望 Number 类型但接收到 String 类型的警告
  • 修复百分比输入类型转换问题

    • onPercentageInput 函数中添加类型转换 String(value ?? '')
    • 解决 value.replace is not a function 错误
    • 处理 valuenull 或其他非字符串类型的情况

[2026-02-12] - 优化保额输入组件样式

优化

  • AmountKeyboard 组件样式重构
    • 移除原有的"流光/磨砂玻璃"特效,改为符合 Manulife 企业风格的简洁设计
    • 调整背景为纯白底色搭配微弱渐变 (bg-gradient-to-b from-blue-50 to-white)
    • 统一字体颜色和排版,增强可读性 (text-gray-900, text-[#007AFF])
    • 优化光标动画和标签样式,使其更加专业和沉稳
    • 保持原有功能逻辑和布局结构不变,仅做视觉层面的优化 ## [2026-02-11] - 优化计划书列表查看按钮显示

优化

  • 待处理和处理中状态隐藏查看按钮
    • 修改 src/pages/plan/index.vue 中的 ListItemActions 组件调用
    • :viewable 从固定值 true 改为动态计算:item.status === 'generated' || item.status === 'viewed'
    • 只有"已生成"和"已查看"状态才显示查看按钮
    • "待处理"和"处理中"状态不显示查看按钮

[2026-02-11] - 修复文件打开错误处理和优化用户反馈

修复

  • showModal 参数错误修复

    • 修复 useFileOperation.jsshowModalcancelText 参数为 undefined 导致的错误
    • 修改逻辑:只在 showCopyButtontrue 时才添加 cancelTextshowCancel 参数
    • 避免微信小程序报错 "parameter.cancelText should be String instead of Undefined"
  • PDF 文档打开失败提示优化

    • 将提示文案从"文件可能已损坏,请联系管理员"改为引导用户自主解决问题
    • 新增文案:"您可以复制链接在其他应用中打开,或前往'意见反馈'告诉我们"
    • 启用 PDF 文档的复制链接功能(与 Office 文档保持一致)
  • 统一错误处理交互

    • 所有文件打开失败场景统一显示"去反馈"取消按钮
    • 点击"去反馈"跳转到意见反馈页面 /pages/feedback/index
    • 点击"复制链接"复制文件下载链接到剪贴板

[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-11] - 优化文件扩展名解析和预览提示

优化

  • 文件扩展名解析增强
    • MaterialCard 组件现在支持从 downloadUrl 字段解析扩展名
    • getDocumentIcongetDocumentLabel 函数增强,支持从 srcdownloadUrl 多个字段解析
    • week-hot-material 页面简化数据映射,依赖组件内部自动解析扩展名

修复

  • Office 文档预览提示按钮文本
    • 修复小程序 showModalconfirmText 超过 4 个中文字符限制的问题
    • 将按钮文本从"继续,不再提醒"改为"继续预览"
    • 优化用户选择日志输出,明确显示"继续预览"而非"继续,不再提醒"

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

详细信息

  • 影响文件: src/components/cards/MaterialCard.vue, src/composables/useFileOperation.js, src/pages/week-hot-material/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 增强文件扩展名解析的鲁棒性,修复小程序平台限制问题

[2026-02-11] - 美化头像修改页面布局和样式

优化

  • UI 升级
    • 将页面背景色调整为淡灰色 (#F9FAFB),提升视觉舒适度
    • 增加头像展示卡片,采用白色背景和阴影效果,增强层次感
    • 优化头像容器样式,增加白色圆环边框
    • 改进编辑图标样式,改为右下角悬浮的蓝色相机图标,符合常见交互习惯
    • 统一底部按钮风格,使其更具质感且符合品牌调性

详细信息

  • 影响文件: src/pages/avatar/index.vue
  • 技术栈: Vue 3, Tailwind CSS, NutUI
  • 备注: 提升头像修改页面的视觉体验,使其更加现代和专业

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-11] - 优化计划书删除用户体验

优化

  • 删除后保持在当前页
    • 删除计划书后,不再跳回第1页,而是停留在当前页
    • 本地立即移除删除的项(用户马上看到效果)
    • 如果当前页被删空,自动回到上一页(而不是第1页)
    • 静默刷新当前页数据(后台同步,用户无感知)

详细信息

  • 影响文件: src/pages/plan/index.vue
  • 技术栈: Taro 4, Vue 3, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 提升用户体验,删除后无需重新翻页

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-11] - 统一分页起始页码从0开始

修复

  • 计划书页

    • 完善状态筛选功能(5个状态tab:全部、待处理、处理中、已生成、已查看)
    • 实现查看计划书功能(支持多文件选择,使用 ActionSheet)
    • 实现删除计划书功能(调用 deleteAPI)
    • 添加状态标记显示(4种状态颜色区分)
    • 修复分页从0开始
  • 消息页

    • 修复分页从0开始

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

详细信息

  • 影响文件: src/pages/plan/index.vue, src/pages/message/index.vue
  • 技术栈: Taro 4, Vue 3, NutUI
  • 测试状态: 已通过 ESLint 检查
  • 备注: 统一项目所有列表页的分页规范,确保与 API 文档一致

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-11] - 完善计划书 API 接口定义

新增

  • 计划书 API 接口完善
    • 新增 deleteAPI - 删除计划书接口(参数:计划书 ID)
    • 新增 viewAPI - 查看计划书接口(参数:计划书 ID)
    • 补充 listAPI - 计划书列表接口(支持分页、状态筛选、关键词搜索)
    • 为所有接口添加完整的 JSDoc 类型注释和参数说明

修复

  • API 规范文档格式问题
    • 修复 docs/api-specs/plan/list.md 的重复内容和 YAML 结构错误
    • 新增 docs/api-specs/plan/delete.mdview.md 规范文档

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

详细信息

  • 影响文件: docs/api-specs/plan/list.md, docs/api-specs/plan/delete.md, docs/api-specs/plan/view.md, src/api/plan.js
  • 技术栈: OpenAPI 3.0.1, JavaScript JSDoc
  • 测试状态: 已通过 ESLint 检查
  • 备注: 现在计划书模块拥有完整的 CRUD 接口定义

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 优化个人中心:视觉协调性调整

优化

  • 退出登录按钮
    • 改为纯白背景 (bg-white) + 阴影 (shadow-sm),与上方卡片风格保持一致
    • 移除之前的浅红色背景,消除与冷色调背景的视觉冲突,使整体界面更加干净和谐

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 优化个人中心:回归经典蓝色头部与精简信息

优化

  • 头部背景
    • 恢复经典的深蓝渐变 (#1E3A8A -> #2563EB -> #F5F7FA),替换之前的灰色过渡,确保与整体品牌风格统一,提升视觉辨识度
  • 用户信息
    • 移除“代理人”标签,精简界面元素,避免不必要的干扰

详细信息

  • 影响文件: src/pages/mine/index.vue
  • 技术栈: Vue 3, Tailwind CSS
  • 备注: 根据用户反馈调整,回归稳重且统一的视觉风格

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 优化个人中心视觉:平衡商务感与现代感

优化

  • 视觉微调:解决上一版“过于死板”的问题,在保持商务专业感的同时引入现代设计元素
    • 菜单列表:
    • 去除生硬的分割线,改为卡片内间距布局
    • 为图标增加极淡的品牌色背景 (bg-blue-50 等),恢复色彩识别度但保持低饱和度
    • 增加圆角 (rounded-[32rpx]) 使整体视觉更柔和
    • 退出按钮:
    • 改为红色调的背景 (bg-[#FEF2F2]) 配合红色文字,既有警示作用又不突兀,不再是简单的白条
    • 用户卡片:
    • 增加装饰性背景圆环,丰富视觉层次
    • 优化阴影和边框,使其更加精致

详细信息

  • 影响文件: src/pages/mine/index.vue
  • 技术栈: Vue 3, Tailwind CSS
  • 测试状态: 待验证
  • 备注: 最终定稿版本,兼顾了保险行业的专业性与现代APP的精致感

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 调整个人中心视觉风格为商务专业版

优化

  • 风格调整:将个人中心 (pages/mine/index) 从“科技磨砂”风格调整为“商务专业”风格,以适配保险业务人员的职业形象
    • 背景:移除多彩光斑,改为深蓝色 (#1E3A8A) 到白色的稳重渐变
    • 卡片:使用纯白背景配合深色投影,强调扎实感和可信度
    • 图标:统一使用深蓝色和深灰色,去除跳跃的糖果色背景
    • 细节:增加“代理人”标签,强化职业属性
  • 交互微调
    • 优化菜单点击反馈,使用更细腻的灰色背景过渡

详细信息

  • 影响文件: src/pages/mine/index.vue
  • 技术栈: Vue 3, Tailwind CSS
  • 测试状态: 待验证
  • 备注: 响应用户反馈,减少“活泼”感,增强“专业”感

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 重构个人中心页面视觉风格

优化

  • 视觉升级:将个人中心页面 (pages/mine/index) 重构为"科技/磨砂玻璃"风格
    • 新增动态背景光斑,营造科技感氛围
    • 采用 Glassmorphism (磨砂玻璃) 设计语言重绘用户信息卡片和菜单列表
    • 优化字体排版和图标配色,提升专业度
  • 交互改进
    • 增加细微的点击反馈和过渡动画
    • 优化头像展示区域的层级和质感

详细信息

  • 影响文件: src/pages/mine/index.vue
  • 技术栈: Vue 3, Tailwind CSS, Less
  • 测试状态: 待验证
  • 备注: 响应用户对于"简练专业和科技感"的视觉需求

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 优化首页网格导航视觉体验

优化

  • UI 升级:将“网格导航”板块升级为“高端专业”风格,与整体页面保持一致
    • 容器:统一采用圆角卡片、自定义阴影 (box-shadow) 和装饰光晕
    • 图标:增大尺寸,增加渐变背景 (bg-gradient-to-br) 和微边框
    • 交互:增加点击时的微缩放效果 (active:scale-95)
    • 排版:调整文字字重,提升精致感

详细信息

  • 影响文件: src/pages/index/index.vue
  • 技术栈: Vue 3, Tailwind CSS
  • 测试状态: 待验证
  • 备注: 保持了首页三个核心板块(网格导航、热卖产品、热门资料)的视觉统一性

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 优化首页热卖产品板块视觉体验

优化

  • UI 升级:将“热卖产品”板块升级为“高端专业”风格
    • 容器:统一采用圆角卡片、自定义阴影 (box-shadow) 和装饰光晕
    • 标题:增加蓝色竖条装饰,强化品牌识别度
    • 按钮:优化“查看更多”按钮样式,改为胶囊状设计,增加交互反馈

详细信息

  • 影响文件: src/pages/index/index.vue
  • 技术栈: Vue 3, Tailwind CSS
  • 测试状态: 待验证
  • 备注: 确保首页各板块风格统一

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 优化首页热门资料板块视觉体验

优化

  • UI 升级:将“本周热门资料”板块升级为“高端专业”风格
    • 背景:使用自定义细腻阴影 (box-shadow) 配合淡蓝色光晕装饰,提升视觉层次
    • 边界:增加极淡的 border-gray-100,使卡片轮廓更精致
  • 细节改进
    • 标题:增加蓝色竖条装饰,强化品牌识别度
    • 按钮:优化“查看更多”按钮样式,改为胶囊状设计,增加交互反馈

详细信息

  • 影响文件: src/pages/index/index.vue
  • 技术栈: Vue 3, Tailwind CSS
  • 测试状态: 待验证
  • 备注: 与 ProductCard 风格保持统一

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 优化 ProductCard 组件视觉质感

优化

  • UI 升级:将产品卡片从基础样式升级为“高端专业”风格
    • 背景:从 bg-gray-50 升级为 bg-white 配合细腻阴影 box-shadow,增加悬浮感
    • 装饰:右上角增加淡蓝色光晕装饰,提升视觉层次
    • 交互:增加点击时的微缩放效果 (active:scale-[0.99])
  • 组件重构
    • 移除 nut-button 依赖,改用原生 view + Flexbox 实现按钮,便于精确控制样式
    • 优化标签 (tags) 样式,增加动态边框逻辑
    • 优化排版,增强标题对比度 (font-bold, tracking-tight)

详细信息

  • 影响文件: src/components/cards/ProductCard.vue
  • 技术栈: Vue 3, Tailwind CSS
  • 测试状态: 待验证
  • 备注: 保持了品牌色 (#2563EB) 一致性,提升了整体精致度

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 移除 Apifox MCP 集成

删除

  • 移除 Apifox MCP 服务器配置

    • 清理 .claude/settings.json 中的 mcpServers 配置
    • 清理 .claude/settings.local.json 中的 Apifox MCP 权限配置
    • 原因:Apifox 接口已调整,无法自动访问,改为手动维护文档
  • 删除 Apifox 相关文档(6 份):

    • QUICKSTART_APIFOX.md - 快速开始指南
    • docs/guides/Apifox 集成指南.md - 完整集成指南
    • docs/mcp/如何切换到独立 Apifox 项目.md - MCP 配置说明
    • docs/mcp/MCP 配置测试指南.md - MCP 测试指南
    • docs/reports/Apifox 设置总结.md - 设置报告
    • docs/mcp/ 目录
  • 删除测试脚本(2 个):

    • test-apifox-skill.js - Apifox Skill 连接测试脚本
    • test-mcp-connection.sh - MCP 连接测试脚本
  • 删除配置文件

    • .env.apifox.example - 环境变量示例

变更说明

  • 保留 docs/api-specs/ 目录下的 OpenAPI 文档(手动维护)
  • 保留 scripts/generateApiFromOpenAPI.js(从 OpenAPI 生成代码,不依赖 Apifox MCP)
  • 保留 package.json 中的 api:generate 命令

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 计划书模块 API 集成与修复

新增

  • 计划书列表 API 集成listAPI 接入真实后端数据
    • 替换 Mock 数据为真实 API 调用
    • 支持分页加载(page, limit
    • 支持关键字搜索(keyword
    • 实现前端状态过滤(临时方案)

修复

  • 数据结构适配:修复 transformApiItem 函数处理实际 API 返回的数据
    • categories 字段:从字符串数组改为对象数组 [{id, name}]
    • order_status 字段:字符串类型(⚠️ 状态值不确定:推测 "3" = 生成中, "5" = 已生成)
    • total 字段:字符串类型而非整数
  • 状态映射修正:修正 mapOrderStatus 函数的状态映射逻辑
    • order_status = "3"status = "processing" (生成中)
    • order_status = "5"status = "generated" (已生成)
  • Tab 数据源更新:使用正确的 API 状态值("3", "5"
  • 字段映射修复PlanFormContainer.vuesmokersmoking_status

重构

  • 前端过滤方案:实现客户端状态过滤作为临时解决方案
    • 🔴 后端 API 不支持任何查询参数(page, limit, order_status, keyword
    • 前端在 fetchPlanList 函数中实现过滤逻辑
    • ⚠️ 重要order_status 状态值是推测的,需要与后端确认
    • 🔴 存在性能和分页准确性问题,待后端支持参数后优化

文档

  • 更新 API 集成日志
    • docs/api-docs/API 集成日志.md
    • 接口 1 (addAPI): 标记为 ✅ 已完成
    • 接口 3 (listAPI): 标记为 ⚠️ 待后端修复,详细说明缺少 order_status 参数的问题

详细信息

  • 影响文件: src/pages/plan/index.vue, src/components/PlanFormContainer.vue, docs/api-docs/API 集成日志.md
  • 技术栈: Taro 4, Vue 3, NutUI
  • 测试状态: 已完成联调测试
  • 备注:
    • ✅ 计划书表单提交功能正常工作
    • ⚠️ 计划书列表功能可用但存在性能问题(因缺少后端参数支持)
    • 🔴 建议后端添加 order_status 查询参数支持

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 修复 OpenAPI 生成器识别 title 字段

修复

  • 修复 API 生成器generateApiFromOpenAPI.js 现在同时支持 descriptiontitle 字段
    • 优先使用 description,如果为空则使用 title
    • 解决了 OpenAPI 文档中使用 title 字段时无法提取中文描述的问题
  • 更新 OpenAPI 文档
    • plan/add.mdapplication/x-www-form-urlencoded 改为 application/json
    • 使用 title 字段存储参数中文描述
    • 修正参数类型(如 customer_agestring 改为 integer
  • 重新生成 API 文件
    • src/api/plan.js - 参数描述现在正确显示中文名称
    • src/api/user.js - 参数描述优化

详细信息

  • 影响文件: scripts/generateApiFromOpenAPI.js, src/api/plan.js, src/api/user.js, docs/api-specs/plan/add.md
  • 技术栈: Node.js, OpenAPI Specification
  • 测试状态: 已验证
  • 备注: 提升了 API 文档生成的准确性

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 优化 NameInput 组件样式

优化

  • 样式重构:将 NameInput 组件从 Less 样式迁移到 Tailwind CSS
    • 遵循项目 Tailwind 优先的开发规范
    • 移除冗余的 Less 代码
  • UI 改进
    • 添加可见的圆角边框(border-gray-200, rounded-[12rpx])
    • 统一输入框的视觉风格

详细信息

  • 影响文件: src/components/plan/PlanFields/NameInput.vue
  • 技术栈: Vue 3, Tailwind CSS
  • 测试状态: 待验证
  • 备注: 响应用户需求,增强输入框视觉反馈

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 重构 API 接口层代码

重构

  • 简化 API 包装函数

    • 将多行包装函数简化为单行表达式
    • file.js:简化 fileListAPIweekHotAPI
    • get_product.js:简化 detailAPIlistAPI
    • plan.js:简化 addAPIlistAPI
  • 更新计划书 API

    • 移除旧的 submitPlanAPI 实现
    • 新增 addAPI(新增计划书)和 listAPI(计划书列表)
    • 使用统一的 fn(fetch.post/post/get) 调用方式
  • 清理代码

    • 移除 file.jsplan.js 的文件头部注释

文档

  • 新增计划书 API 文档docs/api-specs/plan/ 目录

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

详细信息

  • 影响文件: src/api/file.js, src/api/get_product.js, src/api/plan.js, docs/api-specs/plan/
  • 技术栈: API 层重构
  • 测试状态: 待验证
  • 备注: 简化代码结构,统一 API 调用模式

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 修复计划书弹窗按钮显示逻辑

修复

  • 未找到模板时的按钮逻辑
    • 未找到计划书模板时,底部只显示"关闭"按钮
    • 找到模板时,显示"取消"和"生成计划书"按钮
    • 通过 hasTemplate prop 控制按钮显示状态

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

详细信息

  • 影响文件: src/components/plan/PlanPopupNew.vue, src/components/plan/PlanFormContainer.vue
  • 技术栈: Vue 3, Composition API
  • 测试状态: 待验证
  • 备注: 改进用户体验,避免在无模板时显示无用的"生成计划书"按钮

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-10] - 升级依赖包到最新稳定版本

优化

  • NutUI 升级@nutui/nutui-taro 从 4.3.13 升级到 4.3.14

    • 包含 bug 修复和性能优化
    • 改进组件稳定性和兼容性
  • Taro 框架升级:所有 @tarojs/* 包从 4.1.9 升级到 4.1.11

    • 核心框架优化:@tarojs/taro, @tarojs/runtime, @tarojs/components
    • 插件更新:所有平台插件(weapp, h5, alipay, swan, tt, jd, qq)
    • 构建工具升级:@tarojs/cli, @tarojs/webpack5-runner
    • 新增依赖:@tarojs/service@4.1.11

改进

  • 更好的 TypeScript 支持
  • 小程序平台兼容性改进
  • 构建工具稳定性提升

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

详细信息

  • 影响文件: package.json, pnpm-lock.yaml
  • 技术栈: Taro 4.1.11, NutUI 4.3.14
  • 测试状态: 待验证(需测试核心功能和构建)
  • 备注: ⚠️ 建议在开发环境测试验证后再部署到生产环境

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-09] - 添加热卖产品 Mock 数据支持

新增

  • Mock 数据模块src/api/mock/):
    • 新增 hotProducts.js:包含 9 种产品的 Mock 数据
    • 覆盖所有计划书模板类型(人寿、重疾、储蓄)
    • 支持 form_sn 字段,对应不同的计划书模板
    • 包含完整的产品信息(名称、分类、标签、封面图)

优化

  • 首页 Mock 数据支持src/pages/index/index.vue):
    • 添加 USE_MOCK_DATA 开关控制数据来源
    • 开发环境使用 Mock 数据测试计划书功能
    • 生产环境调用真实 API(listAPI
    • 添加详细的 JSDoc 注释和使用说明

文档

  • CLAUDE.md 更新
    • 添加 Mock 数据工具使用指南
    • 说明支持的 Mock API 列表
    • 提供使用示例和注意事项

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

详细信息

  • 影响文件: src/api/mock/hotProducts.js, src/pages/index/index.vue, CLAUDE.md
  • 技术栈: Vue 3, Mock 数据
  • 测试状态: 开发环境已测试
  • 备注: ⚠️ 生产环境请设置 USE_MOCK_DATA = false

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

Changelog

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


Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-09] - 更新 API 集成日志和经验教训文档

文档

  • API 集成日志更新:
    • 完成 3 个待联调接口联调(addAPI, weekHotAPI, fileListAPI)
    • 新增"待联调接口快速清单"(便于快速定位待处理接口)
    • 新增 myPlanListAPI 接口定义(我的计划书列表)
    • 更新进度追踪:29个接口,82.8% 已完成
  • 经验教训文档更新:
    • 新增"复杂功能修改的系统性问题"章节(250+ 行)
    • 记录计划书模块开发中的系统性问题
    • 提供 5 步系统化修改流程解决方案
    • 包含反面案例和正面案例对比

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

详细信息

  • 影响文件: docs/api-docs/API 集成日志.md, docs/lessons-learned.md
  • 技术栈: 文档
  • 测试状态: N/A
  • 备注: 提升项目文档完整性,积累开发经验

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-09] - 升级 AmountKeyboard 组件 UI 为现代科技风(V3 - 清新毛玻璃)

优化

  • 视觉风格:切换为明亮的半透明磨砂玻璃风格(Light Glassmorphism)
    • 背景色调整为 bg-white/70,配合 backdrop-blur-2xl,通透且有质感
    • 装饰流光改为更柔和的蓝紫色 mix-blend-multiply 模式,避免过度抢眼
  • 色彩调整
    • 文字颜色回归深灰色系(Slate 800/500),保证极佳的可读性
    • 光标使用清新的天蓝色(Blue 500),带柔和发光效果
  • 细节打磨
    • 顶部标签增加白色半透明背景和微阴影,提升层次感
    • 底部高光条改为 Slate 色系,与整体色调融合

[2026-02-09] - 升级 AmountKeyboard 组件 UI 为现代科技风(V2)

优化

  • 背景升级:使用 bg-slate-900/90 配合 backdrop-blur-2xl 实现真正的磨砂玻璃质感,底部增加微弱的彩色流光
  • 布局重构:将币种符号调整至金额上方,形成垂直视觉流(Vertical Flow),突出金额数值的核心地位
  • 排版优化
    • 顶部标签改为极简的 INPUT AMOUNT,增加字间距(tracking-widest)
    • 金额数值字号增大至 100rpx,增强视觉冲击力
    • 光标高度和阴影调整,使其更加自然
  • 细节打磨
    • 移除多余的装饰性元素,保持界面干净
    • 底部增加渐变高光条,提升精致感

[2026-02-09] - 优化 AmountKeyboard 组件 UI 风格为极简专业风

优化

  • 移除 AmountKeyboard 的装饰性背景和渐变效果,回归极简设计
  • 采用白色背景 + 深灰色文字,提升专业感和可读性
  • 增加光标模拟动画,提升交互感知
  • 优化排版布局,强化金额数值的视觉层级
  • 移除多余的阴影和边框,保持界面干净整洁

[2026-02-09] - 优化 AmountKeyboard 组件 UI 显示

优化

  • 重构 AmountKeyboard 弹窗 UI,使用 Tailwind CSS 替代原有 LESS 样式
  • 优化弹窗视觉效果,增加渐变背景和磨砂质感
  • 移除冗余的 LESS 样式代码,遵循项目 CSS 规范
  • 优化数字显示排版,提升可读性

[2026-02-09] - 清理未使用的旧版本选择器组件

重构

  • 删除 AgePicker.vue(已被 AgePickerGlobal.vue 替代)
  • 删除 DatePicker.vue(已被 DatePickerGlobal.vue 替代)
  • 删除 SelectPicker.vue(已被 SelectPickerGlobal.vue 替代)

背景

  • 所有模板文件已统一使用 Global 版本组件
  • 旧版本组件无任何引用,造成代码冗余

收益

  • ✅ 减少代码冗余(删除 759 行未使用代码)
  • ✅ 避免开发时的混淆(不知道该用哪个版本)
  • ✅ 降低维护成本

验证

  • ✅ ESLint 检查通过
  • ✅ 全局搜索确认无引用
  • ✅ 所有模板使用 Global 版本

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-09] - 修复组件路径引用问题

修复

  • 修复 MaterialCard.vue 中 ListItemActions 的导入路径
  • 修复 DocumentPreview 相关的导入路径(3 个文件)
  • 修复 ListItemActions 的导入路径(3 个页面文件)
  • 修复 OfficeViewer.vue 中 utils 的导入路径
  • 修复 document-demo 和 document-preview 页面的导入路径

验证

  • ✅ pnpm build:weapp 编译成功(12.98s)
  • ✅ 所有组件路径引用已更新
  • ✅ 无编译错误

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-09] - 组件目录结构重组

重构

  • 创建分类目录:navigation, list, forms, cards, documents, plan, icons
  • 移动组件到对应分类目录
    • navigation: TabBar, NavHeader
    • list: SectionCard, SectionItem, ListItemActions, LoadMoreList
    • forms: FilterTabs, SearchBar
    • cards: MaterialCard, ProductCard
    • documents: DocumentPreview, PdfPreview, OfficeViewer
    • plan: PlanFormContainer, PlanPopupNew, PlanFields, PlanTemplates
    • icons: IconFont
  • 更新所有组件导入路径(38 个文件)

收益

  • ✅ 组件组织更清晰,按功能分类
  • ✅ 便于查找和维护
  • ✅ 符合项目架构原则
  • ✅ 为未来组件扩展预留空间

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-09] - 清理未使用的组件

删除

  • 删除 src/components/qrCode.vue(11KB,完全未使用)
  • 删除 src/components/FilterTabs.example.vue(示例文件)
  • 删除 src/components/PlanPopup/ 目录(已被 PlanPopupNew 替代)

优化

  • 减少代码库大小约 11KB
  • 提升组件目录清晰度
  • 清理冗余代码,降低维护负担

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-09] - 修复 AmountKeyboard 组件取消操作显示异常并优化输入体验

修复

  • 修复点击遮罩关闭后显示 "123." 等不完整值的问题
  • 在 watch(showKeyboard) 中添加逻辑,键盘关闭时清除临时输入值
  • 优化 displayValue 计算属性,确保始终显示格式化后的金额

优化

  • 添加输入限制的震动反馈(Taro.vibrateShort)
  • 添加 Toast 轻提示提示用户输入限制
  • 重复输入小数点时提示"只能输入一个小数点"
  • 超过2位小数时提示"最多只能输入2位小数"

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-09] - 新增 AmountKeyboard 数字键盘输入组件

新增

  • 创建 AmountKeyboard.vue 组件,替代 AmountInput 输入框
  • 实现数字键盘(nut-number-keyboard)点击触发
  • 新增金额显示弹窗(页面中间显示输入内容,渐变背景设计)
  • 集成 GlobalPopupManager 解决嵌套弹窗层级问题
  • 实现字符累加逻辑,支持连续录入(123)
  • 添加输入验证(1个小数点,2位小数)
  • 添加千分位分隔符显示
  • 实现 toFixed(2) 确保保存格式一致性
  • 防止点击遮罩关闭弹窗
  • 添加 watch(showKeyboard) 同步键盘和弹窗状态

功能特点

  • 点击输入框弹出数字键盘(右列模式,包含小数点)
  • 金额显示弹窗(渐变背景 + 装饰圆圈 + 大号字体)
  • 输入验证(限制1个小数点,2位小数)
  • 连续输入支持(字符累加,字符串类型安全)
  • 状态同步(键盘关闭时自动关闭金额弹窗)
  • 多币种支持(CNY、USD、HKD、EUR)

技术实现

  • 使用 nut-number-keyboard 的 @input 事件(单字符传递)
  • 字符累加:String(inputValue.value) + String(val)
  • 输入验证:split('.') 检查小数点和小数位数量
  • 初始化:空字符串(非"0.00")避免验证冲突
  • 保存:parseFloat(yuan.toFixed(2)) 确保格式
  • 单位转换:内部存储为分(整数),显示为元(带2位小数)

问题解决

  1. Vue渲染错误:使用正确的 kebab-case 组件名 nut-number-keyboard
  2. 键盘被底部按钮遮挡:使用 GlobalPopupManager 解决嵌套弹窗层级
  3. 单字符输入:实现字符累加逻辑
  4. 字符串相加变成数字相加(1+2=3):显式使用 String() 转换
  5. 输入验证阻塞:初始化为空字符串而非 "0.00"
  6. 保存格式问题:使用 toFixed(2) 确保 "12.00" 格式
  7. 自动关闭bug:添加时间判断过滤(500ms内)
  8. 状态同步:watch(showKeyboard) 同步关闭金额弹窗

影响文件

  • src/components/PlanFields/AmountKeyboard.vue(新增)
  • src/components/PlanTemplates/LifeInsuranceTemplate.vue(使用新组件)
  • src/components/PlanTemplates/CriticalIllnessTemplate.vue(使用新组件)
  • src/components/PlanTemplates/SavingsTemplate.vue(使用新组件)
  • docs/lessons-learned.md(添加经验教训记录)

详细信息

  • 影响文件: 见上文
  • 技术栈: Vue 3, Taro 4, NutUI, GlobalPopupManager
  • 测试状态: ✅ 已通过
  • 备注: 替代原有的 AmountInput 组件,老组件保留用于测试

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-08] - 实现全局弹窗管理器解决嵌套弹窗遮挡问题

新增

  • 创建 GlobalPopupManager 全局弹窗管理器
  • 实现 useParentPopup 和 useGlobalPopup 接口
  • 新增 PlanPopupNew 父弹窗组件(支持全局管理)
  • 新增 DatePickerGlobal 日期选择器(支持全局管理)
  • 新增 SelectPickerGlobal 下拉选择器(支持全局管理)
  • 新增 AgePickerGlobal 年龄选择器(支持全局管理)

优化

  • 子弹窗打开时自动隐藏父弹窗底部按钮
  • 所有子弹窗关闭时自动恢复底部按钮
  • 支持多个子弹窗同时打开
  • 支持多层弹窗嵌套(弹窗套弹窗)
  • 使用 watch 监听全局状态,解决组件挂载时序问题

问题原因

NutUI 嵌套弹窗的 z-index 层级问题

  • 父弹窗和子弹窗都是 position: fixed 定位
  • 即使子弹窗 z-index 更高,也无法遮挡父弹窗的非子元素(如底部按钮)
  • 底部按钮在 DOM 结构上与子弹窗同级,会覆盖子弹窗内容

解决方案

核心策略:全局弹窗管理器协调父弹窗和子弹窗状态

  1. 子弹窗注册:每个子弹窗组件挂载时注册,获得唯一 ID
  2. 激活/停用:子弹窗打开时激活,关闭时停用
  3. 状态同步:管理器通知父弹窗隐藏/显示底部按钮
  4. 响应式更新:父弹窗通过 watch 监听全局状态变化

迁移工作

  • 更新 PlanFormContainer 使用 PlanPopupNew
  • 更新所有计划模板(LifeInsuranceTemplate、CriticalIllnessTemplate、SavingsTemplate)使用 Global 版本字段组件

影响文件

  • src/components/PlanFormContainer.vue
  • src/components/PlanPopupNew.vue
  • src/components/PlanFields/GlobalPopupManager.js
  • src/components/PlanFields/DatePickerGlobal.vue
  • src/components/PlanFields/SelectPickerGlobal.vue
  • src/components/PlanFields/AgePickerGlobal.vue
  • src/components/PlanTemplates/LifeInsuranceTemplate.vue
  • src/components/PlanTemplates/CriticalIllnessTemplate.vue
  • src/components/PlanTemplates/SavingsTemplate.vue

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-08] - 修复计划书表单重置和数据同步问题

修复

  • 修复计划书表单关闭后再次打开数据依然存在的bug
  • 修复表单输入过程中数据意外丢失的问题
  • 修复第一次点击确认按钮没有值的问题

优化

  • 优化表单状态管理,区分"重置"和"正常更新"
  • 改进 v-model 双向绑定的数据同步逻辑

问题原因

Vue 3 v-model + reactive 的双向同步陷阱

  • v-model 每次更新都创建新对象
  • reactive(props.modelValue) 只在初始化时读取一次 props
  • 父子组件状态不同步

解决方案

核心策略:区分"重置"和"正常更新"

  • 重置判断:从有数据 → 空对象
  • 正常更新:只合并新字段,不删除已有字段
  • 避免使用引用判断(newVal !== previousModelValue),因为 v-model 每次都创建新对象

技术细节

关键改进

// ✅ 正确的 watch 策略
const isReset = previousModelValue &&
                Object.keys(previousModelValue).length > 0 &&
                Object.keys(newVal).length === 0

if (isReset) {
  // 重置:清空表单
  Object.keys(form).forEach(key => delete form[key])
} else {
  // 正常更新:只合并新字段
  Object.keys(newVal).forEach(key => {
    form[key] = newVal[key]
  })
}

避免的陷阱

  • ❌ 每次 props 变化都清空并复制(导致数据丢失)
  • ❌ 使用引用判断是否更新(v-model 每次创建新对象)
  • ❌ 使用 { deep: true } 监听 props(可能导致循环)

影响文件

  • src/components/PlanFormContainer.vue
  • src/components/PlanTemplates/LifeInsuranceTemplate.vue
  • src/components/PlanTemplates/CriticalIllnessTemplate.vue
  • src/components/PlanTemplates/SavingsTemplate.vue

测试验证

  • ✅ 填写表单 → 关闭弹窗 → 再次打开 → 表单为空
  • ✅ 第一次点击确认按钮 → 值能正常保存
  • ✅ 年龄和出生年月日双向联动正常

经验教训

详见 docs/lessons-learned.md 中的"Vue 3 响应式数据和表单状态管理"章节。


Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-08] - 优化年龄与出生年月日联动逻辑

优化

  • 调整计划书模板字段顺序:年龄在前,出生年月日在后
  • 实现年龄 → 出生年月日自动计算(当前年份 - 年龄,默认1月1日)
  • 保留出生年月日 → 年龄双向联动(用户可手动调整出生日期)
  • 简化占位符文案,避免用户理解混乱
  • 修复 AgePicker 组件不触发 change 事件的问题

改进细节

  • AgePicker.vue: 添加 change 事件支持,确保父组件能监听年龄变化
  • LifeInsuranceTemplate.vue: 实现双向联动逻辑
  • CriticalIllnessTemplate.vue: 实现双向联动逻辑
  • SavingsTemplate.vue: 实现双向联动逻辑

用户体验改进

  • ✅ 用户先录入年龄(简单快捷)
  • ✅ 系统自动计算出生年月日(默认1月1日)
  • ✅ 用户仍可手动调整出生年月日(灵活性)
  • ✅ 简化文案,避免不必要的理解错误

影响文件

  • src/components/PlanFields/AgePicker.vue
  • src/components/PlanTemplates/LifeInsuranceTemplate.vue
  • src/components/PlanTemplates/CriticalIllnessTemplate.vue
  • src/components/PlanTemplates/SavingsTemplate.vue

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-08] - 修复 LoadMoreList 页面双重滚动问题

修复

  • 修复 4 个使用 LoadMoreList 组件的页面出现双重滚动问题
    • 页面级和 scroll-view 都可以滚动,导致用户体验混乱
    • src/pages/feedback-list/index.vue
    • src/pages/favorites/index.vue
    • src/pages/material-list/index.vue
    • src/pages/product-center/index.vue
  • 在页面容器添加 height: 100vhoverflow: hidden
    • TailwindCSS: h-screen overflow-hidden
    • Less: height: 100vh; overflow: hidden;

问题原因

  • 页面容器未设置固定高度(使用 min-height 或未设置)
  • 页面容器未禁用溢出(缺少 overflow: hidden
  • 导致页面级和组件级滚动同时生效

解决方案

  • 页面容器设置固定高度:height: 100vh(或 h-screen
  • 页面容器禁用溢出:overflow: hidden(或 overflow-hidden
  • 让 LoadMoreList 内部的 scroll-view 处理所有滚动
  • 固定元素(导航栏、搜索栏)放在 #header 插槽中

文档

  • docs/lessons-learned.md 中添加"LoadMoreList 页面的双重滚动问题"记录
    • 说明问题表现、原因分析、解决方案
    • 提供最佳实践和检查清单
    • 列出修复的 4 个页面和已正确的 3 个页面

收益

  • ✅ 消除双重滚动,提升用户体验
  • ✅ 固定元素(导航栏、搜索栏)始终可见
  • ✅ 统一 LoadMoreList 页面的滚动行为
  • ✅ 为所有使用 LoadMoreList 的页面提供标准模式

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

详细信息

  • 影响文件:
    • src/pages/feedback-list/index.vue(修复双重滚动)
    • src/pages/favorites/index.vue(修复双重滚动)
    • src/pages/material-list/index.vue(修复双重滚动)
    • src/pages/product-center/index.vue(修复双重滚动)
    • docs/lessons-learned.md(添加经验教训)
  • 技术栈: Vue 3, Taro 4, TailwindCSS, Less
  • 测试状态: ✅ 已通过
  • 备注: 共检查 7 个使用 LoadMoreList 的页面,修复 4 个,3 个已正确

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-08] - 修复 LoadMoreList 组件底部 padding 堆叠问题

修复

  • 修复 .load-more-content.scrollable 修饰符类与基础类 padding 堆叠问题
    • 基础类 padding: 32rpx 与修饰符类 padding-bottom 堆叠
    • 导致底部 padding ≈ 192rpx + safe-area(过高)
    • 修改为覆盖整个 padding 属性: padding: 32rpx 32rpx calc(160rpx + env(safe-area-inset-bottom))

优化

  • 简化搜索页 shouldEnableScrollLoad 逻辑(只要有数据就启用滚动)
  • 添加搜索页 disableScroll: true 配置(禁用页面级滚动)

文档

  • docs/lessons-learned.md 中添加 LESS 修饰符类样式堆叠坑的记录
    • 说明 LESS 嵌套选择器中修饰符类属性会与基础类堆叠
    • 提供解决方案:覆盖整个属性而不是只写子属性

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

详细信息

  • 影响文件:
    • src/components/LoadMoreList/index.vue(修复 padding 堆叠)
    • src/pages/search/index.config.js(添加 disableScroll)
    • src/pages/search/index.vue(简化滚动逻辑)
    • docs/lessons-learned.md(添加经验教训)
  • 技术栈: Vue 3, Taro 4, Less
  • 测试状态: ✅ 已通过
  • 备注: 所有使用 LoadMoreList 的 7 个页面都受益于这个修复

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-08] - 文档重组:全面中文化

文档

  • 将所有文档文件名改为中文命名(遵循全局规则)
    • guides/ 目录下的指南文档(API 使用指南、OpenAPI 转换等)
    • reports/ 目录下的报告文档(Apifox 配置总结、变更日志检查等)
    • mcp/ 目录下的 MCP 相关文档
    • plan/ 目录下的计划书文档
  • 删除已废弃的 docs/form-sn-mapping.json(配置已迁移到代码)
  • 更新 docs/README.md 以反映新的文档结构
  • 修复文档中的交叉引用链接

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

详细信息

  • 影响文件: docs/guides/.md, docs/reports/.md, docs/mcp/.md, docs/plan/.md, docs/README.md
  • 技术栈: 文档
  • 测试状态: N/A
  • 备注: 提升中文开发者体验,统一文档命名规范

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-08] - 整理文档结构并使用中文命名(首次)

文档

  • 重新组织 docs 文件夹结构,按功能分类
    • 组件文档 → guides/components/
    • 测试指南 → guides/testing/
    • API 规范 → api-specs/api-specs/数据文档/
    • 测试报告 → reports/测试报告/
  • 所有文档文件名使用中文命名(如 LoadMoreList 完整使用指南.md
  • 更新所有文档中的相对路径引用
  • 备份原始页面代码到 docs/backups/original-pages/
  • 将"文档命名使用中文"规则添加到全局规则(changelog-automation.md

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑

[2026-02-08] - 迁移所有剩余页面到 LoadMoreList 组件

重构

  • 迁移 src/pages/message/index.vue 使用 LoadMoreList 组件
    • 添加下拉刷新功能
    • 简化分页加载逻辑
  • 迁移 src/pages/product-center/index.vue 使用 LoadMoreList 组件
    • 保留搜索、tabs、计划书弹窗功能
    • 统一分页加载逻辑
  • 迁移 src/pages/material-list/index.vue 使用 LoadMoreList 组件
    • 保留分类缓存、搜索防抖功能
    • 优化分页状态管理
  • 迁移 src/pages/search/index.vue 使用 LoadMoreList 组件
    • 保留双列表系统(products + files)
    • 保留自动 tab 选择逻辑
    • 保留三种显示状态(初始、空、有结果)

收益

  • 统一 5 个页面的分页加载逻辑
  • 减少重复代码约 700+ 行
  • 统一动画效果和加载状态
  • 提升代码可维护性

Changelog

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


[2026-02-11] - 修复计划书提交逻辑和成功验证

修复

  • 计划书提交成功验证

    • 修改 PlanFormContainer.vue 中的成功判断逻辑
    • 从只检查 res.code === 1 改为同时检查 res.code === 1res.data?.order_id
    • 确保只有在真正获得订单 ID 时才判定为成功
  • 错误信息路径修正

    • 修改错误信息获取路径从 res.data?.message 改为 res.data?.msg
    • 添加降级方案:res.data?.msg || res.msg || '提交失败,请稍后重试'
  • 统一页面处理逻辑

    • 更新所有使用 PlanFormContainer 的页面(product-detail、search、product-center、index)
    • 修改 handlePlanSubmit 函数从空的 TODO 注释实现为完整的错误处理
    • 统一导航到计划书提交结果页,携带成功/失败参数
    • 添加 500ms 延迟确保 toast 提示显示完毕

优化

  • 代码质量改进
    • 移除无用的 TODO 注释和空函数实现
    • 统一错误处理模式,提升代码可维护性

详细信息

  • 影响文件: src/components/plan/PlanFormContainer.vue, src/pages/product-detail/index.vue, src/pages/search/index.vue, src/pages/product-center/index.vue, src/pages/index/index.vue
  • 技术栈: Vue 3, Taro 4, Composition API
  • 测试状态: 已通过 ESLint 检查
  • 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑