فهرست منبع

[更新] review 提交完成

WuXinyu 7 سال پیش
والد
کامیت
68c99b20a2
3فایلهای تغییر یافته به همراه64 افزوده شده و 12 حذف شده
  1. 11 1
      src/api/review.js
  2. 3 3
      src/views/login/Register.vue
  3. 50 8
      src/views/teacher/Review/index.vue

+ 11 - 1
src/api/review.js

@@ -5,6 +5,7 @@ import { REVIEW_MODULE } from "./_prefix";
 
 /**
  * 新建互评作业
+ * @param {string} courseId 课程id
  * @param {number} documentHwId 作业id
  * @param {number} startAt 开始时间
  * @param {number} reviewDdl 互评结束时间
@@ -15,6 +16,7 @@ import { REVIEW_MODULE } from "./_prefix";
  * @throws {StatusException} 输入不合法
  */
 export const createReview = ({
+  courseId,
   documentHwId,
   startAt,
   reviewDdl,
@@ -24,7 +26,15 @@ export const createReview = ({
 }) => {
   return request(`${REVIEW_MODULE}/review`, {
     method: "POST",
-    body: { documentHwId, startAt, reviewDdl, argueDdl, endDdl, taskNumber }
+    body: {
+      courseId,
+      documentHwId,
+      startAt,
+      reviewDdl,
+      argueDdl,
+      endDdl,
+      taskNumber
+    }
   });
 };
 

+ 3 - 3
src/views/login/Register.vue

@@ -172,19 +172,19 @@ export default {
 }
 .register {
   color: #ffffff;
-  padding: 10px 0px 10px 0px;
+  padding: 10px 0 10px 0;
   display: flex;
   justify-content: center;
   font-size: 1rem;
   width: 100%;
   background: linear-gradient(to right, #82b1ed, #b073fd);
   border-radius: 4px;
-  border: 0px;
+  border: 0;
 }
 .login {
   color: #7396fd;
   margin-top: 20px;
-  padding: 10px 0px 10px 0px;
+  padding: 10px 0 10px 0;
   font-size: 1rem;
   width: 100%;
   display: flex;

+ 50 - 8
src/views/teacher/Review/index.vue

@@ -106,7 +106,7 @@
 
           <a
             class="button is-link"
-            :class="{ 'is-loading': submitLoading }"
+            :class="{ 'is-loading': submitting }"
             @click="submit()"
           >
             创建互评作业
@@ -119,7 +119,7 @@
 
 <script>
 import { mapState } from "vuex";
-import { getTeacherCourseReviewList } from "@/api/review";
+import { createReview, getTeacherCourseReviewList } from "@/api/review";
 import Card from "@/components/Card";
 import PageHeader from "@/components/PageHeader";
 import PageBody from "@/components/PageBody/index";
@@ -145,7 +145,7 @@ export default {
       courses: [],
       review: [],
       showModal: false,
-      submitLoading: false,
+      submitting: false,
       docHomework: [],
       docHomeworkLoading: false,
       errorMassage: false,
@@ -179,9 +179,12 @@ export default {
     };
   },
   mounted() {
-    getTeacherCourseReviewList(this.courses.id).then(
-      value => (this.review = value.data)
-    );
+    const { documentHwId } = this.$route.query;
+    if (documentHwId) {
+      this.documentHwId = documentHwId;
+      this.showModal = true;
+    }
+    this.getReviewList();
   },
   validations: {
     documentHwId: {
@@ -207,6 +210,8 @@ export default {
     showModal(newValue) {
       if (newValue) {
         this.getDocHomework();
+      } else {
+        this.isServerError = false;
       }
     },
     startAt(newValue) {
@@ -239,6 +244,10 @@ export default {
     }
   },
   methods: {
+    async getReviewList() {
+      const { data } = await getTeacherCourseReviewList(this.courses.id);
+      this.review = data;
+    },
     async getDocHomework() {
       this.docHomeworkLoading = true;
       const { courseId } = this.$route.params;
@@ -258,10 +267,43 @@ export default {
         this[config].maxDate = newValue;
       }
     },
-    submit() {
+    async submit() {
+      this.isServerError = false;
       this.$v.$touch();
       if (!this.$v.$invalid) {
-        console.log("hahha");
+        this.submitting = true;
+        const { courseId } = this.$route.params;
+        const {
+          documentHwId = 0,
+          startAt = 0,
+          argueDdl = 0,
+          reviewDdl = 0,
+          taskNumber = 0,
+          endDdl = 0
+        } = this;
+
+        try {
+          await createReview({
+            courseId,
+            documentHwId,
+            startAt: Number(startAt),
+            argueDdl: Number(argueDdl),
+            reviewDdl: Number(reviewDdl),
+            taskNumber,
+            endDdl: Number(endDdl)
+          });
+          this.$toast.open({
+            message: `互评作业创建成功`,
+            type: "is-success"
+          });
+          this.showModal = false;
+          this.getReviewList();
+        } catch (e) {
+          this.errorMassage = e.message;
+          this.isServerError = true;
+        } finally {
+          this.submitting = false;
+        }
       }
     }
   }