# 代码审查修复任务(前端) ## 任务列表 | Task ID | 闭环关联 | 任务描述 | 输入 | 输出 | 触发条件 | 状态 | 优先级 | 依赖 | 预计耗时 | 负责人 | 完成时间 | | ------- | ---------- | ---------- | ----- | ---- | -------- | ---- | --- | --- | ---- | -------- | -------- | | FE-CR001 | 类型安全闭环 | 减少 `any` 类型使用(43 处) | 违规文件列表 | 类型定义完善 | 代码审查 | ⏳ pending | P1 | - | 6h | AI-Frontend-1 | 2026-03-25 | | FE-CR002 | 代码质量闭环 | 统一代码风格(缩进、括号、注释) | Dashboard 源码 | 代码风格统一 | 代码审查 | ⏳ pending | P2 | - | 4h | AI-Frontend-1 | 2026-04-05 | | FE-CR003 | Mock 规范闭环 | 验证 Mock 数据隔离规范 | Mock 文件 | Mock 规范检查 | 代码审查 | ⏳ pending | P2 | - | 2h | AI-Frontend-1 | 2026-04-05 | | FE-CR004 | 组件规范闭环 | 统一组件命名和结构 | 组件文件 | 组件规范统一 | 代码审查 | ⏳ pending | P2 | - | 3h | AI-Frontend-1 | 2026-04-08 | | FE-CR005 | 性能优化闭环 | 优化前端性能(懒加载、缓存) | 性能报告 | 性能优化方案 | 性能监控 | ⏳ pending | P2 | - | 8h | AI-Frontend-1 | 2026-04-15 | ## 相关闭环 - 类型安全闭环 - 代码质量闭环 - Mock 规范闭环 - 组件规范闭环 - 性能优化闭环 ## 依赖关系 - FE-CR001 是基础任务,无依赖 - FE-CR002 无依赖 - FE-CR003 无依赖 - FE-CR004 无依赖 - FE-CR005 无依赖 ## 任务详情 ### FE-CR001: 减少 `any` 类型使用 **问题描述**: Dashboard 模块中存在 43 处 `any` 类型使用,削弱了 TypeScript 的类型安全。 **典型违规模式**: ```typescript // ❌ 错误 const [dateRange, setDateRange] = useState(null as any); status: status as any, const response = await fetch(`${url}?${new URLSearchParams(params as any)}`); ``` **违规文件列表**: - `dashboard/src/services/userDataSource.ts` - `dashboard/src/services/orderDataSource.ts` - `dashboard/src/pages/Pricing.tsx` - `dashboard/src/pages/Analytics/index.tsx` - `dashboard/src/pages/Marketing/Ads.tsx` - `dashboard/src/pages/Return/ReturnMonitor.tsx` - `dashboard/src/services/certificateDataSource.ts` - `dashboard/src/services/arbitrageDataSource.ts` - `dashboard/src/components/HierarchySelector/index.tsx` - `dashboard/src/pages/Product/MaterialUpload.tsx` - `dashboard/src/services/userAssetDataSource.ts` - `dashboard/src/services/returnDataSource.ts` - `dashboard/src/services/abTestDataSource.ts` - `dashboard/src/services/merchantDataSource.ts` - `dashboard/src/services/logisticsDataSource.ts` - `dashboard/src/services/blacklistDataSource.ts` - `dashboard/src/services/taskCenterDataSource.ts` - `dashboard/src/services/marketingDataSource.ts` - `dashboard/src/services/financeDataSource.ts` - `dashboard/src/services/afterSalesDataSource.ts` - `dashboard/src/services/independentSiteDataSource.ts` - `dashboard/src/services/b2bTradeDataSource.ts` **验收标准**: - ✅ 减少 `any` 类型使用至 10 处以下 - ✅ 定义明确的接口类型 - ✅ 通过 TypeScript 严格检查 - ✅ 类型覆盖率 > 95% **实施步骤**: 1. 识别所有使用 `any` 的位置 2. 定义明确的接口类型 3. 使用类型断言替代 `as any` 4. 运行 TypeScript 检查验证 **整改示例**: ```typescript // ❌ 错误 const [dateRange, setDateRange] = useState(null as any); // ✅ 正确 import type { Dayjs } from 'dayjs'; const [dateRange, setDateRange] = useState<[Dayjs, Dayjs] | null>(null); // ❌ 错误 status: status as any, // ✅ 正确 status: status as 'active' | 'inactive' | 'pending', // ❌ 错误 const response = await fetch(`${url}?${new URLSearchParams(params as any)}`); // ✅ 正确 interface QueryParams { page: number; pageSize: number; status?: string; } const response = await fetch(`${url}?${new URLSearchParams(params as unknown as Record)}`); ``` --- ### FE-CR002: 统一代码风格 **问题描述**: Dashboard 模块代码风格基本统一,但仍有改进空间。 **检查项**: - 缩进格式(2 空格) - 括号使用(单行/多行) - 注释规范(JSDoc) - 命名规范(camelCase/PascalCase) **验收标准**: - ✅ 代码风格统一 - ✅ 通过 ESLint 检查 - ✅ 符合项目规范 - ✅ 代码可读性提升 --- ### FE-CR003: 验证 Mock 数据隔离规范 **问题描述**: 验证 Mock 数据是否符合项目规范,确保 Mock 数据与真实业务逻辑隔离。 **检查项**: - Mock 文件是否在 `/mock` 目录 - 是否包含 `[MOCK]` 标记 - 是否通过环境变量控制 - 是否有 DataSource 抽象层 **验收标准**: - ✅ Mock 数据完全隔离 - ✅ Mock 文件包含标记 - ✅ 环境变量控制正确 - ✅ DataSource 层完整 --- ### FE-CR004: 统一组件命名和结构 **问题描述**: 组件命名和结构基本规范,但需要进一步统一。 **检查项**: - 组件命名(PascalCase) - 文件命名(PascalCase.tsx) - 组件结构(Props/State/Effects) - 导出方式(default/named) **验收标准**: - ✅ 组件命名统一 - ✅ 文件结构规范 - ✅ Props 类型定义完整 - ✅ 组件可复用性提升 --- ### FE-CR005: 优化前端性能 **问题描述**: 前端性能需要优化,包括懒加载、缓存等。 **优化项**: - 组件懒加载(React.lazy) - 图片懒加载 - 路由懒加载 - 缓存策略 - 代码分割 **验收标准**: - ✅ 首屏加载时间 < 2s - ✅ Lighthouse 性能分数 > 90 - ✅ 代码体积优化 - ✅ 缓存策略有效