EVA-Tea/doc/api.md

6.9 KiB
Raw Blame History

接口文档

基本格式

成功响应格式

{
  "success": true,
  "data": {
    "foo": "bar"
  }
}

NOTE: 若无特殊说明,POST请求的响应data字段为空({}),可以不用管。

失败响应格式

{
  "success": false,
  "err": "some error"
}

GET请求默认格式(若无特殊说明)

{
  "token": "token_test"
}

主页面

统计数据 GET /stats

data:

{
  "success": true,
  "data": {
    "todayPT": 114, // 今日预填写工单总数
    "totalPT": 514, // 所有预填写工单
    "oreo": 93, // 加入 Oreo 工单数
    "report": 8, // 今日反馈数
    "allSuccess": 1919, // 所有成功工单(包括 Oreo 内)
    "all": 2024 // 所有工单(包括 Oreo 内)
  }
}

主席团页面

值班信息管理

当前值班信息 GET /admin/duty/current

正常值班

data:

{
  "isNormalDuty": true, // 判断是否是正常值班时间
  "currentDuty": "1", // 判断是否正在值班 / 值哪一班 "1" | "2" | "3" => 正在值班,"off" => 值班下班
  "inDutyCnt": 3,
  "otherDutyTime": [], // 正常值班时为空
  "offDutyReason": "",
  "place": "204",
  "dutyRecoverTime": ""
}
其他值班

data:

{
  "isNormalDuty": false, // 判断是否是正常值班时间
  "currentDuty": "others", // 判断是否正在值班 / 值哪一班 "others" => 正在值班,"off" => 值班下班
  "inDutyCnt": 3,
  "otherDutyTime": [
    {
      "name": "第一班",
      "range": ["2024-03-07T19:52:48.523303", "2024-03-07T19:52:48.523303"]
    },
    {
      "name": "第二班",
      "range": ["2024-03-07T19:52:48.523303", "2024-03-07T19:52:48.523303"]
    },
    ...
  ],
  "offDutyReason": "",
  "place": "204",
  "dutyRecoverTime": ""
}

更新当前值班情况 POST /admin/duty/update

无关项返回空字符串,后端手动校验

request:

{
  "isNormalDuty": true,
  "currentDuty": "2",
  "inDutyCnt": 3,
  "otherDutyTime": [],
  "offDutyReason": "",
  "place": "204",
  "dutyRecoverTime": "",
},

值班表管理

更新值班表 POST /admin/sheet/create

request:

{
  "name": "2024 春学期值班表",
  "sheet": [
    {
      "weekday": 1,
      "shift": 1,
      "workers": ["马嘉祺", "丁程鑫", "宋亚轩"],
      "leader": "蔡徐坤"
    },
    {
      "weekday": 1,
      "shift": 2,
      "workers": ["王俊凯", "易烊千玺", "王源"],
      "leader": "丁真珍珠"
    }
    // ...
  ]
}

更新值班表 POST /admin/sheet/update

request:

{
  "id": 114514,
  "name": "2024 春学期值班表",
  "sheet": [
    {
      "weekday": 1,
      "shift": 1,
      "workers": ["马嘉祺", "丁程鑫", "宋亚轩"],
      "leader": "蔡徐坤"
    },
    {
      "weekday": 1,
      "shift": 2,
      "workers": ["王俊凯", "易烊千玺", "王源"],
      "leader": "丁真珍珠"
    }
    // ...
  ]
}

获取当前值班表 GET /admin/sheet/current

data:

{
  "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:

{
  "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:

{
  "current": 1,
  "pageSize": 10,
  "name?": "西西弗", // 如果不筛选则不出现在 request-body 内
  "phone?": "18888888888" // 如果不筛选则不出现在 request-body 内
}

data:

{
  "page": 1,
  "total": 24,
  "success": true,
  "data": [
    {
      "name": "晓洋",
      "phone": "13333333333",
      "time": "2024-03-07T17:52:48.523303",
      "text": "你们为什么修不好天选3的PD充电"
    }
    // ...
  ]
}

日志页面

获取日志列表 GET /admin/loglist

request:

{
  "current": 1,
  "pageSize": 10,
  "op?": "晓洋", // 如果不筛选则不出现在 request-body 内
  "operation": "all" | "add" | "delete" | "change", // all 之外的选项用于筛选
  "target": "all" | "dutyTable" | "dutyInfo" | "conclusion" // all 之外的选项用于筛选
}

data:

{
  "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:

{
  "current": 1,
  "pageSize": 10,
  "op?": "晓洋", // 如果不筛选则不出现在 request-body 内
  "week": "all" | "mon" | "tue" | "wed" | "thu" | "fri" | "sat" | "sun", // all 之外的选项用于筛选
  "shift": "all" | "first" | "second" | "third" // all 之外的选项用于筛选
}

data:

{
  "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:

{
  "current": 1,
  "pageSize": 10,
  "member?": "晓洋", // 如果不筛选则不出现在 request-body 内
  "week": "all" | "mon" | "tue" | "wed" | "thu" | "fri" | "sat" | "sun", // all 之外的选项用于筛选
  "shift": "all" | "first" | "second" | "third" // all 之外的选项用于筛选
}

data:

{
  "page": 1,
  "total": 24,
  "success": true,
  "data": [
    {
      "member": "宇航员",
      "avatar": "https://...",
      "time": "2024-03-07T19:52:48.523303",
      "week": "2",
      "shift": "3",
      "reason": "家庭原因",
      "substitute": "晓洋" // 未找人代班则为空
    }
    // ...
  ]
}