From 7316208b21bcd11c6d1525fdca45abf16fcc43ab Mon Sep 17 00:00:00 2001 From: Dawn1Ocean <1785590531@qq.com> Date: Sat, 23 Mar 2024 00:39:06 +0800 Subject: [PATCH] add mock and doc --- README.md | 31 ++++++ doc/api.md | 232 +++++++++++++++++++++++++++++++++++++++ mock/api.ts | 55 ++++++++++ mock/sheet.json | 127 ++++++++++++++++++++++ mock/sheetlist.json | 259 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 704 insertions(+) create mode 100644 doc/api.md create mode 100644 mock/api.ts create mode 100644 mock/sheet.json create mode 100644 mock/sheetlist.json diff --git a/README.md b/README.md index fea9230..56d9ca3 100644 --- a/README.md +++ b/README.md @@ -21,9 +21,40 @@ 3. 特殊维修时间(如学园维修)、值班信息更新 4. 日志 1. 记录每一次操作、操作者 +5. 自动排班功能(Enhancement) ### 值班组长管理页面 ps. 是微信小程序中小组管理页面的pc端替代 1. 值班组长上传本班相关信息 +2. 值班组长上传值班总结(Enhancement) + +## UI + +### 仪表盘 + +1. 个人信息、职位 +2. 新系统中(未加入Oreo/预填写工单总数)统计 + +### 主席团管理页面 + +#### 值班表管理 + +1. 值班表渲染 +2. 值班表在线更改、上传后端 + 1. 特殊时间值班表不上传 +3. 值班表导出 + +#### 特殊值班时间 + +1. (switch) 是否启用平常值班时间 +2. 若不在平常值班时间,选择录入不值班原因/特殊值班时间 + +### 值班组长管理页面(暂空) + +1. (Enhancement) 值班总结上传 + +### 日志(所有人可见) + +1. 查询功能 diff --git a/doc/api.md b/doc/api.md new file mode 100644 index 0000000..c8f6f04 --- /dev/null +++ b/doc/api.md @@ -0,0 +1,232 @@ +# 接口文档 + +## 基本格式 + +### 成功响应格式 + +```json +{ + "success": true, + "data": { + "foo": "bar" + } +} +``` + +**NOTE:** 若无特殊说明,`POST`请求的响应`data`字段为空(`{}`),可以不用管。 + +### 失败响应格式 + +```json +{ + "success": false, + "err": "some error" +} +``` + +### `GET`请求默认格式(若无特殊说明) + +```json +{ + "token": "token_test" +} +``` + +## 主页面 + +### 统计数据 `GET /admin/stats` + +data: + +```json +{ + "success": true, + "data": { + "notInOreo": 114, + "total": 514 + } +} +``` + +### 当前值班信息 `GET /admin/duty/current` + +data: + +```json +{ + "isInDuty": true, + "currentDuty": "2", + "inDutyCnt": 3, + "otherDutyTime": "", + "offDutyReason": "", + "place": "204", + "dutyRecoverTime": "" +} +``` + +## 主席团页面 + +### 值班表管理 + +#### 更新值班表 `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/duty/current` + +data: + +```json +{ + "isInDuty": true, + "currentDuty": "2", + "inDutyCnt": 3, + "otherDutyTime": "", + "offDutyReason": "", + "place": "", + "dutyRecoverTime": "", +}, +``` + +#### 更新当前值班情况 `POST /admin/duty/update` + +无关项返回空字符串,后端手动校验 + +request: + +```json +{ + "isInDuty": true, + "currentDuty": "2", + "inDutyCnt": 3, + "otherDutyTime": "", + "offDutyReason": "", + "place": "204", + "dutyRecoverTime": "", +}, +``` + +## 日志页面 + +### 获取日志列表 `GET /admin/loglist` + +data: + +```json +{ + "op": "宇航员", + "time": "2024-03-07T19:52:48.523303", + "operation": 2, + "target": {}, //TODO +}, +``` diff --git a/mock/api.ts b/mock/api.ts new file mode 100644 index 0000000..3c1ffb7 --- /dev/null +++ b/mock/api.ts @@ -0,0 +1,55 @@ +import sheetlist from './sheetlist.json'; +import sheet from './sheet.json'; + +const api = { + 'GET /admin/stats': { + success: true, + data: { + notInOreo: 114, + total: 514, + }, + }, + 'POST /admin/sheet/update': { + success: true, + data: {}, + }, + 'POST /admin/sheet/create': { + success: true, + data: {}, + }, + 'GET /admin/sheet/current': { + success: true, + data: sheet, + }, + 'GET /admin/sheet/list': { + success: true, + data: sheetlist, + }, + 'GET /admin/duty/current': { + success: true, + data: { + isInDuty: true, + currentDuty: '2', + inDutyCnt: 3, + otherDutyTime: '', + offDutyReason: '', + place: '204', + dutyRecoverTime: '', + }, + }, + 'POST /admin/duty/update': { + success: true, + data: {}, + }, + 'GET /admin/loglist': { + success: true, + data: { + op: '宇航员', + time: '2024-03-07T19:52:48.523303', + operation: 2, + target: {}, //TODO + }, + }, +}; + +export default api; diff --git a/mock/sheet.json b/mock/sheet.json new file mode 100644 index 0000000..d23765f --- /dev/null +++ b/mock/sheet.json @@ -0,0 +1,127 @@ +{ + "name": "2024 春学期值班表", + "createdTime": "2024-03-07T19:52:48.523303", + "id": 114, + "sheet": [ + { + "weekday": 1, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 1, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 1, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 2, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 2, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 2, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 3, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 3, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 3, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 4, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 4, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 4, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 5, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 5, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 5, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 6, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 6, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 6, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 7, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 7, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + } + ] +} diff --git a/mock/sheetlist.json b/mock/sheetlist.json new file mode 100644 index 0000000..491055b --- /dev/null +++ b/mock/sheetlist.json @@ -0,0 +1,259 @@ +{ + "current": 514, + "list": [ + { + "name": "2024 春学期值班表", + "createdTime": "2024-03-07T19:52:48.523303", + "id": 114, + "sheet": [ + { + "weekday": 1, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 1, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 1, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 2, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 2, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 2, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 3, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 3, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 3, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 4, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 4, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 4, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 5, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 5, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 5, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 6, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 6, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 6, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 7, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 7, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + } + ] + }, + { + "name": "2024 秋学期值班表", + "createdTime": "2024-03-07T11:45:14.523303", + "id": 514, + "sheet": [ + { + "weekday": 1, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 1, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 1, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 2, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 2, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 2, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 3, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 3, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 3, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 4, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 4, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 4, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 5, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 5, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 5, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 6, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 6, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 6, + "shift": 3, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 7, + "shift": 1, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + }, + { + "weekday": 7, + "shift": 2, + "workers": ["123423", "31424", "31242"], + "leader": "3902487" + } + ] + } + ] +}