2019-10-22 13:40:42 +08:00
|
|
|
|
<template>
|
|
|
|
|
<div style="height: 100%; padding-bottom: 20px">
|
|
|
|
|
<el-card>
|
|
|
|
|
<div slot="header" style="text-align: center;">
|
2019-10-23 13:33:09 +08:00
|
|
|
|
<b>{{ $t('global.examSystem') }}</b>
|
2019-10-22 13:40:42 +08:00
|
|
|
|
</div>
|
|
|
|
|
</el-card>
|
|
|
|
|
<el-card v-loading="loading">
|
2021-03-30 18:07:45 +08:00
|
|
|
|
<el-row style="padding: 10px;display: flex;align-items: center;justify-content: flex-end;">
|
|
|
|
|
<div style="font-size: 14px;color: #000;">试卷名称:</div>
|
|
|
|
|
<el-input v-model="inputName" size="small" style="width: 200px;margin-right: 50px;margin-left: 10px;" placeholder="请输入筛选的名称" @change="changeInput" />
|
|
|
|
|
<el-button size="small" type="primary" @click="goToFilter">查找</el-button>
|
|
|
|
|
</el-row>
|
2022-04-14 17:18:26 +08:00
|
|
|
|
<el-table ref="filterTable" :data="filterTableData" border style="width: 100%" height="calc(100vh - 190px)">
|
2021-03-29 15:01:43 +08:00
|
|
|
|
<el-table-column prop="name" label="试卷名称" />
|
2020-07-07 18:33:43 +08:00
|
|
|
|
<el-table-column v-if="isGzbShow" prop="classNames" label="所属班级">
|
2020-05-15 18:48:10 +08:00
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<el-tag v-for="(item, index) in scope.row.classNames" :key="index" type="success">{{ item }}</el-tag>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
2021-03-29 15:01:43 +08:00
|
|
|
|
<el-table-column prop="duration" label="考试时长(分钟)">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<span>{{ Number(scope.row.duration) / 60 }}</span>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="fullPoint" label="总分" />
|
|
|
|
|
<el-table-column prop="remarks" show-overflow-tooltip label="试卷说明" />
|
2019-11-01 18:08:05 +08:00
|
|
|
|
<el-table-column :label="this.$t('global.operate')">
|
2019-10-22 13:40:42 +08:00
|
|
|
|
<template slot-scope="scope">
|
2021-03-29 15:01:43 +08:00
|
|
|
|
<el-button size="mini" type="primary" @click="goExamDetail(scope.row)">
|
|
|
|
|
考试详情
|
2020-05-15 16:26:21 +08:00
|
|
|
|
</el-button>
|
2019-10-22 13:40:42 +08:00
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
</el-card>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import { getSubSystemDetail } from '@/api/trainingPlatform';
|
2020-03-30 13:07:11 +08:00
|
|
|
|
import { UrlConfig } from '@/scripts/ConstDic';
|
2020-05-15 16:26:21 +08:00
|
|
|
|
import { getSessionStorage } from '@/utils/auth';
|
2021-01-11 10:55:07 +08:00
|
|
|
|
import { lessonCreater } from '@/router/index';
|
2019-10-22 18:49:46 +08:00
|
|
|
|
import localStore from 'storejs';
|
2019-10-22 13:40:42 +08:00
|
|
|
|
|
|
|
|
|
export default {
|
2019-10-31 17:30:24 +08:00
|
|
|
|
name: 'ExamHome',
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
tableData: [],
|
2021-03-30 18:07:45 +08:00
|
|
|
|
filterTableData: [],
|
2020-05-15 16:26:21 +08:00
|
|
|
|
loading: false,
|
|
|
|
|
project: '',
|
2020-05-15 18:48:10 +08:00
|
|
|
|
isTeacher: false,
|
2021-03-30 18:07:45 +08:00
|
|
|
|
userId: '',
|
|
|
|
|
inputName: ''
|
2019-10-31 17:30:24 +08:00
|
|
|
|
};
|
|
|
|
|
},
|
2020-07-07 18:33:43 +08:00
|
|
|
|
computed: {
|
|
|
|
|
isGzbShow() {
|
|
|
|
|
return getSessionStorage('project').startsWith('gzb');
|
|
|
|
|
}
|
|
|
|
|
},
|
2019-10-31 17:30:24 +08:00
|
|
|
|
watch: {
|
|
|
|
|
'$route.params.subSystem': function(newVal) {
|
|
|
|
|
this.loadInitPage();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
this.loadInitPage();
|
2020-05-15 16:26:21 +08:00
|
|
|
|
this.project = getSessionStorage('project');
|
|
|
|
|
this.isTeacher = this.$store.state.user.roles.includes(lessonCreater);
|
2020-05-15 18:48:10 +08:00
|
|
|
|
this.userId = this.$store.state.user.id;
|
2019-10-31 17:30:24 +08:00
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
loadInitPage() {
|
|
|
|
|
if (this.$route.params.subSystem) {
|
|
|
|
|
getSubSystemDetail(this.$route.params.subSystem).then(resp =>{
|
|
|
|
|
if (resp.data) {
|
2021-03-29 15:01:43 +08:00
|
|
|
|
this.tableData = resp.data.examList;
|
2020-06-30 14:42:56 +08:00
|
|
|
|
} else {
|
|
|
|
|
this.tableData = [];
|
2019-10-31 17:30:24 +08:00
|
|
|
|
}
|
2021-03-30 18:07:45 +08:00
|
|
|
|
this.inputName = localStore.get(this.$route.path) || '';
|
|
|
|
|
this.goToFilter();
|
2020-05-12 10:13:27 +08:00
|
|
|
|
}).catch((error)=>{
|
|
|
|
|
if (error.code == 30001) {
|
2020-07-03 10:37:33 +08:00
|
|
|
|
const url = localStore.get('orignalTrainingPlatformRoute' + this.$store.state.user.id + this.project);
|
2020-05-12 10:13:27 +08:00
|
|
|
|
if (url) {
|
|
|
|
|
this.$router.push(url);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
this.$messageBox(this.$t('error.obtainCourseInformationFailed'));
|
|
|
|
|
}
|
2019-10-31 17:30:24 +08:00
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
},
|
2021-03-29 15:01:43 +08:00
|
|
|
|
goExamDetail(row) {
|
|
|
|
|
const path = `${this.$route.path.match(/(\/.*)\/examHome/)[1]}${UrlConfig.examDetail}`;
|
|
|
|
|
if (path.includes('device')) {
|
|
|
|
|
this.$router.replace({ path: `${path}/${row.id}`, query: { subSystem: this.$route.params.subSystem, mapId: row.mapId, noPreLogout: this.$route.query.noPreLogout }});
|
|
|
|
|
} else {
|
|
|
|
|
this.$router.push({ path: `${path}/${row.id}`, query: { subSystem: this.$route.params.subSystem, mapId: row.mapId, noPreLogout: this.$route.query.noPreLogout }});
|
|
|
|
|
}
|
2021-03-30 18:07:45 +08:00
|
|
|
|
},
|
|
|
|
|
changeInput(val) {
|
|
|
|
|
localStore.set(this.$route.path, val);
|
|
|
|
|
},
|
|
|
|
|
goToFilter() {
|
|
|
|
|
if (!this.inputName) {
|
|
|
|
|
this.filterTableData = [...this.tableData];
|
|
|
|
|
} else {
|
|
|
|
|
this.filterTableData = [];
|
|
|
|
|
this.tableData.forEach(item => {
|
|
|
|
|
if (item.name.includes(this.inputName)) {
|
|
|
|
|
this.filterTableData.push(item);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
2019-10-31 17:30:24 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2019-10-22 13:40:42 +08:00
|
|
|
|
};
|
|
|
|
|
</script>
|