# 任务011:代码质量优化 ## 目标 修复代码审查发现的警告问题,提升代码质量。 ## 修复清单 ### 1. 拆分大文件( 中优先级) **organizations.rs(693行)** 拆分为: - `src/routes/organizations.rs` — 组织CRUD(~150行) - `src/routes/projects.rs` — 项目CRUD(~150行) - `src/routes/cabinets.rs` — 设备CRUD+详情(~200行) - `src/routes/cabinet_tree.rs` — 树状结构(~100行) **users.rs(495行)** 拆分为: - `src/routes/users.rs` — 用户CRUD(~200行) - `src/routes/user_operations.rs` — 操作日志辅助函数(~100行) **devices/index.tsx(631行)** 拆分为: - `src/pages/devices/index.tsx` — 主页面(~150行) - `src/pages/devices/OrganizationTree.tsx` — 组织树组件(~150行) - `src/pages/devices/CabinetGrid.tsx` — 柜子卡片网格(~150行) - `src/pages/devices/AddCabinetModal.tsx` — 添加柜子弹窗(~100行) ### 2. JWT密钥安全检查(🟡 中优先级) **位置:** `src/middleware/auth.rs:28` **修复方案:** 启动时检测默认密钥,打印WARN日志。 ```rust // config.rs 添加 impl Config { pub fn validate(&self) -> Result<()> { if self.jwt_secret == JWT_SECRET_DEFAULT { tracing::warn!("⚠️ 使用默认JWT密钥,生产环境请设置JWT_SECRET环境变量"); } Ok(()) } } // main.rs 启动时调用 let config = Config::from_env()?; config.validate()?; // 新增 ``` ### 3. 修复IconFolderOpen构建错误(🟡 中优先级) **位置:** `src/pages/devices/index.tsx:33` **修复方案:** 替换为可用图标。 ```tsx // 错误 import { IconFolderOpen } from '@arco-design/web-react/icon'; // 修复(选择存在的图标) import { IconFolder } from '@arco-design/web-react/icon'; // 或 import { IconApps } from '@arco-design/web-react/icon'; ``` ### 4. 清理clippy警告(🟢 低优先级) **修复方案:** ```bash cd software/server cargo clippy --fix --allow-dirty ``` 自动修复大部分clippy警告(collapsible_if、manual_unwrap_or_default等)。 ### 5. H5充电曲线数据(🟢 低优先级) **位置:** `src/h5/pages/compartment-detail.tsx:156` **修复方案:** 添加TODO注释,标记为待后端提供数据后替换。 ```tsx // TODO: 待后端提供充电曲线API后替换为真实数据 const mockChartData = [30, 45, 55, ...]; ``` ## 质量约束 1. 完成代码后执行 `cargo check` + `cargo clippy` + `tsc --noEmit`,零报错零警告 2. 分层拆分,单函数≤80行,命名语义化,完整注释 3. 所有外部IO/网络请求异常捕获,禁止裸panic 4. 分支逻辑全覆盖,不遗漏兜底分支 5. 常量抽离,不使用废弃API 6. Rust内存安全,React函数组件+Hooks 7. 拆分后的文件职责单一,无循环依赖