72 lines
2.0 KiB
Markdown
72 lines
2.0 KiB
Markdown
# 任务009:系统设置
|
||
|
||
## 目标
|
||
|
||
实现用户管理、操作日志查看。
|
||
|
||
## 后端API
|
||
|
||
### 用户管理
|
||
```
|
||
GET /api/users # 用户列表(分页)
|
||
POST /api/users # 创建用户(手机号+姓名+角色)
|
||
PUT /api/users/:id # 编辑用户
|
||
PUT /api/users/:id/reset-password # 重置密码
|
||
PUT /api/users/:id/status # 启用/禁用
|
||
DELETE /api/users/:id # 删除用户
|
||
```
|
||
|
||
### 操作日志
|
||
```
|
||
GET /api/operation-logs # 操作日志列表
|
||
?user_id=xxx&action=xxx
|
||
&start_time=xxx&end_time=xxx&page=1&page_size=20
|
||
```
|
||
|
||
## 前端页面
|
||
|
||
### 用户管理页
|
||
|
||
**列表显示:**
|
||
| 手机号 | 姓名 | 角色 | 所属组织 | 状态 | 操作 |
|
||
|--------|------|------|----------|------|------|
|
||
| 138... | 张三 | 企业管理员 | 组织A | 启用 | 编辑/重置密码/禁用 |
|
||
|
||
**创建用户弹窗:**
|
||
- 手机号(必填,11位)
|
||
- 姓名(选填)
|
||
- 角色选择(总管理员/企业管理员/普通用户)
|
||
- 所属组织(企业管理员必填)
|
||
- 初始密码(默认123456,可修改)
|
||
|
||
**编辑用户弹窗:**
|
||
- 姓名
|
||
- 角色
|
||
- 所属组织
|
||
|
||
**重置密码:**
|
||
- 确认弹窗
|
||
- 新密码(默认123456)
|
||
|
||
### 操作日志页
|
||
|
||
**顶部过滤:**
|
||
- 用户下拉
|
||
- 操作类型(登录/创建/编辑/删除/控制设备)
|
||
- 时间范围
|
||
|
||
**列表显示:**
|
||
| 用户 | 操作 | 对象类型 | 对象 | 详情 | 时间 |
|
||
|------|------|----------|------|------|------|
|
||
| 张三 | 创建柜子 | 设备 | 10-00000001 | 批量添加3台 | 2026-07-01 10:30 |
|
||
| 李四 | 开始充电 | 通道 | 通道1 | 柜子10-00000001 | 2026-07-01 10:35 |
|
||
|
||
## 质量约束
|
||
|
||
1. 完成代码后执行 `cargo check` + `tsc --noEmit`,零报错零警告
|
||
2. 分层拆分,单函数≤80行,命名语义化,完整注释
|
||
3. 所有外部IO/网络请求异常捕获,禁止裸panic
|
||
4. 分支逻辑全覆盖,不遗漏兜底分支
|
||
5. 常量抽离,不使用废弃API
|
||
6. Rust内存安全,React函数组件+Hooks
|