提交 25933b6c authored 作者: matian's avatar matian

feat:数据看板页面

上级 d799ca4b
......@@ -57,6 +57,7 @@
v-on="$listeners"
style="height: 100%"
ref="table"
border
>
<template v-for="item in columns">
<el-table-column v-bind="item" :key="item.prop" v-if="visible(item)">
......
......@@ -2,10 +2,12 @@ const routes = [
{
path: '/',
component: () => import('@/components/layout/index.vue'),
children: [{ path: '/teacher/data/course', component: () => import('./views/List.vue') },
children: [
{ path: '/teacher/data/course', component: () => import('./views/List.vue') },
{ path: '/classDatas', component: () => import('./components/ClassList.vue') },
{ path: '/personal', component: () => import('./components/PersonalList.vue') },
{ path: '/detail', component: () => import('./components/CourseProcessList.vue') }]
{ path: '/detail', component: () => import('./components/CourseProcessList.vue') },
]
}
]
......
<template>
<app-container>
<el-row type="flex" class="row-bg" justify="space-around">
<el-col :span="6"><ExamInfo /></el-col>
<el-col :span="6"><Submission /></el-col>
<el-col :span="6"><Score /></el-col>
</el-row>
<el-row type="flex" class="row-bg" justify="space-around" style="margin-top: 30px">
<el-col :span="10"><ScoreRanking /></el-col>
<el-col :span="10"><TitleData /></el-col>
</el-row>
<el-row type="flex" class="row-bg" justify="space-around" style="margin-top: 30px">
<el-col :span="6"><Result /></el-col>
<el-col :span="6"><ScoreRange /></el-col>
<el-col :span="6"><QuestionType /></el-col>
</el-row>
</app-container>
</template>
<script>
import ExamInfo from './components/ExamInfo.vue'
import Submission from './components/Submission.vue'
import Score from './components/Score.vue'
import ScoreRanking from './components/ScoreRanking.vue'
import TitleData from './components/TitleData.vue'
import Result from './components/Result.vue'
import ScoreRange from './components/ScoreRange.vue'
import QuestionType from './components/QuestionType.vue'
export default {
components: { ExamInfo, Submission, Score, ScoreRanking, TitleData, Result, ScoreRange, QuestionType },
data() {
return {}
}
}
</script>
<style></style>
<template>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>考试信息</span>
</div>
<el-row type="flex" class="row-bg" justify="space-around">
<el-col :span="6"
><div>总分</div>
<div>12313</div></el-col
>
<el-col :span="6"
><div>及格分数</div>
<div>31231</div></el-col
>
<el-col :span="6"
><div>考试总时长</div>
<div>12341</div></el-col
>
</el-row>
</el-card>
</template>
<script>
export default {}
</script>
<style></style>
<template>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>题型数据</span>
</div>
<el-row type="flex" class="row-bg" justify="space-around">
<el-col :span="6"
><div>总分</div>
<div>12313</div></el-col
>
<el-col :span="6"
><div>及格分数</div>
<div>31231</div></el-col
>
<el-col :span="6"
><div>考试总时长</div>
<div>12341</div></el-col
>
</el-row>
</el-card>
</template>
<script>
export default {}
</script>
<style></style>
<template>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>结果统计</span>
</div>
<el-row type="flex" class="row-bg" justify="space-around">
<el-col :span="6"
><div>总分</div>
<div>12313</div></el-col
>
<el-col :span="6"
><div>及格分数</div>
<div>31231</div></el-col
>
<el-col :span="6"
><div>考试总时长</div>
<div>12341</div></el-col
>
</el-row>
</el-card>
</template>
<script>
export default {}
</script>
<style></style>
<template>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>分数统计</span>
</div>
<el-row type="flex" class="row-bg" justify="space-around">
<el-col :span="6"
><div>平均分</div>
<div>12313</div></el-col
>
<el-col :span="6"
><div>最高分</div>
<div>31231</div></el-col
>
<el-col :span="6"
><div>最低分</div>
<div>12341</div></el-col
>
</el-row>
</el-card>
</template>
<script>
export default {}
</script>
<style></style>
<template>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>考分区间</span>
</div>
<el-row type="flex" class="row-bg" justify="space-around">
<el-col :span="6"
><div>总分</div>
<div>12313</div></el-col
>
<el-col :span="6"
><div>及格分数</div>
<div>31231</div></el-col
>
<el-col :span="6"
><div>考试总时长</div>
<div>12341</div></el-col
>
</el-row>
</el-card>
</template>
<script>
export default {}
</script>
<style></style>
<template>
<el-card>
<app-card>
<h1 class="title" style="font-size: 28px">班级排名</h1>
<el-button type="text" style="font-size: 28px; float: right; margin-top: -40px">导出</el-button>
<el-tabs v-model="tabActive" style="margin-top: 30px">
<el-tab-pane label="已结束" name="baseInfo">
<Finished />
</el-tab-pane>
<el-tab-pane label="待评价" name="contacts" lazy>
<ToEvaluate />
</el-tab-pane>
<el-tab-pane label="未作答" name="project" lazy>
<NoAnswer />
</el-tab-pane>
</el-tabs>
</app-card>
</el-card>
</template>
<script>
import Finished from '../Finished.vue'
import ToEvaluate from '../ToEvaluate.vue'
import NoAnswer from '../NoAnswer.vue'
export default {
components: { Finished, ToEvaluate, NoAnswer },
data() {
return {
tabActive: 'baseInfo'
}
}
}
</script>
<template>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>交卷统计</span>
</div>
<el-row type="flex" class="row-bg" justify="space-around">
<el-col :span="6"
><div>最早交卷</div>
<div>12313</div></el-col
>
<el-col :span="6"
><div>最迟交卷</div>
<div>31231</div></el-col
>
<el-col :span="6"
><div>平均交卷时长</div>
<div>12341</div></el-col
>
</el-row>
</el-card>
</template>
<script>
export default {}
</script>
<style></style>
<template>
<el-card>
<app-container>
<h1 class="title" style="font-size: 28px">题目数据</h1>
<el-button type="text" style="font-size: 28px; float: right; margin-top: -40px">导出</el-button>
<app-list v-bind="tableOptions" ref="list" style="margin-top: 60px">
<!-- 操作 -->
<template v-slot:table-operate="{ row }">
<el-button type="text" size="mini" @click="toExamData(row)">考试数据</el-button>
<el-button type="text" size="mini" @click="toClassData(row)">班级数据</el-button>
</template>
</app-list>
</app-container>
</el-card>
</template>
<script>
export default {
data() {
return {
conditionList: {
examList: [],
courseList: []
}
}
},
computed: {
// 列表配置
tableOptions() {
return {
remote: {},
columns: [
{ label: '考试名称', prop: 'paper_title', slots: 'table-name' },
{ label: '所属课程', prop: 'class_name', align: 'center' },
{ label: '参考人数', prop: 'cankao_num', align: 'center' },
{ label: '参考率', prop: 'rfert', align: 'center' },
{ label: '平均得分', prop: 'average_num', align: 'center' },
{ label: '最高分', prop: 'top', align: 'center' },
{ label: '最低分', prop: 'low', align: 'center' },
{ label: '题目总数', prop: 'title_num', align: 'center' },
{ label: '及格率', prop: 'title_percent', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' }
],
data: [
{
class_name: 'dsjfks'
}
]
}
}
},
methods: {
toExamData(row) {
this.$router.push({
path: '/examData',
query: {
row: row
}
})
},
// 班级数据
toClassData(row) {
this.$router.push({
path: '/class',
query: {
row: row
}
})
}
}
}
</script>
......@@ -4,7 +4,9 @@ const routes = [
component: () => import('@/components/layout/index.vue'),
children: [{ path: '/teacher/data/exam', component: () => import('./views/List.vue') },
{ path: '/class', component: () => import('./components/ClassList.vue') },
{ path: '/PersonalList', component: () => import('./components/PersonalList.vue') }
{ path: '/PersonalList', component: () => import('./components/PersonalList.vue') },
{ path: '/examData', component: () => import('./components/ExamData.vue') }
]
}
]
......
......@@ -24,8 +24,7 @@ export default {
// 列表配置
tableOptions() {
return {
remote: {
},
remote: {},
filters: [
{
type: 'select',
......@@ -72,12 +71,12 @@ export default {
},
methods: {
toExamData(row) {
// this.$router.push({
// path: '',
// query: {
// row: row
// }
// })
this.$router.push({
path: '/examData',
query: {
row: row
}
})
},
// 班级数据
toClassData(row) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论