|
|
@@ -1,63 +1,65 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
<page-header
|
|
|
- :loading="detailLoading"
|
|
|
- :routes="[
|
|
|
- { name: '机器学习作业', path: 'dlwork' },
|
|
|
- { name: '项目列表', path: `dlwork/${$route.params.homeworkId}` },
|
|
|
- { name: '项目详情' }
|
|
|
- ]"
|
|
|
- :tab-list="[
|
|
|
- {
|
|
|
- name: '构建',
|
|
|
- path: `dlwork/${$route.params.homeworkId}/${$route.params.projectId}`
|
|
|
- },
|
|
|
- {
|
|
|
- name: '部署',
|
|
|
- path: `dlwork/${$route.params.homeworkId}/${
|
|
|
- $route.params.projectId
|
|
|
- }/deploy`
|
|
|
- }
|
|
|
- ]"
|
|
|
+ :loading="dlWorkListLoading"
|
|
|
+ :routes="[{ name: '机器学习作业', path: 'code' }]"
|
|
|
>
|
|
|
<template slot="title">
|
|
|
- {{ projectDetail.name }}
|
|
|
+ 机器学习作业
|
|
|
</template>
|
|
|
<template slot="content">
|
|
|
- <strong>git 地址 : </strong>
|
|
|
- <a :href="projectDetail.url">{{ projectDetail.url }}</a>
|
|
|
+ 您仍剩余 {{ dlWorkList.length }} 份机器学习作业待完成
|
|
|
</template>
|
|
|
</page-header>
|
|
|
<page-body>
|
|
|
- <router-view
|
|
|
- :project-detail="projectDetail"
|
|
|
- :detail-loading="detailLoading"
|
|
|
- />
|
|
|
+ <div class="columns is-multiline is-desktop">
|
|
|
+ <div v-if="dlWorkListLoading" class="column is-4-desktop">
|
|
|
+ <card loading />
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ v-else
|
|
|
+ :key="item.id"
|
|
|
+ v-for="item in dlWorkList"
|
|
|
+ class="column is-4-desktop"
|
|
|
+ >
|
|
|
+ <router-link :to="`${$route.path}/${item.id}`">
|
|
|
+ <card hoverable>{{ item.name }}</card>
|
|
|
+ </router-link>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</page-body>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { getProjectDetail } from "@/api/codehw";
|
|
|
+import { mapState } from "vuex";
|
|
|
+import Card from "@/components/Card";
|
|
|
import PageHeader from "@/components/PageHeader";
|
|
|
import PageBody from "@/components/PageBody/index";
|
|
|
+import { getDLAssignmentListByStu } from "@/api/assignment";
|
|
|
export default {
|
|
|
components: {
|
|
|
PageBody,
|
|
|
- PageHeader
|
|
|
+ PageHeader,
|
|
|
+ Card
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapState({
|
|
|
+ course: state => state.course.currentCourse
|
|
|
+ })
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
- projectDetail: {},
|
|
|
- detailLoading: false
|
|
|
+ dlWorkList: [],
|
|
|
+ dlWorkListLoading: false
|
|
|
};
|
|
|
},
|
|
|
async mounted() {
|
|
|
- const { projectId } = this.$route.params;
|
|
|
- this.detailLoading = true;
|
|
|
- const detail = await getProjectDetail(projectId);
|
|
|
- this.projectDetail = detail.data;
|
|
|
- this.detailLoading = false;
|
|
|
+ this.dlWorkListLoading = true;
|
|
|
+ const { courseId } = this.$route.params;
|
|
|
+ const list = await getDLAssignmentListByStu(courseId);
|
|
|
+ this.dlWorkList = list.data;
|
|
|
+ this.dlWorkListLoading = false;
|
|
|
}
|
|
|
};
|
|
|
</script>
|