- 03 Feb, 2026 30 commits
-
-
性能优化: - User Store 添加防抖机制(5秒内不重复请求) - 修复 useShow 为 useDidShow(使用正确的 Taro 生命周期) - "我的"页面统一使用 userStore.fetchUserInfo() - 移除本地 userInfo ref 和 fetchUserProfile 函数 - 移除对 mainStore 和 getProfileAPI 的直接依赖 配置优化: - 添加 @/config 路径别名到 config/index.js 效果: - 从首页跳转到"我的"页面时,请求次数从 2 次减少到 1 次 - 页面间快速切换不会触发重复请求 - 统一状态管理,代码更简洁 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 添加功能开关配置系统(src/config/features.js) - 支持全局开关控制功能启用/禁用 - 可配置红点字段名称和显示阈值 - 方便灰度发布和功能回滚 - TabBar 组件自动从 Store 读取红点状态 - 移除手动传递 badges prop - 组件内部自动管理红点显示逻辑 - 只处理"我的"按钮的红点 - User Store 新增红点状态自动计算 - 新增 tabBarBadges 计算属性 - 根据用户信息自动计算红点状态 - 支持数字和布尔类型字段 - 响应式更新,无需手动管理 - 首页添加用户信息自动刷新 - useShow 生命周期自动刷新 - 只在已登录状态下请求 - 添加错误处理 - 创建完整的使用文档(docs/features/tabbar-badge.md) - 功能说明和启用方法 - 数据流程图和测试方法 - 常见问题解答 功能默认关闭(features.tabbarBadge = false) 当前使用 unread_count 字段(待确认) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
优化内容: - 清空时重置到初始状态,不再显示"暂无搜索结果" - 添加分类相关的动态引导文案(全部/产品/资料) - 实时搜索监听器优化:清空关键词时也重置状态 影响文件: - src/pages/search/index.vue - docs/CHANGELOG.md Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
替换多个页面的自定义空状态为 NutUI 的 Empty 组件,提升 UI 一致性和用户体验。涉及页面包括:搜索页、知识库页、资料列表页、计划书页、收藏页和意见反馈页。
hookehuyr authored -
- 更新项目文档结构与实际保持一致 - 新增文档索引和组件/工具函数文档 - 更正身份认证流程说明 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
主要更新: - 新增接口联调日志和变更日志的文档索引 - 更正身份认证流程说明(openid.js 替代不存在的 authRedirect.js) - 删除不存在的 auth/index 页面 - 新增 3 个页面:plan-submit-result、feedback-list、test-tabs - 新增 11 个组件:DocumentPreview、PdfPreview、OfficeViewer 等 - 新增 3 个工具函数:documentIcons.js、tools.js、openid.js - 更新关键文件总结和会话管理说明 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 在文件大小前面显示文件类型(如:PDF · 2.5MB) - 使用 getDocumentLabel 工具函数自动识别文件类型 - 支持常见文件格式:PDF、Word、Excel、PPT、图片、视频等
hookehuyr authored -
- 将相机图标背景从 p-[16rpx] 改为固定 w-[96rpx] h-[96rpx] - 添加 flex 布局确保图标居中 - 确保 rounded-full 始终形成正圆
hookehuyr authored -
- 产品列表接口(listAPI)联调成功 - 知识库页面:动态标签栏、分类筛选、滚动加载功能正常 - 首页热卖产品:产品列表正常显示 - 更新总体进度:20个接口(12个已完成,0个联调中,3个已废弃,5个后端开发中) - 文档版本升级至 v2.1 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 修复空状态文字水平居中问题 - 为 text 元素添加 w-full text-center 类 - 确保 Taro 小程序环境下正确居中显示 - 更新 CHANGELOG 和 API 集成日志 - 新增产品模块记录(产品列表接口 listAPI) - 记录知识库页面 API 集成完成情况 - 更新接口总数:20 个(11 个已完成,1 个联调中,3 个已废弃,5 个后端开发中) - 文档版本升级至 v2.0 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
### 主要改动 1. **集成产品列表 API**(listAPI) - 从接口获取产品数据和分类列表 - 使用 `data.categories` 作为标签栏数据(动态生成) - 产品卡片数据严格按照接口文档映射 - 移除所有硬编码的模拟数据 2. **实现分类筛选功能** - 点击标签时传递 `cid` 参数到接口 - 每次切换分类时重置分页状态(page=0, products=[]) - 支持查看"全部"或特定分类的产品 3. **实现滚动加载功能** - 使用 `scroll-view` 的 `@scrolltolower` 事件 - 滚动到底部时自动加载下一页 - 加载更多时追加数据(不替换) - 根据总数判断是否还有更多数据 4. **数据映射(严格遵循接口文档)** - `item.id` → 产品 ID - `item.product_name` → 产品名称 - `item.cover_image` → 产品封面图 - `item.recommend` → 推价位(hot/normal) - `item.tags` → 动态标签(含 bg_color、text_color) - `categories` → 分类列表(用于标签栏) - `total` → 产品总数 ### 状态管理 - `loading`: 加载状态(显示加载提示) - `hasMore`: 是否还有更多数据 - `page`: 当前页码(从 0 开始) - `limit`: 每页数量(10) - `categories`: 分类列表(从接口获取) - `products`: 当前产品列表 - `total`: 产品总数 ### 移除的硬编码 - 移除硬编码的 `tabsData`(人寿保险、医疗保险、意外保险) - 移除模拟产品数据生成函数 - 移除 `descColorPalette` 和 `getDescColor` 函数 - 移除 `currentTabName` 和 `filteredProducts` 计算属性 ### 用户体验优化 - 首次加载显示"加载中..."提示 - 滚动到底部时显示"加载中..." - 没有更多数据时显示"没有更多了" - 无数据时显示"暂无相关产品" ### 影响文件 - src/pages/knowledge-base/index.vue(完整重构) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
### 新增内容 1. **新增收藏 API 定义文件** - src/api/favorite.js: 收藏相关 API 封装 - addAPI: 添加收藏 - delAPI: 取消收藏 - listAPI: 收藏列表 2. **新增收藏模块 API 规范文档** - docs/api-specs/favorite/add.md: 添加收藏接口文档 - docs/api-specs/favorite/del.md: 取消收藏接口文档 - docs/api-specs/favorite/list.md: 收藏列表接口文档 3. **更新 API 集成日志** - 新增收藏模块章节(3 个接口) - 更新总体进度:16 → 19 个接口 - 更新后端开发中接口数:2 → 5 个 - 更新快速索引(添加收藏模块) - 更新文档版本:v1.8 → v1.9 ### 接口状态 所有收藏接口均为 **⏳ 后端开发中**: - addAPI(添加收藏) - delAPI(取消收藏) - listAPI(收藏列表) ### 影响文件 - src/api/favorite.js(新增) - docs/api-specs/favorite/add.md(新增) - docs/api-specs/favorite/del.md(新增) - docs/api-specs/favorite/list.md(新增) - docs/api-integration-log.md(更新) - src/api/user.js(linter 自动格式化) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>hookehuyr authored -
### 修复内容 1. **修复获取个人信息接口字段访问错误** - mine/index.vue: 头像显示从 `userInfo.avatar_url` 改为 `userInfo.avatar.src` - API 返回 avatar 对象(包含 name, hash, src, height, width, size) - 之前错误访问不存在的 avatar_url 字段导致头像无法显示 2. **修复更新个人资料接口参数结构错误** - avatar/index.vue: 传递完整 avatar 对象而非 avatar_meta_id - API 规范要求 `{ avatar: { name, hash, src, height, width, size } }` - 之前只传 `{ avatar_meta_id: xxx }` 不符合接口规范 3. **修复头像上传接口数据映射错误** - 根据实际上传接口返回结构正确映射字段 - name: 从 data.data.file.name 获取 - hash: 从 data.data.res.hash 获取 - src: 从 data.data.src 获取 - height/width: 从 data.data.height/width 获取 - size: 从 data.data.file.size 获取 ### 新增功能 4. **头像设置页面加载时获取用户当前头像** - 进入页面时调用 getProfileAPI() 获取用户信息 - 如果用户已有头像则显示当前头像,否则显示默认头像 - 提升用户体验,避免每次看到默认头像 ### 文档更新 5. **更新 API 文档** - src/api/user.js: 更新 updateProfileAPI 的 JSDoc 注释 - docs/api-specs/user/get_profile.md: 重写为清晰 Markdown 格式 - docs/api-specs/user/update_profile.md: 重写并添加完整流程说明 - docs/api-integration-log.md: 更新接口联调明细到 v1.8 - docs/CHANGELOG.md: 添加详细的变更记录 ### 影响文件 - src/pages/mine/index.vue(头像显示字段修复) - src/pages/avatar/index.vue(接口参数修复 + 获取当前头像) - src/api/user.js(API 注释更新) - docs/api-specs/user/get_profile.md(API 文档重写) - docs/api-specs/user/update_profile.md(API 文档重写) - docs/api-integration-log.md(联调日志更新) - docs/CHANGELOG.md(变更日志更新) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>hookehuyr authored -
- 首页热卖产品集成产品列表API (listAPI, recommend=hot) - 动态标签渲染,使用API返回的bg_color和text_color - 移除硬编码数据,改用API动态返回 - 产品详情页集成详情API (detailAPI) - 产品特色改为产品描述,使用rich-text渲染富文本 - 附件大小使用file_size_formatted字段显示格式化大小 - 移除收藏功能 - 修复nut-loading不兼容问题,改用CSS加载动画 - 更新API集成日志和规范文档状态 - 添加CHANGELOG记录 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
主要修改: - 修复 updateProfileAPI 参数:使用 avatar_meta_id 替代 avatar_url - 头像上传后保存 meta_id 字段用于后续更新 - 添加 meta_id 验证,避免传递空值 - 修复"我的"页面:添加 useDidShow 实现返回时自动刷新 - 显示工号(employee_no)替代用户 ID - 更新项目文档:记录生命周期钩子使用陷阱 技术细节: - src/pages/avatar/index.vue: 添加 tempAvatarMetaId 存储 - src/pages/mine/index.vue: 使用 useDidShow 而非 useShow - docs/lessons-learned.md: 新增"生命周期钩子使用陷阱"章节 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
核心改动: - 移除 scroll-view 组件,改用页面原生滚动 - 使用 min-height: 100vh 确保内容可滚动 - 使用 padding-bottom: 160rpx 为底部按钮预留空间 - 简化布局逻辑,提升稳定性 参考方案: - 老来赛项目的 FeedbackList 页面(不使用 scroll-view) - 老来赛项目的 PointsList 页面(使用 scroll-view 时用 calc() 计算高度) 经验教训: 1. 小程序页面滚动两种方案: - 简单列表:优先使用页面原生滚动(无需 scroll-view) - 复杂布局:使用 scroll-view 时必须用 calc() 明确计算高度 2. scroll-view 在小程序中的限制: - 不能依赖 flex: 1 自动填充高度 - 不能使用 height: 100%(在某些设备上计算异常) - 必须用 :style="scrollStyle" 动态计算明确高度值 3. 页面原生滚动的优势: - 更稳定,无需复杂的高度计算 - 支持下拉刷新、触底加载等原生功能 - 性能更好,兼容性更强 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
新增 Taro 快速参考指南,汇总禁止使用的 Web API、推荐使用的 Taro API、生命周期对比、样式规范、常见陷阱和性能优化建议。帮助开发者避免使用不兼容的 Web API 并遵循最佳实践,提升开发效率和代码质量。
hookehuyr authored -
- 将 CLAUDE.md 添加到 .gitignore 以忽略此文件 - 在 Claude 本地设置中新增 npm run dev:weapp:* 命令别名 - 从组件类型定义中移除未使用的 NutUploader 导入
hookehuyr authored -
意见反馈模块联调完成: - 意见反馈列表(listAPI):✅ 已完成 - 提交意见反馈(addAPI):✅ 已完成 修复问题记录: - 生命周期钩子导入错误(useShow → useDidShow) - onMounted 导入错误(从 Vue 导入) - 图片显示错误(数组格式处理) - NutUI Loading 组件报错(自定义 CSS spinner) 更新总体进度:9个已完成,3个已废弃,2个后端开发中 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
新增功能: - 实现意见反馈列表页面(分页、图片预览、自动刷新) - 实现意见反馈提交页面(类型选择、图片上传、审核提示) - 添加图片上传功能(最多3张,5MB限制,支持审核) - 实现从列表页跳转提交页的导航流程 技术优化: - 修复生命周期钩子导入错误(useShow → useDidShow) - 修复图片显示错误(数组格式处理) - 使用自定义 CSS spinner 替代 NutUI Loading - 添加 useDidShow 实现返回列表时自动刷新 文档更新: - 更新 API 文档(addAPI、images 数组格式) - 更新项目 CHANGELOG Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 添加 bash:* 和 bun 版本检查命令到允许的 Bash 工具列表 - 将 enableAllProjectMcpServers 设置移到更合适的位置 - 保持 JSON 格式的一致性
hookehuyr authored -
- 更新个人资料接口状态为 ✅ 已完成 - 通用模块七牛云相关接口标记为 ❌ 已废弃(3个) - 头像上传方案调整:改用 Taro.uploadFile 直接上传 - 更新总体进度统计 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 修复 src/api/common.js 中 Taro 未定义的错误 - 改用 Taro.uploadFile 直接上传到服务器 - 添加图片审核支持和样式修复 - 更新 CHANGELOG.md Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 更新接口联调工作记录文档,新增通用模块接口 - qiniuTokenAPI: 获取七牛上传 Token - saveFileAPI: 保存文件信息到服务器 - uploadImageToQiniuAPI: 完整的图片上传流程(封装接口) - 更新 CHANGELOG.md,记录头像页面实现情况 - 更新总体进度:14个接口(5个已完成,9个后端开发中) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 更新接口联调工作记录,登录接口状态更新为已完成 - 更新总体进度:10个接口(5个已完成,5个后端开发中) - 完成率从 40% 提升到 50% Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 创建接口联调工作记录文档,记录接口文档更新和页面调试情况 - 记录 10 个接口的状态(4 个已完成、1 个联调中、5 个后端开发中) - 提供接口联调模板文件,便于快速添加新接口记录 - 包含总体进度、接口明细、问题汇总、进度追踪等模块 - 更新 CHANGELOG.md 记录文档变更 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored
-
- 02 Feb, 2026 9 commits
-
-
- 修改 openid.js 使用 axios 直接调用授权接口以访问响应头 - 添加 extractCookieFromResponse() 从响应中提取 cookie - 添加 normalizeCookies() 处理重复的 set-cookie - 修改 request.js 的 setSessionId() 自动清理重复的 cookie - 添加 cleanupDuplicateCookies() 函数处理重复 cookie - 新增 SESSIONID_MANAGEMENT.md 文档记录 sessionid 管理最佳实践 问题:后端返回重复的 Set-Cookie 导致请求头携带重复的 sessionid 解决:前端提取 cookie 时自动去重,只保留第一个 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
## 变更内容 ### 文档更新 - 更新鉴权架构文档,明确 sessionid 动态获取规范 - 更新 CHANGELOG.md,记录 sessionid 处理规范 - 更新小程序检查清单,添加 sessionid 管理章节 ### 功能更新 - 退出登录功能使用 logoutAPI 接口 - 调用 userStore.logout() 解绑 openid - 清除 mainStore 用户信息 - 完整的错误处理和用户提示 ## ⭐ 重要规范(SessionID 处理) **核心原则**: - 必须动态获取 sessionid:每次请求前从 `localStorage.sessionid` 读取 - 设置到请求头 cookie 字段:`config.headers.cookie = sessionid` - 确保所有请求都带上最新的 sessionid **实现位置**:`src/utils/request.js:157-166` **检查清单**: - [x] 请求拦截器中已实现动态获取 sessionid - [x] sessionid 设置到 `config.headers.cookie` 字段 - [x] 401 响应时清除 sessionid - [x] 用户登出时清除 sessionid Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
## 变更内容 ### 修复 NavHeader 组件警告 - 添加 `showBack` prop 定义,解决 extraneous non-props attributes 警告 - 优化返回按钮显示逻辑,优先使用 prop 值 - 添加详细的 JSDoc 注释和使用示例 ### 文档更新 - 更新 CHANGELOG.md,记录 NavHeader 修复内容 - 添加 login_status API 规范文档 **影响文件**: - src/components/NavHeader.vue - docs/CHANGELOG.md - docs/api-specs/user/login_status.md Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
## 核心变更 ### 架构调整 - 移除 sessionid 前端管理逻辑,改由后端自动处理(cookie) - 移除接口白名单机制,所有接口直接发送 - 简化 401 处理,统一跳转登录页 - 分离微信授权(openid)和用户登录两个独立概念 ### 文件变更 **新增文件:** - src/utils/openid.js - 微信授权管理(wx.login、miniProgramAuthAPI) - src/stores/user.js - 用户状态管理(Pinia) - docs/specs/2026-02-02-auth-refactoring.md - 鉴权重构规划文档 **修改文件:** - src/app.js - 启动时检查登录状态,移除旧授权逻辑 - src/utils/request.js - 简化拦截器,移除白名单和 sessionid - src/pages/login/index.vue - 使用新的登录 API(uuid、password) - src/app.config.js - 移除 pages/auth/index 引用 - src/pages/mine/index.vue - 适配新的鉴权逻辑 - src/utils/config.js - 配置调整 - src/api/user.js - API 文档更新 - .eslintrc.cjs - ESLint 配置调整 - .claude/settings.local.json - Claude 设置更新 **删除文件:** - src/utils/authRedirect.js - 移除旧的授权重定向逻辑 - src/pages/auth/* - 移除旧的授权页面 ## 新的鉴权流程 1. 小程序启动 → 确保 openid 已授权(wx.login) 2. 如果 miniProgramAuthAPI 返回 user → 自动登录 3. 如果未登录 → 不跳转,允许用户浏览小程序 4. 用户操作触发接口返回 401 → 跳转登录页 ## 优势 - ✅ 简化前端逻辑,不需要维护白名单 - ✅ sessionid 由后端统一管理,更安全 - ✅ 用户体验更好,启动时不强制登录 - ✅ 代码更清晰,职责分离 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 移除 API 中的 `t` 参数和 `client_name` 参数,简化 URL 构建 - 更新生产/开发环境域名为 manulife.onwall.cn - 启用授权模式(ENABLE_AUTH_MODE = true) - 将废弃的 substr 替换为 substring - 添加认证调试指南文档(docs/auth-debug-guide.md) - 更新 API 文档状态(testing/developing) - 优化登录和退出登录的 JSDoc 注释 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
主要变更: - 将文档从 docs/ 根目录移动到子目录(guides/, reports/, decisions/) - 删除旧的 src/api/index.js 和 src/api/order.js 文件 - 添加 Apifox 测试脚本(debug, endpoints, export) - 更新 Claude Code 设置以支持新的文档结构 文档结构优化: - docs/guides/ - 操作指南和集成指南 - docs/reports/ - 技术报告和问题分析 - docs/decisions/ - 技术决策记录 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 修改 generateApiFromOpenAPI.js 支持 t 参数(接口功能) - t 参数与 a 参数(文件夹)共同构成 URL 路径 - 在 JSDoc 中过滤 a、f、t 参数,避免重复传递 - 重构 OpenAPI 文档结构,按模块组织(user/wechat/feedback/news) - 重新生成所有 API 文件,包含正确的 URL 结构 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 使用 Buffer.concat() 正确处理二进制数据流 - 添加空响应处理,避免解析错误 - 移除 UTF-8 BOM 标记(\uFEFF) - 使用 Array.isArray() 验证响应数据类型 - 统一改进 apifox-sync.js、apifox-to-openapi.js、test-apifox-connection.js 提升 Apifox API 集成的稳定性和容错能力 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored -
- 修复 Apifox Token 验证错误(小写 aps- → 大写 APS-) - 更新错误提示信息,显示正确的大写格式 - 变更文件:scripts/test-apifox-connection.js Apifox API Token 的正确格式是 APS-xxxxxxxx(大写) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored
-
- 01 Feb, 2026 1 commit
-
-
- 添加 CHANGELOG 检查报告(最近 7 天,无漏记) - 更新 Claude Code 配置允许全局 CHANGELOG 检查脚本 - 使用全局工具可确保跨项目一致性 详细报告: docs/changelog-check-report-20260201.md Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
hookehuyr authored
-