Przeglądaj źródła

把dl部分抽出为单独的js

Prevalence 7 lat temu
rodzic
commit
b208586b1c

+ 11 - 0
mock/modules/dlwork/index.js

@@ -0,0 +1,11 @@
+const express = require("express");
+const router = express.Router();
+const DLWorkSerializer = require("../../serializers/assignment/DLWorkSerializer");
+// 机器学习作业
+router.route("/student/course/:courseId/dlwork").get((req, res) => {
+  res.send({
+    code: 0,
+    data: [DLWorkSerializer(), DLWorkSerializer(), DLWorkSerializer()]
+  });
+});
+module.exports = router;

+ 1 - 0
mock/routes.js

@@ -10,5 +10,6 @@ router.use("/assignment", require("./modules/assignment"));
 router.use("/review", require("./modules/review"));
 router.use("/resultstatistics", require("./modules/resultstatistics"));
 router.use("/codehw", require("./modules/codehw"));
+router.use("/dlwork", require("./modules/dlwork"));
 
 module.exports = router;

+ 28 - 0
mock/serializers/assignment/DLWorkSerializer.js

@@ -0,0 +1,28 @@
+const makeId = require("../../util/makeId");
+const nestedProblemSerializer = require("./NestedProblemSerializer");
+const dayjs = require("dayjs");
+
+/**
+ * @description 机器学习作业详情
+ * @typedef {Object} DLWorkSerializer
+ * @property {number | string} id 代码作业Id
+ * @property {string} name 代码作业名称
+ * @property {string} description 代码作业描述
+ * @property {string} status 作业状态
+ * @property {number} createAt 创建时间
+ * @property {number} startAt 开始时间
+ * @property {number} endAt 结束时间
+ * @property {QuestionSerializerType[]} problem 作业题目
+ */
+module.exports = () => {
+  return {
+    id: makeId(),
+    name: "Tensorflow入门",
+    description: "这是一个MINIST的作业",
+    status: "PREPARING",
+    createAt: dayjs("2018-10-21").unix(),
+    startAt: dayjs("2019-01-01").unix(),
+    endAt: dayjs("2019-01-20").unix(),
+    problem: nestedProblemSerializer()
+  };
+};

+ 1 - 0
src/api/_prefix.js

@@ -11,3 +11,4 @@ export const ASSIGNMENT_MODULE = `${API_VERSION}/assignment`;
 export const REVIEW_MODULE = `${API_VERSION}/review`;
 export const RESULTSTATISTICS_MODULE = `${API_VERSION}/resultstatistics`;
 export const CODE_HOMEWORK_MODULE = `${API_VERSION}/codehw`;
+export const DL_WORK_MODULE = `${API_VERSION}/dlwork`;

+ 0 - 10
src/api/assignment.js

@@ -129,16 +129,6 @@ export const getUnsubmittedCodeGroupsList = codeId => {
   );
 };
 
-/*机器学习作业*/
-/**
- * 学生查看机器学习作业列表
- * @param courseId 课程Id
- * @returns {Promise<*>}
- */
-export const getDLAssignmentListByStu = courseId => {
-  return request(`${ASSIGNMENT_MODULE}/student/course/${courseId}/dlwork`);
-};
-
 /* 文档作业*/
 /**
  * 老师新建文档作业

+ 13 - 0
src/api/dlwork.js

@@ -0,0 +1,13 @@
+import request from "@/util/request";
+import { DL_WORK_MODULE } from "./_prefix";
+
+/*机器学习作业*/
+
+/**
+ * 学生查看机器学习作业列表
+ * @param courseId 课程Id
+ * @returns {Promise<*>}
+ */
+export const getDLAssignmentListByStu = courseId => {
+  return request(`${DL_WORK_MODULE}/student/course/${courseId}/dlwork`);
+};

+ 59 - 2
src/views/student/DlWork/detail.vue

@@ -1,6 +1,63 @@
 <template>
-  <div></div>
+  <div>
+    <page-header
+      :loading="detailLoading"
+      :routes="[{ name: '机器学习作业', path: 'dlwork' }, { name: '项目详情' }]"
+      :tab-list="[
+        {
+          name: '构建',
+          path: `code/${$route.params.homeworkId}/build`
+        },
+        {
+          name: '部署',
+          path: `code/${$route.params.homeworkId}/deploy`
+        }
+      ]"
+    >
+      <template slot="title">
+        {{ projectDetail.name }}
+      </template>
+      <template slot="content">
+        <strong>git 地址 : </strong>
+        <a :href="projectDetail.url">{{ projectDetail.url }}</a>
+      </template>
+    </page-header>
+    <page-body>
+      <router-view
+        :project-detail="projectDetail"
+        :detail-loading="detailLoading"
+      />
+    </page-body>
+  </div>
 </template>
+
 <script>
-export default {};
+import { getProjectDetail } from "@/api/codehw";
+import PageHeader from "@/components/PageHeader";
+import PageBody from "@/components/PageBody/index";
+export default {
+  components: {
+    PageBody,
+    PageHeader
+  },
+  data() {
+    return {
+      projectDetail: {},
+      detailLoading: false
+    };
+  },
+  async mounted() {
+    const { projectId } = this.$route.params;
+    this.detailLoading = true;
+    const detail = await getProjectDetail(projectId);
+    this.projectDetail = detail.data;
+    this.detailLoading = false;
+  }
+};
 </script>
+
+<style lang="scss" scoped>
+.top-nav-section {
+  padding: 0 40px;
+}
+</style>

+ 1 - 1
src/views/student/DlWork/index.vue

@@ -36,7 +36,7 @@ import { mapState } from "vuex";
 import Card from "@/components/Card";
 import PageHeader from "@/components/PageHeader";
 import PageBody from "@/components/PageBody/index";
-import { getDLAssignmentListByStu } from "@/api/assignment";
+import { getDLAssignmentListByStu } from "@/api/dlwork";
 export default {
   components: {
     PageBody,