{ "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 为 AppErrorType(CALCULATION_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-router,axios 不存在跳过" }, { "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" } ] } ] } }