成绩管理
This commit is contained in:
parent
626ba788c7
commit
5f31d444d4
5
source/vue/xzs-admin/src/api/examPaperAnwser.js
Normal file
5
source/vue/xzs-admin/src/api/examPaperAnwser.js
Normal file
@ -0,0 +1,5 @@
|
||||
import { post } from '@/utils/request'
|
||||
|
||||
export default {
|
||||
page: query => post('/api/admin/examPaperAnswer/page', query)
|
||||
}
|
1
source/vue/xzs-admin/src/icons/svg/answer.svg
Normal file
1
source/vue/xzs-admin/src/icons/svg/answer.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1569065326528" class="icon" viewBox="0 0 1152 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3178" xmlns:xlink="http://www.w3.org/1999/xlink" width="225" height="200"><defs><style type="text/css"></style></defs><path d="M1023.584 0 128.416 0C57.472 0 0 57.504 0 128.416L0 767.584C0 838.496 57.472 896 128.416 896L192 896 192 985.856C192 1007.904 210.08 1024 230.112 1024 235.552 1024 241.12 1022.816 246.528 1020.256L480.544 908.48C497.76 900.256 516.608 896 535.68 896L1023.584 896C1094.496 896 1152 838.496 1152 767.584L1152 128.416C1152 57.504 1094.496 0 1023.584 0ZM319.9936 352C319.9936 334.32689 334.221792 320 352.021504 320L799.965696 320C817.654208 320 831.9936 334.203674 831.9936 352 831.9936 369.67311 817.765408 384 799.965696 384L352.021504 384C334.332992 384 319.9936 369.796326 319.9936 352ZM319.9936 544C319.9936 526.32689 334.221792 512 352.021504 512L799.965696 512C817.654208 512 831.9936 526.203674 831.9936 544 831.9936 561.67311 817.765408 576 799.965696 576L352.021504 576C334.332992 576 319.9936 561.796326 319.9936 544Z" p-id="3179"></path></svg>
|
After Width: | Height: | Size: 1.2 KiB |
@ -187,6 +187,24 @@ const constantRoutes = [
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/answer',
|
||||
component: Layout,
|
||||
name: 'AnswerPage',
|
||||
meta: {
|
||||
title: '成绩管理',
|
||||
icon: 'answer'
|
||||
},
|
||||
alwaysShow: true,
|
||||
children: [
|
||||
{
|
||||
path: 'list',
|
||||
component: () => import('@/views/answer/list'),
|
||||
name: 'AnswerPageList',
|
||||
meta: { title: '答卷列表', noCache: true }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/message',
|
||||
component: Layout,
|
||||
|
83
source/vue/xzs-admin/src/views/answer/list.vue
Normal file
83
source/vue/xzs-admin/src/views/answer/list.vue
Normal file
@ -0,0 +1,83 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParam" ref="queryForm" :inline="true">
|
||||
<el-form-item label="学科:" >
|
||||
<el-select v-model="queryParam.subjectId" clearable>
|
||||
<el-option v-for="item in subjects" :key="item.id" :value="item.id" :label="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitForm">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-table v-loading="listLoading" :data="tableData" border fit highlight-current-row style="width: 100%">
|
||||
<el-table-column prop="id" label="Id" width="100" />
|
||||
<el-table-column prop="paperName" label="试卷名称"/>
|
||||
<el-table-column prop="userName" label="用户名称"/>
|
||||
<el-table-column label="得分" width="100px" >
|
||||
<template slot-scope="{row}">
|
||||
{{row.userScore}} / {{row.paperScore}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="题目对错" width="80px" >
|
||||
<template slot-scope="{row}">
|
||||
{{row.questionCorrect}} / {{row.questionCount}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="doTime" label="耗时" width="100px"/>
|
||||
<el-table-column prop="createTime" label="提交时间" width="160px"/>
|
||||
</el-table>
|
||||
<pagination v-show="total>0" :total="total" :page.sync="queryParam.pageIndex" :limit.sync="queryParam.pageSize"
|
||||
@pagination="search"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import { mapGetters, mapState, mapActions } from 'vuex'
|
||||
import Pagination from '@/components/Pagination'
|
||||
import examPaperAnswerApi from '@/api/examPaperAnwser'
|
||||
|
||||
export default {
|
||||
components: { Pagination },
|
||||
data () {
|
||||
return {
|
||||
queryParam: {
|
||||
subjectId: null,
|
||||
pageIndex: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
listLoading: false,
|
||||
tableData: [],
|
||||
total: 0
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.initSubject()
|
||||
this.search()
|
||||
},
|
||||
methods: {
|
||||
search () {
|
||||
this.listLoading = true
|
||||
examPaperAnswerApi.page(this.queryParam).then(data => {
|
||||
const re = data.response
|
||||
this.tableData = re.list
|
||||
this.total = re.total
|
||||
this.queryParam.pageIndex = re.pageNum
|
||||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
submitForm () {
|
||||
this.queryParam.pageIndex = 1
|
||||
this.search()
|
||||
},
|
||||
...mapActions('exam', { initSubject: 'initSubject' })
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('enumItem', ['enumFormat']),
|
||||
...mapGetters('exam', ['subjectEnumFormat']),
|
||||
...mapState('exam', { subjects: state => state.subjects })
|
||||
}
|
||||
}
|
||||
</script>
|
@ -4,7 +4,6 @@ import com.mindskip.xzs.base.BasePage;
|
||||
|
||||
public class ExamPaperAnswerPageRequestVM extends BasePage {
|
||||
private Integer subjectId;
|
||||
private Integer status;
|
||||
|
||||
public Integer getSubjectId() {
|
||||
return subjectId;
|
||||
@ -13,12 +12,4 @@ public class ExamPaperAnswerPageRequestVM extends BasePage {
|
||||
public void setSubjectId(Integer subjectId) {
|
||||
this.subjectId = subjectId;
|
||||
}
|
||||
|
||||
public Integer getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(Integer status) {
|
||||
this.status = status;
|
||||
}
|
||||
}
|
||||
|
@ -251,4 +251,16 @@
|
||||
limit 1
|
||||
</select>
|
||||
|
||||
|
||||
<select id="adminPage" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.admin.paper.ExamPaperAnswerPageRequestVM">
|
||||
SELECT
|
||||
<include refid="Base_Column_List"/>
|
||||
FROM t_exam_paper_answer
|
||||
<where>
|
||||
<if test="subjectId != null">
|
||||
and subject_id = #{subjectId}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
@ -13,4 +13,4 @@
|
||||
hm.src = 'https://hm.baidu.com/hm.js?cd8218cd51f800ed2b73e5751cb3f4f9'
|
||||
var s = document.getElementsByTagName('script')[0]
|
||||
s.parentNode.insertBefore(hm, s)
|
||||
})()</script><link href="static/css/chunk-066bbd34.c306629d.css" rel="prefetch"><link href="static/css/chunk-111f3671.d650a2aa.css" rel="prefetch"><link href="static/css/chunk-157f9069.c306629d.css" rel="prefetch"><link href="static/css/chunk-2e16d177.89936c18.css" rel="prefetch"><link href="static/css/chunk-360c43ba.c306629d.css" rel="prefetch"><link href="static/css/chunk-3f483335.7fbe318e.css" rel="prefetch"><link href="static/css/chunk-42236473.c306629d.css" rel="prefetch"><link href="static/css/chunk-5bc3d75d.c306629d.css" rel="prefetch"><link href="static/css/chunk-65f8ca6f.c306629d.css" rel="prefetch"><link href="static/css/chunk-7c62808c.c306629d.css" rel="prefetch"><link href="static/css/chunk-873a42e2.1951fa25.css" rel="prefetch"><link href="static/css/chunk-a85d3c1e.c8588555.css" rel="prefetch"><link href="static/css/chunk-a9d03770.c306629d.css" rel="prefetch"><link href="static/css/chunk-bab2e2c4.c306629d.css" rel="prefetch"><link href="static/js/chunk-066bbd34.03ed6de3.js" rel="prefetch"><link href="static/js/chunk-111f3671.7754c916.js" rel="prefetch"><link href="static/js/chunk-157f9069.1d42f391.js" rel="prefetch"><link href="static/js/chunk-16f9edc1.9837f037.js" rel="prefetch"><link href="static/js/chunk-2d0c138b.b2c3b9ee.js" rel="prefetch"><link href="static/js/chunk-2d221bd2.c5c84d2c.js" rel="prefetch"><link href="static/js/chunk-2d2300ef.54e785b8.js" rel="prefetch"><link href="static/js/chunk-2d230fe7.3bd3f709.js" rel="prefetch"><link href="static/js/chunk-2e16d177.9260cb17.js" rel="prefetch"><link href="static/js/chunk-360c43ba.4ddda9e0.js" rel="prefetch"><link href="static/js/chunk-3f483335.8e5f48c2.js" rel="prefetch"><link href="static/js/chunk-42236473.c16f55dd.js" rel="prefetch"><link href="static/js/chunk-5bc3d75d.75653935.js" rel="prefetch"><link href="static/js/chunk-65f8ca6f.994f0890.js" rel="prefetch"><link href="static/js/chunk-733c35b2.3b3a554e.js" rel="prefetch"><link href="static/js/chunk-75f11c77.8356b661.js" rel="prefetch"><link href="static/js/chunk-78234ca2.9331a306.js" rel="prefetch"><link href="static/js/chunk-793f0082.3de9a403.js" rel="prefetch"><link href="static/js/chunk-7c62808c.6c074e60.js" rel="prefetch"><link href="static/js/chunk-873a42e2.e15b262c.js" rel="prefetch"><link href="static/js/chunk-a85d3c1e.c337e6c3.js" rel="prefetch"><link href="static/js/chunk-a9d03770.1b93bda8.js" rel="prefetch"><link href="static/js/chunk-bab2e2c4.9c58688c.js" rel="prefetch"><link href="static/js/chunk-d0753fda.d9accd34.js" rel="prefetch"><link href="static/css/chunk-vendors.ee57d822.css" rel="preload" as="style"><link href="static/css/index.9dc49bd0.css" rel="preload" as="style"><link href="static/js/chunk-vendors.d6404b06.js" rel="preload" as="script"><link href="static/js/index.81fff637.js" rel="preload" as="script"><link href="static/css/chunk-vendors.ee57d822.css" rel="stylesheet"><link href="static/css/index.9dc49bd0.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but vue-demo doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.d6404b06.js"></script><script src="static/js/index.81fff637.js"></script></body></html>
|
||||
})()</script><link href="static/css/chunk-066bbd34.c306629d.css" rel="prefetch"><link href="static/css/chunk-111f3671.d650a2aa.css" rel="prefetch"><link href="static/css/chunk-157f9069.c306629d.css" rel="prefetch"><link href="static/css/chunk-19291efa.c306629d.css" rel="prefetch"><link href="static/css/chunk-2e16d177.89936c18.css" rel="prefetch"><link href="static/css/chunk-360c43ba.c306629d.css" rel="prefetch"><link href="static/css/chunk-3f483335.7fbe318e.css" rel="prefetch"><link href="static/css/chunk-42236473.c306629d.css" rel="prefetch"><link href="static/css/chunk-5bc3d75d.c306629d.css" rel="prefetch"><link href="static/css/chunk-65f8ca6f.c306629d.css" rel="prefetch"><link href="static/css/chunk-7c62808c.c306629d.css" rel="prefetch"><link href="static/css/chunk-873a42e2.1951fa25.css" rel="prefetch"><link href="static/css/chunk-a85d3c1e.c8588555.css" rel="prefetch"><link href="static/css/chunk-a9d03770.c306629d.css" rel="prefetch"><link href="static/css/chunk-bab2e2c4.c306629d.css" rel="prefetch"><link href="static/js/chunk-066bbd34.03ed6de3.js" rel="prefetch"><link href="static/js/chunk-111f3671.7754c916.js" rel="prefetch"><link href="static/js/chunk-157f9069.1d42f391.js" rel="prefetch"><link href="static/js/chunk-16f9edc1.9837f037.js" rel="prefetch"><link href="static/js/chunk-19291efa.c885cf14.js" rel="prefetch"><link href="static/js/chunk-2d0c138b.b2c3b9ee.js" rel="prefetch"><link href="static/js/chunk-2d221bd2.c5c84d2c.js" rel="prefetch"><link href="static/js/chunk-2d2300ef.54e785b8.js" rel="prefetch"><link href="static/js/chunk-2d230fe7.3bd3f709.js" rel="prefetch"><link href="static/js/chunk-2e16d177.9260cb17.js" rel="prefetch"><link href="static/js/chunk-360c43ba.4ddda9e0.js" rel="prefetch"><link href="static/js/chunk-3f483335.8e5f48c2.js" rel="prefetch"><link href="static/js/chunk-42236473.c16f55dd.js" rel="prefetch"><link href="static/js/chunk-5bc3d75d.75653935.js" rel="prefetch"><link href="static/js/chunk-65f8ca6f.994f0890.js" rel="prefetch"><link href="static/js/chunk-733c35b2.3b3a554e.js" rel="prefetch"><link href="static/js/chunk-75f11c77.8356b661.js" rel="prefetch"><link href="static/js/chunk-78234ca2.9331a306.js" rel="prefetch"><link href="static/js/chunk-793f0082.3de9a403.js" rel="prefetch"><link href="static/js/chunk-7c62808c.6c074e60.js" rel="prefetch"><link href="static/js/chunk-873a42e2.e15b262c.js" rel="prefetch"><link href="static/js/chunk-a85d3c1e.c337e6c3.js" rel="prefetch"><link href="static/js/chunk-a9d03770.1b93bda8.js" rel="prefetch"><link href="static/js/chunk-bab2e2c4.9c58688c.js" rel="prefetch"><link href="static/js/chunk-d0753fda.d9accd34.js" rel="prefetch"><link href="static/css/chunk-vendors.ee57d822.css" rel="preload" as="style"><link href="static/css/index.9dc49bd0.css" rel="preload" as="style"><link href="static/js/chunk-vendors.d6404b06.js" rel="preload" as="script"><link href="static/js/index.8bbb1f58.js" rel="preload" as="script"><link href="static/css/chunk-vendors.ee57d822.css" rel="stylesheet"><link href="static/css/index.9dc49bd0.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but vue-demo doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.d6404b06.js"></script><script src="static/js/index.8bbb1f58.js"></script></body></html>
|
@ -0,0 +1 @@
|
||||
.pagination-container[data-v-90fd946a]{background:#fff}.pagination-container.hidden[data-v-90fd946a]{display:none}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user