Browse Source

Merge remote-tracking branch 'origin/develop' into feature/page-components-bay

WuXinyu 7 years ago
parent
commit
d36f08085e

+ 124 - 0
mock/modules/assignment/index.js

@@ -0,0 +1,124 @@
+const express = require("express");
+const router = express.Router();
+const CodeSerializer = require("../../serializers/assignment/CodeSerializer");
+const ProjectSerializer = require("../../serializers/assignment/ProjectSerializer");
+const CodeResultSerializer = require("../../serializers/assignment/CodeResultSerializer");
+const DocumentSerializer = require("../../serializers/assignment/DocumentSerializer");
+const DocumentResultSerializer = require("../../serializers/assignment/DocumentResultSerializer");
+
+//新建代码作业
+router.route("/course/:courseId/code").post((req, res) => {
+  res.send({
+    data: CodeSerializer()
+  });
+});
+
+router
+  .route("/code/:codeId")
+  //更新代码作业信息
+  .put((req, res) => {
+    res.send({
+      data: CodeSerializer()
+    });
+  })
+  //删除代码作业
+  .delete((req, res) => {
+    res.send({
+      data: {}
+    });
+  });
+
+//老师查看代码作业列表
+router.route("/teacher/course/:courseId/code").get((req, res) => {
+  res.send({
+    data: [CodeSerializer(), CodeSerializer()]
+  });
+});
+
+//学生查看代码作业列表
+router.route("/student/course/:courseId/code").get((req, res) => {
+  res.send({
+    data: [CodeSerializer(), CodeSerializer()]
+  });
+});
+
+//学生查看单个代码作业
+router.route("/student/code/:codeId").get((req, res) => {
+  res.send({
+    data: CodeSerializer()
+  });
+});
+
+//学生查看单个代码作业下的项目信息列表
+router.route("/student/code/:codeId/project").get((req, res) => {
+  res.send({
+    data: [ProjectSerializer(), ProjectSerializer()]
+  });
+});
+
+//老师查看单个代码作业的成绩列表(所有组的)
+router.route("/teacher/code/:codeId/result").get((req, res) => {
+  res.send({
+    data: [CodeResultSerializer, CodeResultSerializer]
+  });
+});
+
+//学生查看单个代码作业的成绩
+router.route("/student/code/:codeId/result").get((req, res) => {
+  res.send({
+    data: CodeResultSerializer
+  });
+});
+
+// Document
+//新建文档作业
+router.route("/course/:courseId/document").post((req, res) => {
+  res.send({
+    data: DocumentSerializer()
+  });
+});
+
+router
+  .route("/document/:documentId")
+  //更新文档作业信息
+  .put((req, res) => {
+    res.send({
+      data: DocumentSerializer()
+    });
+  })
+  //删除文档作业
+  .delete((req, res) => {
+    res.send({
+      data: {}
+    });
+  });
+
+//老师查看文档作业列表
+router.route("/teacher/course/:courseId/document").get((req, res) => {
+  res.send({
+    data: [DocumentSerializer(), DocumentSerializer()]
+  });
+});
+
+//学生查看文档作业列表
+router.route("/student/course/:courseId/document").get((req, res) => {
+  res.send({
+    data: [DocumentSerializer(), DocumentSerializer()]
+  });
+});
+
+//老师查看文档作业的成绩列表(所有小组)
+router.route("/teacher/document/:documentId/result").get((req, res) => {
+  res.send({
+    data: [DocumentResultSerializer(), DocumentResultSerializer()]
+  });
+});
+
+//学生查看文档作业的成绩
+router.route("/student/document/:documentId/result").get((req, res) => {
+  res.send({
+    data: DocumentResultSerializer()
+  });
+});
+
+module.exports = router;

+ 1 - 0
mock/routes.js

@@ -6,6 +6,7 @@ router.use("/user", require("./modules/user"));
 router.use("/course", require("./modules/course"));
 router.use("/group", require("./modules/group"));
 router.use("/question", require("./modules/question"));
+router.use("/assignment", require("./modules/assignment"));
 router.use("/review", require("./modules/review"));
 
 module.exports = router;

+ 20 - 0
mock/serializers/assignment/NestedProblemSerializer.js

@@ -0,0 +1,20 @@
+const makeId = require("../../util/makeId");
+/**
+ * @description 代码作业题目简略信息
+ * @typedef {Object} NestedProblemSerializerType
+ * @property {number} id 代码题目id
+ * @property {string} name 题目名称
+ * @property {string} decription 题目描述
+ */
+
+/**
+ * @description 生成代码作业中题目的简略信息
+ * @returns {NestedProblemSerializerType}
+ */
+module.exports = () => {
+  return {
+    id: makeId(),
+    name: "完型填空",
+    description: "请完成那些完型填空题目啊"
+  };
+};

+ 24 - 0
mock/serializers/assignment/ScoreSerializer.js

@@ -0,0 +1,24 @@
+const makeId = require("../../util/makeId");
+/**
+ * @description 成绩条目
+ * @typedef {Object} ScoreSerializerType
+ * @property {number} id 条目编号
+ * @property {string} name 条目名称
+ * @property {string} score 得分
+ */
+
+/**
+ * @description 生成条目成绩
+ * @returns {ScoreSerializerType}
+ */
+
+module.exports = () => {
+  // function f() {
+  return {
+    id: makeId(),
+    name: "测试",
+    score: "90"
+  };
+};
+
+// console.log(f());

+ 1 - 0
src/api/_prefix.js

@@ -7,4 +7,5 @@ export const TAG_MODULE = `${API_VERSION}/tag`;
 export const COURSE_MODULE = `${API_VERSION}/course`;
 export const GROUP_MODULE = `${API_VERSION}/group`;
 export const QUESTION_MODULE = `${API_VERSION}/question`;
+export const ASSIGNMENT_MODULE = `${API_VERSION}/assignment`;
 export const REVIEW_MODULE = `${API_VERSION}/review`;

+ 200 - 0
src/api/assignment.js

@@ -0,0 +1,200 @@
+import request from "@/util/request";
+import { ASSIGNMENT_MODULE } from "./_prefix";
+
+/* 代码作业*/
+/**
+ * 老师新建代码作业
+ * @param type
+ * @param name
+ * @param description
+ * @param startAt
+ * @param endAt
+ * @param problem
+ * @returns {Promise<{data:CodeSerializerType}>}
+ */
+export const postCodeAssignment = ({
+  type,
+  name,
+  description,
+  startAt,
+  endAt,
+  problem
+}) => {
+  return request(`${ASSIGNMENT_MODULE}/course/:courseId/code`, {
+    method: "POST",
+    body: {
+      type: type || null,
+      name: name || null,
+      description: description || null,
+      startAt: startAt || null,
+      endAt: endAt || null,
+      problem: problem || null
+    }
+  });
+};
+/**
+ * 老师更新代码作业信息
+ * @param name
+ * @param description
+ * @param startAt
+ * @param endAt
+ * @returns {Promise<{data:CodeSerializerType}>}
+ */
+export const putCodeAssignment = ({ name, description, startAt, endAt }) => {
+  return request(`${ASSIGNMENT_MODULE}/code/:codeId`, {
+    method: "PUT",
+    body: {
+      name: name || null,
+      description: description || null,
+      startAt: startAt || null,
+      endAt: endAt || null
+    }
+  });
+};
+
+/**
+ * 老师删除代码作业
+ * @returns {Promise<{}>}
+ */
+export const delCodeAssignment = () => {
+  return request(`${ASSIGNMENT_MODULE}/code/:codeId`);
+};
+
+/**
+ * 老师查看代码作业列表
+ * @returns {Promise<{data:CodeSerializerType[]}>}
+ */
+export const getCodeAssignmentListByTeacher = () => {
+  return request(`${ASSIGNMENT_MODULE}/teacher/course/:courseId/code`);
+};
+
+/**
+ * 学生查看代码作业列表
+ * @returns {Promise<{data:CodeSerializerType[]}>}
+ */
+export const getCodeAssignmentListByStu = () => {
+  return request(`${ASSIGNMENT_MODULE}/student/course/:courseId/code`);
+};
+
+/**
+ * 学生查看单个代码作业列表
+ * @returns {Promise<{data:CodeSerializerType}>}
+ */
+export const getCodeAssignmentByStu = () => {
+  return request(`${ASSIGNMENT_MODULE}/student/code/:codeId`);
+};
+
+/**
+ * 学生查看单个代码作业下的项目信息列表
+ * @returns {Promise<{data:ProjectSerializerType}>}
+ */
+export const getProjectListByCode = () => {
+  return request(`${ASSIGNMENT_MODULE}/student/code/:codeId/project`);
+};
+
+/**
+ * 学生查看单个代码作业下的成绩
+ * @returns {Promise<{data:CodeResultSerializerType}>}
+ */
+export const getCodeResultByCode = () => {
+  return request(`${ASSIGNMENT_MODULE}/student/code/:codeId/result`);
+};
+
+/**
+ * 老师查看单个代码作业的成绩列表(所有组的)
+ * @returns {Promise<{data:CodeResultSerializerType}>}
+ */
+export const getCodeResultListByCode = () => {
+  return request(`${ASSIGNMENT_MODULE}/teacher/code/:codeId/result`);
+};
+
+/* 文档作业*/
+/**
+ * 老师新建文档作业
+ * @param type
+ * @param name
+ * @param description
+ * @param startAt
+ * @param endAt
+ * @param problem
+ * @returns {Promise<{data:DocumentSerializerType}>}
+ */
+export const postDocAssignment = ({
+  type,
+  name,
+  description,
+  startAt,
+  endAt,
+  problem
+}) => {
+  return request(`${ASSIGNMENT_MODULE}/course/:courseId/document`, {
+    method: "POST",
+    body: {
+      type: type || null,
+      name: name || null,
+      description: description || null,
+      startAt: startAt || null,
+      endAt: endAt || null,
+      problem: problem || null
+    }
+  });
+};
+/**
+ * 老师更新文档作业信息
+ * @param name
+ * @param description
+ * @param startAt
+ * @param endAt
+ * @returns {Promise<{data:DocumentSerializerType}>}
+ */
+export const putDocAssignment = ({ name, description, startAt, endAt }) => {
+  return request(`${ASSIGNMENT_MODULE}/document/:documentId`, {
+    method: "PUT",
+    body: {
+      name: name || null,
+      description: description || null,
+      startAt: startAt || null,
+      endAt: endAt || null
+    }
+  });
+};
+
+/**
+ * 老师删除文档作业
+ * @returns {Promise<{}>}
+ */
+export const delDocAssignment = () => {
+  return request(`${ASSIGNMENT_MODULE}/document/:documentId`);
+};
+
+/**
+ * 老师查看文档作业列表
+ * @returns {Promise<{data:DocumentSerializerType[]}>}
+ */
+export const getDocAssignmentListByTeacher = () => {
+  return request(`${ASSIGNMENT_MODULE}/teacher/course/:courseId/document`);
+};
+
+/**
+ * 学生查看文档作业列表
+ * @returns {Promise<{data:DocumentSerializerType[]}>}
+ */
+export const getDocAssignmentListByStu = () => {
+  return request(`${ASSIGNMENT_MODULE}/student/course/:courseId/document`);
+};
+
+/**
+ * 学生查看单个文档作业下的成绩
+ * @returns {Promise<{data:DocumentResultSerializerType}>}
+ */
+export const getDocResultByDoc = () => {
+  return request(`${ASSIGNMENT_MODULE}/student/document/:documentId/result`);
+};
+
+/**
+ * 老师查看单个文档作业的成绩列表(所有组的)
+ * @returns {Promise<{data:DocumentResultSerializerType}>}
+ */
+export const getDocResultListByDoc = () => {
+  return request(`${ASSIGNMENT_MODULE}/teacher/document/:documentId/result`);
+};