- 08 Feb, 2026 10 commits
-
-
### 新增功能 - LoadMoreList 组件支持动态高度测量 - 使用 Taro.createSelectorQuery() 运行时测量 - 新增 hasFooter prop(TabBar 页面) - 新增 extraBottomSpace prop(固定按钮等) - 支持响应式监听 props 变化 - 支持页面生命周期重新测量(useDidShow) - 自动处理底部安全区域 ### 修复 - 修复 4 个页面的双重滚动问题 - feedback-list, favorites, material-list, product-center - 添加页面容器 height: 100vh 和 overflow: hidden - 移除所有调试 console.log,保持代码整洁 ### 配置更新 - feedback-list: extraBottomSpace=280(固定按钮) - favorites: hasFooter=false - material-list: hasFooter=false - product-center: hasFooter=false - search: hasFooter=false - message: hasFooter=false - week-hot-material: hasFooter=false ### 文档 - CHANGELOG.md: 记录双重滚动问题修复 - lessons-learned.md: 添加坑 5(双重滚动问题) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 更新当前实现状态,说明LoadMoreList已使用scroll-view - 补充缺少的功能清单(scrollTop prop、@scroll事件等) - 明确不实施原因:需求不明确、技术储备充足、优先级评估 - 新增实施时机判断标准和启动条件 - 新增工作量评估(5.5-9.5小时) - 新增风险评估(5个风险项及缓解措施) - 新增实施建议(技术验证、分阶段实施、充分测试) - 添加文档维护记录 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
更新内容: - 记录 LoadMoreList 组件底部 padding 堆叠问题的修复 - 记录搜索页滚动加载优化 - 记录 LESS 修饰符类样式堆叠坑的经验教训 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
问题描述: - .load-more-content 基础类有 padding: 32rpx(所有边) - .load-more-content.scrollable 修饰符类添加 padding-bottom - 两者堆叠导致底部 padding ≈ 192rpx + safe-area(过高) 解决方案: - 修改 .scrollable 修饰符类,从只添加 padding-bottom 改为覆盖整个 padding 属性 - 使用 padding: 32rpx 32rpx calc(160rpx + env(safe-area-inset-bottom)) - 防止与基础类的 padding 堆叠 影响文件: - src/components/LoadMoreList/index.vue: 修复 padding 堆叠问题 - docs/lessons-learned.md: 添加 LESS 修饰符类样式堆叠坑的记录 - src/pages/search/index.config.js: 添加 disableScroll 配置 - src/pages/search/index.vue: 简化 shouldEnableScrollLoad 逻辑 测试: - ✅ material-list 页面底部 padding 正常 - ✅ search 页面底部 padding 正常 - ✅ 所有使用 LoadMoreList 的页面都受益于这个修复 经验教训: ⚠️ LESS 嵌套选择器中,修饰符类的属性会与基础类堆叠 ✅ 需要覆盖基础类的 padding/margin/border 等属性时,重写整个属性而不是只写子属性 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
hookehuyr authored
-
## 新增功能 - 创建事件总线工具 (src/utils/eventBus.js) - 支持跨页面事件通信,无需直接依赖 ## 页面修改 - feedback-list 页面:监听反馈提交事件并刷新列表 - favorites 页面:监听收藏更新事件并刷新列表 - feedback 页面:提交成功后发送事件 ## Composable 修改 - useCollectOperation:收藏操作成功后发送事件 ## 问题修复 - 修复 favorites 和 feedback-list 页面使用 useDidShow 导致的列表意外刷新问题 - 改用事件总线模式,仅在特定事件触发时刷新列表 - LoadMoreList 页面仅使用 useLoad 进行一次性初始化 ## 文档更新 - 更新 docs/lessons-learned.md,新增"跨页面通信"章节 - 记录事件总线实现模式和 useDidShow 陷阱解决方案 ## 技术方案 - 跨页面操作:使用事件总线(收藏、提交反馈) - 单页面操作:使用本地更新(删除收藏) - LoadMoreList 页面:useLoad + 事件总线,避免 useDidShow Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 添加"文档重组:全面中文化"条目 - 清理重复的 LoadMoreList 迁移记录 - 记录文档文件名全面改为中文的变更 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 删除旧版英文/混合命名文档,迁移到中文文件名 - 重新组织 docs/guides/ 和 docs/reports/ 目录 - 更新 docs/README.md 以反映新结构 - 删除已废弃的 form-sn-mapping.json(配置已迁移到代码) 影响范围: - 文档重组(guides、reports、mcp、plan 目录) - 新增中文命名文档(API 使用指南、变更日志检查等) - 更新文档索引和交叉引用 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 添加文档整理条目 - 记录文档结构重组和中文命名规则 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
**主要变更**: - 将组件相关文档移动到 guides/components/ - LoadMoreList 迁移指南.md - LoadMoreList 完整使用指南.md - 将 API/Mock 相关文档移动到 api-specs/数据文档/ - Mock 数据完整总结.md - Mock 数据设置指南.md - API 集成日志.md - 将测试相关文档移动到相应目录 - 滚动加载测试指南.md → guides/testing/ - 计划测试实施报告.md → reports/测试报告/ - 更新所有文档中的相对路径引用 - 添加文档命名使用中文规则到全局规则 **详细信息**: - **影响文件**: docs/ 目录下所有文档 - **技术栈**: 文档组织 - **测试状态**: N/A - **备注**: 提升文档可维护性和查找效率 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored
-
- 07 Feb, 2026 6 commits
-
-
hookehuyr authored
-
- message 页面:添加下拉刷新功能 - product-center 页面:保留搜索、tabs、计划书弹窗 - material-list 页面:保留分类缓存、搜索防抖 - search 页面:保留双列表、自动 tab 切换、三种状态 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 创建通用加载更多列表组件 LoadMoreList * 支持自定义头部、列表项、空状态插槽 * 内置触底加载、加载状态、动画效果 * 优化动画延迟策略(前10项逐个显示,其余立即显示) - 迁移 week-hot-material 页面使用新组件 * 代码量减少 ~18% * 移除重复的分页逻辑和样式 - 修复样式问题 * 修复列表项黑色圆点(list-style: none) * 使用原生 Less 替代 TailwindCSS(兼容性更好) - 创建迁移指南文档 - 减少 mock 数据延迟(100-300ms)用于开发测试 技术栈: Vue 3 + Composition API + Taro 收益: 提高代码复用性,降低维护成本,统一用户体验
hookehuyr authored -
- 修复搜索页面布局:顶部固定(NavHeader+SearchBar+Tabs+ResultCount)+ 列表滚动 - 修复搜索分页hasMore计算时机bug(首次搜索显示没有更多的问题) - 实现环境判断的Mock数据自动切换 - 开发环境(pnpm dev:weapp)使用mock数据 - 生产环境(pnpm build:weapp)使用真实API - 使用process.env.NODE_ENV === 'development'自动判断 - 更新5个页面使用环境变量判断 - 新增开发工作流文档到lessons-learned.md 修改文件: - src/pages/search/index.vue: 修复布局和分页逻辑 - src/pages/week-hot-material/index.vue: 环境判断 - src/pages/message/index.vue: 环境判断 - src/pages/material-list/index.vue: 环境判断 - src/pages/product-center/index.vue: 环境判断 - docs/lessons-learned.md: 新增开发工作流章节Mock数据环境自动切换模式 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 新增"最新更新"部分,记录计划书功能优化、样式改进、认证优化 - 更新常见问题快速解决表,新增嵌套弹窗和401重定向问题 - 更新 Composables 表格,新增 useCollectOperation - 更新页面列表,新增消息、产品中心、周热门资料、分类列表页面 - 更新组件库说明,新增 PlanFields 组件集 - 同步组件自包含原则到最佳实践部分 🤖 Generated with assistance from Claude Code
hookehuyr authored -
- 将边框颜色从 gray-50 更新为 gray-200 - 更新 PlanPopup 组件类型定义导入路径 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored
-
- 06 Feb, 2026 24 commits
-
-
使用 Vue provide/inject 模式实现父子弹窗通信: - PlanPopup 提供 popupControl 给所有后代组件 - 子组件注入 popupControl 并在打开/关闭时调用 - 当子弹窗打开时,自动隐藏父弹窗的底部按钮 - 子弹窗关闭时,自动恢复父弹窗的底部按钮 影响文件: - PlanPopup: 提供 popupControl,添加 childPopupCount 计数器 - AgePicker/DatePicker/SelectPicker: 注入 popupControl - AmountInput: 添加弹窗控制支持 - index: 小调整 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 按钮文本:从返回首页改为完成 - 按钮逻辑:使用 Taro.navigateBack() 返回上一页 - 移除 useGo hook 依赖 原因:结果页可能从多个入口进入,返回上一页更符合用户操作流程 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
hookehuyr authored
-
- 将列表容器从 view 改为 scroll-view 组件以支持滚动加载 - 实现 scroll-view 的 @scrolltolower 事件处理 - 添加防抖机制避免频繁触发加载(300ms) - 移除所有 console.log 调试语句 - 优化代码结构,移除未使用的函数参数 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 增大产品卡片标题字体(28rpx → 32rpx) - 调整标签样式(更圆润、优化内边距) - 调整文档列表项(图标更大、文件名显示2行) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
hookehuyr authored
-
详细记录: - 修复401重定向死循环问题 - 修复登录页返回报错问题 - 智能跳转优化 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
核心改动: 1. 401拦截器智能选择跳转方式 - 导航栈只有1页时使用 reLaunch(清空栈) - 导航栈有多页时使用 redirectTo(替换当前页) - 保存当前路径到 router store(用于登录后跳回) 2. NavHeader组件智能返回逻辑 - 检查导航栈长度 - 导航栈只有1页时跳转首页(避免返回报错) - 导航栈有多页时正常返回 3. 登录页智能跳转 - 登录成功后读取 router store 保存的路径 - 有保存路径则跳转回原页面 - 无保存路径则跳转到首页 解决问题: - ✅ 修复401重定向导致的死循环问题 - ✅ 修复登录页点击返回报错 "navigateBack:fail cannot navigate back at first page" - ✅ 提升用户体验(登录后回到原页面而非总是首页) 技术细节: - 正确使用 Pinia store:const store = routerStore() - 理解导航 API 差异:navigateTo(入栈)、redirectTo(替换)、reLaunch(清空栈) 影响文件: - src/utils/request.js - 401拦截器优化 - src/components/NavHeader.vue - 返回逻辑优化 - src/pages/login/index.vue - 登录成功后智能跳转 - components.d.ts - TypeScript声明自动更新 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 全局基础字体大小从默认值增加到 30rpx - 首页网格导航图标容器从 88rpx 增加到 100rpx - 首页网格导航图标大小从 24 增加到 28 - 首页网格导航标签文字从 26rpx 增加到 28rpx - 底部导航栏图标大小从 24 增加到 28 - 底部导航栏文字从 20rpx 增加到 24rpx 这些改动改善了触摸目标和文字可读性,特别是在移动设备上。 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 从 2 列网格布局改为单列水平卡片布局 - 图片尺寸从 200rpx 增加到 220rpx - 使用圆形文字按钮替代 NutUI 按钮组件 - 优化标签显示逻辑,显示所有标签而非仅前 2 个 技术细节: - 布局:flex 布局,图片固定宽度 220rpx - 按钮:纯文字按钮,详情为浅蓝背景,计划书为深蓝背景 - 间距:使用 gap、mt-auto 等优化视觉层次 影响文件: - src/pages/product-center/index.vue - components.d.ts (自动更新) - docs/CHANGELOG.md Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
移除 h-screen flex-col 布局,改用页面级滚动 - NavHeader 和搜索栏使用 sticky top-0 固定 - 列表容器使用页面级滚动(移除 overflow-y-auto) - 删除 mock 数据相关代码 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
更新内容: - 添加 mock 数据系统说明 - 记录滚动加载功能修复 - 记录技术改进细节 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
新增功能: - 添加 mock 数据系统(src/api/mock/product.js) - 生成 100 个测试产品数据 - 支持 5 个产品分类 - 支持随机图片(Lorem Picsum 服务) - 支持搜索和分类过滤 - 模拟网络延迟(300-800ms) - 在 get_product.js 中添加 mock 数据开关(USE_MOCK_DATA) - 方便开发测试和后端联调 修复问题: - 修复产品中心页面滚动加载不触发的问题 - 使用 page-level scroll 替代 container scroll - 使用 sticky 定位固定顶部导航和搜索栏 - useReachBottom 现在可以正确监听页面触底事件 技术细节: - 移除 h-screen(小程序不支持 100vh) - 使用 sticky top-0 固定顶部区域 - 列表区域使用页面级滚动 - 添加调试日志方便排查问题 相关文件: - src/api/mock/product.js(新增) - src/api/get_product.js(修改) - src/pages/product-center/index.vue(修改) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
hookehuyr authored
-
- 移除 product-center 页面的 scroll-view 组件,改用原生 view - 删除冗余的 onScrollToLower 函数 - 将触底加载逻辑内联到 useReachBottom hook 中 - 为 product-detail 页面的 PlanFormContainer 添加条件渲染 - 避免 productDetail 为 null 时的 prop 类型检查错误 影响文件: - src/pages/product-center/index.vue - src/pages/product-detail/index.vue Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
hookehuyr authored
-
修复了产品中心页面进入时的 Vue prop 类型验证警告: - 明确指定 product prop 的 type 为 Object - 将 required 设为 false 并允许 null 默认值 - 添加空值检查,防止访问 null.form_sn 报错 - 在 product-center 页面添加 v-if 条件渲染 影响范围: - src/components/PlanFormContainer.vue - src/pages/product-center/index.vue 相关文档: - 更新 API 联调日志(搜索模块完成) - 更新 CLAUDE.md(可复用组件说明) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 新增 MaterialCard 和 ProductCard 组件,减少代码重复 - 重构首页、搜索页、本周热门资料页使用新组件 - 搜索页面集成真实API,支持分页加载和实时查询 - 移除测试数据,全部对接后端接口 影响文件: - src/components/MaterialCard.vue (新增) - src/components/ProductCard.vue (新增) - src/pages/index/index.vue - src/pages/search/index.vue - src/pages/week-hot-material/index.vue - components.d.ts - docs/CHANGELOG.md Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
记录本次修复的内容: - 问题描述、根本原因 - 技术方案和实现细节 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
问题描述: - 提交成功后,有时表单会保留上次的数据 - 表现不稳定:大部分时候正常,偶尔会有残留数据 - 影响用户体验,需要手动清除数据 根本原因: - 依赖 watch 监听器重置表单存在竞态条件 - watch(visible) 只在弹窗打开时重置,关闭时不重置 - 组件可能被缓存(v-show),状态未清理 - 响应式更新时序问题导致残留 解决方案: 1. 在 submit() 成功后立即调用 resetForm() 2. 在 close() 关闭弹窗前调用 resetForm() 3. 优化 watch(visible) 作为安全网,检测残留数据 4. 为所有模板组件添加 clearErrors() 方法 技术改进: - 新增 resetForm() 函数:重置表单和错误状态 - submit() 中调用 resetForm(),确保提交后立即清空 - close() 中调用 resetForm(),确保关闭时清空 - watch(visible) 仅在检测到残留数据时才重置 - 统一模板组件接口:validate + clearErrors 影响文件: - src/components/PlanFormContainer.vue - src/components/PlanTemplates/SavingsTemplate.vue - src/components/PlanTemplates/LifeInsuranceTemplate.vue - src/components/PlanTemplates/CriticalIllnessTemplate.vue Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 为计划书表单添加完整验证机制 - 更新重疾险产品货币为 USD - 各个 PlanFields 组件支持错误提示 - CriticalIllnessTemplate 和 LifeInsuranceTemplate 实现验证逻辑 - PlanFormContainer 添加提交前验证流程 技术细节: - PlanFormContainer 通过 ref 调用子组件 validate 方法 - 各个表单字段组件添加 error 状态显示 - 使用 usePlanFormValidation composable 管理验证逻辑 - 验证失败时阻止提交并显示错误信息 影响文件: - src/components/PlanFormContainer.vue - src/components/PlanFields/*.vue - src/components/PlanTemplates/CriticalIllnessTemplate.vue - src/components/PlanTemplates/LifeInsuranceTemplate.vue - src/config/plan-templates.js - docs/CHANGELOG.md Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 创建 form-sn-mapping.md 文档,提供完整的 form_sn 到模版组件的映射关系 - 创建 form-sn-mapping.json 文件,提供机器可读的映射数据 - 包含 8 个产品的映射(人寿保险 2 个、重疾保险 3 个、储蓄保险 4 个) - 提供后端集成指南,包括 API 返回示例、命名规范、新产品接入流程 - 明确职责分工:后端只负责返回 form_sn 字段,前端处理具体配置 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 创建计划书模块架构和经验教训总结文档 - 创建快速使用指南(5分钟快速集成) - 更新架构文档,明确提取计划三层结构 - 添加 SavingsTemplate 组件(储蓄型产品模板) - 修复 PlanFormContainer 中的模板导入路径 影响文件: - docs/lessons-learned/plan-entry-module-summary.md (新增) - docs/plan/plan-entry-quick-guide.md (新增) - docs/CHANGELOG.md (更新) - docs/plan/plan-entry-architecture.md (更新) - src/components/PlanTemplates/SavingsTemplate.vue (新增) - src/components/PlanFormContainer.vue (修复)
hookehuyr authored -
根据客户需求,移除计划书模版中的保险期间显示字段。 配置文件中的 insurance_period 配置保留,以备未来需要。 - 移除 LifeInsuranceTemplate 中的保险期间显示 - 移除 CriticalIllnessTemplate 中的保险期间显示 - 保留配置文件中的 insurance_period 配置 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored
-