[2026-02-13] - 统一权限检查与移除重复代码
新增
- ListItemActions 组件集成权限检查逻辑
优化
- 移除 material-list 页面中重复的 usePermission 调用
- 权限检查完全由 ListItemActions 组件内部处理
- 添加 ListItemActions 组件 README 文档
详细信息:
- 影响文件: src/pages/material-list/index.vue, src/components/list/ListItemActions/index.vue, src/components/list/ListItemActions/README.md
- 技术栈: Vue 3, Taro 4
- 测试状态: 已通过
- 备注: 组件自包含业务逻辑模式,父组件无需重复权限检查
[2026-02-13] - 资料查看权限与搜索页测试对齐
新增
- 统一动作级权限映射,支持页面查看权限扩展
- 资料查看入口增加登录权限校验与回跳路径记录
优化
- 搜索页测试对齐当前实现并补充接口 Mock
详细信息:
- 影响文件: src/composables/usePermission.js, src/config/permissions.js, src/components/cards/MaterialCard.vue, src/pages/material-list/index.vue, src/pages/search/index.test.js, vitest.config.js, package.json
- 技术栈: Vue 3, Taro 4, Pinia, Vitest
- 测试状态: 已通过(pnpm test)
- 备注: lint 存在历史 warning 未处理
[2026-02-13] - 我的页面消息红点显示
新增
- 我的页面消息菜单项添加未读红点显示
- 新增 showMessageBadge 计算属性,从 userStore.unreadMsgCount 读取未读状态
- 添加 .menu-badge 样式,与 TabBar 红点保持一致
优化
- 为菜单项添加 key 属性,便于识别特定菜单项
- 红点逻辑与 TabBar 完全一致,确保同步显示
详细信息:
- 影响文件: src/pages/mine/index.vue
- 技术栈: Vue 3, Pinia
- 测试状态: 已通过
- 备注: 红点在 unreadMsgCount > 0 时显示
[2026-02-12] - 优化反馈列表和消息页面图片加载
新增
- 新增 `optimizeImageUrl` 工具函数,自动为 CDN 图片添加缩略图优化参数
- 支持自定义缩略图宽度和图片质量
- 只处理 `cdn.ipadbiz.cn` 的图片
- 非 CDN 图片保持原样返回
优化
-
反馈列表图片优化:列表中使用 200px 缩略图(质量 70),点击预览时才加载原图
- 显著减少列表加载时的带宽消耗
- 提升列表滚动性能
-
消息详情页优化:优化布局和样式
- 调整背景色为浅灰色 `bg-gray-50`
- 增加卡片式布局,添加圆角和阴影
- 优化标题、时间、内容的视觉层级
- 调整字号和行距提升阅读体验
-
消息列表优化:重构卡片布局,提升信息可读性
- 第一行:标题(或内容预览)+ 未读红点
- 添加状态标签(未读/已读)
- 第二行:内容预览(截取前 60 字)
- 底部:时间 + 时钟图标
详细信息:
- 影响文件: src/utils/tools.js, src/pages/feedback-list/index.vue, src/pages/message-detail/index.vue, src/pages/message/index.vue
- 技术栈: Vue 3, Taro, CDN 图片优化
- 测试状态: 已通过
- 备注: 性能收益 - 列表加载节省 ~99% 图片流量
本文档记录 Manulife WeApp项目的所有重要变更。 格式基于 Keep a Changelog,
[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_currency从HKD改为USD - 统一币种配置,简化后端处理
- 修改
-
动态输入提示文字:
- 为
AmountKeyboard组件添加inputLabelprop,支持自定义键盘弹窗顶部的提示文字 - 更新所有模板组件使用
:input-labelprop - 提升用户体验,明确当前输入的金额类型
- 为
修复
-
修复属性类型不匹配问题:
- 将
annual_withdrawal_amount和annual_increase_percentage的默认值从空字符串''改为null - 解决
AmountKeyboard组件期望Number类型但接收到String类型的警告
- 将
-
修复百分比输入类型转换问题:
- 在
onPercentageInput函数中添加类型转换String(value ?? '') - 解决
value.replace is not a function错误 - 处理
value为null或其他非字符串类型的情况
- 在
[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.js中showModal的cancelText参数为undefined导致的错误 - 修改逻辑:只在
showCopyButton为true时才添加cancelText和showCancel参数 - 避免微信小程序报错 "parameter.cancelText should be String instead of Undefined"
- 修复
-
PDF 文档打开失败提示优化:
- 将提示文案从"文件可能已损坏,请联系管理员"改为引导用户自主解决问题
- 新增文案:"您可以复制链接在其他应用中打开,或前往'意见反馈'告诉我们"
- 启用 PDF 文档的复制链接功能(与 Office 文档保持一致)
-
统一错误处理交互:
- 所有文件打开失败场景统一显示"去反馈"取消按钮
- 点击"去反馈"跳转到意见反馈页面
/pages/feedback/index - 点击"复制链接"复制文件下载链接到剪贴板
[2026-02-11] - 修复计划书提交逻辑和成功验证
修复
-
计划书提交成功验证:
- 修改
PlanFormContainer.vue中的成功判断逻辑 - 从只检查
res.code === 1改为同时检查res.code === 1和res.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 === 1和res.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字段解析扩展名 -
getDocumentIcon和getDocumentLabel函数增强,支持从src、downloadUrl多个字段解析 - week-hot-material 页面简化数据映射,依赖组件内部自动解析扩展名
- MaterialCard 组件现在支持从
修复
-
Office 文档预览提示按钮文本:
- 修复小程序
showModal的confirmText超过 4 个中文字符限制的问题 - 将按钮文本从"继续,不再提醒"改为"继续预览"
- 优化用户选择日志输出,明确显示"继续预览"而非"继续,不再提醒"
- 修复小程序
Changelog
本文档记录 Manulife WeApp项目的所有重要变更。 格式基于 Keep a Changelog,
[2026-02-11] - 修复计划书提交逻辑和成功验证
修复
-
计划书提交成功验证:
- 修改
PlanFormContainer.vue中的成功判断逻辑 - 从只检查
res.code === 1改为同时检查res.code === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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.md和view.md规范文档
- 修复
Changelog
本文档记录 Manulife WeApp项目的所有重要变更。 格式基于 Keep a Changelog,
[2026-02-11] - 修复计划书提交逻辑和成功验证
修复
-
计划书提交成功验证:
- 修改
PlanFormContainer.vue中的成功判断逻辑 - 从只检查
res.code === 1改为同时检查res.code === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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.vue中smoker→smoking_status
重构
-
前端过滤方案:实现客户端状态过滤作为临时解决方案
- 🔴 后端 API 不支持任何查询参数(
page,limit,order_status,keyword) - 前端在
fetchPlanList函数中实现过滤逻辑 - ⚠️ 重要:
order_status状态值是推测的,需要与后端确认 - 🔴 存在性能和分页准确性问题,待后端支持参数后优化
- 🔴 后端 API 不支持任何查询参数(
文档
-
更新 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 === 1和res.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现在同时支持description和title字段- 优先使用
description,如果为空则使用title - 解决了 OpenAPI 文档中使用
title字段时无法提取中文描述的问题
- 优先使用
-
更新 OpenAPI 文档:
- 将
plan/add.md从application/x-www-form-urlencoded改为application/json - 使用
title字段存储参数中文描述 - 修正参数类型(如
customer_age从string改为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 === 1和res.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 === 1和res.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:简化fileListAPI和weekHotAPI -
get_product.js:简化detailAPI和listAPI -
plan.js:简化addAPI和listAPI
-
更新计划书 API:
- 移除旧的
submitPlanAPI实现 - 新增
addAPI(新增计划书)和listAPI(计划书列表) - 使用统一的
fn(fetch.post/post/get)调用方式
- 移除旧的
-
清理代码:
- 移除
file.js和plan.js的文件头部注释
- 移除
文档
-
新增计划书 API 文档:
docs/api-specs/plan/目录
Changelog
本文档记录 Manulife WeApp项目的所有重要变更。 格式基于 Keep a Changelog,
[2026-02-11] - 修复计划书提交逻辑和成功验证
修复
-
计划书提交成功验证:
- 修改
PlanFormContainer.vue中的成功判断逻辑 - 从只检查
res.code === 1改为同时检查res.code === 1和res.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 === 1和res.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] - 修复计划书弹窗按钮显示逻辑
修复
-
未找到模板时的按钮逻辑:
- 未找到计划书模板时,底部只显示"关闭"按钮
- 找到模板时,显示"取消"和"生成计划书"按钮
- 通过
hasTemplateprop 控制按钮显示状态
Changelog
本文档记录 Manulife WeApp项目的所有重要变更。 格式基于 Keep a Changelog,
[2026-02-11] - 修复计划书提交逻辑和成功验证
修复
-
计划书提交成功验证:
- 修改
PlanFormContainer.vue中的成功判断逻辑 - 从只检查
res.code === 1改为同时检查res.code === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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位小数)
问题解决
- Vue渲染错误:使用正确的 kebab-case 组件名
nut-number-keyboard - 键盘被底部按钮遮挡:使用 GlobalPopupManager 解决嵌套弹窗层级
- 单字符输入:实现字符累加逻辑
- 字符串相加变成数字相加(1+2=3):显式使用 String() 转换
- 输入验证阻塞:初始化为空字符串而非 "0.00"
- 保存格式问题:使用 toFixed(2) 确保 "12.00" 格式
- 自动关闭bug:添加时间判断过滤(500ms内)
- 状态同步: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 === 1和res.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 结构上与子弹窗同级,会覆盖子弹窗内容
解决方案
核心策略:全局弹窗管理器协调父弹窗和子弹窗状态
- 子弹窗注册:每个子弹窗组件挂载时注册,获得唯一 ID
- 激活/停用:子弹窗打开时激活,关闭时停用
- 状态同步:管理器通知父弹窗隐藏/显示底部按钮
- 响应式更新:父弹窗通过 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 === 1和res.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.vuesrc/components/PlanTemplates/LifeInsuranceTemplate.vuesrc/components/PlanTemplates/CriticalIllnessTemplate.vuesrc/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 === 1和res.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.vuesrc/components/PlanTemplates/LifeInsuranceTemplate.vuesrc/components/PlanTemplates/CriticalIllnessTemplate.vuesrc/components/PlanTemplates/SavingsTemplate.vue
Changelog
本文档记录 Manulife WeApp项目的所有重要变更。 格式基于 Keep a Changelog,
[2026-02-11] - 修复计划书提交逻辑和成功验证
修复
-
计划书提交成功验证:
- 修改
PlanFormContainer.vue中的成功判断逻辑 - 从只检查
res.code === 1改为同时检查res.code === 1和res.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.vuesrc/pages/favorites/index.vuesrc/pages/material-list/index.vuesrc/pages/product-center/index.vue
- 在页面容器添加
height: 100vh和overflow: hidden- TailwindCSS:
h-screen overflow-hidden - Less:
height: 100vh; overflow: hidden;
- TailwindCSS:
问题原因
- 页面容器未设置固定高度(使用
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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 === 1和res.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 检查
- 备注: 修复计划书提交在所有页面的成功判断和错误处理逻辑