Compare commits

..

No commits in common. "master" and "mindskip" have entirely different histories.

161 changed files with 28790 additions and 19633 deletions

14179
source/vue/xzs-admin/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "xzs-admin",
"version": "3.3.0",
"version": "3.2.0",
"author": "武汉思维跳跃科技有限公司",
"description": "学之思管理系统",
"license": "AGPL-3.0",
@ -16,22 +16,22 @@
},
"dependencies": {
"axios": "^0.19.0",
"core-js": "^3.9.0",
"core-js": "^3.8.3",
"element-ui": "^2.15.0",
"js-cookie": "2.2.0",
"normalize.css": "8.0.1",
"nprogress": "0.2.0",
"vue": "^2.6.10",
"vue-count-to": "^1.0.13",
"vue-router": "^3.5.1",
"vuex": "^3.6.2"
"vue-router": "^3.4.9",
"vuex": "^3.6.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^4.5.11",
"@vue/cli-plugin-eslint": "^4.5.11",
"@vue/cli-plugin-router": "^4.5.11",
"@vue/cli-plugin-vuex": "^4.5.11",
"@vue/cli-service": "^4.5.11",
"@vue/cli-plugin-babel": "^4.5.10",
"@vue/cli-plugin-eslint": "^4.5.10",
"@vue/cli-plugin-router": "^4.5.10",
"@vue/cli-plugin-vuex": "^4.5.10",
"@vue/cli-service": "^4.5.10",
"@vue/eslint-config-standard": "^4.0.0",
"babel-eslint": "^10.1.0",
"eslint": "^5.16.0",

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />

View File

@ -1,5 +0,0 @@
import { post } from '@/utils/request'
export default {
page: query => post('/api/admin/examPaperAnswer/page', query)
}

View File

@ -1 +0,0 @@
<?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>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -187,24 +187,6 @@ 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,

View File

@ -4,7 +4,7 @@
**/
/* theme color */
$--color-primary: #1890ff;
$--color-primary: #13C2C2;
$--color-success: #13ce66;
$--color-warning: #FFBA00;
$--color-danger: #ff4949;

View File

@ -1,96 +0,0 @@
<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-column label="操作" width="160px">
<template slot-scope="scope" >
<el-button v-show="scope.row.status == 1" type="primary" round @click="toedit(scope.row.id,1)">批改</el-button>
<el-button v-show="scope.row.status == 2" type="primary" round @click="toedit(scope.row.id,0)">查看试卷</el-button>
</template>
</el-table-column>
</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()
},
toedit(id,type){
if(type == 1){
window.open("/student/index.html#/edit?id=" + id)
}else{
window.open("/student/index.html#/read?id=" + id)
}
},
...mapActions('exam', { initSubject: 'initSubject' })
},
computed: {
...mapGetters('enumItem', ['enumFormat']),
...mapGetters('exam', ['subjectEnumFormat']),
...mapState('exam', { subjects: state => state.subjects })
}
}
</script>

View File

@ -65,7 +65,6 @@ export default {
})
},
resetForm () {
let lastId = this.form.id
this.$refs['form'].resetFields()
this.form = {
id: null,
@ -73,7 +72,6 @@ export default {
level: 1,
levelName: ''
}
this.form.id = lastId
},
...mapActions('tagsView', { delCurrentView: 'delCurrentView' })
},

View File

@ -238,7 +238,6 @@ export default {
return this.subjectEnumFormat(cellValue)
},
resetForm () {
let lastId = this.form.id
this.$refs['form'].resetFields()
this.form = {
id: null,
@ -250,7 +249,6 @@ export default {
suggestTime: null,
titleItems: []
}
this.form.id = lastId
},
...mapActions('exam', { initSubject: 'initSubject' }),
...mapActions('tagsView', { delCurrentView: 'delCurrentView' })

View File

@ -157,13 +157,8 @@ export default {
},
questionItemAdd () {
let items = this.form.items
let newLastPrefix
if (items.length > 0) {
let last = items[items.length - 1]
newLastPrefix = String.fromCharCode(last.prefix.charCodeAt() + 1)
} else {
newLastPrefix = 'A'
}
let last = items[items.length - 1]
let newLastPrefix = String.fromCharCode(last.prefix.charCodeAt() + 1)
items.push({ id: null, prefix: newLastPrefix, content: '' })
},
submitForm () {

View File

@ -172,7 +172,6 @@ export default {
})
},
resetForm () {
let lastId = this.form.id
this.$refs['form'].resetFields()
this.form = {
id: null,
@ -189,7 +188,6 @@ export default {
score: '',
difficult: 0
}
this.form.id = lastId
},
levelChange () {
this.form.subjectId = null

View File

@ -89,14 +89,12 @@ export default {
})
},
resetForm () {
let lastId = this.form.id
this.$refs['form'].resetFields()
this.form = {
title: '',
content: '',
receiveUserIds: []
}
this.form.id = lastId
},
...mapActions('tagsView', { delCurrentView: 'delCurrentView' })
}

View File

@ -0,0 +1,134 @@
<template>
<div class="app-container">
<el-form :model="form" ref="form" label-width="100px" v-loading="formLoading" :rules="rules">
<el-form-item label="用户名:" prop="userName" required>
<el-input v-model="form.userName"></el-input>
</el-form-item>
<el-form-item label="密码:" required>
<el-input v-model="form.password"></el-input>
</el-form-item>
<el-form-item label="真实姓名:" prop="realName" required>
<el-input v-model="form.realName"></el-input>
</el-form-item>
<el-form-item label="年龄:">
<el-input v-model="form.age"></el-input>
</el-form-item>
<el-form-item label="性别:">
<el-select v-model="form.sex" placeholder="性别" clearable>
<el-option v-for="item in sexEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="出生日期:">
<el-date-picker v-model="form.birthDay" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" />
</el-form-item>
<el-form-item label="手机:">
<el-input v-model="form.phone"></el-input>
</el-form-item>
<el-form-item label="状态:" required>
<el-select v-model="form.status" placeholder="状态">
<el-option v-for="item in statusEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="resetForm">重置</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
import { mapGetters, mapState, mapActions } from 'vuex'
import userApi from '@/api/user'
export default {
data () {
return {
form: {
id: null,
userName: '',
password: '',
realName: '',
role: 2,
status: 1,
age: '',
sex: '',
birthDay: null,
phone: null
},
formLoading: false,
rules: {
userName: [
{ required: true, message: '请输入用户名', trigger: 'blur' }
],
realName: [
{ required: true, message: '请输入真实姓名', trigger: 'blur' }
]
}
}
},
created () {
let id = this.$route.query.id
let _this = this
if (id && parseInt(id) !== 0) {
_this.formLoading = true
userApi.selectUser(id).then(re => {
_this.form = re.response
_this.formLoading = false
})
}
},
methods: {
submitForm () {
let _this = this
this.$refs.form.validate((valid) => {
if (valid) {
this.formLoading = true
userApi.createUser(this.form).then(data => {
if (data.code === 1) {
_this.$message.success(data.message)
_this.delCurrentView(_this).then(() => {
_this.$router.push('/user/teacher/list')
})
} else {
_this.$message.error(data.message)
_this.formLoading = false
}
}).catch(e => {
_this.formLoading = false
})
} else {
return false
}
})
},
resetForm () {
this.$refs['form'].resetFields()
this.form = {
id: null,
userName: '',
password: '',
realName: '',
role: 2,
status: 1,
age: '',
sex: '',
birthDay: null,
phone: null
}
},
...mapActions('tagsView', { delCurrentView: 'delCurrentView' })
},
computed: {
...mapGetters('enumItem', [
'enumFormat'
]),
...mapState('enumItem', {
sexEnum: state => state.user.sexEnum,
roleEnum: state => state.user.roleEnum,
statusEnum: state => state.user.statusEnum
})
}
}
</script>

View File

@ -0,0 +1,131 @@
<template>
<div class="app-container">
<el-form :model="queryParam" ref="queryForm" :inline="true">
<el-form-item label="用户名:">
<el-input v-model="queryParam.userName"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">查询</el-button>
<router-link :to="{path:'/user/teacher/edit'}" class="link-left">
<el-button type="primary">添加</el-button>
</router-link>
</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" />
<el-table-column prop="userName" label="用户名"/>
<el-table-column prop="realName" label="真实姓名" />
<el-table-column prop="sex" label="性别" width="60px;" :formatter="sexFormatter"/>
<el-table-column prop="phone" label="手机号"/>
<el-table-column prop="createTime" label="创建时间" width="160px"/>
<el-table-column label="状态" prop="status" width="70px">
<template slot-scope="{row}">
<el-tag :type="statusTagFormatter(row.status)">
{{ statusFormatter(row.status) }}
</el-tag>
</template>
</el-table-column>
<el-table-column width="220px" label="操作" align="center">
<template slot-scope="{row}">
<el-button size="mini" @click="changeStatus(row)" class="link-left">
{{ statusBtnFormatter(row.status) }}
</el-button>
<router-link :to="{path:'/user/teacher/edit', query:{id:row.id}}" class="link-left">
<el-button size="mini" >编辑</el-button>
</router-link>
<el-button size="mini" type="danger" @click="deleteUser(row)" class="link-left">删除</el-button>
</template>
</el-table-column>
</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 } from 'vuex'
import Pagination from '@/components/Pagination'
import userApi from '@/api/user'
export default {
components: { Pagination },
data () {
return {
queryParam: {
userName: '',
role: 2,
pageIndex: 1,
pageSize: 10
},
listLoading: true,
tableData: [],
total: 0
}
},
created () {
this.search()
},
methods: {
search () {
this.listLoading = true
userApi.getUserPageList(this.queryParam).then(data => {
const re = data.response
this.tableData = re.list
this.total = re.total
this.queryParam.pageIndex = re.pageNum
this.listLoading = false
})
},
changeStatus (row) {
let _this = this
userApi.changeStatus(row.id).then(re => {
if (re.code === 1) {
row.status = re.response
_this.$message.success(re.message)
} else {
_this.$message.error(re.message)
}
})
},
deleteUser (row) {
let _this = this
userApi.deleteUser(row.id).then(re => {
if (re.code === 1) {
_this.search()
_this.$message.success(re.message)
} else {
_this.$message.error(re.message)
}
})
},
submitForm () {
this.queryParam.pageIndex = 1
this.search()
},
sexFormatter (row, column, cellValue, index) {
return this.enumFormat(this.sexEnum, cellValue)
},
statusFormatter (status) {
return this.enumFormat(this.statusEnum, status)
},
statusTagFormatter (status) {
return this.enumFormat(this.statusTag, status)
},
statusBtnFormatter (status) {
return this.enumFormat(this.statusBtn, status)
}
},
computed: {
...mapGetters('enumItem', [
'enumFormat'
]),
...mapState('enumItem', {
sexEnum: state => state.user.sexEnum,
statusEnum: state => state.user.statusEnum,
statusTag: state => state.user.statusTag,
statusBtn: state => state.user.statusBtn
})
}
}
</script>

View File

@ -19,7 +19,7 @@ module.exports = {
hotOnly: false,
proxy: {
'/api': {
target: 'http://129.211.1.159:8080',
target: 'http://localhost:8000',
changeOrigin: true
}
}

File diff suppressed because it is too large Load Diff

14174
source/vue/xzs-student/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "xzs-student",
"version": "3.3.0",
"version": "3.2.0",
"author": "武汉思维跳跃科技有限公司",
"description": "学之思考试系统",
"license": "AGPL-3.0",
@ -22,20 +22,20 @@
"normalize.css": "8.0.1",
"nprogress": "0.2.0",
"vue": "^2.6.10",
"vue-router": "^3.5.1",
"vuex": "^3.6.2"
"vue-router": "^3.4.9",
"vuex": "^3.6.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^4.5.11",
"@vue/cli-plugin-eslint": "^4.5.11",
"@vue/cli-plugin-router": "^4.5.11",
"@vue/cli-plugin-vuex": "^4.5.11",
"@vue/cli-service": "^4.5.11",
"@vue/cli-plugin-babel": "^4.5.10",
"@vue/cli-plugin-eslint": "^4.5.10",
"@vue/cli-plugin-router": "^4.5.10",
"@vue/cli-plugin-vuex": "^4.5.10",
"@vue/cli-service": "^4.5.10",
"@vue/eslint-config-standard": "^4.0.0",
"babel-eslint": "^10.0.3",
"eslint": "^5.16.0",
"eslint-plugin-vue": "^5.0.0",
"node-sass": "^4.0.0",
"node-sass": "^4.14.1",
"sass-loader": "^8.0.0",
"svg-sprite-loader": "4.1.6",
"vue-template-compiler": "^2.6.10"

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />

View File

@ -35,10 +35,10 @@
<div class="container">
<div class="footer-main">
<h4>产品介绍</h4>
<a href="https://www.mindskip.net/sdd.html" target="_blank" class="footer-main-link">思多多智能考试平台</a>
<a href="https://www.mindskip.net/wdd.html" target="_blank" class="footer-main-link">维多多培训考试系统</a>
<a href="https://www.mindskip.net/xdd.html" target="_blank" class="footer-main-link">学多多考试系统</a>
<a href="https://www.mindskip.net/xzs.html" target="_blank" class="footer-main-link">学之思考试系统</a>
<a href="http://www.mindskip.net/sdd.html" target="_blank" class="footer-main-link">思多多智能考试平台</a>
<a href="http://www.mindskip.net/wdd.html" target="_blank" class="footer-main-link">维多多培训考试系统</a>
<a href="http://www.mindskip.net/xdd.html" target="_blank" class="footer-main-link">学多多考试系统</a>
<a href="http://www.mindskip.net/xzs.html" target="_blank" class="footer-main-link">学之思考试系统</a>
</div>
<div class="footer-main">
<h4>学多多小程序</h4>

View File

@ -1,5 +1,6 @@
import axios from 'axios'
import vue from 'vue'
const request = function (loadtip, query) {
let loading
if (loadtip) {

View File

@ -50,8 +50,8 @@
</el-row>
<el-row class="app-item-contain">
<h3 class="index-title-h3">固定试卷</h3>
<div style="padding-left: 15px;display: flex;flex-wrap: wrap;">
<el-col style="float: unset;" :span="4" v-for="(item, index) in fixedPaper" :key="index" :offset="index > 0 ? 1 : 0">
<div style="padding-left: 15px">
<el-col :span="4" v-for="(item, index) in fixedPaper" :key="index" :offset="index > 0 ? 1 : 0">
<el-card :body-style="{ padding: '0px' }" v-loading="loading">
<img src="@/assets/exam-paper/show1.png" class="image">
<div style="padding: 14px;">

View File

@ -67,13 +67,10 @@
<span v-html="question.analyze" class="q-item-span-content" />
</div>
<div class="question-answer-show-item">
<span :class="{'question-show-item': qType!=4}">正确答案</span>
<span class="question-show-item">正确答案</span>
<span v-if="qType==1||qType==2 ||qType==5" v-html="question.correct" class="q-item-span-content"/>
<span v-if="qType==3" v-html="trueFalseFormatter(question)" class="q-item-span-content"/>
<!-- <span v-if="qType==4" v-for="(item,key) in question.correctArray" :key="key" v-html="item"></span> -->
<ol v-if="qType==4">
<li v-for="(item,key) in question.correctArray" :key="key" v-html="item"></li>
</ol>
<span v-if="qType==4">{{question.correctArray}}</span>
</div>
</div>
<div v-else>

View File

@ -95,7 +95,7 @@ export default {
_this.$alert('试卷得分:' + re.response + '分', '考试结果', {
confirmButtonText: '返回考试记录',
callback: action => {
window.close()
_this.$router.push('/record/index')
}
})
} else {

View File

@ -16,11 +16,10 @@
<el-table-column prop="createTime" label="做题时间" width="170" />
<el-table-column align="right" width="70">
<template slot-scope="{row}">
<!-- <router-link target="_blank" :to="{path:'/edit',query:{id:row.id}}" v-if="row.status === 1 ">
<router-link target="_blank" :to="{path:'/edit',query:{id:row.id}}" v-if="row.status === 1 ">
<el-button type="text" size="small">批改</el-button>
</router-link> -->
<!-- v-if="row.status === 2 -->
<router-link target="_blank" :to="{path:'/read',query:{id:row.id}}">
</router-link>
<router-link target="_blank" :to="{path:'/read',query:{id:row.id}}" v-if="row.status === 2 ">
<el-button type="text" size="small">查看试卷</el-button>
</router-link>
</template>

View File

@ -19,7 +19,7 @@ module.exports = {
hotOnly: false,
proxy: {
'/api': {
target: 'http://129.211.1.159:8080',
target: 'http://localhost:8000',
changeOrigin: true
}
}

File diff suppressed because it is too large Load Diff

View File

@ -68,8 +68,6 @@ public class SecurityConfigurer {
.authorizeRequests()
.antMatchers(securityIgnoreUrls.toArray(ignores)).permitAll()
.antMatchers("/api/admin/**").hasRole(RoleEnum.ADMIN.getName())
.antMatchers("/api/student/exampaper/answer/read/*").hasAnyRole(RoleEnum.ADMIN.getName(),RoleEnum.STUDENT.getName())
.antMatchers("/api/student/exampaper/answer/edit").hasAnyRole(RoleEnum.ADMIN.getName())
.antMatchers("/api/student/**").hasRole(RoleEnum.STUDENT.getName())
.anyRequest().permitAll()
.and().exceptionHandling().accessDeniedHandler(restAccessDeniedHandler)

View File

@ -1,54 +0,0 @@
package com.mindskip.xzs.controller.admin;
import com.mindskip.xzs.base.BaseApiController;
import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.ExamPaperAnswer;
import com.mindskip.xzs.domain.Subject;
import com.mindskip.xzs.domain.User;
import com.mindskip.xzs.service.*;
import com.mindskip.xzs.utility.DateTimeUtil;
import com.mindskip.xzs.utility.ExamUtil;
import com.mindskip.xzs.utility.PageInfoHelper;
import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageResponseVM;
import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperAnswerPageRequestVM;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController("AdminExamPaperAnswerController")
@RequestMapping(value = "/api/admin/examPaperAnswer")
public class ExamPaperAnswerController extends BaseApiController {
private final ExamPaperAnswerService examPaperAnswerService;
private final SubjectService subjectService;
private final UserService userService;
@Autowired
public ExamPaperAnswerController(ExamPaperAnswerService examPaperAnswerService, SubjectService subjectService, UserService userService) {
this.examPaperAnswerService = examPaperAnswerService;
this.subjectService = subjectService;
this.userService = userService;
}
@RequestMapping(value = "/page", method = RequestMethod.POST)
public RestResponse<PageInfo<ExamPaperAnswerPageResponseVM>> pageJudgeList(@RequestBody ExamPaperAnswerPageRequestVM model) {
PageInfo<ExamPaperAnswer> pageInfo = examPaperAnswerService.adminPage(model);
PageInfo<ExamPaperAnswerPageResponseVM> page = PageInfoHelper.copyMap(pageInfo, e -> {
ExamPaperAnswerPageResponseVM vm = modelMapper.map(e, ExamPaperAnswerPageResponseVM.class);
Subject subject = subjectService.selectById(vm.getSubjectId());
vm.setDoTime(ExamUtil.secondToVM(e.getDoTime()));
vm.setSystemScore(ExamUtil.scoreToVM(e.getSystemScore()));
vm.setUserScore(ExamUtil.scoreToVM(e.getUserScore()));
vm.setPaperScore(ExamUtil.scoreToVM(e.getPaperScore()));
vm.setSubjectName(subject.getName());
vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime()));
User user = userService.selectById(e.getCreateUser());
vm.setUserName(user.getRealName());
return vm;
});
return RestResponse.ok(page);
}
}

View File

@ -7,6 +7,7 @@ import java.util.Map;
public enum RoleEnum {
STUDENT(1, "STUDENT"),
TEACHER(2, "TEACHER"),
ADMIN(3, "ADMIN");
int code;

View File

@ -31,5 +31,4 @@ public interface ExamPaperAnswerMapper extends BaseMapper<ExamPaperAnswer> {
ExamPaperAnswer getByPidUid(@Param("pid") Integer paperId, @Param("uid") Integer uid);
List<ExamPaperAnswer> adminPage(com.mindskip.xzs.viewmodel.admin.paper.ExamPaperAnswerPageRequestVM requestVM);
}

View File

@ -48,6 +48,4 @@ public interface ExamPaperAnswerService extends BaseService<ExamPaperAnswer> {
Integer selectAllCount();
List<Integer> selectMothCount();
PageInfo<ExamPaperAnswer> adminPage(com.mindskip.xzs.viewmodel.admin.paper.ExamPaperAnswerPageRequestVM requestVM);
}

View File

@ -268,11 +268,4 @@ public class ExamPaperAnswerServiceImpl extends BaseServiceImpl<ExamPaperAnswer>
}
return examPaperAnswer;
}
@Override
public PageInfo<ExamPaperAnswer> adminPage(com.mindskip.xzs.viewmodel.admin.paper.ExamPaperAnswerPageRequestVM requestVM) {
return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() ->
examPaperAnswerMapper.adminPage(requestVM));
}
}

View File

@ -1,94 +0,0 @@
package com.mindskip.xzs.viewmodel.admin.paper;
public class ExamAnswerResponseVM {
private Integer id;
private String name;
private Integer questionCount;
private Integer score;
private String createTime;
private Integer createUser;
private Integer subjectId;
private Integer paperType;
private Integer frameTextContentId;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getQuestionCount() {
return questionCount;
}
public void setQuestionCount(Integer questionCount) {
this.questionCount = questionCount;
}
public Integer getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public Integer getCreateUser() {
return createUser;
}
public void setCreateUser(Integer createUser) {
this.createUser = createUser;
}
public Integer getSubjectId() {
return subjectId;
}
public void setSubjectId(Integer subjectId) {
this.subjectId = subjectId;
}
public Integer getPaperType() {
return paperType;
}
public void setPaperType(Integer paperType) {
this.paperType = paperType;
}
public Integer getFrameTextContentId() {
return frameTextContentId;
}
public void setFrameTextContentId(Integer frameTextContentId) {
this.frameTextContentId = frameTextContentId;
}
}

View File

@ -1,15 +0,0 @@
package com.mindskip.xzs.viewmodel.admin.paper;
import com.mindskip.xzs.base.BasePage;
public class ExamPaperAnswerPageRequestVM extends BasePage {
private Integer subjectId;
public Integer getSubjectId() {
return subjectId;
}
public void setSubjectId(Integer subjectId) {
this.subjectId = subjectId;
}
}

View File

@ -28,8 +28,6 @@ public class ExamPaperAnswerPageResponseVM {
private String paperName;
private String userName;
public Integer getId() {
return id;
}
@ -133,13 +131,4 @@ public class ExamPaperAnswerPageResponseVM {
public void setPaperName(String paperName) {
this.paperName = paperName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}

View File

@ -3,9 +3,9 @@ logging:
spring:
redis:
host: 127.0.0.1
host: 192.168.0.96
datasource:
url: jdbc:mysql://127.0.0.1:3306/tiku?useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&allowMultiQueries=true
url: jdbc:mysql://192.168.0.96:3306/xzs?useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&allowMultiQueries=true
username: root
password: Ggy101600!
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver

View File

@ -1,5 +1,5 @@
server:
port: 8080
port: 8000
undertow:
io-threads: 16
worker-threads: 4000
@ -56,7 +56,6 @@ pagehelper:
spring:
session:
store-type: redis
timeout: 86400
datasource:
hikari:
idle-timeout: 600000 #10 min

View File

@ -251,16 +251,4 @@
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>

View File

@ -293,7 +293,7 @@
and #{dateTime} between limit_start_time and limit_end_time
</if>
</where>
ORDER BY id desc
ORDER BY id desc limit 5
</select>

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Expires" content="0"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>学之思管理系统</title><style>html {
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Expires" content="0"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>学之思管理系统</title><style>html {
height: 100%;
width: 100%;
}
@ -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.0fe86cb0.css" rel="prefetch"><link href="static/css/chunk-099b9c43.1951fa25.css" rel="prefetch"><link href="static/css/chunk-157f9069.0fe86cb0.css" rel="prefetch"><link href="static/css/chunk-19291efa.0fe86cb0.css" rel="prefetch"><link href="static/css/chunk-2e16d177.89936c18.css" rel="prefetch"><link href="static/css/chunk-360c43ba.0fe86cb0.css" rel="prefetch"><link href="static/css/chunk-3f483335.7fbe318e.css" rel="prefetch"><link href="static/css/chunk-42236473.0fe86cb0.css" rel="prefetch"><link href="static/css/chunk-5bc3d75d.0fe86cb0.css" rel="prefetch"><link href="static/css/chunk-65f8ca6f.0fe86cb0.css" rel="prefetch"><link href="static/css/chunk-7741c2bf.d650a2aa.css" rel="prefetch"><link href="static/css/chunk-7c62808c.0fe86cb0.css" rel="prefetch"><link href="static/css/chunk-a85d3c1e.8287280f.css" rel="prefetch"><link href="static/css/chunk-a9d03770.0fe86cb0.css" rel="prefetch"><link href="static/css/chunk-bab2e2c4.0fe86cb0.css" rel="prefetch"><link href="static/js/chunk-066bbd34.f0457694.js" rel="prefetch"><link href="static/js/chunk-099b9c43.9298ae82.js" rel="prefetch"><link href="static/js/chunk-157f9069.f003ea6f.js" rel="prefetch"><link href="static/js/chunk-16f9edc1.7b8dad0f.js" rel="prefetch"><link href="static/js/chunk-19291efa.66883764.js" rel="prefetch"><link href="static/js/chunk-2d0c138b.3ad920de.js" rel="prefetch"><link href="static/js/chunk-2d221bd2.1c6437e5.js" rel="prefetch"><link href="static/js/chunk-2d2300ef.60f02a7d.js" rel="prefetch"><link href="static/js/chunk-2d230fe7.a21e19a8.js" rel="prefetch"><link href="static/js/chunk-2e16d177.bcbb7ceb.js" rel="prefetch"><link href="static/js/chunk-360c43ba.3c1f02fa.js" rel="prefetch"><link href="static/js/chunk-3f483335.409fa3a4.js" rel="prefetch"><link href="static/js/chunk-42236473.219a1360.js" rel="prefetch"><link href="static/js/chunk-5bc3d75d.5640a809.js" rel="prefetch"><link href="static/js/chunk-5d5cbe73.e9da2c17.js" rel="prefetch"><link href="static/js/chunk-65f8ca6f.807955c2.js" rel="prefetch"><link href="static/js/chunk-733c35b2.ce9fdb48.js" rel="prefetch"><link href="static/js/chunk-75f11c77.b4b89710.js" rel="prefetch"><link href="static/js/chunk-7741c2bf.f02cdd08.js" rel="prefetch"><link href="static/js/chunk-78234ca2.41f829a6.js" rel="prefetch"><link href="static/js/chunk-7c62808c.0a927631.js" rel="prefetch"><link href="static/js/chunk-a85d3c1e.781ccce8.js" rel="prefetch"><link href="static/js/chunk-a9d03770.15a91226.js" rel="prefetch"><link href="static/js/chunk-bab2e2c4.734397cc.js" rel="prefetch"><link href="static/js/chunk-d0753fda.cad95821.js" rel="prefetch"><link href="static/css/chunk-vendors.ee57d822.css" rel="preload" as="style"><link href="static/css/index.d8d9b9e2.css" rel="preload" as="style"><link href="static/js/chunk-vendors.d739977f.js" rel="preload" as="script"><link href="static/js/index.c8ae58d0.js" rel="preload" as="script"><link href="static/css/chunk-vendors.ee57d822.css" rel="stylesheet"><link href="static/css/index.d8d9b9e2.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.d739977f.js"></script><script src="static/js/index.c8ae58d0.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-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.f9301dcb.js" rel="prefetch"><link href="static/js/chunk-111f3671.41853efa.js" rel="prefetch"><link href="static/js/chunk-157f9069.61830605.js" rel="prefetch"><link href="static/js/chunk-16f9edc1.b42f52ec.js" rel="prefetch"><link href="static/js/chunk-2d0c138b.e534c09c.js" rel="prefetch"><link href="static/js/chunk-2d221bd2.d8d1ddda.js" rel="prefetch"><link href="static/js/chunk-2d2300ef.27eafde6.js" rel="prefetch"><link href="static/js/chunk-2d230fe7.3bd3f709.js" rel="prefetch"><link href="static/js/chunk-2e16d177.398fc5e3.js" rel="prefetch"><link href="static/js/chunk-360c43ba.cb2ba17c.js" rel="prefetch"><link href="static/js/chunk-3f483335.b2ec95cf.js" rel="prefetch"><link href="static/js/chunk-42236473.bda227e3.js" rel="prefetch"><link href="static/js/chunk-5bc3d75d.64a356fe.js" rel="prefetch"><link href="static/js/chunk-65f8ca6f.d33ccb37.js" rel="prefetch"><link href="static/js/chunk-733c35b2.3e37887f.js" rel="prefetch"><link href="static/js/chunk-75f11c77.a710dac8.js" rel="prefetch"><link href="static/js/chunk-78234ca2.ff8653ac.js" rel="prefetch"><link href="static/js/chunk-793f0082.5bd94100.js" rel="prefetch"><link href="static/js/chunk-7c62808c.2c467b04.js" rel="prefetch"><link href="static/js/chunk-873a42e2.287d3a91.js" rel="prefetch"><link href="static/js/chunk-a85d3c1e.27bb4877.js" rel="prefetch"><link href="static/js/chunk-a9d03770.ceb8e802.js" rel="prefetch"><link href="static/js/chunk-bab2e2c4.f9895f9e.js" rel="prefetch"><link href="static/js/chunk-d0753fda.c183e2b4.js" rel="prefetch"><link href="static/css/chunk-vendors.ee57d822.css" rel="preload" as="style"><link href="static/css/index.187e8cba.css" rel="preload" as="style"><link href="static/js/chunk-vendors.09bde710.js" rel="preload" as="script"><link href="static/js/index.32ce4631.js" rel="preload" as="script"><link href="static/css/chunk-vendors.ee57d822.css" rel="stylesheet"><link href="static/css/index.187e8cba.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.09bde710.js"></script><script src="static/js/index.32ce4631.js"></script></body></html>

View File

@ -1 +0,0 @@
.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

View File

@ -1 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-16f9edc1"],{"93fd":function(e,t,r){"use strict";r.r(t);var o=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"app-container"},[r("el-form",{directives:[{name:"loading",rawName:"v-loading",value:e.formLoading,expression:"formLoading"}],ref:"form",attrs:{model:e.form,"label-width":"100px",rules:e.rules}},[r("el-form-item",{attrs:{label:"标题:",prop:"title",required:""}},[r("el-input",{model:{value:e.form.title,callback:function(t){e.$set(e.form,"title",t)},expression:"form.title"}})],1),r("el-form-item",{attrs:{label:"内容:",prop:"content",required:""}},[r("el-input",{attrs:{type:"textarea",rows:"13"},model:{value:e.form.content,callback:function(t){e.$set(e.form,"content",t)},expression:"form.content"}})],1),r("el-form-item",{attrs:{label:"接收人:",required:""}},[r("el-select",{attrs:{multiple:"",filterable:"",remote:"","reserve-keyword":"",placeholder:"请输入用户名","remote-method":e.getUserByUserName,loading:e.selectLoading},model:{value:e.form.receiveUserIds,callback:function(t){e.$set(e.form,"receiveUserIds",t)},expression:"form.receiveUserIds"}},e._l(e.options,(function(e){return r("el-option",{key:e.value,attrs:{label:e.name,value:e.value}})})),1)],1),r("el-form-item",[r("el-button",{attrs:{type:"primary"},on:{click:e.submitForm}},[e._v("发送")]),r("el-button",{on:{click:e.resetForm}},[e._v("重置")])],1)],1)],1)},s=[],n=r("5530"),i=r("2f62"),a=r("c24f"),l=r("c443"),c={data:function(){return{form:{title:"",content:"",receiveUserIds:[]},formLoading:!1,selectLoading:!1,options:[],rules:{title:[{required:!0,message:"请输入消息标题",trigger:"blur"}],realName:[{required:!0,message:"请输入消息内容",trigger:"blur"}]}}},created:function(){},methods:Object(n["a"])({getUserByUserName:function(e){var t=this;""!==e?(t.selectLoading=!0,a["a"].selectByUserName(e).then((function(e){t.selectLoading=!1,t.options=e.response}))):t.options=[]},submitForm:function(){var e=this,t=this;this.$refs.form.validate((function(r){if(!r)return!1;e.formLoading=!0,l["a"].send(e.form).then((function(e){1===e.code?(t.$message.success(e.message),t.delCurrentView(t).then((function(){t.$router.push("/message/list")}))):(t.$message.error(e.message),t.formLoading=!1)})).catch((function(e){t.formLoading=!1}))}))},resetForm:function(){var e=this.form.id;this.$refs["form"].resetFields(),this.form={title:"",content:"",receiveUserIds:[]},this.form.id=e}},Object(i["b"])("tagsView",{delCurrentView:"delCurrentView"}))},m=c,u=r("2877"),f=Object(u["a"])(m,o,s,!1,null,null,null);t["default"]=f.exports},c443:function(e,t,r){"use strict";var o=r("b775");t["a"]={pageList:function(e){return Object(o["a"])("/api/admin/message/page",e)},send:function(e){return Object(o["a"])("/api/admin/message/send",e)}}}}]);
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-16f9edc1"],{"93fd":function(e,t,r){"use strict";r.r(t);var o=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"app-container"},[r("el-form",{directives:[{name:"loading",rawName:"v-loading",value:e.formLoading,expression:"formLoading"}],ref:"form",attrs:{model:e.form,"label-width":"100px",rules:e.rules}},[r("el-form-item",{attrs:{label:"标题:",prop:"title",required:""}},[r("el-input",{model:{value:e.form.title,callback:function(t){e.$set(e.form,"title",t)},expression:"form.title"}})],1),r("el-form-item",{attrs:{label:"内容:",prop:"content",required:""}},[r("el-input",{attrs:{type:"textarea",rows:"13"},model:{value:e.form.content,callback:function(t){e.$set(e.form,"content",t)},expression:"form.content"}})],1),r("el-form-item",{attrs:{label:"接收人:",required:""}},[r("el-select",{attrs:{multiple:"",filterable:"",remote:"","reserve-keyword":"",placeholder:"请输入用户名","remote-method":e.getUserByUserName,loading:e.selectLoading},model:{value:e.form.receiveUserIds,callback:function(t){e.$set(e.form,"receiveUserIds",t)},expression:"form.receiveUserIds"}},e._l(e.options,(function(e){return r("el-option",{key:e.value,attrs:{label:e.name,value:e.value}})})),1)],1),r("el-form-item",[r("el-button",{attrs:{type:"primary"},on:{click:e.submitForm}},[e._v("发送")]),r("el-button",{on:{click:e.resetForm}},[e._v("重置")])],1)],1)],1)},n=[],s=r("5530"),i=r("2f62"),a=r("c24f"),l=r("c443"),c={data:function(){return{form:{title:"",content:"",receiveUserIds:[]},formLoading:!1,selectLoading:!1,options:[],rules:{title:[{required:!0,message:"请输入消息标题",trigger:"blur"}],realName:[{required:!0,message:"请输入消息内容",trigger:"blur"}]}}},created:function(){},methods:Object(s["a"])({getUserByUserName:function(e){var t=this;""!==e?(t.selectLoading=!0,a["a"].selectByUserName(e).then((function(e){t.selectLoading=!1,t.options=e.response}))):t.options=[]},submitForm:function(){var e=this,t=this;this.$refs.form.validate((function(r){if(!r)return!1;e.formLoading=!0,l["a"].send(e.form).then((function(e){1===e.code?(t.$message.success(e.message),t.delCurrentView(t).then((function(){t.$router.push("/message/list")}))):(t.$message.error(e.message),t.formLoading=!1)})).catch((function(e){t.formLoading=!1}))}))},resetForm:function(){this.$refs["form"].resetFields(),this.form={title:"",content:"",receiveUserIds:[]}}},Object(i["b"])("tagsView",{delCurrentView:"delCurrentView"}))},m=c,u=r("2877"),f=Object(u["a"])(m,o,n,!1,null,null,null);t["default"]=f.exports},c443:function(e,t,r){"use strict";var o=r("b775");t["a"]={pageList:function(e){return Object(o["a"])("/api/admin/message/page",e)},send:function(e){return Object(o["a"])("/api/admin/message/send",e)}}}}]);

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0c138b"],{"44b7":function(e,t,r){"use strict";r.r(t);var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"app-container"},[r("el-form",{directives:[{name:"loading",rawName:"v-loading",value:e.formLoading,expression:"formLoading"}],ref:"form",attrs:{model:e.form,"label-width":"100px"}},[r("el-form-item",{attrs:{label:"学科:",required:""}},[r("el-input",{model:{value:e.form.name,callback:function(t){e.$set(e.form,"name",t)},expression:"form.name"}})],1),r("el-form-item",{attrs:{label:"年级:",required:""}},[r("el-select",{attrs:{placeholder:"年级"},model:{value:e.form.level,callback:function(t){e.$set(e.form,"level",t)},expression:"form.level"}},e._l(e.levelEnum,(function(e){return r("el-option",{key:e.key,attrs:{value:e.key,label:e.value}})})),1)],1),r("el-form-item",[r("el-button",{attrs:{type:"primary"},on:{click:e.submitForm}},[e._v("提交")]),r("el-button",{on:{click:e.resetForm}},[e._v("重置")])],1)],1)],1)},o=[],l=r("5530"),i=r("2f62"),a=r("c418"),m={data:function(){return{form:{id:null,name:"",level:1,levelName:""},formLoading:!1}},created:function(){var e=this.$route.query.id,t=this;e&&0!==parseInt(e)&&(t.formLoading=!0,a["a"].select(e).then((function(e){t.form=e.response,t.formLoading=!1})))},methods:Object(l["a"])({submitForm:function(){var e=this;this.formLoading=!0,this.form.levelName=this.enumFormat(this.levelEnum,this.form.level),a["a"].edit(this.form).then((function(t){1===t.code?(e.$message.success(t.message),e.delCurrentView(e).then((function(){e.$router.push("/education/subject/list")}))):(e.$message.error(t.message),e.formLoading=!1)})).catch((function(t){e.formLoading=!1}))},resetForm:function(){var e=this.form.id;this.$refs["form"].resetFields(),this.form={id:null,name:"",level:1,levelName:""},this.form.id=e}},Object(i["b"])("tagsView",{delCurrentView:"delCurrentView"})),computed:Object(l["a"])(Object(l["a"])({},Object(i["c"])("enumItem",["enumFormat"])),Object(i["e"])("enumItem",{levelEnum:function(e){return e.user.levelEnum}}))},s=m,u=r("2877"),c=Object(u["a"])(s,n,o,!1,null,null,null);t["default"]=c.exports}}]);
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0c138b"],{"44b7":function(e,t,r){"use strict";r.r(t);var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"app-container"},[r("el-form",{directives:[{name:"loading",rawName:"v-loading",value:e.formLoading,expression:"formLoading"}],ref:"form",attrs:{model:e.form,"label-width":"100px"}},[r("el-form-item",{attrs:{label:"学科:",required:""}},[r("el-input",{model:{value:e.form.name,callback:function(t){e.$set(e.form,"name",t)},expression:"form.name"}})],1),r("el-form-item",{attrs:{label:"年级:",required:""}},[r("el-select",{attrs:{placeholder:"年级"},model:{value:e.form.level,callback:function(t){e.$set(e.form,"level",t)},expression:"form.level"}},e._l(e.levelEnum,(function(e){return r("el-option",{key:e.key,attrs:{value:e.key,label:e.value}})})),1)],1),r("el-form-item",[r("el-button",{attrs:{type:"primary"},on:{click:e.submitForm}},[e._v("提交")]),r("el-button",{on:{click:e.resetForm}},[e._v("重置")])],1)],1)],1)},o=[],l=r("5530"),a=r("2f62"),i=r("c418"),m={data:function(){return{form:{id:null,name:"",level:1,levelName:""},formLoading:!1}},created:function(){var e=this.$route.query.id,t=this;e&&0!==parseInt(e)&&(t.formLoading=!0,i["a"].select(e).then((function(e){t.form=e.response,t.formLoading=!1})))},methods:Object(l["a"])({submitForm:function(){var e=this;this.formLoading=!0,this.form.levelName=this.enumFormat(this.levelEnum,this.form.level),i["a"].edit(this.form).then((function(t){1===t.code?(e.$message.success(t.message),e.delCurrentView(e).then((function(){e.$router.push("/education/subject/list")}))):(e.$message.error(t.message),e.formLoading=!1)})).catch((function(t){e.formLoading=!1}))},resetForm:function(){this.$refs["form"].resetFields(),this.form={id:null,name:"",level:1,levelName:""}}},Object(a["b"])("tagsView",{delCurrentView:"delCurrentView"})),computed:Object(l["a"])(Object(l["a"])({},Object(a["c"])("enumItem",["enumFormat"])),Object(a["e"])("enumItem",{levelEnum:function(e){return e.user.levelEnum}}))},s=m,u=r("2877"),c=Object(u["a"])(s,n,o,!1,null,null,null);t["default"]=c.exports}}]);

View File

@ -1 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d230fe7"],{ef3c:function(e,r,n){"use strict";n.r(r);n("5319"),n("ac1f");var t,u,a={created:function(){var e=this.$route,r=e.params,n=e.query,t=r.path;this.$router.replace({path:"/"+t,query:n})},render:function(e){return e()}},c=a,o=n("2877"),p=Object(o["a"])(c,t,u,!1,null,null,null);r["default"]=p.exports}}]);
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d230fe7"],{ef3c:function(e,r,n){"use strict";n.r(r);n("ac1f"),n("5319");var t,u,a={created:function(){var e=this.$route,r=e.params,n=e.query,t=r.path;this.$router.replace({path:"/"+t,query:n})},render:function(e){return e()}},c=a,o=n("2877"),p=Object(o["a"])(c,t,u,!1,null,null,null);r["default"]=p.exports}}]);

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-099b9c43"],{"1db4":function(t,s,i){"use strict";i.r(s);var a=function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"wscn-http404-container"},[i("div",{staticClass:"wscn-http404"},[t._m(0),i("div",{staticClass:"bullshit"},[i("div",{staticClass:"bullshit__oops"},[t._v("OOPS!")]),i("div",{staticClass:"bullshit__headline"},[t._v(t._s(t.message))]),i("div",{staticClass:"bullshit__info"},[t._v("请检查你的访问地址是否正确, 或点击下面按钮返回主页.")]),i("a",{staticClass:"bullshit__return-home",attrs:{href:""}},[t._v("返回主页")])])])])},c=[function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"pic-404"},[a("img",{staticClass:"pic-404__parent",attrs:{src:i("a36b"),alt:"404"}}),a("img",{staticClass:"pic-404__child left",attrs:{src:i("26fc"),alt:"404"}}),a("img",{staticClass:"pic-404__child mid",attrs:{src:i("26fc"),alt:"404"}}),a("img",{staticClass:"pic-404__child right",attrs:{src:i("26fc"),alt:"404"}})])}],l={name:"Page404",computed:{message:function(){return"页面未找到..."}}},n=l,e=(i("8485"),i("2877")),r=Object(e["a"])(n,a,c,!1,null,"52fe14af",null);s["default"]=r.exports},"26fc":function(t,s,i){t.exports=i.p+"static/img/404_cloud.0f4bc32b.png"},8485:function(t,s,i){"use strict";i("9648")},9648:function(t,s,i){},a36b:function(t,s,i){t.exports=i.p+"static/img/404.a57b6f31.png"}}]);
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-873a42e2"],{"1db4":function(t,s,i){"use strict";i.r(s);var a=function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"wscn-http404-container"},[i("div",{staticClass:"wscn-http404"},[t._m(0),i("div",{staticClass:"bullshit"},[i("div",{staticClass:"bullshit__oops"},[t._v("OOPS!")]),i("div",{staticClass:"bullshit__headline"},[t._v(t._s(t.message))]),i("div",{staticClass:"bullshit__info"},[t._v("请检查你的访问地址是否正确, 或点击下面按钮返回主页.")]),i("a",{staticClass:"bullshit__return-home",attrs:{href:""}},[t._v("返回主页")])])])])},c=[function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"pic-404"},[a("img",{staticClass:"pic-404__parent",attrs:{src:i("a36b"),alt:"404"}}),a("img",{staticClass:"pic-404__child left",attrs:{src:i("26fc"),alt:"404"}}),a("img",{staticClass:"pic-404__child mid",attrs:{src:i("26fc"),alt:"404"}}),a("img",{staticClass:"pic-404__child right",attrs:{src:i("26fc"),alt:"404"}})])}],l={name:"Page404",computed:{message:function(){return"页面未找到..."}}},e=l,n=(i("8485"),i("2877")),r=Object(n["a"])(e,a,c,!1,null,"52fe14af",null);s["default"]=r.exports},"26fc":function(t,s,i){t.exports=i.p+"static/img/404_cloud.0f4bc32b.png"},8485:function(t,s,i){"use strict";i("9648")},9648:function(t,s,i){},a36b:function(t,s,i){t.exports=i.p+"static/img/404.a57b6f31.png"}}]);

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

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

View File

@ -1,17 +0,0 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Expires" content="0"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>学生考试系统</title><style>html {
height: 100%;
width: 100%;
}
body {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}</style><script>var _hmt = _hmt || [];
(function () {
var hm = document.createElement('script')
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-099b9c43.1951fa25.css" rel="prefetch"><link href="static/css/chunk-122e80b5.87ccd637.css" rel="prefetch"><link href="static/css/chunk-1d601c29.87ccd637.css" rel="prefetch"><link href="static/css/chunk-31aa2150.ad364b97.css" rel="prefetch"><link href="static/css/chunk-32d09f6a.b56209ba.css" rel="prefetch"><link href="static/css/chunk-5001fd2c.7bab6136.css" rel="prefetch"><link href="static/css/chunk-66bf5956.87ccd637.css" rel="prefetch"><link href="static/css/chunk-69a4052e.54efd6ce.css" rel="prefetch"><link href="static/css/chunk-7d11f9e8.4381df1f.css" rel="prefetch"><link href="static/css/chunk-a938f5fc.87ccd637.css" rel="prefetch"><link href="static/css/chunk-efc0f600.55fc2650.css" rel="prefetch"><link href="static/js/chunk-099b9c43.10f93443.js" rel="prefetch"><link href="static/js/chunk-122e80b5.1888b1be.js" rel="prefetch"><link href="static/js/chunk-1d601c29.519a987f.js" rel="prefetch"><link href="static/js/chunk-2d20f362.f7566b72.js" rel="prefetch"><link href="static/js/chunk-31aa2150.6669a7f5.js" rel="prefetch"><link href="static/js/chunk-32d09f6a.69a9813d.js" rel="prefetch"><link href="static/js/chunk-5001fd2c.38bd24a7.js" rel="prefetch"><link href="static/js/chunk-66bf5956.0bbb6aee.js" rel="prefetch"><link href="static/js/chunk-69a4052e.e5d45fa3.js" rel="prefetch"><link href="static/js/chunk-7d11f9e8.e9fb9895.js" rel="prefetch"><link href="static/js/chunk-a938f5fc.593d7d54.js" rel="prefetch"><link href="static/js/chunk-aa32bb26.e145ebd5.js" rel="prefetch"><link href="static/js/chunk-efc0f600.da82a70b.js" rel="prefetch"><link href="static/css/chunk-vendors.f445a17a.css" rel="preload" as="style"><link href="static/css/index.9fe4a73d.css" rel="preload" as="style"><link href="static/js/chunk-vendors.4379415b.js" rel="preload" as="script"><link href="static/js/index.81977f7e.js" rel="preload" as="script"><link href="static/css/chunk-vendors.f445a17a.css" rel="stylesheet"><link href="static/css/index.9fe4a73d.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.4379415b.js"></script><script src="static/js/index.81977f7e.js"></script></body></html>

View File

@ -1 +0,0 @@
.wscn-http404-container[data-v-52fe14af]{-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;top:40%;left:50%}.wscn-http404[data-v-52fe14af]{position:relative;width:1200px;padding:0 50px;overflow:hidden}.wscn-http404 .pic-404[data-v-52fe14af]{position:relative;float:left;width:600px;overflow:hidden}.wscn-http404 .pic-404__parent[data-v-52fe14af]{width:100%}.wscn-http404 .pic-404__child[data-v-52fe14af]{position:absolute}.wscn-http404 .pic-404__child.left[data-v-52fe14af]{width:80px;top:17px;left:220px;opacity:0;-webkit-animation-name:cloudLeft-data-v-52fe14af;animation-name:cloudLeft-data-v-52fe14af;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1s;animation-delay:1s}.wscn-http404 .pic-404__child.mid[data-v-52fe14af]{width:46px;top:10px;left:420px;opacity:0;-webkit-animation-name:cloudMid-data-v-52fe14af;animation-name:cloudMid-data-v-52fe14af;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1.2s;animation-delay:1.2s}.wscn-http404 .pic-404__child.right[data-v-52fe14af]{width:62px;top:100px;left:500px;opacity:0;-webkit-animation-name:cloudRight-data-v-52fe14af;animation-name:cloudRight-data-v-52fe14af;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1s;animation-delay:1s}@-webkit-keyframes cloudLeft-data-v-52fe14af{0%{top:17px;left:220px;opacity:0}20%{top:33px;left:188px;opacity:1}80%{top:81px;left:92px;opacity:1}to{top:97px;left:60px;opacity:0}}@keyframes cloudLeft-data-v-52fe14af{0%{top:17px;left:220px;opacity:0}20%{top:33px;left:188px;opacity:1}80%{top:81px;left:92px;opacity:1}to{top:97px;left:60px;opacity:0}}@-webkit-keyframes cloudMid-data-v-52fe14af{0%{top:10px;left:420px;opacity:0}20%{top:40px;left:360px;opacity:1}70%{top:130px;left:180px;opacity:1}to{top:160px;left:120px;opacity:0}}@keyframes cloudMid-data-v-52fe14af{0%{top:10px;left:420px;opacity:0}20%{top:40px;left:360px;opacity:1}70%{top:130px;left:180px;opacity:1}to{top:160px;left:120px;opacity:0}}@-webkit-keyframes cloudRight-data-v-52fe14af{0%{top:100px;left:500px;opacity:0}20%{top:120px;left:460px;opacity:1}80%{top:180px;left:340px;opacity:1}to{top:200px;left:300px;opacity:0}}@keyframes cloudRight-data-v-52fe14af{0%{top:100px;left:500px;opacity:0}20%{top:120px;left:460px;opacity:1}80%{top:180px;left:340px;opacity:1}to{top:200px;left:300px;opacity:0}}.wscn-http404 .bullshit[data-v-52fe14af]{position:relative;float:left;width:300px;padding:30px 0;overflow:hidden}.wscn-http404 .bullshit__oops[data-v-52fe14af]{font-size:32px;line-height:40px;color:#1482f0;margin-bottom:20px;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__headline[data-v-52fe14af],.wscn-http404 .bullshit__oops[data-v-52fe14af]{font-weight:700;opacity:0;-webkit-animation-name:slideUp-data-v-52fe14af;animation-name:slideUp-data-v-52fe14af;-webkit-animation-duration:.5s;animation-duration:.5s}.wscn-http404 .bullshit__headline[data-v-52fe14af]{font-size:20px;line-height:24px;color:#222;margin-bottom:10px;-webkit-animation-delay:.1s;animation-delay:.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__info[data-v-52fe14af]{font-size:13px;line-height:21px;color:grey;margin-bottom:30px;-webkit-animation-delay:.2s;animation-delay:.2s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__info[data-v-52fe14af],.wscn-http404 .bullshit__return-home[data-v-52fe14af]{opacity:0;-webkit-animation-name:slideUp-data-v-52fe14af;animation-name:slideUp-data-v-52fe14af;-webkit-animation-duration:.5s;animation-duration:.5s}.wscn-http404 .bullshit__return-home[data-v-52fe14af]{display:block;float:left;width:110px;height:36px;background:#1482f0;border-radius:100px;text-align:center;color:#fff;font-size:14px;line-height:36px;cursor:pointer;-webkit-animation-delay:.3s;animation-delay:.3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes slideUp-data-v-52fe14af{0%{-webkit-transform:translateY(60px);transform:translateY(60px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes slideUp-data-v-52fe14af{0%{-webkit-transform:translateY(60px);transform:translateY(60px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}

View File

@ -1 +0,0 @@
.pagination-container[data-v-52c39d8a]{background:#fff}.pagination-container.hidden[data-v-52c39d8a]{display:none}

View File

@ -1 +0,0 @@
.align-center[data-v-a51a27fe]{text-align:center}.exam-question-item[data-v-a51a27fe]{padding:10px}.exam-question-item .el-form-item__label[data-v-a51a27fe]{font-size:15px!important}.question-title-padding[data-v-a51a27fe]{padding-left:25px;padding-right:25px}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
.pagination-container[data-v-52c39d8a]{background:#fff}.pagination-container.hidden[data-v-52c39d8a]{display:none}

View File

@ -1 +0,0 @@
.align-center[data-v-15c1a324]{text-align:center}.exam-question-item[data-v-15c1a324]{padding:10px}.exam-question-item .el-form-item__label[data-v-15c1a324]{font-size:15px!important}.question-title-padding[data-v-15c1a324]{padding-left:25px;padding-right:25px}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
.pagination-container[data-v-52c39d8a]{background:#fff}.pagination-container.hidden[data-v-52c39d8a]{display:none}

View File

@ -1 +0,0 @@
.align-center[data-v-367a3d4c]{text-align:center}.exam-question-item[data-v-367a3d4c]{padding:10px}.exam-question-item .el-form-item__label[data-v-367a3d4c]{font-size:15px!important}.question-title-padding[data-v-367a3d4c]{padding-left:25px;padding-right:25px}

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More