1. 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
  2. 01 Feb, 2026 6 commits
    • - 添加 CHANGELOG 检查报告(最近 7 天,无漏记)
      - 更新 Claude Code 配置允许全局 CHANGELOG 检查脚本
      - 使用全局工具可确保跨项目一致性
      
      详细报告: docs/changelog-check-report-20260201.md
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • 新增:
      - 创建 CHANGELOG 漏记检查脚本 (scripts/check-changelog.sh)
        - 自动扫描 git 提交记录
        - 对比 CHANGELOG.md 中的记录
        - 生成漏记报告和统计信息
        - 支持自定义检查天数(7天/30天/全部)
      
      - 添加 CHANGELOG 检查指南 (docs/changelog-check-guide.md)
        - 说明检查机制的重要性和最佳实践
        - 提供每周/每月/发布前检查流程
        - 包含漏记补充流程和故障排查
      
      - 补充 CHANGELOG 漏记的 17 条变更记录
        - 2026-02-01: 配置腾讯元宝AI小程序跳转
        - 2026-01-31: 搜索功能重构与优化
        - 2026-01-31: 修复收藏页面显示问题
        - 2026-01-31: 计划书功能扩展
        - 2026-01-30: TabBar 组件优化与 AI 答疑功能
        - 2026-01-30: IconFont 组件重构与修复
        - 2026-01-30: 新增帮助中心和产品详情页
        - 2026-01-30: 重构登录页面
        - 2026-01-30: 新增文档预览组件
        - 2026-01-30: 集成 Apifox API 管理系统
        - 2026-01-30: 添加退出登录功能
        - 2026-01-29: 新增搜索页面
        - 2026-01-29: 新增我的模块相关页面
        - 2026-01-29: 新增可复用组件
        - 2026-01-27: 新增 OpenAPI 转 API 文档生成器
        - 2026-01-27: 添加项目开发文档
      
      更新:
      - 更新 package.json,添加 CHANGELOG 检查命令
        - pnpm run changelog:check (最近7天)
        - pnpm run changelog:check:30 (最近30天)
        - pnpm run changelog:check:all (所有提交)
      
      优化:
      - 统一 CHANGELOG 格式
      - 更新统计信息(53+变更)
      
      这个机制确保项目变更记录的完整性和可追溯性,提升文档质量。
      hookehuyr authored
    • 新增:
      - 创建 docs/decisions.md 技术决策记录文档
        - 记录 7 个已采纳的技术决策(UI 库选择、样式策略等)
        - 包含决策背景、原因、后果和替代方案
        - 提供决策模板和回顾机制
      
      优化:
      - 统一 CHANGELOG.md 格式,添加标准模板
        - 在顶部添加变更记录模板和使用说明
        - 添加快速统计信息(总变更数、分类统计)
        - 将历史记录统一为标准格式([YYYY-MM-DD] - 简短描述)
        - 为所有记录添加详细信息部分(影响文件、技术栈、测试状态)
      
      这些改进提升了文档的可维护性和可读性,便于团队理解技术选型背景和追踪项目变更历史。
      hookehuyr authored
    • - 将"我的"和"修改头像"页面的默认头像从网络图片替换为本地SVG
      - 使用 @/assets/images/icon/avatar.svg 作为默认头像
      - 采用 ES6 import 导入方式,确保 Taro 构建工具正确处理静态资源
      - 更新 CHANGELOG.md 记录变更
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • - 将参数从 extraData 改为 URL 查询字符串拼接
      - path 添加查询参数: ?showAuthDirectly=1&agentId=sOySYp2PV9qa
      - 确保正确打开定制版元宝AI小程序
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • - 更新元宝小程序 AppID 为 wxd5201eb08d2fa15c
      - 配置跳转路径为 pages/agentChat/index
      - 添加 extraData 参数(showAuthDirectly 和 agentId)
      - 移除未使用的 ref 导入,优化代码
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
  3. 31 Jan, 2026 25 commits
    • 将图标容器尺寸从 64rpx 增大至 88rpx,并添加渐变背景、圆角和内阴影以增强视觉层次。
      同时调整图标尺寸为 48rpx 并添加右侧外边距,优化整体布局与视觉对齐。
      hookehuyr authored
    • - 为搜索栏添加白色背景,避免在深色模式下显示异常
      - 将 SchemeA 组件中的行业选择器弹窗提升到外层,避免嵌套弹窗在真机上的层级冲突
      - 更新 lessons-learned 文档,记录弹窗嵌套问题的解决方案
      hookehuyr authored
    • 新增文档:
      - docs/lessons-learned.md - Taro 项目开发经验、最佳实践和常见陷阱总结
        - 组件抽取与复用("第 3 次出现原则")
        - NutUI 组件使用陷阱(textarea、IconFont)
        - 静态资源加载问题(SVG 图标)
        - 样式处理策略(TailwindCSS vs Less)
        - 性能优化(shallowRef + markRaw)
        - 代码质量规范(JSDoc、命名规范)
        - 架构设计(统一的列表点击、文件操作)
      
      - docs/changes-summary.md - 文档优化变更说明
      
      优化文档:
      - CLAUDE.md
        - 添加快速参考表格,常见问题一目了然
        - 重新组织核心架构章节,结构更清晰
        - 添加样式处理策略和响应式优化章节
        - 添加对经验教训文档的交叉引用
      
      - README.md
        - 添加项目文档索引和核心特性说明
        - 新增常见问题快速参考表格
        - 精简项目结构,移除过时内容
        - 优化开发规范说明
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • - 将 Tab 样式统一为与 plan 页面一致(padding: 24rpx)
      - 移除 Tab 的固定高度,改为自适应
      - 优化搜索结果计数位置(从滚动区域内移到外部)
      - 移除空状态图片,使用纯文字提示
      - 调整列表容器布局,移除多余的 padding
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • 重构 SearchBar 组件,移除对 NutUI Input 组件的依赖,改用原生 input 元素实现搜索输入框。这提高了组件的渲染性能并减少了包体积。同时,自定义了搜索图标和清除按钮的样式与交互逻辑,以获得更精细的 UI 控制。
      hookehuyr authored
    • - 移除计划书页面搜索栏的白色背景,使其与整体设计一致
      - 为资料列表页面搜索栏添加底部边距,改善布局间距
      - 优化搜索组件样式:移除边框、设置透明背景、调整圆角大小
      - 修复搜索页面逻辑:空关键词时返回空数组,避免显示全部数据
      hookehuyr authored
    • 修复搜索页面清空关键词后显示"初始状态"而不是"暂无搜索结果"的问题。移除watch中清空关键词时重置hasSearched的逻辑,添加isInitialState计算属性区分初始状态和空结果状态,确保用户体验连贯性。
      
      同时优化页面布局为固定顶部+滚动列表结构,并添加详细的测试用例验证修复效果。
      hookehuyr authored
    • - 将 SearchBar 组件从原生 input 重构为 NutUI Input 实现,简化样式和逻辑
      - 更新 components.d.ts 类型声明,移除未使用的 NutConfigProvider,修正 PlanPopup 导入路径
      - 重构搜索页面,使用 NutTabs 实现分类切换,支持长列表测试数据
      - 为搜索结果项添加动画效果,优化用户体验
      hookehuyr authored
    • - 新增 hasCategories 状态,支持有/无分类两种模式
      - 新增 fetchCategoriesFromBackend 函数,模拟后端分类数据
      - 优化 initTabsData 函数,自动选中第一个分类(有分类时)
      - 动态显示 Tabs(仅在有分类时显示)
      - 无分类时直接显示全部资料列表
      
      🤖 Generated with [Claude Code](https://claude.com/claude-code)
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • - 将 favorites 和 plan 页面的 FilterTabs 组件替换为 NutTabs 实现自定义标签栏
      - 统一在 knowledge-base、material-list、favorites 和 plan 页面的标签容器中添加 width: 100% 样式
      - 为收藏和计划书列表项添加进场动画效果
      - 重构数据逻辑,使用 tabsData 统一管理分类数据,支持动态数据分配
      - 优化标签切换时的列表重渲染体验,避免内容闪烁
      hookehuyr authored
    • - 移除 FilterTabs 组件,改用 NutUI Tabs 实现自定义标签栏
      - 将数据模型重构为基于 ID 的分类,支持动态数据分配
      - 优化列表渲染性能,添加切换动画和空状态提示
      - 统一使用 view/image 等 uni-app 组件,提升跨端兼容性
      hookehuyr authored
    • 通过添加 v-if 和 key 强制重新渲染列表,避免切换标签时 Vue 复用组件导致的显示异常
      hookehuyr authored
    • - 移除 FilterTabs 组件依赖,改用 nut-tabs 实现自定义标签栏
      - 新增测试页面 pages/test-tabs 用于验证自定义 Tabs 样式
      - 调整全局样式,为 page 选择器添加 CSS 变量定义
      - 更新组件类型声明,移除 NutSearchbar,添加 NutConfigProvider
      - 在开发环境中注册测试页面路由
      hookehuyr authored
    • - 收藏页面和知识库页面采用顶部筛选固定、列表区域独立滚动的结构
      - 提升用户浏览和筛选体验,保持筛选区域可见性
      - 更新 README.md 和 CHANGELOG.md 文档以反映页面优化
      hookehuyr authored
    • 将多个页面中的重复搜索框代码提取为统一的 SearchBar 组件,提高代码复用性和维护性。该组件支持多种样式变体、清除按钮、边框等配置选项,并保持与原有功能的一致性。
      hookehuyr authored
    • - 重构页面结构,使用 flex 布局实现顶部固定和列表独立滚动
      - 增加多个示例资料数据,丰富页面内容
      - 优化筛选逻辑,同时支持分类筛选和搜索筛选
      - 修复删除操作时从 allList 中删除数据的问题
      hookehuyr authored
    • 将资料列表、知识库、收藏和计划书页面的横向筛选标签抽取为通用组件,避免重复的样式和滚动条隐藏逻辑。新增组件示例文件并更新全局组件类型声明。
      hookehuyr authored
    • - 将页面结构调整为顶部固定、列表独立滚动,提升浏览体验
      - 扩充 Mock 数据以支持更全面的搜索与筛选测试
      - 更新 README 与 CHANGELOG 文档
      hookehuyr authored
    • 将文档预览、收藏夹、首页热门素材和产品详情页中的示例PDF和Word文档URL统一替换为测试文件URL,以便进行功能演示和测试
      hookehuyr authored
    • 将原本指向错误中文文件名PDF的URL统一替换为正确的英文哈希文件名,确保文档下载和预览功能正常工作
      hookehuyr authored
    • 新增功能:
      - 创建计划书提交结果页面 (pages/plan-submit-result/)
        - 使用 NavHeader 组件作为页面头部
        - 显示提交成功/失败状态(图标 + 文案)
        - 成功时显示固定提示文案
        - 失败时显示接口返回的错误信息
        - 底部"返回首页"按钮固定在页面底部
        - 通过路由参数传递 success 和 message 参数
      
      修改内容:
      - 首页实现计划书提交跳转
        - SchemeA 和 SchemeB 提交后跳转到结果页面
        - 暂时模拟成功状态(待后续接入真实API)
      - 注册新页面路由到 app.config.js
      - 更新 CHANGELOG 记录变更
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • - 新增 PlanPopup 容器组件,统一头部和底部按钮
      - 使用 NutUI Button 组件替换原生 div 按钮
      - 重构 SchemeA 和 SchemeB,使用 PlanPopup 容器
      - 减少约 60 行重复代码
      - 添加详细的 JSDoc 注释
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • - 跳转时传递列表项的 title 作为页面标题参数
      - material-list 页面接收 title 参数并动态设置页面标题
      - 标题默认值为"资料列表",保持向后兼容
      
      技术实现:
      - 在跳转时传递 categoryId 和 title 两个参数
      - 使用响应式变量 pageTitle 动态更新 NavHeader 组件
      - 在 useLoad 中优先处理 title 参数
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • - 为 onboarding、family-office、signing 三个页面的 item 添加 categoryId
      - 点击 item 时跳转到 material-list 页面并传递分类 ID 参数
      - material-list 页面使用 useLoad 接收 categoryId 并预留 API 调用接口
      - 保持向后兼容,无 categoryId 时显示所有资料
      
      技术实现:
      - 使用 useSectionList composable 的自定义点击处理函数
      - 统一的 ID 命名规范:{page}-{module}-{feature}
      - 完善的日志输出和错误处理
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored
    • - 新增 useSectionList Composable 封装分组列表通用逻辑
      - 重构 onboarding/family-office/signing 三个页面使用 composable
      - 减少约 60 行重复代码,提升可维护性
      - 应用"第 3 次出现原则":3 个页面使用相同模式 → 必须提取
      - 所有函数包含完整 JSDoc 注释(@description、@param、@returns、@example)
      
      Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
      hookehuyr authored