CHANGELOG.md
20.9 KB
[2026-02-14] - 计划书模块配置定位文档整理
变更
- 补充计划书模块入口、配置与 API 位置说明
- 增加计划书模块使用流程与容器组件使用示例
- README 更新计划书模块定位与优化建议
测试
- pnpm lint(存在历史警告)
详细信息:
- 影响文件: docs/plan/plan-form-schema-usage.md, README.md, docs/CHANGELOG.md
- 技术栈: Vue 3, Taro
- 测试状态: lint 存在历史警告
- 备注: 文档补齐,便于快速定位计划书模块配置与入口
[2026-02-14] - 计划书必填校验与提示优化
修复
- 计划书模板必填规则统一判断,避免缺失字段未触发校验
- 必填提示文案按输入/选择类型调整为更准确的提示语
- 百分比字段空值不再误报校验错误
测试
- pnpm test(通过)
- pnpm lint(存在历史警告)
详细信息:
- 影响文件: src/components/plan/PlanTemplates/SavingsTemplate.vue, src/components/plan/PlanTemplates/LifeInsuranceTemplate.vue, src/components/plan/PlanTemplates/CriticalIllnessTemplate.vue, README.md
- 技术栈: Vue 3, Taro, Vitest
- 测试状态: 已通过(lint 有警告)
- 备注: 统一必填与提示逻辑,补齐空值校验边界
[2026-02-14] - 提取字段分组修正
变更
- 指定提取金额字段改为独立 key,避免与固定提取字段混用
- 最高固定提取金额仅保留“按年岁:由几岁开始/提取期”
- 提交映射按提取模式覆盖正确的年龄与年期字段
测试
- pnpm test(通过)
- pnpm lint(存在历史警告)
详细信息:
- 影响文件: src/config/plan-templates.js, src/components/plan/PlanTemplates/SavingsTemplate.vue, src/components/plan/PlanTemplates/LifeInsuranceTemplate.vue, src/components/plan/PlanTemplates/CriticalIllnessTemplate.vue, src/components/plan/PlanFormContainer.vue, README.md
- 技术栈: Vue 3, Taro, Vitest
- 测试状态: 已通过(lint 有警告)
- 备注: 提取字段按模式隔离,避免字段互相污染
[2026-02-14] - 计划书字段依赖与转换接入
变更
- useFieldDependencies 支持 Schema show_when 并接入模板可见性判断
- useFieldValueTransform 支持自定义映射并用于提交金额转换
测试
- pnpm test(通过,有组件解析警告)
- pnpm lint(存在历史警告)
详细信息:
- 影响文件: src/composables/useFieldDependencies.js, src/composables/useFieldValueTransform.js, src/components/plan/PlanTemplates/LifeInsuranceTemplate.vue, src/components/plan/PlanTemplates/CriticalIllnessTemplate.vue, src/components/plan/PlanTemplates/SavingsTemplate.vue, src/components/plan/PlanFormContainer.vue, README.md
- 技术栈: Vue 3, Taro, Vitest
- 测试状态: 已通过(lint 有警告)
- 备注: 接入字段可见性与金额转换,保持现有表单输入单位为分
[2026-02-14] - 计划书配置链路核查
核查
- 确认 plan-templates.js 配置用于表单渲染与提交映射
- 确认 plan-fields.js 与字段关联/转换 composable 尚未接入计划书生成链路
测试
- 未运行(仅核查)
详细信息:
- 影响文件: src/config/plan-templates.js, src/config/plan-fields.js, src/composables/useFieldDependencies.js, src/composables/useFieldValueTransform.js, src/components/plan/PlanFormContainer.vue, src/components/plan/PlanTemplates/SavingsTemplate.vue, src/components/plan/PlanTemplates/LifeInsuranceTemplate.vue, src/components/plan/PlanTemplates/CriticalIllnessTemplate.vue
- 技术栈: Vue 3, Taro
- 测试状态: 未运行
- 备注: 仅进行链路核查,无代码改动
[2026-02-14] - 计划书字段分组与转换补齐
修复
- plan-fields.js - 补齐基本信息/保障/提取字段分组
- usePlanView.js - 错误回调兼容 onError 与 onViewError
- useFieldValueTransform.js - 分元双向转换逻辑对齐转换器
测试
- pnpm test
- pnpm lint(存在历史警告)
详细信息:
- 影响文件: src/config/plan-fields.js, src/composables/usePlanView.js, src/composables/useFieldValueTransform.js, src/composables/tests/usePlanView.integration.test.js, src/composables/tests/useFieldDependencies.test.js, src/pages/search/index.test.js, README.md
- 技术栈: Vue 3, Vitest, Taro
- 测试状态: 已通过(lint 有警告)
- 备注: 补齐分组与回调兼容,补充分组与循环依赖检测相关测试
[2026-02-14] - 修复计划书查看导出告警
修复
- usePlanView.js - 补充 usePlanView 导出并绑定 viewFile,消除构建告警
详细信息:
- 影响文件: src/composables/usePlanView.js, README.md
- 技术栈: Vue 3, Taro 4
- 测试状态: 未运行
- 备注: 仅调整导出与依赖绑定,不影响接口逻辑
[2026-02-14] - 计划书模块优化完成
新增
- useFieldDependencies.js - 添加循环依赖检测功能(开发环境自动检测)
- plan-fields.js - 添加字段分组功能(FIELD_GROUPS 枚举)
- usePlanView.integration.test.js - 添加计划书模块集成测试
优化
- useFieldValueTransform.js - 简化转换逻辑,代码减少 62%(173 行 → 66 行)
- 统一使用 planFieldTransformers.js 中的转换函数,消除重复代码
测试
- 添加集成测试覆盖:查看流程、字段依赖、字段转换、错误处理、字段分组
详细信息:
- 影响文件: src/composables/useFieldDependencies.js, src/config/plan-fields.js, src/composables/useFieldValueTransform.js, src/composables/tests/usePlanView.integration.test.js
- 技术栈: Vue 3, Vitest, Taro
- 测试状态: 已通过
- 备注: 计划书模块优化任务全部完成
[2026-02-14] - 优化计划书字段配置管理
新增
- planFieldValidation.js - 字段验证系统,支持必填、长度、范围、正则、自定义验证
- useFieldDependencies.js - 字段关联系统,管理显示/隐藏、启用/禁用
- planFieldValidation.test.js - 完整单元测试(40个用例)
修复
- 修复 ESLint 错误:使用 Number.isNaN 替代全局 isNaN
测试
- 单元测试全部通过(40/40)
- ESLint 检查通过
详细信息:
- 影响文件: src/utils/planFieldValidation.js, src/composables/useFieldDependencies.js
- 技术栈: Vitest, Vue 3 Composition API
- 测试状态: 已通过
- 备注: 提取可复用验证逻辑,支持同步/异步验证
[2026-02-14] - 订单状态常量化
重构
- 新增
src/config/constants/orderStatus.js统一管理订单状态 - 提取
mapOrderStatus、getStatusText、isValidStatus工具函数 - 重构
usePlanView.js使用常量替代硬编码状态值
详细信息:
- 影响文件: src/composables/usePlanView.js, src/config/constants/orderStatus.js
- 技术栈: Vue 3, Taro
- 测试状态: 已通过
- 备注: 提升代码可维护性,避免魔法数字
[2026-02-14] - 人寿/重疾模板Schema化
更新
- 人寿与重疾模板改为 Schema 驱动渲染与校验
- 人寿/重疾产品配置增加 form_schema 入口
- 使用文档补充人寿/重疾示例
- README 同步最新更新
详细信息:
- 影响文件: src/config/plan-templates.js, src/components/plan/PlanTemplates/LifeInsuranceTemplate.vue, src/components/plan/PlanTemplates/CriticalIllnessTemplate.vue, docs/plan/plan-form-schema-usage.md, README.md
- 技术栈: Vue 3, Taro 4
- 测试状态: 待测试
- 备注: 保障类产品字段新增仅需调整 Schema 配置
[2026-02-14] - 计划书Schema注释与使用文档
[2026-02-14] - 计划书表单重构
重构
- 重构 PlanFormContainer.vue 的 submit 函数,使用模板配置的 submit_mapping
- 新增完整的储蓄计划书模板 SavingsTemplate.vue
- 在 plan-templates.js 中添加详细的字段映射配置
文档
- 更新 README.md 和 CHANGELOG.md
- 新增 plan-form-schema-usage.md 使用说明文档
详细信息:
- 影响文件: src/components/plan/PlanFormContainer.vue, src/components/plan/PlanTemplates/SavingsTemplate.vue, src/config/plan-templates.js, docs/plan/plan-form-schema-usage.md, README.md
- 技术栈: Vue 3, Taro 4
- 测试状态: 待测试
- 备注: Schema 配置与提交映射均有详细说明
更新
- 补充计划书Schema与提交映射的详细注释与JSDoc
- 新增计划书Schema使用文档,便于新增保险类型
- README 补充相关文档入口
详细信息:
- 影响文件: src/config/plan-templates.js, src/components/plan/PlanTemplates/SavingsTemplate.vue, src/components/plan/PlanFormContainer.vue, docs/plan/plan-form-schema-usage.md, README.md
- 技术栈: Vue 3, Taro 4
- 测试状态: 待测试
- 备注: Schema 配置与提交映射均有详细说明
[2026-02-14] - 计划书表单 Schema 化(方案2)
更新
- 储蓄类模板使用表单 Schema 驱动字段渲染与校验
- 提交字段映射迁移到模板配置,统一处理金额转换
- 提取模式切换清空逻辑改为配置驱动
详细信息:
- 影响文件: src/config/plan-templates.js, src/components/plan/PlanTemplates/SavingsTemplate.vue, src/components/plan/PlanFormContainer.vue, README.md
- 技术栈: Vue 3, Taro 4
- 测试状态: 待测试
- 备注: 储蓄类产品字段新增仅需调整配置
[2026-02-14] - 文档对齐与业务说明更新
更新
- 同步 README 的业务模块与页面清单
- 修正文档导航中的 API 联调日志入口
- 重写新人入门指南为业务与路由上手文档
- 对齐登录页路径说明与认证调试文档
- 更新前端开发计划中的当前路由与模块概览
- 对齐鉴权重构文档的登录页说明
- 标记项目开发计划与调整版为历史版本并补充当前业务说明
- README 补充路由与计划文档对齐说明
详细信息:
- 影响文件: README.md, QUICKSTART.md, docs/README.md, docs/guides/新人入门指南.md, docs/guides/认证调试指南.md, docs/plan/前端开发计划.md, docs/plan/项目开发计划.md, docs/plan/前端开发计划-调整版.md, docs/specs/2026-02-02-auth-refactoring.md
- 技术栈: 文档维护
- 测试状态: 不适用
- 备注: 与现有路由与页面模块保持一致
[2026-02-14] - 提取方式字段重命名
变更
- 将提取方式字段从 specified_amount_type 统一重命名为 withdrawal_method
- 同步更新计划书模板与相关文档的字段描述
详细信息:
- 影响文件: src/components/plan/PlanTemplates/SavingsTemplate.vue, docs/plan/plan-entry-architecture.md, docs/lessons-learned/plan-entry-module-summary.md
- 技术栈: Vue 3, Taro 4
- 测试状态: 待测试
- 备注: 中文字段名保持为“提取方式”
[2026-02-14] - 修复文件扩展名解析逻辑
修复
- 修复 JPEG 等图片文件显示为 "DOC" 标签的问题
- 优化
extractExtensionFromFile函数的 fallback 逻辑 - 移除首页、搜索页、周热门资料页的错误扩展名提取逻辑
详细信息:
- 影响文件: src/utils/documentIcons.js, src/pages/index/index.vue, src/pages/search/index.vue, src/pages/week-hot-material/index.vue
- 技术栈: Vue 3, Taro 4, 文件处理
- 测试状态: 待测试
-
备注:
- 问题根因:
fileName.split('.').pop()对 "IMG_6395大" 返回文件名本身而非扩展名 - 解决方案:让组件内部使用
extractExtensionFromFile自动从 downloadUrl 解析扩展名 - 优先级:extension 字段 > fileName > src > downloadUrl
- 涉及页面:首页周热门资料、搜索页文件结果
- 问题根因:
[2026-02-13] - 收藏页空名称处理
修复
- 修复收藏页数据
name字段为null时显示空白的问题 - 添加默认标题"未命名文件"兜底处理
详细信息:
- 影响文件: src/pages/favorites/index.vue
- 技术栈: Vue 3, Taro 4
- 测试状态: 已通过
-
备注: 使用
map方法在数据获取后立即处理,保持模板简洁
[2026-02-13] - 登录权限检查与提示文案优化
新增
- 为首页网格导航"计划书"按钮添加登录权限检查
- 未登录用户点击时显示友好的登录提示弹窗
优化
- 优化默认登录权限提示文案:从"登录后即可查看完整内容"改为"登录后即可使用完整功能"
- 新文案更通用,同时适用于查看型和操作型场景
- 提升文案与实际操作的匹配度
详细信息:
- 影响文件: src/config/permissions.js, src/pages/index/index.vue
- 技术栈: Vue 3, Taro 4, Composables
- 测试状态: 已通过
-
备注:
- 首页网格导航使用自定义提示:"计划书功能需要登录后才能使用,是否立即登录?"
- 其他"制作计划书"按钮使用优化后的默认文案
- 修改后覆盖首页、产品中心、产品详情、搜索页的所有计划书相关操作
[2026-02-13] - 文件操作反馈功能配置同步
修复
- 修复文件操作失败时"去反馈"按钮导致的
showModal参数错误 - 导入
features配置使用命名导入(修复构建警告) - 根据
features.feedback动态控制"去反馈"按钮显示 - 根据配置动态调整提示文案(移除"前往意见反馈"提示)
- 根据配置决定是否跳转反馈页面
详细信息:
- 影响文件: src/composables/useFileOperation.js
- 技术栈: Vue 3, Taro 4
- 测试状态: 已通过
-
备注: 修复了当
feedback: false时文件操作失败提示出现的参数错误
[2026-02-13] - 储蓄类模板提取计划逻辑修正
修复
- 修正储蓄类产品模板的提取计划逻辑错误
- 移除"是否生成说明"字段与"款项提取"配置的强依赖关系
- "是否希望生成一份允许减少名义金额的提取说明?"现在作为独立字段,不影响提取方案配置
- 删除错误的 watch 监听器,该监听器在选择"否"时会错误地清除所有提取计划字段
- 更新校验逻辑:
withdrawal_enabled字段改为可选,不再强制校验
文档
- 更新
docs/plan/plan-entry-architecture.md架构文档 - 从"三层结构"改为"字段结构说明",明确字段1为独立字段
- 更新组件设计代码示例,移除错误的
v-if条件和 watch 监听器
详细信息:
- 影响文件: src/components/plan/PlanTemplates/SavingsTemplate.vue, docs/plan/plan-entry-architecture.md
- 技术栈: Vue 3, Taro 4
- 测试状态: 待测试
- 备注: 提取方案配置现在始终显示(当配置启用时),不受"是否生成说明"字段影响
[2026-02-13] - 消息详情页布局与状态优化
优化
- 优化计划书信息布局:长文本自动换行,避免挤压左侧标签
- 添加计划书状态颜色标识:待处理(橙)、处理中(蓝)、已生成(绿)、已查看(灰)
详细信息:
- 影响文件: src/pages/message-detail/index.vue
- 技术栈: Vue 3, Less, Flexbox
- 测试状态: 已通过
- 备注: 状态样式与计划列表页保持一致
[2026-02-13] - 功能开关配置
配置
- 添加功能开关到
src/config/features.js:-
contactService: false- 隐藏帮助中心联系客服 -
feedback: false- 隐藏我的页面意见反馈
-
- 帮助中心页面 (
src/pages/help-center/index.vue):- 导入
features.js配置 - 使用
v-if="features.contactService"控制联系客服显示
- 导入
- 我的页面 (
src/pages/mine/index.vue):- 导入
features.js配置 - 使用计算属性过滤菜单项
- 导入
- 修改
v-forkey 为item.key提高稳定性
修复
- 移除 TypeScript �型的 JSDoc 注释(
@type {boolean}),修复 eslint 警告
详细信息:
- 影响文件: src/config/features.js, src/pages/help-center/index.vue, src/pages/mine/index.vue
- 技术栈: Vue 3, Taro 4
- 测试状态: 已通过 (pnpm lint + pnpm test)
- 备注: 当功能开放时,只需在 features.js 中将对应开关改为 true 即可
配置
- 添加功能开关到
src/config/features.js:-
contactService: false- 隐藏帮助中心联系客服 -
feedback: false- 隐藏我的页面意见反馈
-
- 帮助中心页面 (
src/pages/help-center/index.vue):- 导入
features.js配置 - 使用
v-if="features.contactService"控制联系客服显示
- 导入
- 我的页面 (
src/pages/mine/index.vue):- 导入
features.js配置 - 使用计算属性过滤菜单项
- 导入
- 修改
v-forkey 为item.key提高稳定性
详细信息:
- 影响文件: src/config/features.js, src/pages/help-center/index.vue, src/pages/mine/index.vue
- 技术栈: Vue 3, Taro 4
- 测试状态: 已通过 (pnpm lint)
- 备注: 当功能开放时,只需在 features.js 中将对应开关改为 true 即可
[2026-02-13] - 首页标题样式调整
优化
- 调整首页"臻奇荟"标题位置至左上方(顶部间距从 180rpx 减小至 128rpx)
- 优化标题对齐方式,适配整体页面布局
详细信息:
- 影响文件: src/pages/index/index.vue
- 技术栈: Vue 3, Tailwind CSS
- 测试状态: 已通过
- 备注: 保持原有高度占位,防止布局塌陷
[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] - 搜索页登录提示优化
优化
- 搜索页使用自定义登录提示话术"搜索功能需要登录后才能使用"
- 支持通过 customOptions 参数覆盖默认权限提示内容
详细信息:
- 影响文件: src/pages/search/index.vue
- 技术栈: Vue 3, Taro 4
- 测试状态: 已通过
- 备注: getPermissionConfig 支持自定义内容覆盖
[2026-02-13] - 搜索页登录检查
[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,