|
|
@@ -0,0 +1,142 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <page-header
|
|
|
+ :routes="[{ name: '互评作业', path: 'review' }, { name: '文档详情' }]"
|
|
|
+ :tab-list="[
|
|
|
+ { name: '作业详情', path: `review/${$route.params.reviewId}` },
|
|
|
+ { name: '小组列表', path: `review/${$route.params.reviewId}/groups` }
|
|
|
+ ]"
|
|
|
+ >
|
|
|
+ <template slot="title">
|
|
|
+ {{ detail.name }}
|
|
|
+ </template>
|
|
|
+ <template slot="content">
|
|
|
+ <div>共有 {{ groups.length }} 组小组参与互评</div>
|
|
|
+ </template>
|
|
|
+ <template slot="action">
|
|
|
+ <div @click="() => (this.showModal = true)" class="button is-primary">
|
|
|
+ 制定评分标准
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template slot="extraContent">
|
|
|
+ <div class="tag is-light" v-if="detail.state === 'REVIEWING'">
|
|
|
+ 互评结束时间 : {{ displayUnixTime(detail.reviewDdl) }}
|
|
|
+ </div>
|
|
|
+ <div class="tag is-light" v-if="detail.state === 'ARGUING'">
|
|
|
+ 申诉结束时间 : {{ displayUnixTime(detail.argueDdl) }}
|
|
|
+ </div>
|
|
|
+ <div class="tag is-light" v-if="detail.state === 'SOLVING'">
|
|
|
+ 处理申诉结束时间 : {{ displayUnixTime(detail.endDdl) }}
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </page-header>
|
|
|
+ <page-body> <router-view :detail="detail" :groups="groups" /> </page-body>
|
|
|
+ <b-modal :active.sync="showModal" :width="400">
|
|
|
+ <div class="card">
|
|
|
+ <div class="title">每个等级通过数字</div>
|
|
|
+ <div class="content">
|
|
|
+ <b-field label="A">
|
|
|
+ <b-input type="number" v-model="grade.A"></b-input>
|
|
|
+ </b-field>
|
|
|
+ <b-field label="B">
|
|
|
+ <b-input type="number" v-model="grade.B"></b-input>
|
|
|
+ </b-field>
|
|
|
+ <b-field label="C">
|
|
|
+ <b-input type="number" v-model="grade.C"></b-input>
|
|
|
+ </b-field>
|
|
|
+ <b-field label="D">
|
|
|
+ <b-input type="number" v-model="grade.D"></b-input>
|
|
|
+ </b-field>
|
|
|
+ <b-field label="E">
|
|
|
+ <b-input type="number" v-model="grade.E"></b-input>
|
|
|
+ </b-field>
|
|
|
+ <b-field label="F">
|
|
|
+ <b-input type="number" v-model="grade.F"></b-input>
|
|
|
+ </b-field>
|
|
|
+
|
|
|
+ <a
|
|
|
+ class="button is-link"
|
|
|
+ :class="{ 'is-loading': submitLoading }"
|
|
|
+ @click="submit()"
|
|
|
+ >
|
|
|
+ 更新评分标准
|
|
|
+ </a>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </b-modal>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import PageHeader from "@/components/PageHeader";
|
|
|
+import PageBody from "@/components/PageBody/index";
|
|
|
+import {
|
|
|
+ getTeacherReviewAllGroups,
|
|
|
+ getTeacherReviewDetail,
|
|
|
+ postReviewSumLevel
|
|
|
+} from "@/api/review";
|
|
|
+import timeMixins from "@/mixins/time";
|
|
|
+export default {
|
|
|
+ components: { PageBody, PageHeader },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ detail: {},
|
|
|
+ groups: [],
|
|
|
+ showModal: false,
|
|
|
+ grade: {
|
|
|
+ A: 0,
|
|
|
+ B: 0,
|
|
|
+ C: 0,
|
|
|
+ D: 0,
|
|
|
+ E: 0,
|
|
|
+ F: 0
|
|
|
+ },
|
|
|
+ submitLoading: false
|
|
|
+ };
|
|
|
+ },
|
|
|
+ mixins: [timeMixins],
|
|
|
+ mounted() {
|
|
|
+ const { reviewId } = this.$route.params;
|
|
|
+ getTeacherReviewDetail(reviewId).then(resp => (this.detail = resp.data));
|
|
|
+ getTeacherReviewAllGroups(reviewId).then(resp => (this.groups = resp.data));
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ async submit() {
|
|
|
+ const { reviewId } = this.$route.params;
|
|
|
+ this.submitLoading = true;
|
|
|
+ try {
|
|
|
+ await postReviewSumLevel(reviewId, this.grade);
|
|
|
+ } catch (e) {
|
|
|
+ this.$toast.open({
|
|
|
+ message: e.message,
|
|
|
+ type: "is-error"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.submitLoading = false;
|
|
|
+ this.showModal = false;
|
|
|
+ this.$toast.open({
|
|
|
+ message: "制定成功",
|
|
|
+ type: "is-success"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+@import "../../../../assets/scss/app";
|
|
|
+.review-body {
|
|
|
+ display: flex;
|
|
|
+
|
|
|
+ &__left {
|
|
|
+ flex-grow: 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ &__right {
|
|
|
+ min-width: 300px;
|
|
|
+ }
|
|
|
+}
|
|
|
+.card {
|
|
|
+ padding: $default-margin-between;
|
|
|
+ border-radius: $default-radius;
|
|
|
+}
|
|
|
+</style>
|