192 lines
7.2 KiB
JSON
192 lines
7.2 KiB
JSON
{
|
||
"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"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|