Files
makemd/docs/00_Business/tasks/frontend/13_code_review_fixes.md
wurenzhi 48a78137c5 refactor(terminology): 统一术语标准并优化代码类型安全
- 将B2B统一为TOB术语
- 将状态值统一为大写格式
- 优化类型声明,避免使用any
- 将float类型替换为decimal以提高精度
- 新增术语标准化文档
- 优化路由结构和菜单分类
- 添加TypeORM实体类
- 增强加密模块安全性
- 重构前端路由结构
- 完善任务模板和验收标准
2026-03-20 09:43:50 +08:00

5.4 KiB
Raw Blame History

代码审查修复任务(前端)

任务列表

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 的类型安全。

典型违规模式:

// ❌ 错误
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 检查验证

整改示例:

// ❌ 错误
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<string, string>)}`);

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
  • 代码体积优化
  • 缓存策略有效