|
|
@@ -1,6 +1,7 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
<page-header
|
|
|
+ :loading="loadingDocDetail"
|
|
|
:routes="[
|
|
|
{ name: '文档作业', path: 'document' },
|
|
|
{ name: `作业 `, path: $route.path }
|
|
|
@@ -12,53 +13,57 @@
|
|
|
<template slot="content">
|
|
|
{{ assignmentInfo.description }}
|
|
|
</template>
|
|
|
- <template slot="action" v-if="resultDisplay">
|
|
|
- <a class="button is-primary" v-if="resultDisplay"
|
|
|
- >成绩:{{ docResult.result }}</a
|
|
|
- >
|
|
|
+ <template slot="action" v-if="loadingDocResult">
|
|
|
+ <a class="button is-primary">成绩:{{ docResult.result }}</a>
|
|
|
</template>
|
|
|
</page-header>
|
|
|
<page-body>
|
|
|
- <div class="page-section">
|
|
|
- <!--第一行-->
|
|
|
- <div class="columns is-desktop">
|
|
|
- <div class="column">
|
|
|
- <h5 class="title is-5">题目名称</h5>
|
|
|
- <div class="subtitle is-6">
|
|
|
- {{ detail.problem ? detail.problem.name : "" }}
|
|
|
+ <div>
|
|
|
+ <page-section-loading :show="loadingDocDetail" />
|
|
|
+ <div v-if="!loadingDocDetail" class="page-section">
|
|
|
+ <!--第一行-->
|
|
|
+ <div class="columns is-desktop">
|
|
|
+ <div class="column">
|
|
|
+ <h5 class="title is-5">题目名称</h5>
|
|
|
+ <div class="subtitle is-6" v-if="isAvailable">
|
|
|
+ {{ detail.problem ? detail.problem.name : "" }}
|
|
|
+ </div>
|
|
|
+ <div class="subtitle is-6" v-else>题目开始进行才可查看</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="column">
|
|
|
- <h5 class="title is-5">状态:</h5>
|
|
|
- <div class="subtitle is-6">
|
|
|
- <document-state-tag :state="detail.status"></document-state-tag>
|
|
|
+ <div class="column">
|
|
|
+ <h5 class="title is-5">状态:</h5>
|
|
|
+ <div class="subtitle is-6">
|
|
|
+ <document-state-tag :state="detail.status"></document-state-tag>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <!--第二行-->
|
|
|
- <div class="columns is-desktop">
|
|
|
- <div class="column">
|
|
|
- <h5 class="title is-5">开始时间</h5>
|
|
|
- <div class="subtitle is-6">
|
|
|
- {{ displayUnixTime(detail.startAt) }}
|
|
|
+ <!--第二行-->
|
|
|
+ <div class="columns is-desktop">
|
|
|
+ <div class="column">
|
|
|
+ <h5 class="title is-5">开始时间</h5>
|
|
|
+ <div class="subtitle is-6">
|
|
|
+ {{ displayUnixTime(detail.startAt) }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="column">
|
|
|
+ <h5 class="title is-5">结束时间</h5>
|
|
|
+ <div class="subtitle is-6">
|
|
|
+ {{ displayUnixTime(detail.endAt) }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="column">
|
|
|
- <h5 class="title is-5">结束时间</h5>
|
|
|
- <div class="subtitle is-6">{{ displayUnixTime(detail.endAt) }}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="columns is-desktop">
|
|
|
- <div class="column">
|
|
|
- <h5 class="title is-5">Git地址</h5>
|
|
|
- <div class="subtitle is-6">{{ docResult.url }}</div>
|
|
|
+ <div class="columns is-desktop" v-show="isAvailable">
|
|
|
+ <div class="column">
|
|
|
+ <h5 class="title is-5">Git地址</h5>
|
|
|
+ <div class="subtitle is-6">{{ docResult.url }}</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="columns is-desktop">
|
|
|
- <div class="column">
|
|
|
- <h5 class="title is-5">题目描述</h5>
|
|
|
- <div class="subtitle is-6">
|
|
|
- {{ detail.problem ? detail.problem.description : "" }}
|
|
|
+ <div class="columns is-desktop" v-show="isAvailable">
|
|
|
+ <div class="column">
|
|
|
+ <h5 class="title is-5">题目描述</h5>
|
|
|
+ <div class="subtitle is-6">
|
|
|
+ {{ detail.problem ? detail.problem.description : "" }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -75,6 +80,7 @@ import { getDocAssignmentDetailByDocuId } from "@/api/assignment";
|
|
|
import { getDocResultById } from "@/api/assignment";
|
|
|
import DocumentStateTag from "@/components/DocumentStateTag";
|
|
|
import timeMixins from "@/mixins/time";
|
|
|
+import PageSectionLoading from "@/components/PageBody/PageSectionLoading/index";
|
|
|
|
|
|
const assignmentInfo = {
|
|
|
id: 0,
|
|
|
@@ -86,22 +92,26 @@ const assignmentInfo = {
|
|
|
|
|
|
export default {
|
|
|
components: {
|
|
|
+ PageSectionLoading,
|
|
|
PageBody,
|
|
|
PageHeader,
|
|
|
DocumentStateTag
|
|
|
},
|
|
|
mixins: [timeMixins],
|
|
|
mounted() {
|
|
|
+ this.loadingDocDetail = true;
|
|
|
this.assignmentInfo = this.$route.query.assignmentInfo;
|
|
|
getDocAssignmentDetailByDocuId(this.assignmentInfo.id).then(res => {
|
|
|
- console.log(res.data);
|
|
|
this.detail = res.data;
|
|
|
+ this.loadingDocDetail = false;
|
|
|
+ this.isAvailable =
|
|
|
+ this.detail.status === "AVAILABLE" || this.detail.status === "FINISHED";
|
|
|
});
|
|
|
getDocResultById(this.assignmentInfo.id).then(res => {
|
|
|
this.docResult = res.data;
|
|
|
- console.log("doc.result" + this.docResult.result);
|
|
|
+ // 有成绩
|
|
|
if (parseInt(this.docResult.result) !== -1) {
|
|
|
- this.resultDisplay = true;
|
|
|
+ this.loadingDocResult = true;
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
@@ -110,7 +120,9 @@ export default {
|
|
|
assignmentInfo,
|
|
|
detail: {},
|
|
|
docResult: {},
|
|
|
- resultDisplay: false
|
|
|
+ loadingDocResult: false,
|
|
|
+ loadingDocDetail: false,
|
|
|
+ isAvailable: false
|
|
|
};
|
|
|
},
|
|
|
computed: {
|