hookehuyr

chore: 从版本控制中移除本地配置文件 settings.local.json

1 -{
2 - "permissions": {
3 - "allow": [
4 - "Bash(tree:*)",
5 - "Bash(xargs awk:*)",
6 - "Bash(find:*)",
7 - "Bash(grep:*)",
8 - "Bash(git diff:*)",
9 - "mcp__web-search-prime__webSearchPrime",
10 - "mcp__web-reader__webReader",
11 - "Bash(ls:*)",
12 - "Bash(for:*)",
13 - "Bash(do if [ -f \"$dirskill.md\" ])",
14 - "Bash(fi:*)",
15 - "Bash(done:*)",
16 - "Bash(if:*)",
17 - "Bash(then echo \"找到项目本地技能:\")",
18 - "Bash(else echo \"当前项目没有本地技能目录\")",
19 - "Bash(command:*)",
20 - "Bash(then mv \"$dirskill.md\" \"$dirSKILL.md\")",
21 - "Bash(do if [ -f \"$dirSKILL.md\" ])",
22 - "Bash(then rmdir ~/.config/claude-code/skills)",
23 - "Bash(else echo \"目录不为空或不存在,跳过删除\")",
24 - "Bash(chmod:*)",
25 - "Bash(scripts/upload-to-qiniu.sh:*)",
26 - "Bash(curl:*)",
27 - "Bash(git add:*)",
28 - "Bash(git commit:*)",
29 - "Bash(git push)",
30 - "Bash(git restore:*)",
31 - "Bash(pnpm add:*)",
32 - "Bash(pnpm lint:check:*)",
33 - "Bash(pnpm format:check:*)",
34 - "Bash(pnpm list:*)",
35 - "Bash(npx husky init:*)",
36 - "Bash(npx lint-staged:*)",
37 - "Bash(__NEW_LINE_9f2146480c6bc5cf__ echo \"✅ Husky + lint-staged 配置完成!\" echo \"\" echo \"📁 配置文件:\" echo \" - .husky/pre-commit\" echo \" - package.json \\(lint-staged 配置\\)\" echo \"\" echo \"🔧 已配置的 Git Hooks:\" ls -la .husky/)",
38 - "Bash(__NEW_LINE_d9f17a4e47d5be4b__ echo \"╔════════════════════════════════════════════════════════════╗\" echo \"║ ✅ Husky + lint-staged 配置完成! ║\" echo \"╚════════════════════════════════════════════════════════════╝\" echo \"\" echo \"📁 配置文件:\" echo \" • .husky/pre-commit - Git pre-commit hook\" echo \" • package.json - lint-staged 配置\" echo \" • docs/HUSKY_LINT_STAGED.md - 使用文档\" echo \"\" echo \"📦 已安装的包:\" pnpm list husky lint-staged --depth 0)",
39 - "Bash(npx playwright install:*)",
40 - "Bash(git push:*)",
41 - "Bash(pnpm test:e2e:*)",
42 - "mcp__zai-mcp-server__ui_to_artifact",
43 - "mcp__zai-mcp-server__extract_text_from_screenshot",
44 - "mcp__zai-mcp-server__analyze_image",
45 - "Bash(git mv:*)",
46 - "Bash(yarn api:generate:*)",
47 - "Bash(./test-mcp.sh:*)",
48 - "Bash(npx:*)",
49 - "Bash(git checkout:*)",
50 - "Bash(python3:*)",
51 - "Bash(./test-mcp-connection.sh:*)",
52 - "Bash(timeout:*)",
53 - "Bash(pnpm lint:*)",
54 - "Bash(pnpm dev:weapp:*)",
55 - "Bash(tee:*)",
56 - "Bash(node:*)",
57 - "Bash(~/.claude/bin/check-changelog.sh:*)",
58 - "Bash(pnpm api:generate:*)",
59 - "Bash(do if [ -d \"/Users/huyirui/program/itomix/git/manulife-weapp/docs/$dir\" ])",
60 - "Bash(then echo \"=== $dir/ ===\" ls -1 /Users/huyirui/program/itomix/git/manulife-weapp/docs/$dir/*.md)",
61 - "Bash(bash:*)",
62 - "Bash(~/.bun/bin/bun --version)",
63 - "Bash(npm run dev:weapp:*)",
64 - "Bash(__NEW_LINE_19c6a134b9496225__ echo \"✅ 已删除不再使用的 Apifox 相关脚本\")",
65 - "Bash(cat:*)",
66 - "Bash(pkill:*)",
67 - "Bash(then echo \" ❌ 仍然存在\")",
68 - "Bash(else echo \" ✅ 已成功删除\")",
69 - "Bash(__NEW_LINE_91a02bd62c4bd02a__ echo \"2. qrCodeSearch.vue\")",
70 - "Bash(__NEW_LINE_91a02bd62c4bd02a__ echo \"3. time-picker-data 目录\")",
71 - "Bash(__NEW_LINE_91a02bd62c4bd02a__ echo \"4. PosterBuilder 目录\")",
72 - "Bash(__NEW_LINE_91a02bd62c4bd02a__ echo \"5. PlanSchemes 目录\")",
73 - "Bash(__NEW_LINE_91a02bd62c4bd02a__ echo \"6. 根目录 SavingsTemplate.vue\")",
74 - "Bash(__NEW_LINE_91a02bd62c4bd02a__ echo \"7. PlanFields/AmountInput.vue\")",
75 - "Bash(__NEW_LINE_91a02bd62c4bd02a__ echo \"\")",
76 - "Bash(/tmp/update-imports.py << 'EOF'\n#!/usr/bin/env python3\nimport os\nimport re\n\n# 定义路径映射\npath_mappings = {\n '@/components/TabBar': '@/components/navigation/TabBar',\n '@/components/NavHeader': '@/components/navigation/NavHeader',\n '@/components/IconFont': '@/components/icons/IconFont',\n '@/components/MaterialCard': '@/components/cards/MaterialCard',\n '@/components/ProductCard': '@/components/cards/ProductCard',\n '@/components/FilterTabs': '@/components/forms/FilterTabs',\n '@/components/SearchBar': '@/components/forms/SearchBar',\n '@/components/SectionCard': '@/components/list/SectionCard',\n '@/components/SectionItem': '@/components/list/SectionItem',\n '@/components/OfficeViewer': '@/components/documents/OfficeViewer',\n '@/components/PdfPreview': '@/components/documents/PdfPreview',\n '@/components/DocumentPreview': '@/components/documents/DocumentPreview',\n '@/components/PlanFormContainer': '@/components/plan/PlanFormContainer',\n '@/components/PlanPopupNew': '@/components/plan/PlanPopupNew',\n '@/components/ListItemActions': '@/components/list/ListItemActions',\n '@/components/LoadMoreList': '@/components/list/LoadMoreList',\n}\n\ndef update_file\\(filepath\\):\n \"\"\"更新单个文件的导入路径\"\"\"\n try:\n with open\\(filepath, 'r', encoding='utf-8'\\) as f:\n content = f.read\\(\\)\n \n original_content = content\n \n # 替换所有路径映射\n for old_path, new_path in path_mappings.items\\(\\):\n # 替换 import 语句\n content = re.sub\\(\n r\"from ['\\\\\"]\" + re.escape\\(old_path\\) + r\"['\\\\\"]\",\n f\"from '{new_path}'\",\n content\n \\)\n # 替换 import 语句(带 .vue 后缀)\n content = re.sub\\(\n r\"from ['\\\\\"]\" + re.escape\\(old_path\\) + r\"\\\\.vue['\\\\\"]\",\n f\"from '{new_path}.vue'\",\n content\n \\)\n \n # 如果内容有变化,写回文件\n if content != original_content:\n with open\\(filepath, 'w', encoding='utf-8'\\) as f:\n f.write\\(content\\)\n return True\n return False\n except Exception as e:\n print\\(f\"Error processing {filepath}: {e}\"\\)\n return False\n\ndef main\\(\\):\n src_dir = '/Users/huyirui/program/itomix/git/manulife-weapp/src'\n updated_count = 0\n \n # 遍历所有 .vue 和 .js 文件\n for root, dirs, files in os.walk\\(src_dir\\):\n for file in files:\n if file.endswith\\(\\('.vue', '.js'\\)\\):\n filepath = os.path.join\\(root, file\\)\n if update_file\\(filepath\\):\n updated_count += 1\n print\\(f\"✅ Updated: {filepath}\"\\)\n \n print\\(f\"\\\\n总计更新了 {updated_count} 个文件\"\\)\n\nif __name__ == '__main__':\n main\\(\\)\nEOF)",
77 - "Bash(__NEW_LINE_b32968d45b3e16a9__ python3 /tmp/update-imports.py)",
78 - "Bash(/Users/huyirui/program/itomix/git/manulife-weapp/docs/reports/2026-02-09/components-cleanup-report.md <<'EOF'\n\n---\n\n## ✅ 执行结果(2026-02-09)\n\n### 已完成的清理和重组\n\n#### 阶段 1: 清理未使用组件 ✅\n- ✅ 删除 `qrCode.vue` \\(11KB\\)\n- ✅ 删除 `FilterTabs.example.vue`\n- ✅ 删除 `PlanPopup/` 目录(旧版本)\n\n#### 阶段 2: 组件目录重组 ✅\n\n**创建的分类目录**:\n1. `navigation/` - 导航组件\n2. `list/` - 列表组件\n3. `forms/` - 表单组件\n4. `cards/` - 卡片组件\n5. `documents/` - 文档相关组件\n6. `plan/` - 计划书相关组件\n7. `icons/` - 图标组件\n\n**组件迁移清单**:\n```\nnavigation/\n├── TabBar.vue\n└── NavHeader.vue\n\nlist/\n├── ListItemActions/\n├── LoadMoreList/\n├── SectionCard.vue\n└── SectionItem.vue\n\nforms/\n├── FilterTabs.vue\n└── SearchBar.vue\n\ncards/\n├── MaterialCard.vue\n└── ProductCard.vue\n\ndocuments/\n├── DocumentPreview/\n├── OfficeViewer.vue\n└── PdfPreview.vue\n\nplan/\n├── PlanFields/\n├── PlanFormContainer.vue\n├── PlanPopupNew.vue\n└── PlanTemplates/\n\nicons/\n└── IconFont.vue\n```\n\n**路径更新统计**:\n- 更新文件数:38 个\n- 更新类型:import 语句\n- 更新范围:src/pages/, src/components/\n- 验证结果:✅ 通过(0 errors, 30 warnings)\n\n### 📊 最终收益\n\n**代码质量**:\n- ✅ 删除 3 个未使用组件(约 11KB)\n- ✅ 组件按功能分类,结构清晰\n- ✅ 所有引用路径已更新\n- ✅ 代码检查通过(0 errors)\n\n**可维护性**:\n- ✅ 组件查找更快速\n- ✅ 功能边界更明确\n- ✅ 为未来组件扩展预留空间\n- ✅ 符合项目架构原则\n\n**文档更新**:\n- ✅ CHANGELOG.md 已更新\n- ✅ 本报告已创建\n\n---\n\n**执行时间**: 2026-02-09\n**执行状态**: ✅ 完成\n**下一步**: 可以继续优化组件内部实现,或清理其他未使用代码\nEOF)",
79 - "Bash(tail:*)",
80 - "Bash(pnpm build:weapp:*)",
81 - "Bash(pnpm view:*)",
82 - "Bash(pnpm update:*)",
83 - "Bash(open:*)",
84 - "Bash(awk:*)",
85 - "Bash(else)",
86 - "Bash(sudo:*)"
87 - ]
88 - },
89 - "enableAllProjectMcpServers": true,
90 - "enabledMcpjsonServers": [
91 - "chrome-devtools"
92 - ]
93 -}