Compare commits
57 Commits
Author | SHA1 | Date | |
---|---|---|---|
c6a47d0e69 | |||
25ee3c9bb0 | |||
ba2a295f09 | |||
f1dacb165a | |||
40f7e34528 | |||
1757a8fd4f | |||
3a947518ef | |||
f318e23220 | |||
45b2507948 | |||
b4b8c38294 | |||
597dfccf84 | |||
|
04ff77ed3e | ||
|
fd2ac75c44 | ||
|
b6a9a1d435 | ||
|
1cf243e542 | ||
|
98f4d75d59 | ||
|
db012a8f51 | ||
|
eab090c2a7 | ||
|
839af4f589 | ||
|
6f3054a030 | ||
|
9ee89c5287 | ||
|
d9b98386d2 | ||
|
89e883ff2c | ||
|
fd614d9f21 | ||
|
bd36a8f321 | ||
|
d08d8f2cda | ||
|
02e5a206bf | ||
|
b6a9f488cb | ||
|
3738c5b744 | ||
|
9518070c08 | ||
|
aac89f3df7 | ||
|
9a629b7ea3 | ||
|
918c4c1de8 | ||
|
acf3a907b4 | ||
|
e9b3520023 | ||
|
d89dc8b2d8 | ||
|
cb9c5ffcc5 | ||
|
d2c976323e | ||
|
1dee271b14 | ||
|
faeee8cdce | ||
|
be2b51ad1e | ||
|
7fe265c45d | ||
|
5f31d444d4 | ||
|
a2f6cc7c79 | ||
|
626ba788c7 | ||
|
edcf038602 | ||
|
e934fdc2d5 | ||
|
e8159a17e1 | ||
|
4614ee3f53 | ||
|
5398f551ba | ||
|
f2d0192277 | ||
|
b809fe7b69 | ||
|
e97a614832 | ||
|
595a71792c | ||
|
3be08dfa92 | ||
|
42237dfe11 | ||
|
7fc051fdb0 |
14179
source/vue/xzs-admin/package-lock.json
generated
14179
source/vue/xzs-admin/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "xzs-admin",
|
||||
"version": "3.2.0",
|
||||
"version": "3.3.0",
|
||||
"author": "武汉思维跳跃科技有限公司",
|
||||
"description": "学之思管理系统",
|
||||
"license": "AGPL-3.0",
|
||||
@ -16,22 +16,22 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^0.19.0",
|
||||
"core-js": "^3.8.3",
|
||||
"core-js": "^3.9.0",
|
||||
"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.4.9",
|
||||
"vuex": "^3.6.0"
|
||||
"vue-router": "^3.5.1",
|
||||
"vuex": "^3.6.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@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/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/eslint-config-standard": "^4.0.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"eslint": "^5.16.0",
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
||||
|
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,
|
||||
|
@ -4,7 +4,7 @@
|
||||
**/
|
||||
|
||||
/* theme color */
|
||||
$--color-primary: #13C2C2;
|
||||
$--color-primary: #1890ff;
|
||||
$--color-success: #13ce66;
|
||||
$--color-warning: #FFBA00;
|
||||
$--color-danger: #ff4949;
|
||||
|
96
source/vue/xzs-admin/src/views/answer/list.vue
Normal file
96
source/vue/xzs-admin/src/views/answer/list.vue
Normal file
@ -0,0 +1,96 @@
|
||||
<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>
|
@ -65,6 +65,7 @@ export default {
|
||||
})
|
||||
},
|
||||
resetForm () {
|
||||
let lastId = this.form.id
|
||||
this.$refs['form'].resetFields()
|
||||
this.form = {
|
||||
id: null,
|
||||
@ -72,6 +73,7 @@ export default {
|
||||
level: 1,
|
||||
levelName: ''
|
||||
}
|
||||
this.form.id = lastId
|
||||
},
|
||||
...mapActions('tagsView', { delCurrentView: 'delCurrentView' })
|
||||
},
|
||||
|
@ -238,6 +238,7 @@ export default {
|
||||
return this.subjectEnumFormat(cellValue)
|
||||
},
|
||||
resetForm () {
|
||||
let lastId = this.form.id
|
||||
this.$refs['form'].resetFields()
|
||||
this.form = {
|
||||
id: null,
|
||||
@ -249,6 +250,7 @@ export default {
|
||||
suggestTime: null,
|
||||
titleItems: []
|
||||
}
|
||||
this.form.id = lastId
|
||||
},
|
||||
...mapActions('exam', { initSubject: 'initSubject' }),
|
||||
...mapActions('tagsView', { delCurrentView: 'delCurrentView' })
|
||||
|
@ -157,8 +157,13 @@ export default {
|
||||
},
|
||||
questionItemAdd () {
|
||||
let items = this.form.items
|
||||
let newLastPrefix
|
||||
if (items.length > 0) {
|
||||
let last = items[items.length - 1]
|
||||
let newLastPrefix = String.fromCharCode(last.prefix.charCodeAt() + 1)
|
||||
newLastPrefix = String.fromCharCode(last.prefix.charCodeAt() + 1)
|
||||
} else {
|
||||
newLastPrefix = 'A'
|
||||
}
|
||||
items.push({ id: null, prefix: newLastPrefix, content: '' })
|
||||
},
|
||||
submitForm () {
|
||||
|
@ -172,6 +172,7 @@ export default {
|
||||
})
|
||||
},
|
||||
resetForm () {
|
||||
let lastId = this.form.id
|
||||
this.$refs['form'].resetFields()
|
||||
this.form = {
|
||||
id: null,
|
||||
@ -188,6 +189,7 @@ export default {
|
||||
score: '',
|
||||
difficult: 0
|
||||
}
|
||||
this.form.id = lastId
|
||||
},
|
||||
levelChange () {
|
||||
this.form.subjectId = null
|
||||
|
@ -89,12 +89,14 @@ 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' })
|
||||
}
|
||||
|
@ -1,134 +0,0 @@
|
||||
<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>
|
@ -1,131 +0,0 @@
|
||||
<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>
|
@ -19,7 +19,7 @@ module.exports = {
|
||||
hotOnly: false,
|
||||
proxy: {
|
||||
'/api': {
|
||||
target: 'http://localhost:8000',
|
||||
target: 'http://129.211.1.159:8080',
|
||||
changeOrigin: true
|
||||
}
|
||||
}
|
||||
|
9520
source/vue/xzs-admin/yarn.lock
Normal file
9520
source/vue/xzs-admin/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
14174
source/vue/xzs-student/package-lock.json
generated
14174
source/vue/xzs-student/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "xzs-student",
|
||||
"version": "3.2.0",
|
||||
"version": "3.3.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.4.9",
|
||||
"vuex": "^3.6.0"
|
||||
"vue-router": "^3.5.1",
|
||||
"vuex": "^3.6.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@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/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/eslint-config-standard": "^4.0.0",
|
||||
"babel-eslint": "^10.0.3",
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-plugin-vue": "^5.0.0",
|
||||
"node-sass": "^4.14.1",
|
||||
"node-sass": "^4.0.0",
|
||||
"sass-loader": "^8.0.0",
|
||||
"svg-sprite-loader": "4.1.6",
|
||||
"vue-template-compiler": "^2.6.10"
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
||||
|
@ -35,10 +35,10 @@
|
||||
<div class="container">
|
||||
<div class="footer-main">
|
||||
<h4>产品介绍</h4>
|
||||
<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>
|
||||
<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>
|
||||
</div>
|
||||
<div class="footer-main">
|
||||
<h4>学多多小程序</h4>
|
||||
|
@ -1,6 +1,5 @@
|
||||
import axios from 'axios'
|
||||
import vue from 'vue'
|
||||
|
||||
const request = function (loadtip, query) {
|
||||
let loading
|
||||
if (loadtip) {
|
||||
|
@ -50,8 +50,8 @@
|
||||
</el-row>
|
||||
<el-row class="app-item-contain">
|
||||
<h3 class="index-title-h3">固定试卷</h3>
|
||||
<div style="padding-left: 15px">
|
||||
<el-col :span="4" v-for="(item, index) in fixedPaper" :key="index" :offset="index > 0 ? 1 : 0">
|
||||
<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">
|
||||
<el-card :body-style="{ padding: '0px' }" v-loading="loading">
|
||||
<img src="@/assets/exam-paper/show1.png" class="image">
|
||||
<div style="padding: 14px;">
|
||||
|
@ -67,10 +67,13 @@
|
||||
<span v-html="question.analyze" class="q-item-span-content" />
|
||||
</div>
|
||||
<div class="question-answer-show-item">
|
||||
<span class="question-show-item">正确答案:</span>
|
||||
<span :class="{'question-show-item': qType!=4}">正确答案:</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">{{question.correctArray}}</span>
|
||||
<!-- <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>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
|
@ -95,7 +95,7 @@ export default {
|
||||
_this.$alert('试卷得分:' + re.response + '分', '考试结果', {
|
||||
confirmButtonText: '返回考试记录',
|
||||
callback: action => {
|
||||
_this.$router.push('/record/index')
|
||||
window.close()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
|
@ -16,10 +16,11 @@
|
||||
<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>
|
||||
<router-link target="_blank" :to="{path:'/read',query:{id:row.id}}" v-if="row.status === 2 ">
|
||||
</router-link> -->
|
||||
<!-- v-if="row.status === 2 -->
|
||||
<router-link target="_blank" :to="{path:'/read',query:{id:row.id}}">
|
||||
<el-button type="text" size="small">查看试卷</el-button>
|
||||
</router-link>
|
||||
</template>
|
||||
|
@ -19,7 +19,7 @@ module.exports = {
|
||||
hotOnly: false,
|
||||
proxy: {
|
||||
'/api': {
|
||||
target: 'http://localhost:8000',
|
||||
target: 'http://129.211.1.159:8080',
|
||||
changeOrigin: true
|
||||
}
|
||||
}
|
||||
|
9515
source/vue/xzs-student/yarn.lock
Normal file
9515
source/vue/xzs-student/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
@ -68,6 +68,8 @@ 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)
|
||||
|
@ -0,0 +1,54 @@
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -7,7 +7,6 @@ import java.util.Map;
|
||||
public enum RoleEnum {
|
||||
|
||||
STUDENT(1, "STUDENT"),
|
||||
TEACHER(2, "TEACHER"),
|
||||
ADMIN(3, "ADMIN");
|
||||
|
||||
int code;
|
||||
|
@ -31,4 +31,5 @@ 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);
|
||||
}
|
||||
|
@ -48,4 +48,6 @@ public interface ExamPaperAnswerService extends BaseService<ExamPaperAnswer> {
|
||||
Integer selectAllCount();
|
||||
|
||||
List<Integer> selectMothCount();
|
||||
|
||||
PageInfo<ExamPaperAnswer> adminPage(com.mindskip.xzs.viewmodel.admin.paper.ExamPaperAnswerPageRequestVM requestVM);
|
||||
}
|
||||
|
@ -268,4 +268,11 @@ 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));
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,94 @@
|
||||
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;
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
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;
|
||||
}
|
||||
}
|
@ -28,6 +28,8 @@ public class ExamPaperAnswerPageResponseVM {
|
||||
|
||||
private String paperName;
|
||||
|
||||
private String userName;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
@ -131,4 +133,13 @@ public class ExamPaperAnswerPageResponseVM {
|
||||
public void setPaperName(String paperName) {
|
||||
this.paperName = paperName;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -3,9 +3,9 @@ logging:
|
||||
|
||||
spring:
|
||||
redis:
|
||||
host: 192.168.0.96
|
||||
host: 127.0.0.1
|
||||
datasource:
|
||||
url: jdbc:mysql://192.168.0.96:3306/xzs?useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||
url: jdbc:mysql://127.0.0.1:3306/tiku?useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||
username: root
|
||||
password: 123456
|
||||
password: Ggy101600!
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
@ -1,5 +1,5 @@
|
||||
server:
|
||||
port: 8000
|
||||
port: 8080
|
||||
undertow:
|
||||
io-threads: 16
|
||||
worker-threads: 4000
|
||||
@ -56,6 +56,7 @@ pagehelper:
|
||||
spring:
|
||||
session:
|
||||
store-type: redis
|
||||
timeout: 86400
|
||||
datasource:
|
||||
hikari:
|
||||
idle-timeout: 600000 #10 min
|
||||
|
@ -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>
|
||||
|
@ -293,7 +293,7 @@
|
||||
and #{dateTime} between limit_start_time and limit_end_time
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY id desc limit 5
|
||||
ORDER BY id desc
|
||||
</select>
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!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 {
|
||||
<!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%;
|
||||
}
|
||||
@ -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.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>
|
||||
})()</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>
|
@ -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
File diff suppressed because one or more lines are too long
@ -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)},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)}}}}]);
|
||||
(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)}}}}]);
|
File diff suppressed because one or more lines are too long
@ -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"),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}}]);
|
||||
(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}}]);
|
@ -1 +1 @@
|
||||
(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}}]);
|
||||
(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}}]);
|
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
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
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
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
BIN
source/xzs/src/main/resources/static/student-back/favicon.ico
Normal file
BIN
source/xzs/src/main/resources/static/student-back/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
17
source/xzs/src/main/resources/static/student-back/index.html
Normal file
17
source/xzs/src/main/resources/static/student-back/index.html
Normal file
@ -0,0 +1,17 @@
|
||||
<!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>
|
@ -0,0 +1 @@
|
||||
.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}}
|
@ -0,0 +1 @@
|
||||
.pagination-container[data-v-52c39d8a]{background:#fff}.pagination-container.hidden[data-v-52c39d8a]{display:none}
|
@ -0,0 +1 @@
|
||||
.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
@ -0,0 +1 @@
|
||||
.pagination-container[data-v-52c39d8a]{background:#fff}.pagination-container.hidden[data-v-52c39d8a]{display:none}
|
@ -0,0 +1 @@
|
||||
.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
@ -0,0 +1 @@
|
||||
.pagination-container[data-v-52c39d8a]{background:#fff}.pagination-container.hidden[data-v-52c39d8a]{display:none}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user