feat: 重构用户管理页面,集成 msw mock,统一路径别名和 API 命名规范

This commit is contained in:
2026-05-15 15:44:27 +08:00
parent 790b6905ef
commit 311ce55fb7
19 changed files with 1307 additions and 40 deletions

View File

@@ -84,6 +84,30 @@ tsconfig.json
- **单引号**`.prettierrc``singleQuote: true`
- ESLint 仅作用于 `**/*.{ts,tsx}`,启用了 `react-hooks``react-refresh` 插件
## 注释规范
**所有代码都应附带必要的注释,说明意图而非重复代码本身。**
- 函数 / Hook用 JSDoc 说明用途、参数含义
- 复杂逻辑、非直觉的实现:行内注释解释原因
- 模拟数据 / 临时代码:标注 `// TODO:``// FIXME:` 方便后续替换
- 类型字段:用 JSDoc 注释说明每个字段的含义
```ts
// ✅ 说明意图
// 用 cancelled 标志位防止组件卸载后的竞态更新
let cancelled = false;
/**
* 根据部门 ID 获取用户列表
* @param deptKey 部门节点 key
*/
const fetchUsersByDept = (deptKey: string): Promise<UserRecord[]> => { ... };
// TODO: 替换为真实接口
const mockData = [...];
```
## UI 组件规范antd
**页面 UI 优先使用 antd 组件,不自行实现已有组件的功能。**
@@ -109,9 +133,22 @@ import { ConfigProvider } from 'antd';
## HTTP 请求
- 所有请求通过 `src/utils/request.ts` 封装的方法发出,不直接使用 `axios`
- 导出方法:`get` / `post` / `put` / `del`,返回值类型自动推断为 `API.Response<T>`
- **只使用 `get` `post` 两种方法**,不使用 `put` / `delete` 等其他方法
- 编辑接口用 `post`,路径加 `/edit` 后缀;删除接口用 `post`,路径加 `/del` 后缀
- 全局响应结构 `API.Response<T>` 定义在 `src/types/http.d.ts`,无需 import 直接使用
- 请求拦截器(添加 token和响应拦截器处理错误码统一在 `request.ts` 中维护
- 接口函数统一放在 `src/api/` 下,按模块分文件管理(如 `src/api/system/user.ts`
**接口函数命名规范:**
| 操作 | 前缀 | 示例 |
|------|------|------|
| 新增 | `add` | `addDept` |
| 编辑 | `edit` | `editDept` |
| 删除 | `del` | `delDept` |
| 获取列表 | `list` | `listUser` |
| 获取详情 | `detail` | `detailUser` |
| 特殊查询(树等) | 语义命名 | `deptTree` |
```ts
// 使用示例