Files
everything-is-suitable/docs/superpowers/plans/2026-04-27-pure-client-transformation/phase-4-backend-removal-and-page-adaptation.json
T
张翔 a39b4388f3 chore: 添加文档、资源与测试输出
- assets/ 静态资源
- docs/superpowers/ 技能文档
- dogfood-output/ 测试验证输出
2026-04-29 21:17:10 +08:00

192 lines
7.2 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"phase": {
"id": "phase-4",
"name": "后端依赖移除与页面适配",
"description": "移除所有后端相关代码(httpClient, tokenManager等),将现有页面从远程API调用切换到本地服务层",
"dependencies": ["phase-3"],
"status": "completed",
"completedAt": "2026-04-28T03:49:00+08:00",
"tasks": [
{
"id": "4.1",
"name": "移除后端依赖文件",
"description": "删除 httpClient.ts, tokenManager.ts 及相关后端配置",
"status": "completed",
"files": {
"delete": [
"src/utils/httpClient.ts",
"src/utils/tokenManager.ts"
]
},
"steps": [
{
"id": "4.1.1",
"action": "verify_no_references",
"description": "搜索所有引用 httpClient 和 tokenManager 的文件",
"status": "completed",
"result": "仅 errorHandler.ts 和 tokenManager.ts 引用 httpClient,无页面级引用"
},
{
"id": "4.1.2",
"action": "delete_files",
"description": "删除后端依赖文件",
"status": "completed",
"result": "已删除 httpClient.ts 和 tokenManager.ts"
},
{
"id": "4.1.3",
"action": "verify_build",
"description": "验证删除后项目可正常构建",
"status": "completed",
"result": "UniApp 源码无 TypeScript 错误"
}
]
},
{
"id": "4.2",
"name": "适配黄历搜索页面",
"description": "将 almanac-search 页面从远程 API 调用切换到本地 SearchService",
"status": "completed",
"files": {
"modify": ["src/services/searchService.ts", "src/types/search.ts"]
},
"deviations": "页面已使用本地 searchService,无需修改页面代码。主要改造在 SearchService 层:添加 searchByKeyword 方法,添加 SearchRequest→SearchParams 桥接,添加 Almanac→SearchResult 转换",
"steps": [
{
"id": "4.2.1",
"action": "read_current_code",
"description": "读取当前页面代码,识别所有远程 API 调用点",
"status": "completed",
"result": "页面已使用本地 searchService,无远程 API 调用"
},
{
"id": "4.2.2",
"action": "replace_api_calls",
"description": "适配 SearchService 接口",
"status": "completed",
"result": "添加 searchByKeyword 方法,添加 SearchRequest→SearchParams 桥接函数 toSearchParams,添加 Almanac→SearchResult 转换函数 toSearchResult"
},
{
"id": "4.2.3",
"action": "update_search_types",
"description": "更新 search.ts 类型定义",
"status": "completed",
"result": "移除 SearchService 接口(已由 class 替代),保留 SearchCondition/SearchRequest/SearchResult 等类型"
},
{
"id": "4.2.4",
"action": "verify_page_renders",
"description": "验证测试通过",
"status": "completed",
"result": "193 tests passed"
}
]
},
{
"id": "4.3",
"name": "适配错误处理器",
"description": "更新 errorHandler.ts,移除网络相关错误处理,保留通用错误处理",
"status": "completed",
"files": {
"modify": ["src/utils/errorHandler.ts"]
},
"steps": [
{
"id": "4.3.1",
"action": "read_current_code",
"description": "读取当前 errorHandler.ts 代码",
"status": "completed"
},
{
"id": "4.3.2",
"action": "remove_network_error_handlers",
"description": "移除网络错误处理逻辑,保留通用错误处理",
"status": "completed",
"result": "替换 ErrorType 为 AppErrorTypeCALCULATION_ERROR, DATA_ERROR, STORAGE_ERROR, VALIDATION_ERROR, UNKNOWN_ERROR),替换 ApiError 为 AppError,移除 isAuthError/isNetworkError/isBusinessError 方法,添加 createError 工厂方法和 toAppError 转换"
},
{
"id": "4.3.3",
"action": "verify_build",
"description": "验证修改后项目可正常构建",
"status": "completed",
"result": "UniApp 源码无 TypeScript 错误"
}
]
},
{
"id": "4.4",
"name": "更新 package.json 依赖",
"description": "移除不再需要的后端相关依赖,添加测试相关依赖",
"status": "completed",
"files": {
"modify": ["package.json"]
},
"deviations": "axios 不在 package.json 中,跳过移除",
"steps": [
{
"id": "4.4.1",
"action": "remove_unused_deps",
"description": "移除不再需要的依赖",
"status": "completed",
"result": "移除 vue-routeraxios 不存在跳过"
},
{
"id": "4.4.2",
"action": "add_test_deps",
"description": "确保测试依赖完整",
"status": "completed",
"result": "添加 @vitest/coverage-v8 和 @vue/test-utils"
}
]
},
{
"id": "4.5",
"name": "移除后端项目目录",
"description": "删除 Java 后端项目、管理后台、测试项目及 Docker 配置",
"status": "completed",
"files": {
"delete": [
"../everything-is-suitable-api/",
"../everything-is-suitable-admin/",
"../everything-is-suitable-test/",
"../docker-compose.yml",
"../docker-compose.test.yml",
"../docker-compose.test-new.yml",
"../docker-compose.monitoring.yml",
"../Dockerfile.test-data-manager",
"../.woodpecker.yml",
"../config/",
"../DEPLOYMENT.md",
"../STARTUP_GUIDE.md",
"../WOODPECKER_CI.md",
"../.env.test"
]
},
"steps": [
{
"id": "4.5.1",
"action": "verify_uniapp_independent",
"description": "确认 UniApp 项目已完全独立于后端",
"status": "completed",
"result": "src/ 中无 localhost:8080 或 /api/ 引用"
},
{
"id": "4.5.2",
"action": "delete_directories",
"description": "删除后端项目目录",
"status": "completed",
"result": "已删除 everything-is-suitable-api, everything-is-suitable-admin, everything-is-suitable-test, config"
},
{
"id": "4.5.3",
"action": "delete_docker_configs",
"description": "删除 Docker 和 CI 配置",
"status": "completed",
"result": "已删除 docker-compose*.yml, Dockerfile.test-data-manager, .woodpecker.yml, DEPLOYMENT.md, STARTUP_GUIDE.md, WOODPECKER_CI.md, .env.test"
}
]
}
]
}
}