|
|
@@ -9,15 +9,37 @@
|
|
|
<template slot="title">
|
|
|
{{ detail.name }}
|
|
|
</template>
|
|
|
+ <template slot="content">
|
|
|
+ <div>
|
|
|
+ 共需要处理 {{ detail.documents && detail.documents.length }} 组作业
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template slot="action">
|
|
|
+ <div><review-state-tag :state="detail.state"></review-state-tag></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>
|
|
|
- <div class="review-body">
|
|
|
- <div class="review-body__left page-section">
|
|
|
- <div v-if="detail.docContent" class="content">
|
|
|
- <vue-markdown>{{ detail.docContent }}</vue-markdown>
|
|
|
- </div>
|
|
|
+ <div class="columns is-multiline is-desktop">
|
|
|
+ <div
|
|
|
+ :key="item.docReviewId"
|
|
|
+ v-for="item in detail.documents"
|
|
|
+ class="column is-4"
|
|
|
+ >
|
|
|
+ <router-link :to="`${$route.path}/doc/${item.docReviewId}`">
|
|
|
+ <card hoverable> {{ item.group.name }} </card>
|
|
|
+ </router-link>
|
|
|
</div>
|
|
|
- <div class="review-body__right"></div>
|
|
|
</div>
|
|
|
</page-body>
|
|
|
</div>
|
|
|
@@ -25,15 +47,18 @@
|
|
|
<script>
|
|
|
import PageHeader from "@/components/PageHeader";
|
|
|
import PageBody from "@/components/PageBody/index";
|
|
|
-import VueMarkdown from "vue-markdown";
|
|
|
+import Card from "@/components/Card";
|
|
|
import { getStudentReviewDetail } from "@/api/review";
|
|
|
+import timeMixins from "@/mixins/time";
|
|
|
+import ReviewStateTag from "@/components/ReviewStateTag/index";
|
|
|
export default {
|
|
|
- components: { PageBody, PageHeader, VueMarkdown },
|
|
|
+ components: { ReviewStateTag, PageBody, PageHeader, Card },
|
|
|
data() {
|
|
|
return {
|
|
|
detail: {}
|
|
|
};
|
|
|
},
|
|
|
+ mixins: [timeMixins],
|
|
|
mounted() {
|
|
|
const { reviewId } = this.$route.params;
|
|
|
getStudentReviewDetail(reviewId).then(resp => (this.detail = resp.data));
|