|
|
@@ -1,104 +1,96 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
- <nav class="breadcrumb" aria-label="breadcrumbs">
|
|
|
- <ul>
|
|
|
- <li><router-link :to="{ name: 'HOME' }">所有课程</router-link></li>
|
|
|
- <li>
|
|
|
- <router-link :to="`/course-teacher/${course.id}/dashboard`">{{
|
|
|
- course.name
|
|
|
- }}</router-link>
|
|
|
- </li>
|
|
|
- <li class="is-active">
|
|
|
- <router-link :to="`/student-course/${course.id}/result`"
|
|
|
- >查看成绩</router-link
|
|
|
- >
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
- </nav>
|
|
|
- <!-- container面板-->
|
|
|
- <div class="data-table">
|
|
|
- <!--下拉框&搜索框-->
|
|
|
- <div class="form-group">
|
|
|
- <!--下拉框-->
|
|
|
- <b-field> <a class="button is-link">导出作业成绩</a> </b-field>
|
|
|
- <b-field>
|
|
|
- <a class="button is-link" @click="isCardModalActive = true"
|
|
|
- >成绩比例调控</a
|
|
|
- >
|
|
|
- </b-field>
|
|
|
- </div>
|
|
|
- <!--题目table-->
|
|
|
- <div class="question-list">
|
|
|
- <b-table :data="data" paginated per-page="5" detailed detail-key="id">
|
|
|
- <template slot-scope="props">
|
|
|
- <b-table-column field="id" label="ID" width="40" numeric sortable>
|
|
|
- {{ props.row.id }}
|
|
|
- </b-table-column>
|
|
|
- <b-table-column field="id" label="学生" width="60" numeric sortable>
|
|
|
- {{ props.row.student }}
|
|
|
- </b-table-column>
|
|
|
- <b-table-column label="文档作业" centered>
|
|
|
- <div
|
|
|
- class="result"
|
|
|
- v-for="item in props.row.documentHomeworkResult"
|
|
|
- :key="item.id"
|
|
|
- >
|
|
|
- {{ item.name }} : {{ item.result }}
|
|
|
- </div>
|
|
|
- </b-table-column>
|
|
|
+ <page-header :routes="[{ name: '成绩管理', path: 'result' }]">
|
|
|
+ <template slot="title">
|
|
|
+ 全部作业成绩
|
|
|
+ </template>
|
|
|
+ </page-header>
|
|
|
+ <page-body>
|
|
|
+ <!-- container面板-->
|
|
|
+ <div class="data-table">
|
|
|
+ <!--下拉框&搜索框-->
|
|
|
+ <div class="form-group">
|
|
|
+ <!--下拉框-->
|
|
|
+ <b-field> <a class="button is-link">导出作业成绩</a> </b-field>
|
|
|
+ <b-field>
|
|
|
+ <a class="button is-link" @click="isCardModalActive = true"
|
|
|
+ >成绩比例调控</a
|
|
|
+ >
|
|
|
+ </b-field>
|
|
|
+ </div>
|
|
|
+ <!--题目table-->
|
|
|
+ <div class="question-list">
|
|
|
+ <b-table :data="data" paginated per-page="5" detailed detail-key="id">
|
|
|
+ <template slot-scope="props">
|
|
|
+ <b-table-column field="id" label="ID" width="40" numeric sortable>
|
|
|
+ {{ props.row.id }}
|
|
|
+ </b-table-column>
|
|
|
+ <b-table-column label="学生姓名" width="120" centered>
|
|
|
+ {{ props.row.student }}
|
|
|
+ </b-table-column>
|
|
|
+ <b-table-column label="文档作业" centered> 80 </b-table-column>
|
|
|
|
|
|
- <b-table-column label="代码作业" centered>
|
|
|
- <div
|
|
|
- class="result"
|
|
|
- v-for="item in props.row.codeHomeworkResult"
|
|
|
- :key="item.id"
|
|
|
- >
|
|
|
- {{ item.name }} : {{ item.result }}
|
|
|
- </div>
|
|
|
- </b-table-column>
|
|
|
+ <b-table-column label="代码作业" centered> 90 </b-table-column>
|
|
|
|
|
|
- <b-table-column label="互评作业" centered>
|
|
|
- <div
|
|
|
- class="result"
|
|
|
- v-for="item in props.row.reviewHomeworkResult"
|
|
|
- :key="item.id"
|
|
|
- >
|
|
|
- {{ item.name }} : {{ item.result }}
|
|
|
- </div>
|
|
|
- </b-table-column>
|
|
|
- <b-table-column field="difficulty" label="总评" sortable centered>
|
|
|
- <span
|
|
|
- :class="[
|
|
|
- 'tag',
|
|
|
- props.row.finalResult > 60 ? 'is-success' : 'is-danger'
|
|
|
- ]"
|
|
|
+ <b-table-column label="互评作业" centered> 100 </b-table-column>
|
|
|
+ <b-table-column
|
|
|
+ field="finalResult"
|
|
|
+ label="总评"
|
|
|
+ sortable
|
|
|
+ centered
|
|
|
>
|
|
|
- {{ props.row.finalResult }}
|
|
|
- </span>
|
|
|
- </b-table-column>
|
|
|
- </template>
|
|
|
+ <span :class="['tag', type(props.row.finalResult)]">
|
|
|
+ {{ props.row.finalResult }}
|
|
|
+ </span>
|
|
|
+ </b-table-column>
|
|
|
+ </template>
|
|
|
|
|
|
- <template slot="detail">
|
|
|
- <article class="media">
|
|
|
- <!--<figure class="media-left">-->
|
|
|
- <!--<p class="image is-64x64">-->
|
|
|
- <!--<img src="/static/img/placeholder-128x128.png">-->
|
|
|
- <!--</p>-->
|
|
|
- <!--</figure>-->
|
|
|
- <div class="media-content">
|
|
|
- <div class="content">
|
|
|
- <p>
|
|
|
- <strong>成绩详情</strong>
|
|
|
- <small>这里可以放具体的作业成绩,前面可以放总评啥的</small>
|
|
|
- <br />
|
|
|
- </p>
|
|
|
+ <template slot="detail" slot-scope="props">
|
|
|
+ <article class="media">
|
|
|
+ <div class="media-content">
|
|
|
+ <div class="content">
|
|
|
+ <!--<strong>成绩详情</strong>-->
|
|
|
+ <!--<br />-->
|
|
|
+ <div class="homework-layout">
|
|
|
+ <div class="document-homework">
|
|
|
+ <div class="homework-class">文档作业</div>
|
|
|
+ <div
|
|
|
+ class="result"
|
|
|
+ v-for="item in props.row.documentHomeworkResult"
|
|
|
+ :key="item.id"
|
|
|
+ >
|
|
|
+ {{ item.name }} : {{ item.result }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="document-homework">
|
|
|
+ <div class="homework-class">代码作业</div>
|
|
|
+ <div
|
|
|
+ class="result"
|
|
|
+ v-for="item in props.row.codeHomeworkResult"
|
|
|
+ :key="item.id"
|
|
|
+ >
|
|
|
+ {{ item.name }} : {{ item.result }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="document-homework">
|
|
|
+ <div class="homework-class">互评作业</div>
|
|
|
+ <div
|
|
|
+ class="result"
|
|
|
+ v-for="item in props.row.reviewHomeworkResult"
|
|
|
+ :key="item.id"
|
|
|
+ >
|
|
|
+ {{ item.name }} : {{ item.result }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </article>
|
|
|
- </template>
|
|
|
- </b-table>
|
|
|
+ </article>
|
|
|
+ </template>
|
|
|
+ </b-table>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </page-body>
|
|
|
<!-- 成绩比例调控模态框 -->
|
|
|
<b-modal :active.sync="isCardModalActive" :width="320" scroll="keep">
|
|
|
<div class="card">
|
|
|
@@ -120,6 +112,8 @@
|
|
|
<script>
|
|
|
import { mapState } from "vuex";
|
|
|
import { getStudentCourseReviewList } from "@/api/review";
|
|
|
+import PageHeader from "@/components/PageHeader";
|
|
|
+import PageBody from "@/components/PageBody/index";
|
|
|
const data = [
|
|
|
{
|
|
|
id: 1,
|
|
|
@@ -164,6 +158,7 @@ const data = [
|
|
|
},
|
|
|
{
|
|
|
id: 2,
|
|
|
+ student: "yasen",
|
|
|
documentHomeworkResult: [
|
|
|
{
|
|
|
id: 1,
|
|
|
@@ -200,10 +195,11 @@ const data = [
|
|
|
result: 85
|
|
|
}
|
|
|
],
|
|
|
- finalResult: 99
|
|
|
+ finalResult: 79
|
|
|
},
|
|
|
{
|
|
|
id: 3,
|
|
|
+ student: "soleil",
|
|
|
documentHomeworkResult: [
|
|
|
{
|
|
|
id: 1,
|
|
|
@@ -240,10 +236,11 @@ const data = [
|
|
|
result: 85
|
|
|
}
|
|
|
],
|
|
|
- finalResult: 99
|
|
|
+ finalResult: 59
|
|
|
},
|
|
|
{
|
|
|
id: 4,
|
|
|
+ student: "xiaohan",
|
|
|
documentHomeworkResult: [
|
|
|
{
|
|
|
id: 1,
|
|
|
@@ -285,7 +282,10 @@ const data = [
|
|
|
];
|
|
|
|
|
|
export default {
|
|
|
- components: {},
|
|
|
+ components: {
|
|
|
+ PageHeader,
|
|
|
+ PageBody
|
|
|
+ },
|
|
|
computed: {
|
|
|
...mapState({
|
|
|
course: state => state.course.currentCourse
|
|
|
@@ -303,6 +303,18 @@ export default {
|
|
|
isCardModalActive: false
|
|
|
};
|
|
|
},
|
|
|
+ methods: {
|
|
|
+ type(value) {
|
|
|
+ const number = parseFloat(value);
|
|
|
+ if (number < 60) {
|
|
|
+ return "is-danger";
|
|
|
+ } else if (number >= 60 && number < 80) {
|
|
|
+ return "is-warning";
|
|
|
+ } else if (number >= 80) {
|
|
|
+ return "is-success";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
mounted() {
|
|
|
getStudentCourseReviewList(this.courses.id).then(
|
|
|
value => (this.review = value.data)
|
|
|
@@ -318,7 +330,7 @@ export default {
|
|
|
.data-table {
|
|
|
width: 100%;
|
|
|
padding: 30px;
|
|
|
- min-height: 80vh;
|
|
|
+ /*min-height: 80vh;*/
|
|
|
background-color: #ffffff;
|
|
|
}
|
|
|
.question-list {
|
|
|
@@ -350,4 +362,13 @@ export default {
|
|
|
.button {
|
|
|
background-color: #6172ec;
|
|
|
}
|
|
|
+.homework-layout {
|
|
|
+ display: flex;
|
|
|
+ .document-homework {
|
|
|
+ margin-right: 3rem;
|
|
|
+ .homework-class {
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|