493 lines
8.2 KiB
Markdown
493 lines
8.2 KiB
Markdown
# 接口文档
|
||
|
||
## 基本格式
|
||
|
||
### 成功响应格式
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"data": {
|
||
"foo": "bar"
|
||
}
|
||
}
|
||
```
|
||
|
||
**NOTE:** 若无特殊说明,`POST`请求的响应`data`字段为空(`{}`),可以不用管。
|
||
|
||
### 失败响应格式
|
||
|
||
```json
|
||
{
|
||
"success": false,
|
||
"err": "some error"
|
||
}
|
||
```
|
||
|
||
### `GET` 请求默认格式(若无特殊说明)
|
||
|
||
```json
|
||
{
|
||
"token": "token_test"
|
||
}
|
||
```
|
||
|
||
## 登陆
|
||
|
||
### 账号密码登陆 `POST /login`
|
||
|
||
request:
|
||
|
||
```json
|
||
{
|
||
"stuid": "3220114514",
|
||
"passwd": "__passwd_test__"
|
||
}
|
||
```
|
||
|
||
data:
|
||
|
||
.role
|
||
|
||
-1 => 未定
|
||
|
||
0 => 干事
|
||
|
||
1 => 部长
|
||
|
||
2 => 会长
|
||
|
||
3 => 副会长
|
||
|
||
4 => 技术指导
|
||
|
||
5 => 已退休
|
||
|
||
6 => 管理员
|
||
|
||
7 => 副部长
|
||
|
||
8 => 总监
|
||
|
||
.department
|
||
|
||
-1 => 未定
|
||
|
||
0 => 电器部
|
||
|
||
1 => 电脑部
|
||
|
||
2 => 人资部
|
||
|
||
3 => 文宣部
|
||
|
||
4 => 财外部
|
||
|
||
```json
|
||
{
|
||
"token": "token_test",
|
||
"name": "亦可",
|
||
"avatar": "https://....png",
|
||
"role": 6,
|
||
"department": 1,
|
||
"access": "admin" // "admin" => 主席团成员 "leader" => 值班组长 "member" => 普通成员
|
||
}
|
||
```
|
||
|
||
### 登出 `POST /logout`
|
||
|
||
request:
|
||
|
||
```json
|
||
{
|
||
"token": "token_test"
|
||
}
|
||
```
|
||
|
||
## 主页面
|
||
|
||
### 统计数据 `GET /stats`
|
||
|
||
data:
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"data": {
|
||
"todayPT": 114, // 今日预填写工单总数
|
||
"totalPT": 514, // 所有预填写工单
|
||
"oreo": 93, // 加入 Oreo 工单数
|
||
"report": 8, // 今日反馈数
|
||
"allSuccess": 1919, // 所有成功工单(包括 Oreo 内)
|
||
"all": 2024 // 所有工单(包括 Oreo 内)
|
||
}
|
||
}
|
||
```
|
||
|
||
## 主席团页面
|
||
|
||
### 值班信息管理
|
||
|
||
#### 当前值班信息 `GET /admin/duty/current`
|
||
|
||
##### 正常值班
|
||
|
||
data:
|
||
|
||
```json
|
||
{
|
||
"isNormalDuty": true, // 判断是否是正常值班时间
|
||
"currentDuty": "1", // 判断是否正在值班 / 值哪一班 "1" | "2" | "3" => 正在值班,"off" => 暂停值班, "0" => 值班下班
|
||
"inDutyCnt": 3,
|
||
"otherDutyTime": [], // 正常值班时为空
|
||
"offDutyReason": "",
|
||
"place": "204",
|
||
"dutyRecoverTime": ""
|
||
}
|
||
```
|
||
|
||
##### 其他值班
|
||
|
||
data:
|
||
|
||
```json
|
||
{
|
||
"isNormalDuty": false, // 判断是否是正常值班时间
|
||
"currentDuty": "others", // 判断是否正在值班 / 值哪一班 "others" => 正在值班,"off" => 暂停值班, "0" => 值班下班
|
||
"inDutyCnt": 3,
|
||
"otherDutyTime": [
|
||
{
|
||
"name": "第一班",
|
||
"place": "蓝田",
|
||
"range": ["2024-03-07T19:52:48.523303", "2024-03-07T19:52:48.523303"]
|
||
},
|
||
{
|
||
"name": "第二班",
|
||
"place": "蓝田",
|
||
"range": ["2024-03-07T19:52:48.523303", "2024-03-07T19:52:48.523303"]
|
||
},
|
||
...
|
||
],
|
||
"offDutyReason": "",
|
||
"place": "204",
|
||
"dutyRecoverTime": ""
|
||
}
|
||
```
|
||
|
||
#### 更新当前值班情况 `POST /admin/duty/update`
|
||
|
||
无关项不返回,后端手动校验
|
||
|
||
新增字段:dutyStatus "normal" => 正常值班 "others" => 特殊值班 "pause" => 暂停值班
|
||
|
||
request:
|
||
|
||
##### 正常值班
|
||
|
||
```json
|
||
{
|
||
"dutyStatus": "normal",
|
||
"inDutyCnt": 3,
|
||
},
|
||
```
|
||
|
||
##### 特殊值班
|
||
|
||
```json
|
||
{
|
||
"dutyStatus": "others",
|
||
"inDutyCnt": 3,
|
||
"otherDutyTime": [
|
||
{
|
||
"name": "第一班",
|
||
"place": "蓝田",
|
||
"range": ["2024-03-07T19:52:48.523303", "2024-03-07T19:52:48.523303"]
|
||
},
|
||
{
|
||
"name": "第二班",
|
||
"place": "蓝田",
|
||
"range": ["2024-03-07T19:52:48.523303", "2024-03-07T19:52:48.523303"]
|
||
},
|
||
...
|
||
],
|
||
},
|
||
```
|
||
|
||
##### 暂停值班
|
||
|
||
```json
|
||
{
|
||
"dutyStatus": "pause",
|
||
"offDutyReason": "期中考试周",
|
||
"dutyRecoverTime": "2024-03-07T19:52:48.523303",
|
||
},
|
||
```
|
||
|
||
### 值班表管理
|
||
|
||
#### 更新值班表 `POST /admin/sheet/create`
|
||
|
||
request:
|
||
|
||
```json
|
||
{
|
||
"name": "2024 春学期值班表",
|
||
"sheet": [
|
||
{
|
||
"weekday": 1,
|
||
"shift": 1,
|
||
"workers": ["马嘉祺", "丁程鑫", "宋亚轩"],
|
||
"leader": "蔡徐坤"
|
||
},
|
||
{
|
||
"weekday": 1,
|
||
"shift": 2,
|
||
"workers": ["王俊凯", "易烊千玺", "王源"],
|
||
"leader": "丁真珍珠"
|
||
}
|
||
// ...
|
||
]
|
||
}
|
||
```
|
||
|
||
#### 更新值班表 `POST /admin/sheet/update`
|
||
|
||
request:
|
||
|
||
```json
|
||
{
|
||
"id": 114514,
|
||
"name": "2024 春学期值班表",
|
||
"sheet": [
|
||
{
|
||
"weekday": 1,
|
||
"shift": 1,
|
||
"workers": ["马嘉祺", "丁程鑫", "宋亚轩"],
|
||
"leader": "蔡徐坤"
|
||
},
|
||
{
|
||
"weekday": 1,
|
||
"shift": 2,
|
||
"workers": ["王俊凯", "易烊千玺", "王源"],
|
||
"leader": "丁真珍珠"
|
||
}
|
||
// ...
|
||
]
|
||
}
|
||
```
|
||
|
||
#### 获取当前值班表 `GET /admin/sheet/current`
|
||
|
||
data:
|
||
|
||
```json
|
||
{
|
||
"name": "2024 春学期值班表",
|
||
"id": 114514,
|
||
"createdTime": "2024-03-07T19:52:48.523303",
|
||
"sheet": [
|
||
{
|
||
"weekday": 1,
|
||
"shift": 1,
|
||
"workers": ["马嘉祺", "丁程鑫", "宋亚轩"],
|
||
"leader": "蔡徐坤"
|
||
},
|
||
{
|
||
"weekday": 1,
|
||
"shift": 2,
|
||
"workers": ["王俊凯", "易烊千玺", "王源"],
|
||
"leader": "丁真珍珠"
|
||
}
|
||
// ...
|
||
]
|
||
}
|
||
```
|
||
|
||
#### 获取所有值班表 `GET /admin/sheet/list`
|
||
|
||
data:
|
||
|
||
```json
|
||
{
|
||
"current": 114514,
|
||
"list": [
|
||
{
|
||
"name": "2024 春学期值班表",
|
||
"id": 114514,
|
||
"createdTime": "2024-03-07T19:52:48.523303",
|
||
"sheet": [
|
||
{
|
||
"weekday": 1,
|
||
"shift": 1,
|
||
"workers": ["马嘉祺", "丁程鑫", "宋亚轩"],
|
||
"leader": "蔡徐坤"
|
||
},
|
||
{
|
||
"weekday": 1,
|
||
"shift": 2,
|
||
"workers": ["王俊凯", "易烊千玺", "王源"],
|
||
"leader": "丁真珍珠"
|
||
}
|
||
// ...
|
||
]
|
||
}
|
||
// ...
|
||
]
|
||
}
|
||
```
|
||
|
||
### 反馈管理
|
||
|
||
#### 获取反馈列表 `GET /admin/reportlist`
|
||
|
||
request:
|
||
|
||
```json
|
||
{
|
||
"current": 1,
|
||
"pageSize": 10,
|
||
"name?": "西西弗", // 如果不筛选则不出现在 request-body 内
|
||
"phone?": "18888888888" // 如果不筛选则不出现在 request-body 内
|
||
}
|
||
```
|
||
|
||
data:
|
||
|
||
```json
|
||
{
|
||
"page": 1,
|
||
"total": 24,
|
||
"success": true,
|
||
"data": [
|
||
{
|
||
"name": "晓洋",
|
||
"phone": "13333333333",
|
||
"time": "2024-03-07T17:52:48.523303",
|
||
"text": "你们为什么修不好天选3的PD充电?"
|
||
}
|
||
// ...
|
||
]
|
||
}
|
||
```
|
||
|
||
### 日志页面
|
||
|
||
#### 获取日志列表 `GET /admin/loglist`
|
||
|
||
request:
|
||
|
||
```json
|
||
{
|
||
"current": 1,
|
||
"pageSize": 10,
|
||
"op?": "晓洋", // 如果不筛选则不出现在 request-body 内
|
||
"operation": "all" | "add" | "delete" | "change", // all 之外的选项用于筛选
|
||
"target": "all" | "dutyTable" | "dutyInfo" | "conclusion" // all 之外的选项用于筛选
|
||
}
|
||
```
|
||
|
||
data:
|
||
|
||
```json
|
||
{
|
||
"page": 1,
|
||
"total": 24,
|
||
"success": true,
|
||
"data": [
|
||
{
|
||
"op": "宇航员",
|
||
"avatar": "https://...",
|
||
"time": "2024-03-07T19:52:48.523303",
|
||
"operation": 2,
|
||
"target": 1,
|
||
"prev": {
|
||
"id": 114,
|
||
"info": "马嘉祺"
|
||
},
|
||
"curr": {
|
||
"id": 514,
|
||
"info": "何君琳"
|
||
}
|
||
}
|
||
// ...
|
||
]
|
||
}
|
||
```
|
||
|
||
前端显示的信息:"{op} 于 {time} {operation} 了 {target}:{prev.info} -> {curr.info}"
|
||
|
||
### 值班总结管理页面
|
||
|
||
#### 获取值班总结列表 `GET /admin/conclusionlist`
|
||
|
||
request:
|
||
|
||
```json
|
||
{
|
||
"current": 1,
|
||
"pageSize": 10,
|
||
"op?": "晓洋", // 如果不筛选则不出现在 request-body 内
|
||
"week": "all" | "mon" | "tue" | "wed" | "thu" | "fri" | "sat" | "sun", // all 之外的选项用于筛选
|
||
"shift": "all" | "first" | "second" | "third" // all 之外的选项用于筛选
|
||
}
|
||
```
|
||
|
||
data:
|
||
|
||
```json
|
||
{
|
||
"page": 1,
|
||
"total": 24,
|
||
"success": true,
|
||
"data": [
|
||
{
|
||
"op": "宇航员",
|
||
"avatar": "https://...",
|
||
"time": "2024-03-07T19:52:48.523303",
|
||
"week": "2",
|
||
"shift": "3",
|
||
"detail": "收到电脑 n 台,维修成功 m 台,已取回 x 台,有 y 台正在维修交接给下一班"
|
||
}
|
||
// ...
|
||
]
|
||
}
|
||
```
|
||
|
||
### 请假管理页面
|
||
|
||
#### 获取请假列表 `GET /leader/askleavelist`
|
||
|
||
request:
|
||
|
||
```json
|
||
{
|
||
"current": 1,
|
||
"pageSize": 10,
|
||
"member?": "晓洋", // 如果不筛选则不出现在 request-body 内
|
||
"week": "all" | "mon" | "tue" | "wed" | "thu" | "fri" | "sat" | "sun", // all 之外的选项用于筛选
|
||
"shift": "all" | "first" | "second" | "third" // all 之外的选项用于筛选
|
||
}
|
||
```
|
||
|
||
data:
|
||
|
||
```json
|
||
{
|
||
"page": 1,
|
||
"total": 24,
|
||
"success": true,
|
||
"data": [
|
||
{
|
||
"member": "宇航员",
|
||
"avatar": "https://...",
|
||
"time": "2024-03-07T19:52:48.523303",
|
||
"week": "2",
|
||
"shift": "3",
|
||
"reason": "家庭原因",
|
||
"substitute": "晓洋" // 未找人代班则为空
|
||
}
|
||
// ...
|
||
]
|
||
}
|
||
```
|