|
|
@@ -7,6 +7,11 @@
|
|
|
<template slot="content">
|
|
|
共有 {{ review.length }} 份互评作业
|
|
|
</template>
|
|
|
+ <template slot="action">
|
|
|
+ <a @click="() => (this.showModal = true)" class="button is-link">
|
|
|
+ 新建互评作业
|
|
|
+ </a>
|
|
|
+ </template>
|
|
|
</page-header>
|
|
|
<page-body>
|
|
|
<div class="columns is-multiline is-desktop">
|
|
|
@@ -20,6 +25,60 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</page-body>
|
|
|
+ <b-modal :active.sync="showModal">
|
|
|
+ <div class="card">
|
|
|
+ <div class="title">创建互评作业</div>
|
|
|
+ <b-notification type="is-danger" :active.sync="isServerError">
|
|
|
+ {{ errorMassage }}
|
|
|
+ </b-notification>
|
|
|
+ <div class="content">
|
|
|
+ //```json { "documentHwId": Number, //文档作业id, "taskNumber":
|
|
|
+ Number, //互评任务数 "startAt" : Number, //互评开始时间 "reviewDdl" :
|
|
|
+ **Number** - 互评结束时间 | `timestamp`, "argueDdl" : **Number** -
|
|
|
+ argue结束时间 | `timestamp`, "endDdl" : **Number** - 最后结束时间 |
|
|
|
+ `timestamp` } ```
|
|
|
+ <b-field label="目标文档作业">
|
|
|
+ <b-select
|
|
|
+ :loading="docHomeworkLoading"
|
|
|
+ v-model="nextReview.documentHwId"
|
|
|
+ placeholder="选择一个文档作业"
|
|
|
+ expanded
|
|
|
+ >
|
|
|
+ <option
|
|
|
+ v-for="option in docHomework"
|
|
|
+ :value="option.id"
|
|
|
+ :key="option.id"
|
|
|
+ >
|
|
|
+ {{ option.name }}
|
|
|
+ </option>
|
|
|
+ </b-select>
|
|
|
+ </b-field>
|
|
|
+ <b-field label="互评任务数">
|
|
|
+ <b-input type="number" v-model="nextReview.taskNumber"></b-input>
|
|
|
+ </b-field>
|
|
|
+ <b-field label="互评开始时间">
|
|
|
+ <b-input type="number" v-model="nextReview.startAt"></b-input>
|
|
|
+ </b-field>
|
|
|
+ <b-field label="互评结束时间">
|
|
|
+ <b-input type="number" v-model="nextReview.reviewDdl"></b-input>
|
|
|
+ </b-field>
|
|
|
+ <b-field label="申请重审结束时间">
|
|
|
+ <b-input type="number" v-model="nextReview.argueDdl"></b-input>
|
|
|
+ </b-field>
|
|
|
+ <b-field label="重审结束时间">
|
|
|
+ <b-input type="number" v-model="nextReview.endDdl"></b-input>
|
|
|
+ </b-field>
|
|
|
+
|
|
|
+ <a
|
|
|
+ class="button is-link"
|
|
|
+ :class="{ 'is-loading': submitLoading }"
|
|
|
+ @click="submit()"
|
|
|
+ >
|
|
|
+ 创建互评作业
|
|
|
+ </a>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </b-modal>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
@@ -30,6 +89,7 @@ import Card from "@/components/Card";
|
|
|
import PageHeader from "@/components/PageHeader";
|
|
|
import PageBody from "@/components/PageBody/index";
|
|
|
import ReviewStateTag from "@/components/ReviewStateTag/index";
|
|
|
+import { getDocAssignmentListByCrs } from "@/api/assignment";
|
|
|
export default {
|
|
|
components: {
|
|
|
ReviewStateTag,
|
|
|
@@ -45,18 +105,51 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
courses: [],
|
|
|
- review: []
|
|
|
+ review: [],
|
|
|
+ showModal: false,
|
|
|
+ submitLoading: false,
|
|
|
+ docHomework: [],
|
|
|
+ docHomeworkLoading: false,
|
|
|
+ errorMassage: false,
|
|
|
+ isServerError: false,
|
|
|
+ nextReview: {
|
|
|
+ documentHwId: null,
|
|
|
+ taskNumber: 0
|
|
|
+ }
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
|
getTeacherCourseReviewList(this.courses.id).then(
|
|
|
value => (this.review = value.data)
|
|
|
);
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ showModal(newValue) {
|
|
|
+ if (newValue) {
|
|
|
+ this.getDocHomework();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ async getDocHomework() {
|
|
|
+ this.docHomeworkLoading = true;
|
|
|
+ const { courseId } = this.$route.params;
|
|
|
+ const { data } = await getDocAssignmentListByCrs(courseId);
|
|
|
+ this.docHomework = data;
|
|
|
+ this.docHomeworkLoading = false;
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
+@import "../../../assets/scss/app";
|
|
|
+.card {
|
|
|
+ padding: $default-margin-between;
|
|
|
+ border-radius: $default-radius;
|
|
|
+ margin: 0 auto;
|
|
|
+ max-width: 600px;
|
|
|
+}
|
|
|
.top-nav-section {
|
|
|
padding: 0 40px;
|
|
|
}
|