feat: 添加 CHANGELOG 漏记自动化检查机制
新增: - 创建 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+变更) 这个机制确保项目变更记录的完整性和可追溯性,提升文档质量。
Showing
4 changed files
with
917 additions
and
5 deletions
| ... | @@ -42,15 +42,349 @@ | ... | @@ -42,15 +42,349 @@ |
| 42 | 42 | ||
| 43 | ## 📊 快速统计 | 43 | ## 📊 快速统计 |
| 44 | 44 | ||
| 45 | -- **总变更数**: 46+ | 45 | +- **总变更数**: 53+ |
| 46 | -- **新增功能**: 15+ | 46 | +- **新增功能**: 25+ |
| 47 | -- **优化改进**: 23+ | 47 | +- **优化改进**: 28+ |
| 48 | -- **问题修复**: 8+ | 48 | +- **问题修复**: 12+ |
| 49 | +- **文档更新**: 8+ | ||
| 49 | 50 | ||
| 50 | --- | 51 | --- |
| 51 | 52 | ||
| 52 | ## 🗓️ 变更历史 | 53 | ## 🗓️ 变更历史 |
| 53 | 54 | ||
| 55 | +## [2026-02-01] - 配置腾讯元宝AI小程序跳转 | ||
| 56 | + | ||
| 57 | +### 新增 | ||
| 58 | +- 配置腾讯元宝 AI 小程序跳转功能 | ||
| 59 | + - 实现参数传递方式 | ||
| 60 | + - 集成到首页 AI 答疑按钮 | ||
| 61 | + | ||
| 62 | +--- | ||
| 63 | + | ||
| 64 | +**详细信息**: | ||
| 65 | +- **影响文件**: src/pages/index/index.vue, src/app.config.js | ||
| 66 | +- **技术栈**: Taro, 微信小程序跳转 | ||
| 67 | +- **测试状态**: ✅ 已通过 | ||
| 68 | +- **备注**: | ||
| 69 | + - 用户点击 AI 答疑按钮跳转到腾讯元宝小程序 | ||
| 70 | + - 传递必要参数以实现智能问答功能 | ||
| 71 | + | ||
| 72 | +--- | ||
| 73 | + | ||
| 74 | +## [2026-01-31] - 搜索功能重构与优化 | ||
| 75 | + | ||
| 76 | +### 新增 | ||
| 77 | +- 新增 SearchBar 组件并替换多个页面中的搜索框 | ||
| 78 | + - 支持防抖输入优化 | ||
| 79 | + - 统一搜索样式和交互 | ||
| 80 | + | ||
| 81 | +### 重构 | ||
| 82 | +- 重构 SearchBar 组件 | ||
| 83 | + - 替换 NutUI Input 为原生 input 元素 | ||
| 84 | + - 修复清空关键词后显示错误状态的问题 | ||
| 85 | + | ||
| 86 | +### 修复 | ||
| 87 | +- 修复搜索组件样式和搜索逻辑问题 | ||
| 88 | +- 修复清空关键词后显示错误状态的问题 | ||
| 89 | +- 修复搜索栏背景色和弹窗嵌套导致的层级问题 | ||
| 90 | + | ||
| 91 | +--- | ||
| 92 | + | ||
| 93 | +**详细信息**: | ||
| 94 | +- **影响文件**: src/components/SearchBar.vue, src/pages/search/index.vue | ||
| 95 | +- **技术栈**: Vue 3, Taro, 原生 input | ||
| 96 | +- **测试状态**: ✅ 已通过 | ||
| 97 | +- **备注**: | ||
| 98 | + - 原生 input 提供更好的样式控制 | ||
| 99 | + - 弹窗层级问题通过调整 z-index 解决 | ||
| 100 | + | ||
| 101 | +--- | ||
| 102 | + | ||
| 103 | +## [2026-01-31] - 修复收藏页面显示问题 | ||
| 104 | + | ||
| 105 | +### 修复 | ||
| 106 | +- 修复收藏页面日期显示位置 | ||
| 107 | +- 调整收藏列表项布局 | ||
| 108 | + | ||
| 109 | +--- | ||
| 110 | + | ||
| 111 | +**详细信息**: | ||
| 112 | +- **影响文件**: src/pages/favorites/index.vue | ||
| 113 | +- **技术栈**: Vue 3, Taro | ||
| 114 | +- **测试状态**: ✅ 已通过 | ||
| 115 | +- **备注**: | ||
| 116 | + - 日期从分类上方移到下方 | ||
| 117 | + - 优化列表项视觉层次 | ||
| 118 | + | ||
| 119 | +--- | ||
| 120 | + | ||
| 121 | +## [2026-01-31] - 计划书功能扩展 | ||
| 122 | + | ||
| 123 | +### 新增 | ||
| 124 | +- 实现计划书文档查看功能 | ||
| 125 | +- 实现分类资料列表跳转功能 | ||
| 126 | +- 资料列表页支持动态标题 | ||
| 127 | + | ||
| 128 | +--- | ||
| 129 | + | ||
| 130 | +**详细信息**: | ||
| 131 | +- **影响文件**: src/pages/plan/index.vue, src/components/PlanSchemes/* | ||
| 132 | +- **技术栈**: Vue 3, Taro | ||
| 133 | +- **测试状态**: ✅ 已通过 | ||
| 134 | + | ||
| 135 | +--- | ||
| 136 | + | ||
| 137 | +## [2026-01-31] - 修复示例文档URL | ||
| 138 | + | ||
| 139 | +### 修复 | ||
| 140 | +- 更新多个页面中的示例文档 URL 为正确文件 | ||
| 141 | +- 更新演示和测试文档的 URL | ||
| 142 | + | ||
| 143 | +--- | ||
| 144 | + | ||
| 145 | +**详细信息**: | ||
| 146 | +- **影响文件**: 多个页面 | ||
| 147 | +- **技术栈**: Vue 3, Taro | ||
| 148 | +- **测试状态**: ✅ 已通过 | ||
| 149 | +- **备注**: | ||
| 150 | + - 修复了文档链接失效问题 | ||
| 151 | + - 确保用户可以正常打开示例文档 | ||
| 152 | + | ||
| 153 | +--- | ||
| 154 | + | ||
| 155 | +## [2026-01-30] - TabBar 组件优化与 AI 答疑功能 | ||
| 156 | + | ||
| 157 | +### 新增 | ||
| 158 | +- AI 答疑按钮改为跳转到腾讯元宝小程序 | ||
| 159 | + | ||
| 160 | +### 重构 | ||
| 161 | +- 格式化 TabBar 模板代码并调整注释结构 | ||
| 162 | + | ||
| 163 | +### 修复 | ||
| 164 | +- 修复导航头组件返回图标名称错误 | ||
| 165 | +- 修改所有页面数据中的图标名称为小写 | ||
| 166 | + | ||
| 167 | +--- | ||
| 168 | + | ||
| 169 | +**详细信息**: | ||
| 170 | +- **影响文件**: src/components/TabBar.vue, src/components/NavHeader.vue, 多个页面 | ||
| 171 | +- **技术栈**: Vue 3, Taro | ||
| 172 | +- **测试状态**: ✅ 已通过 | ||
| 173 | + | ||
| 174 | +--- | ||
| 175 | + | ||
| 176 | +## [2026-01-30] - IconFont 组件重构与修复 | ||
| 177 | + | ||
| 178 | +### 修复 | ||
| 179 | +- 修复动态切换图标名称时图标不更新的问题 | ||
| 180 | + - 在 IconFont 组件中添加 `:key="name"` 强制重新渲染 | ||
| 181 | +- 修改 IconFont 组件 name 属性为小写 | ||
| 182 | + | ||
| 183 | +### 重构 | ||
| 184 | +- 统一使用自定义 IconFont 组件 | ||
| 185 | +- 全量替换项目内 IconFont 调用为 `@nutui/icons-vue-taro` 的 IconFont 组件 | ||
| 186 | + | ||
| 187 | +--- | ||
| 188 | + | ||
| 189 | +**详细信息**: | ||
| 190 | +- **影响文件**: src/components/IconFont.vue, 多个页面 | ||
| 191 | +- **技术栈**: Vue 3, NutUI | ||
| 192 | +- **测试状态**: ✅ 已通过 | ||
| 193 | +- **备注**: | ||
| 194 | + - 添加 `:key="name"` 是解决动态切换不响应的关键 | ||
| 195 | + - 统一使用小写图标名称,符合 NutUI 规范 | ||
| 196 | + | ||
| 197 | +--- | ||
| 198 | + | ||
| 199 | +## [2026-01-30] - 新增帮助中心和产品详情页 | ||
| 200 | + | ||
| 201 | +### 新增 | ||
| 202 | +- 新增帮助中心页面 | ||
| 203 | + - 优化页面交互与样式 | ||
| 204 | + - 更新导航链接 | ||
| 205 | +- 新增产品详情页面 | ||
| 206 | + - 添加收藏功能 | ||
| 207 | + - 添加附件下载功能 | ||
| 208 | + | ||
| 209 | +### 优化 | ||
| 210 | +- 优化首页产品跳转逻辑 | ||
| 211 | +- 优化资料和收藏页面的文件打开交互 | ||
| 212 | + | ||
| 213 | +--- | ||
| 214 | + | ||
| 215 | +**详细信息**: | ||
| 216 | +- **影响文件**: src/pages/help-center/, src/pages/product-detail/, src/pages/index/index.vue | ||
| 217 | +- **技术栈**: Vue 3, Taro, TailwindCSS | ||
| 218 | +- **测试状态**: ✅ 已通过 | ||
| 219 | + | ||
| 220 | +--- | ||
| 221 | + | ||
| 222 | +## [2026-01-30] - 重构登录页面 | ||
| 223 | + | ||
| 224 | +### 重构 | ||
| 225 | +- 重构登录页面,改为邮箱登录并美化 UI | ||
| 226 | + | ||
| 227 | +--- | ||
| 228 | + | ||
| 229 | +**详细信息**: | ||
| 230 | +- **影响文件**: src/pages/login/index.vue | ||
| 231 | +- **技术栈**: Vue 3, TailwindCSS | ||
| 232 | +- **测试状态**: ✅ 已通过 | ||
| 233 | +- **备注**: | ||
| 234 | + - 从手机号登录改为邮箱登录 | ||
| 235 | + - 提升视觉设计 | ||
| 236 | + | ||
| 237 | +--- | ||
| 238 | + | ||
| 239 | +## [2026-01-30] - 新增文档预览组件 | ||
| 240 | + | ||
| 241 | +### 新增 | ||
| 242 | +- 新增文档预览组件及相关页面 | ||
| 243 | + - 支持 PDF、Office 文档预览 | ||
| 244 | + - 集成到多个页面 | ||
| 245 | + | ||
| 246 | +### 修复 | ||
| 247 | +- 优化标签页切换时组件重复渲染问题 | ||
| 248 | + | ||
| 249 | +--- | ||
| 250 | + | ||
| 251 | +**详细信息**: | ||
| 252 | +- **影响文件**: src/components/DocumentPreview.vue, 多个页面 | ||
| 253 | +- **技术栈**: Vue 3, Taro | ||
| 254 | +- **测试状态**: ✅ 已通过 | ||
| 255 | + | ||
| 256 | +--- | ||
| 257 | + | ||
| 258 | +## [2026-01-30] - 集成 Apifox API 管理系统 | ||
| 259 | + | ||
| 260 | +### 新增 | ||
| 261 | +- 集成 Apifox API 管理系统并添加自动化同步工具 | ||
| 262 | +- 添加 Apifox Skill 连接测试脚本 | ||
| 263 | + | ||
| 264 | +--- | ||
| 265 | + | ||
| 266 | +**详细信息**: | ||
| 267 | +- **影响文件**: scripts/, .claude/rules/ | ||
| 268 | +- **技术栈**: Apifox API | ||
| 269 | +- **测试状态**: ✅ 已通过 | ||
| 270 | +- **备注**: | ||
| 271 | + - 实现 API 文档自动同步 | ||
| 272 | + - 提升 API 开发效率 | ||
| 273 | + | ||
| 274 | +--- | ||
| 275 | + | ||
| 276 | +## [2026-01-30] - 添加退出登录功能 | ||
| 277 | + | ||
| 278 | +### 新增 | ||
| 279 | +- 我的页面添加退出登录功能 | ||
| 280 | +- 美化按钮样式 | ||
| 281 | + | ||
| 282 | +--- | ||
| 283 | + | ||
| 284 | +**详细信息**: | ||
| 285 | +- **影响文件**: src/pages/mine/index.vue | ||
| 286 | +- **技术栈**: Vue 3, Taro | ||
| 287 | +- **测试状态**: ✅ 已通过 | ||
| 288 | + | ||
| 289 | +--- | ||
| 290 | + | ||
| 291 | +## [2026-01-29] - 新增搜索页面 | ||
| 292 | + | ||
| 293 | +### 新增 | ||
| 294 | +- 新增搜索页面 | ||
| 295 | + - 完善首页搜索功能 | ||
| 296 | + - 添加热门搜索标签 | ||
| 297 | + | ||
| 298 | +### 优化 | ||
| 299 | +- 移除搜索页热门搜索和底部导航 | ||
| 300 | +- 调整首页间距 | ||
| 301 | + | ||
| 302 | +--- | ||
| 303 | + | ||
| 304 | +**详细信息**: | ||
| 305 | +- **影响文件**: src/pages/search/index.vue, src/pages/index/index.vue | ||
| 306 | +- **技术栈**: Vue 3, Taro | ||
| 307 | +- **测试状态**: ✅ 已通过 | ||
| 308 | + | ||
| 309 | +--- | ||
| 310 | + | ||
| 311 | +## [2026-01-29] - 新增我的模块相关页面 | ||
| 312 | + | ||
| 313 | +### 新增 | ||
| 314 | +- 新增资料列表页面并优化图标组件 | ||
| 315 | +- 新增文档预览组件及相关页面 | ||
| 316 | +- 新增资料知识库页面 | ||
| 317 | +- 新增家办相关页面 | ||
| 318 | +- 新增签单相关页面 | ||
| 319 | +- 新增入职相关页面 | ||
| 320 | + | ||
| 321 | +### 优化 | ||
| 322 | +- 完善首页导航功能 | ||
| 323 | +- 优化导航组件 | ||
| 324 | + | ||
| 325 | +--- | ||
| 326 | + | ||
| 327 | +**详细信息**: | ||
| 328 | +- **影响文件**: 多个新页面 | ||
| 329 | +- **技术栈**: Vue 3, Taro, TailwindCSS | ||
| 330 | +- **测试状态**: ✅ 已通过 | ||
| 331 | + | ||
| 332 | +--- | ||
| 333 | + | ||
| 334 | +## [2026-01-29] - 新增可复用组件 | ||
| 335 | + | ||
| 336 | +### 新增 | ||
| 337 | +- 新增可复用底部导航栏组件并重构页面使用 | ||
| 338 | +- 新增可复用的 SectionCard 和 SectionItem 组件 | ||
| 339 | +- 新增网页视图页面并集成到首页 | ||
| 340 | + | ||
| 341 | +--- | ||
| 342 | + | ||
| 343 | +**详细信息**: | ||
| 344 | +- **影响文件**: src/components/TabBar.vue, src/components/SectionCard.vue, src/components/SectionItem.vue, src/pages/webview/index.vue | ||
| 345 | +- **技术栈**: Vue 3, Taro | ||
| 346 | +- **测试状态**: ✅ 已通过 | ||
| 347 | + | ||
| 348 | +--- | ||
| 349 | + | ||
| 350 | +## [2026-01-27] - 新增 OpenAPI 转 API 文档生成器 | ||
| 351 | + | ||
| 352 | +### 新增 | ||
| 353 | +- 新增 OpenAPI 转 API 文档生成器及相关文档 | ||
| 354 | +- 支持区分 GET 和 POST 请求的参数处理 | ||
| 355 | +- 新增 API 变更自动检测功能 | ||
| 356 | + | ||
| 357 | +--- | ||
| 358 | + | ||
| 359 | +**详细信息**: | ||
| 360 | +- **影响文件**: scripts/api-generator/, docs/ | ||
| 361 | +- **技术栈**: Node.js, OpenAPI | ||
| 362 | +- **测试状态**: ✅ 已通过 | ||
| 363 | +- **备注**: | ||
| 364 | + - 自动生成 API 接口代码 | ||
| 365 | + - 提升 API 开发效率 | ||
| 366 | + | ||
| 367 | +--- | ||
| 368 | + | ||
| 369 | +## [2026-01-27] - 添加项目开发文档 | ||
| 370 | + | ||
| 371 | +### 文档 | ||
| 372 | +- 添加 CLAUDE.md 项目开发指南文档 | ||
| 373 | +- 添加项目开发计划文档 | ||
| 374 | +- 添加前端开发计划文档 | ||
| 375 | +- 重构文档目录结构并重新组织文档内容 | ||
| 376 | + | ||
| 377 | +--- | ||
| 378 | + | ||
| 379 | +**详细信息**: | ||
| 380 | +- **影响文件**: CLAUDE.md, docs/plan/, docs/development-plan.md | ||
| 381 | +- **测试状态**: N/A | ||
| 382 | +- **备注**: | ||
| 383 | + - 完善项目文档体系 | ||
| 384 | + - 便于团队成员快速上手 | ||
| 385 | + | ||
| 386 | +--- | ||
| 387 | + | ||
| 54 | ## [2026-02-01] - 替换默认头像为本地图片 | 388 | ## [2026-02-01] - 替换默认头像为本地图片 |
| 55 | 389 | ||
| 56 | ### 优化 | 390 | ### 优化 | ... | ... |
docs/changelog-check-guide.md
0 → 100644
| 1 | +# CHANGELOG 检查机制 | ||
| 2 | + | ||
| 3 | +> 本文档说明如何定期检查 CHANGELOG 是否有漏记,确保项目变更记录的完整性。 | ||
| 4 | + | ||
| 5 | +## 🎯 检查机制的重要性 | ||
| 6 | + | ||
| 7 | +### 为什么需要定期检查? | ||
| 8 | + | ||
| 9 | +1. **防止遗漏**:忙碌的开发中容易忘记更新 CHANGELOG | ||
| 10 | +2. **保持同步**:git 提交和 CHANGELOG 记录保持一致 | ||
| 11 | +3. **项目追溯**:完整的历史记录便于问题排查和功能回顾 | ||
| 12 | +4. **团队协作**:新成员通过 CHANGELOG 快速了解项目演进 | ||
| 13 | + | ||
| 14 | +--- | ||
| 15 | + | ||
| 16 | +## 🛠️ 自动化检查工具 | ||
| 17 | + | ||
| 18 | +### 快速开始 | ||
| 19 | + | ||
| 20 | +```bash | ||
| 21 | +# 检查最近 7 天(默认) | ||
| 22 | +pnpm run changelog:check | ||
| 23 | + | ||
| 24 | +# 检查最近 30 天 | ||
| 25 | +pnpm run changelog:check:30 | ||
| 26 | + | ||
| 27 | +# 检查所有提交 | ||
| 28 | +pnpm run changelog:check:all | ||
| 29 | +``` | ||
| 30 | + | ||
| 31 | +### 输出示例 | ||
| 32 | + | ||
| 33 | +``` | ||
| 34 | +====================================== | ||
| 35 | + CHANGELOG 漏记检查工具 | ||
| 36 | +====================================== | ||
| 37 | + | ||
| 38 | +检查范围: 最近 7 天 | ||
| 39 | + | ||
| 40 | +[1/4] 正在获取 git 提交记录... | ||
| 41 | + 找到 25 个提交 | ||
| 42 | + | ||
| 43 | +[2/4] 正在解析 CHANGELOG 记录... | ||
| 44 | + 找到 18 条记录 | ||
| 45 | + | ||
| 46 | +[3/4] 正在对比分析... | ||
| 47 | + | ||
| 48 | +📊 每日提交统计: | ||
| 49 | + 5 2026-02-01 | ||
| 50 | + 12 2026-01-31 | ||
| 51 | + 8 2026-01-30 | ||
| 52 | + | ||
| 53 | +🔍 可能漏记的日期: | ||
| 54 | + ✗ 2026-01-30 - 8 个提交未记录 | ||
| 55 | + | ||
| 56 | +[4/4] 生成详细报告... | ||
| 57 | + | ||
| 58 | +====================================== | ||
| 59 | + 检查完成 | ||
| 60 | +====================================== | ||
| 61 | + | ||
| 62 | +✓ 详细报告已保存到: docs/changelog-check-report-20260201.md | ||
| 63 | +``` | ||
| 64 | + | ||
| 65 | +--- | ||
| 66 | + | ||
| 67 | +## 📅 检查频率建议 | ||
| 68 | + | ||
| 69 | +### 每周检查(推荐)⭐ | ||
| 70 | + | ||
| 71 | +**时间**: 每周五下午或周一早上 | ||
| 72 | + | ||
| 73 | +**目的**: | ||
| 74 | +- 检查上周的变更是否都已记录 | ||
| 75 | +- 在周会前准备好项目进展总结 | ||
| 76 | + | ||
| 77 | +**命令**: | ||
| 78 | +```bash | ||
| 79 | +pnpm run changelog:check | ||
| 80 | +``` | ||
| 81 | + | ||
| 82 | +**流程**: | ||
| 83 | +```bash | ||
| 84 | +1. 运行检查脚本 | ||
| 85 | +2. 查看生成的报告 | ||
| 86 | +3. 如果有漏记,补充到 CHANGELOG.md | ||
| 87 | +4. 提交更新 | ||
| 88 | +``` | ||
| 89 | + | ||
| 90 | +--- | ||
| 91 | + | ||
| 92 | +### 每月检查(必需) | ||
| 93 | + | ||
| 94 | +**时间**: 每月最后一天或第一天 | ||
| 95 | + | ||
| 96 | +**目的**: | ||
| 97 | +- 全面检查当月所有变更 | ||
| 98 | +- 确保月度报告的准确性 | ||
| 99 | +- 为项目回顾做准备 | ||
| 100 | + | ||
| 101 | +**命令**: | ||
| 102 | +```bash | ||
| 103 | +pnpm run changelog:check:30 | ||
| 104 | +``` | ||
| 105 | + | ||
| 106 | +--- | ||
| 107 | + | ||
| 108 | +### 发布前检查(必需) | ||
| 109 | + | ||
| 110 | +**时间**: 每次版本发布前 | ||
| 111 | + | ||
| 112 | +**目的**: | ||
| 113 | +- 确保版本 CHANGELOG 完整 | ||
| 114 | +- 避免发布后才发现漏记 | ||
| 115 | + | ||
| 116 | +**命令**: | ||
| 117 | +```bash | ||
| 118 | +pnpm run changelog:check:all | ||
| 119 | +``` | ||
| 120 | + | ||
| 121 | +--- | ||
| 122 | + | ||
| 123 | +## 🔄 定期检查流程 | ||
| 124 | + | ||
| 125 | +### 开发者个人流程 | ||
| 126 | + | ||
| 127 | +#### 每次完成任务后 | ||
| 128 | + | ||
| 129 | +```bash | ||
| 130 | +# 1. 完成功能开发 | ||
| 131 | +git add . | ||
| 132 | +git commit -m "feat: 新增xxx功能" | ||
| 133 | + | ||
| 134 | +# 2. 立即更新 CHANGELOG | ||
| 135 | +# 编辑 docs/CHANGELOG.md | ||
| 136 | +# 添加本次变更记录 | ||
| 137 | + | ||
| 138 | +# 3. 再次提交 CHANGELOG | ||
| 139 | +git add docs/CHANGELOG.md | ||
| 140 | +git commit -m "docs: 更新 CHANGELOG" | ||
| 141 | + | ||
| 142 | +# 4. 推送 | ||
| 143 | +git push | ||
| 144 | +``` | ||
| 145 | + | ||
| 146 | +#### 每周五下午 | ||
| 147 | + | ||
| 148 | +```bash | ||
| 149 | +# 1. 运行检查脚本 | ||
| 150 | +pnpm run changelog:check | ||
| 151 | + | ||
| 152 | +# 2. 如果有漏记,补充 CHANGELOG | ||
| 153 | +vim docs/CHANGELOG.md | ||
| 154 | + | ||
| 155 | +# 3. 提交更新 | ||
| 156 | +git add docs/CHANGELOG.md | ||
| 157 | +git commit -m "docs: 补充本周变更记录" | ||
| 158 | +git push | ||
| 159 | +``` | ||
| 160 | + | ||
| 161 | +--- | ||
| 162 | + | ||
| 163 | +### 团队协作流程 | ||
| 164 | + | ||
| 165 | +#### 每次 PR/MR 时 | ||
| 166 | + | ||
| 167 | +**检查清单**: | ||
| 168 | +- [ ] CHANGELOG 已更新 | ||
| 169 | +- [ ] 所有重要变更都已记录 | ||
| 170 | +- [ ] 格式符合标准模板 | ||
| 171 | + | ||
| 172 | +**CI 集成(可选)**: | ||
| 173 | + | ||
| 174 | +可以在 CI 流程中自动运行检查: | ||
| 175 | + | ||
| 176 | +```yaml | ||
| 177 | +# .gitlab-ci.yml (示例) | ||
| 178 | +changelog-check: | ||
| 179 | + stage: test | ||
| 180 | + script: | ||
| 181 | + - bash scripts/check-changelog.sh 7 | ||
| 182 | + allow_failure: true | ||
| 183 | + only: | ||
| 184 | + - develop | ||
| 185 | +``` | ||
| 186 | + | ||
| 187 | +--- | ||
| 188 | + | ||
| 189 | +## 📋 漏记补充流程 | ||
| 190 | + | ||
| 191 | +### 发现漏记后 | ||
| 192 | + | ||
| 193 | +#### 1. 查看详细报告 | ||
| 194 | + | ||
| 195 | +```bash | ||
| 196 | +# 打开生成的报告文件 | ||
| 197 | +cat docs/changelog-check-report-20260201.md | ||
| 198 | +``` | ||
| 199 | + | ||
| 200 | +报告会列出所有未记录的提交: | ||
| 201 | +```markdown | ||
| 202 | +### 未记录的提交详情 | ||
| 203 | + | ||
| 204 | +**2026-01-30** (8 个提交): | ||
| 205 | +- refactor(SearchBar): 替换 NutUI Input 为原生 input 元素 | ||
| 206 | +- fix: 修复搜索组件样式和搜索逻辑问题 | ||
| 207 | +- feat(components): 添加可复用的 SearchBar 组件 | ||
| 208 | +... | ||
| 209 | +``` | ||
| 210 | + | ||
| 211 | +#### 2. 补充到 CHANGELOG.md | ||
| 212 | + | ||
| 213 | +按照标准格式补充记录: | ||
| 214 | +```markdown | ||
| 215 | +## [2026-01-30] - 搜索功能重构与优化 | ||
| 216 | + | ||
| 217 | +### 新增 | ||
| 218 | +- 新增 SearchBar 组件并替换多个页面中的搜索框 | ||
| 219 | + | ||
| 220 | +### 重构 | ||
| 221 | +- 重构 SearchBar 组件 | ||
| 222 | + - 替换 NutUI Input 为原生 input 元素 | ||
| 223 | + | ||
| 224 | +### 修复 | ||
| 225 | +- 修复搜索组件样式和搜索逻辑问题 | ||
| 226 | + | ||
| 227 | +--- | ||
| 228 | + | ||
| 229 | +**详细信息**: | ||
| 230 | +- **影响文件**: src/components/SearchBar.vue, src/pages/search/index.vue | ||
| 231 | +- **技术栈**: Vue 3, Taro | ||
| 232 | +- **测试状态**: ✅ 已通过 | ||
| 233 | +``` | ||
| 234 | + | ||
| 235 | +#### 3. 提交补充 | ||
| 236 | + | ||
| 237 | +```bash | ||
| 238 | +git add docs/CHANGELOG.md | ||
| 239 | +git commit -m "docs: 补充 CHANGELOG 漏记的 N 条变更记录" | ||
| 240 | +git push | ||
| 241 | +``` | ||
| 242 | + | ||
| 243 | +--- | ||
| 244 | + | ||
| 245 | +## ⚙️ 自动化检查脚本说明 | ||
| 246 | + | ||
| 247 | +### 脚本位置 | ||
| 248 | + | ||
| 249 | +``` | ||
| 250 | +scripts/check-changelog.sh | ||
| 251 | +``` | ||
| 252 | + | ||
| 253 | +### 使用方式 | ||
| 254 | + | ||
| 255 | +```bash | ||
| 256 | +# 直接运行 | ||
| 257 | +./scripts/check-changelog.sh [days] | ||
| 258 | + | ||
| 259 | +# 通过 npm 运行 | ||
| 260 | +pnpm run changelog:check # 最近 7 天 | ||
| 261 | +pnpm run changelog:check:30 # 最近 30 天 | ||
| 262 | +pnpm run changelog:check:all # 所有提交 | ||
| 263 | +``` | ||
| 264 | + | ||
| 265 | +### 脚本功能 | ||
| 266 | + | ||
| 267 | +1. **获取 git 提交记录** | ||
| 268 | + - 扫描指定天数内的所有提交 | ||
| 269 | + - 提取提交哈希、日期、描述 | ||
| 270 | + | ||
| 271 | +2. **解析 CHANGELOG** | ||
| 272 | + - 提取所有已记录的日期 | ||
| 273 | + - 统计记录数量 | ||
| 274 | + | ||
| 275 | +3. **对比分析** | ||
| 276 | + - 每个日期的提交数量 vs CHANGELOG 记录 | ||
| 277 | + - 识别漏记的日期 | ||
| 278 | + | ||
| 279 | +4. **生成报告** | ||
| 280 | + - 保存为 `docs/changelog-check-report-YYYYMMDD.md` | ||
| 281 | + - 列出所有未记录的提交详情 | ||
| 282 | + | ||
| 283 | +--- | ||
| 284 | + | ||
| 285 | +## 🎯 检查时机总结 | ||
| 286 | + | ||
| 287 | +| 检查类型 | 频率 | 范围 | 用途 | | ||
| 288 | +|---------|------|------|------| | ||
| 289 | +| **快速检查** | 每周 | 7 天 | 周会准备 | | ||
| 290 | +| **月度检查** | 每月 | 30 天 | 月度总结 | | ||
| 291 | +| **发布检查** | 发布前 | 所有 | 版本发布 | | ||
| 292 | +| **专项检查** | 随时 | 自定义 | 特殊需求 | | ||
| 293 | + | ||
| 294 | +--- | ||
| 295 | + | ||
| 296 | +## 💡 最佳实践 | ||
| 297 | + | ||
| 298 | +### 1. 及时记录 | ||
| 299 | + | ||
| 300 | +**原则**: 完成功能后立即记录 | ||
| 301 | + | ||
| 302 | +```bash | ||
| 303 | +# ❌ 不好:积累很多提交后一次性记录 | ||
| 304 | +git commit -m "feat: 功能A" | ||
| 305 | +git commit -m "feat: 功能B" | ||
| 306 | +git commit -m "fix: 修复C" | ||
| 307 | +# ... 一周后才更新 CHANGELOG | ||
| 308 | + | ||
| 309 | +# ✅ 好:每个功能完成后立即记录 | ||
| 310 | +git commit -m "feat: 功能A" | ||
| 311 | +vim CHANGELOG.md # 立即记录 | ||
| 312 | +git commit -m "docs: 更新 CHANGELOG" | ||
| 313 | +``` | ||
| 314 | + | ||
| 315 | +### 2. 定期检查 | ||
| 316 | + | ||
| 317 | +**建议**: 设置日历提醒 | ||
| 318 | + | ||
| 319 | +- **每周五 17:00**: 提醒检查本周变更 | ||
| 320 | +- **每月最后一天**: 提醒检查当月变更 | ||
| 321 | +- **发布前一天**: 提醒检查所有变更 | ||
| 322 | + | ||
| 323 | +### 3. 团队协作 | ||
| 324 | + | ||
| 325 | +**Pull Request 模板**: | ||
| 326 | + | ||
| 327 | +```markdown | ||
| 328 | +## CHANGELOG 检查 | ||
| 329 | +- [ ] CHANGELOG 已更新 | ||
| 330 | +- [ ] 所有重要变更都已记录 | ||
| 331 | +- [ ] 格式符合标准模板 | ||
| 332 | + | ||
| 333 | +## 检查命令 | ||
| 334 | +```bash | ||
| 335 | +pnpm run changelog:check:7 | ||
| 336 | +``` | ||
| 337 | + | ||
| 338 | +--- | ||
| 339 | + | ||
| 340 | +## 🔧 故障排查 | ||
| 341 | + | ||
| 342 | +### 问题:脚本没有执行权限 | ||
| 343 | + | ||
| 344 | +**解决**: | ||
| 345 | +```bash | ||
| 346 | +chmod +x scripts/check-changelog.sh | ||
| 347 | +``` | ||
| 348 | + | ||
| 349 | +### 问题:报告显示没有提交 | ||
| 350 | + | ||
| 351 | +**原因**: 指定天数内没有 git 提交 | ||
| 352 | + | ||
| 353 | +**解决**: 增加检查天数 | ||
| 354 | +```bash | ||
| 355 | +pnpm run changelog:check:30 | ||
| 356 | +``` | ||
| 357 | + | ||
| 358 | +### 问题:CHANGELOG 路径错误 | ||
| 359 | + | ||
| 360 | +**解决**: 检查是否在项目根目录 | ||
| 361 | +```bash | ||
| 362 | +pwd # 应该显示项目根目录 | ||
| 363 | +ls docs/CHANGELOG.md # 确认文件存在 | ||
| 364 | +``` | ||
| 365 | + | ||
| 366 | +--- | ||
| 367 | + | ||
| 368 | +## 📚 相关文档 | ||
| 369 | + | ||
| 370 | +- [CHANGELOG 自动记录规则](~/.claude/rules/changelog-automation.md) | ||
| 371 | +- [CHANGELOG 文档](./CHANGELOG.md) | ||
| 372 | +- [技术决策记录](./decisions.md) | ||
| 373 | + | ||
| 374 | +--- | ||
| 375 | + | ||
| 376 | +**最后更新**: 2026-02-01 | ||
| 377 | +**维护者**: Claude Code | ||
| 378 | +**项目**: Manulife WeApp |
| ... | @@ -30,7 +30,10 @@ | ... | @@ -30,7 +30,10 @@ |
| 30 | "lint": "eslint --ext .js,.vue src", | 30 | "lint": "eslint --ext .js,.vue src", |
| 31 | "api:generate": "node scripts/generateApiFromOpenAPI.js", | 31 | "api:generate": "node scripts/generateApiFromOpenAPI.js", |
| 32 | "api:sync": "node scripts/apifox-to-openapi.js", | 32 | "api:sync": "node scripts/apifox-to-openapi.js", |
| 33 | - "api:test": "node scripts/test-apifox-connection.js" | 33 | + "api:test": "node scripts/test-apifox-connection.js", |
| 34 | + "changelog:check": "bash scripts/check-changelog.sh 7", | ||
| 35 | + "changelog:check:30": "bash scripts/check-changelog.sh 30", | ||
| 36 | + "changelog:check:all": "bash scripts/check-changelog.sh 0" | ||
| 34 | }, | 37 | }, |
| 35 | "browserslist": [ | 38 | "browserslist": [ |
| 36 | "last 3 versions", | 39 | "last 3 versions", | ... | ... |
scripts/check-changelog.sh
0 → 100755
| 1 | +#!/bin/bash | ||
| 2 | + | ||
| 3 | +############################################################################### | ||
| 4 | +# CHANGELOG 漏记检查脚本 | ||
| 5 | +# | ||
| 6 | +# 功能: | ||
| 7 | +# 1. 扫描最近 N 天的 git 提交记录 | ||
| 8 | +# 2. 对比 CHANGELOG.md 中的记录 | ||
| 9 | +# 3. 生成漏记报告 | ||
| 10 | +# | ||
| 11 | +# 使用: | ||
| 12 | +# ./scripts/check-changelog.sh [days] | ||
| 13 | +# | ||
| 14 | +# 示例: | ||
| 15 | +# ./scripts/check-changelog.sh 7 # 检查最近 7 天 | ||
| 16 | +# ./scripts/check-changelog.sh 30 # 检查最近 30 天 | ||
| 17 | +# ./scripts/check-changelog.sh # 检查所有提交 | ||
| 18 | +# | ||
| 19 | +############################################################################### | ||
| 20 | + | ||
| 21 | +set -e | ||
| 22 | + | ||
| 23 | +# 颜色定义 | ||
| 24 | +RED='\033[0;31m' | ||
| 25 | +GREEN='\033[0;32m' | ||
| 26 | +YELLOW='\033[1;33m' | ||
| 27 | +BLUE='\033[0;34m' | ||
| 28 | +NC='\033[0m' # No Color | ||
| 29 | + | ||
| 30 | +# 默认参数 | ||
| 31 | +DAYS=${1:-7} # 默认检查最近 7 天 | ||
| 32 | +CHANGELOG_FILE="docs/CHANGELOG.md" | ||
| 33 | + | ||
| 34 | +echo -e "${BLUE}======================================${NC}" | ||
| 35 | +echo -e "${BLUE} CHANGELOG 漏记检查工具${NC}" | ||
| 36 | +echo -e "${BLUE}======================================${NC}" | ||
| 37 | +echo "" | ||
| 38 | +echo -e "检查范围: 最近 ${DAYS} 天" | ||
| 39 | +echo "" | ||
| 40 | + | ||
| 41 | +# 检查 CHANGELOG 文件是否存在 | ||
| 42 | +if [ ! -f "$CHANGELOG_FILE" ]; then | ||
| 43 | + echo -e "${RED}错误: CHANGELOG 文件不存在: $CHANGELOG_FILE${NC}" | ||
| 44 | + exit 1 | ||
| 45 | +fi | ||
| 46 | + | ||
| 47 | +# 1. 获取 git 提交记录 | ||
| 48 | +echo -e "${BLUE}[1/4] 正在获取 git 提交记录...${NC}" | ||
| 49 | + | ||
| 50 | +if [ "$DAYS" = "0" ]; then | ||
| 51 | + # 检查所有提交 | ||
| 52 | + GIT_LOG=$(git log --all --pretty=format:"%h|%ad|%s" --date=short) | ||
| 53 | +else | ||
| 54 | + # 检查最近 N 天的提交 | ||
| 55 | + GIT_LOG=$(git log --since="$DAYS days ago" --pretty=format:"%h|%ad|%s" --date=short) | ||
| 56 | +fi | ||
| 57 | + | ||
| 58 | +TOTAL_COMMITS=$(echo "$GIT_LOG" | wc -l | tr -d ' ') | ||
| 59 | +echo -e " 找到 ${GREEN}$TOTAL_COMMITS${NC} 个提交" | ||
| 60 | + | ||
| 61 | +# 2. 解析 CHANGELOG 中的记录 | ||
| 62 | +echo -e "${BLUE}[2/4] 正在解析 CHANGELOG 记录...${NC}" | ||
| 63 | + | ||
| 64 | +# 提取 CHANGELOG 中的日期和描述 | ||
| 65 | +CHANGELOG_ENTRIES=$(grep "^## \[" "$CHANGELOG_FILE" | sed 's/^## \[//' | sed 's/\].*//' | sort -u) | ||
| 66 | +TOTAL_CHANGELOG=$(echo "$CHANGELOG_ENTRIES" | wc -l | tr -d ' ') | ||
| 67 | +echo -e " 找到 ${GREEN}$TOTAL_CHANGELOG${NC} 条记录" | ||
| 68 | + | ||
| 69 | +# 3. 对比分析 | ||
| 70 | +echo -e "${BLUE}[3/4] 正在对比分析...${NC}" | ||
| 71 | + | ||
| 72 | +# 统计每个日期的提交数量 | ||
| 73 | +COMMITS_BY_DATE=$(echo "$GIT_LOG" | awk -F'|' '{print $2}' | sort | uniq -c | sort -rn) | ||
| 74 | + | ||
| 75 | +echo "" | ||
| 76 | +echo -e "${YELLOW}📊 每日提交统计:${NC}" | ||
| 77 | +echo "$COMMITS_BY_DATE" | head -20 | ||
| 78 | + | ||
| 79 | +# 检查哪些日期有提交但 CHANGELOG 没有记录 | ||
| 80 | +echo "" | ||
| 81 | +echo -e "${YELLOW}🔍 可能漏记的日期:${NC}" | ||
| 82 | + | ||
| 83 | +MISSING_DATES=0 | ||
| 84 | +while IFS='|' read -r count date; do | ||
| 85 | + date=$(echo "$date" | awk '{print $2}') | ||
| 86 | + # 检查 CHANGELOG 中是否有这个日期的记录 | ||
| 87 | + if ! echo "$CHANGELOG_ENTRIES" | grep -q "$date"; then | ||
| 88 | + echo -e " ${RED}✗${NC} $date - ${RED}$count 个提交未记录${NC}" | ||
| 89 | + MISSING_DATES=$((MISSING_DATES + 1)) | ||
| 90 | + fi | ||
| 91 | +done <<< "$COMMITS_BY_DATE" | ||
| 92 | + | ||
| 93 | +if [ $MISSING_DATES -eq 0 ]; then | ||
| 94 | + echo -e " ${GREEN}✓${NC} 所有提交都已记录" | ||
| 95 | +fi | ||
| 96 | + | ||
| 97 | +# 4. 生成详细报告 | ||
| 98 | +echo "" | ||
| 99 | +echo -e "${BLUE}[4/4] 生成详细报告...${NC}" | ||
| 100 | + | ||
| 101 | +# 临时文件 | ||
| 102 | +TEMP_REPORT=$(mktemp) | ||
| 103 | + | ||
| 104 | +# 输出报告头 | ||
| 105 | +cat > "$TEMP_REPORT" << 'EOF' | ||
| 106 | +# CHANGELOG 漏记详细报告 | ||
| 107 | + | ||
| 108 | +## 检查日期 | ||
| 109 | +- 检查范围: 最近 {DAYS} 天 | ||
| 110 | +- 生成时间: {TIMESTAMP} | ||
| 111 | + | ||
| 112 | +## 统计摘要 | ||
| 113 | +- Git 提交总数: {TOTAL_COMMITS} | ||
| 114 | +- CHANGELOG 记录数: {TOTAL_CHANGELOG} | ||
| 115 | +- 可能漏记的提交: {MISSING_COMMITS} | ||
| 116 | + | ||
| 117 | +## 漏记详情 | ||
| 118 | + | ||
| 119 | +EOF | ||
| 120 | + | ||
| 121 | +# 替换模板变量 | ||
| 122 | +sed -i.bak "s/{DAYS}/$DAYS/g" "$TEMP_REPORT" | ||
| 123 | +sed -i.bak "s/{TIMESTAMP}/$(date '+%Y-%m-%d %H:%M:%S')/g" "$TEMP_REPORT" | ||
| 124 | +sed -i.bak "s/{TOTAL_COMMITS}/$TOTAL_COMMITS/g" "$TEMP_REPORT" | ||
| 125 | +sed -i.bak "s/{TOTAL_CHANGELOG}/$TOTAL_CHANGELOG/g" "$TEMP_REPORT" | ||
| 126 | + | ||
| 127 | +# 计算可能漏记的提交数 | ||
| 128 | +MISSING_COMMITS=0 | ||
| 129 | +while IFS='|' read -r count date; do | ||
| 130 | + date=$(echo "$date" | awk '{print $2}') | ||
| 131 | + if ! echo "$CHANGELOG_ENTRIES" | grep -q "$date"; then | ||
| 132 | + MISSING_COMMITS=$((MISSING_COMMITS + count)) | ||
| 133 | + fi | ||
| 134 | +done <<< "$COMMITS_BY_DATE" | ||
| 135 | + | ||
| 136 | +sed -i.bak "s/{MISSING_COMMITS}/$MISSING_COMMITS/g" "$TEMP_REPORT" | ||
| 137 | + | ||
| 138 | +# 如果有漏记,列出详细提交 | ||
| 139 | +if [ $MISSING_COMMITS -gt 0 ]; then | ||
| 140 | + echo "" >> "$TEMP_REPORT" | ||
| 141 | + echo "### 未记录的提交详情" >> "$TEMP_REPORT" | ||
| 142 | + echo "" >> "$TEMP_REPORT" | ||
| 143 | + | ||
| 144 | + while IFS='|' read -r count date; do | ||
| 145 | + date_only=$(echo "$date" | awk '{print $2}') | ||
| 146 | + if ! echo "$CHANGELOG_ENTRIES" | grep -q "$date_only"; then | ||
| 147 | + echo "**$date_only** ($count 个提交):" >> "$TEMP_REPORT" | ||
| 148 | + echo "$GIT_LOG" | grep "$date_only" | awk -F'|' '{print "- " $3}' >> "$TEMP_REPORT" | ||
| 149 | + echo "" >> "$TEMP_REPORT" | ||
| 150 | + fi | ||
| 151 | + done <<< "$COMMITS_BY_DATE" | ||
| 152 | +else | ||
| 153 | + echo "" >> "$TEMP_REPORT" | ||
| 154 | + echo "### ✅ 完整性检查" >> "$TEMP_REPORT" | ||
| 155 | + echo "" >> "$TEMP_REPORT" | ||
| 156 | + echo "所有提交都已在 CHANGELOG 中记录!" >> "$TEMP_REPORT" | ||
| 157 | +fi | ||
| 158 | + | ||
| 159 | +# 删除备份文件 | ||
| 160 | +rm -f "$TEMP_REPORT.bak" | ||
| 161 | + | ||
| 162 | +# 输出报告 | ||
| 163 | +echo "" | ||
| 164 | +echo -e "${BLUE}======================================${NC}" | ||
| 165 | +echo -e "${BLUE} 检查完成${NC}" | ||
| 166 | +echo -e "${BLUE}======================================${NC}" | ||
| 167 | +echo "" | ||
| 168 | +cat "$TEMP_REPORT" | ||
| 169 | + | ||
| 170 | +# 保存报告 | ||
| 171 | +REPORT_FILE="docs/changelog-check-report-$(date +%Y%m%d).md" | ||
| 172 | +mv "$TEMP_REPORT" "$REPORT_FILE" | ||
| 173 | + | ||
| 174 | +echo "" | ||
| 175 | +echo -e "${GREEN}✓ 详细报告已保存到: $REPORT_FILE${NC}" | ||
| 176 | + | ||
| 177 | +# 5. 给出建议 | ||
| 178 | +echo "" | ||
| 179 | +echo -e "${YELLOW}💡 建议:${NC}" | ||
| 180 | +if [ $MISSING_COMMITS -gt 0 ]; then | ||
| 181 | + echo -e " ${YELLOW}1.${NC} 查看 $REPORT_FILE 了解漏记详情" | ||
| 182 | + echo -e " ${YELLOW}2.${NC} 更新 CHANGELOG.md 补充漏记的记录" | ||
| 183 | + echo -e " ${YELLOW}3.${NC} 使用标准格式添加记录(参考文档顶部模板)" | ||
| 184 | +else | ||
| 185 | + echo -e " ${GREEN}✓${NC} CHANGELOG 记录完整,继续保持!" | ||
| 186 | +fi | ||
| 187 | + | ||
| 188 | +echo "" | ||
| 189 | +echo -e "${BLUE}======================================${NC}" | ||
| 190 | +echo "" | ||
| 191 | + | ||
| 192 | +# 返回退出码 | ||
| 193 | +if [ $MISSING_COMMITS -gt 0 ]; then | ||
| 194 | + exit 1 # 有漏记,返回非零退出码 | ||
| 195 | +else | ||
| 196 | + exit 0 # 无漏记,返回零 | ||
| 197 | +fi |
-
Please register or login to post a comment