Compare commits
No commits in common. "master" and "alvis" have entirely different histories.
@ -46,13 +46,13 @@
|
||||
|
||||
### 学之思交流群(加群获取数据库脚本)
|
||||
|
||||
* QQ交流群八:`902855996`
|
||||
* QQ交流群七:`873533715`
|
||||
* QQ:`2693073475`
|
||||
* 微信:`alvis-u`
|
||||
|
||||
### 开发部署教程
|
||||
|
||||
* [https://www.mindskip.net:999](https://www.mindskip.net:999)
|
||||
* [https://mindskip.gitee.io/xzs-mysql](https://mindskip.gitee.io/xzs-mysql)
|
||||
|
||||
### 学生系统功能
|
||||
|
||||
@ -73,7 +73,7 @@
|
||||
* 卷题管理:
|
||||
1. 试卷列表:试卷的增删改查,新增包含选择学科、试卷类型、试卷名称、考试时间,试卷内容包含添加大标题,然后添加题目到此试卷中,组成一套完整的试卷
|
||||
2. 题目列表:题目的增删改查,目前题型包含单选题、多选题、判断题、填空题、简单题,支持图片、公式等。
|
||||
* 任务管理:对任务进行修改
|
||||
* 任务管理:对任务进行修改
|
||||
* 教育管理:对不同年级的学科进行增删改查
|
||||
* 消息中心:可以对多个用户进行消息发送
|
||||
* 日志中心:用户的基本操作进行日志记录,了解用户使用过情况
|
||||
|
BIN
docs/1.png
Before Width: | Height: | Size: 103 KiB |
204
docs/README.md
@ -21,7 +21,7 @@ github - mysql :[https://github.com/mindskip/xzs-mysql](https://github.com/min
|
||||
| 环境 | 版本 |
|
||||
| ---- | ---- |
|
||||
| 操作系统 | Windows / Linux |
|
||||
| Jdk | 1.8 |
|
||||
| Jdk | 8 |
|
||||
| Redis | 6.0 |
|
||||
| Mysql | 8.0 |
|
||||
|
||||
@ -52,201 +52,7 @@ github - mysql :[https://github.com/mindskip/xzs-mysql](https://github.com/min
|
||||
|
||||
## 架构图
|
||||
|
||||
![架构图](1.png)
|
||||
|
||||
## 数据库设计
|
||||
|
||||
### 试卷表 t_exam_paper
|
||||
|
||||
| 字段名 | 类型 | 注释 |
|
||||
| ---- | ---- | ---- |
|
||||
| id | int | |
|
||||
| name | varchar | 试卷名称 |
|
||||
| subject_id | int | 学科 |
|
||||
| paper_type | int | 试卷类型( 1固定试卷 4.时段试卷 6.任务试卷) |
|
||||
| grade_level | int | 年级 |
|
||||
| score | int | 试卷总分(千分制) |
|
||||
| question_count | int | 题目数量 |
|
||||
| suggest_time | int | 建议时长(分钟) |
|
||||
| limit_start_time | datetime | 时段试卷 开始时间 |
|
||||
| limit_end_time | datetime | 时段试卷 结束时间 |
|
||||
| frame_text_content_id | int | 试卷框架 内容为JSON |
|
||||
| create_user | int | |
|
||||
| create_time | datetime | |
|
||||
| deleted | bit | |
|
||||
| task_exam_id | int | |
|
||||
|
||||
### 试卷答案表 t_exam_paper_answer
|
||||
|
||||
| 字段名 | 类型 | 注释 |
|
||||
| ---- | ---- | ---- |
|
||||
| id | int | |
|
||||
| exam_paper_id | int | |
|
||||
| paper_name | varchar | 试卷名称 |
|
||||
| paper_type | int | 试卷类型( 1固定试卷 2临时试卷 3班级试卷 4.时段试卷 ) |
|
||||
| subject_id | int | 学科 |
|
||||
| system_score | int | 系统判定得分 |
|
||||
| user_score | int | 最终得分(千分制) |
|
||||
| paper_score | int | 试卷总分 |
|
||||
| question_correct | int | 做对题目数量 |
|
||||
| question_count | int | 题目总数量 |
|
||||
| do_time | int | 做题时间(秒) |
|
||||
| status | int | 试卷状态(1待判分 2完成) |
|
||||
| create_user | int | 学生 |
|
||||
| create_time | datetime | 提交时间 |
|
||||
| task_exam_id | int | |
|
||||
|
||||
### 试卷题目答案表 t_exam_paper_question_customer_answer
|
||||
|
||||
| 字段名 | 类型 | 注释 |
|
||||
| ---- | ---- | ---- |
|
||||
| id | int | |
|
||||
| question_id | int | 题目Id |
|
||||
| exam_paper_id | int | 答案Id |
|
||||
| exam_paper_answer_id | int | |
|
||||
| question_type | int | 题型 |
|
||||
| subject_id | int | 学科 |
|
||||
| customer_score | int | 得分 |
|
||||
| question_score | int | 题目原始分数 |
|
||||
| question_text_content_id | int | 问题内容 |
|
||||
| answer | varchar | 做题答案 |
|
||||
| text_content_id | int | 做题内容 |
|
||||
| do_right | bit | 是否正确 |
|
||||
| create_user | int | 做题人 |
|
||||
| create_time | datetime | |
|
||||
| item_order | int | |
|
||||
|
||||
### 消息表 t_message
|
||||
|
||||
| 字段名 | 类型 | 注释 |
|
||||
| ---- | ---- | ---- |
|
||||
| id | int | |
|
||||
| title | varchar | 标题 |
|
||||
| content | varchar | 内容 |
|
||||
| create_time | datetime | |
|
||||
| send_user_id | int | 发送者用户ID |
|
||||
| send_user_name | varchar | 发送者用户名 |
|
||||
| send_real_name | varchar | 发送者真实姓名 |
|
||||
| receive_user_count | int | 接收人数 |
|
||||
| read_count | int | 已读人数 |
|
||||
|
||||
### 用户消息表 t_message_user
|
||||
|
||||
| 字段名 | 类型 | 注释 |
|
||||
| ---- | ---- | ---- |
|
||||
| id | int | |
|
||||
| message_id | int | 消息内容ID |
|
||||
| receive_user_id | int | 接收人ID |
|
||||
| receive_user_name | varchar | 接收人用户名 |
|
||||
| receive_real_name | varchar | 接收人真实姓名 |
|
||||
| readed | bit | 是否已读 |
|
||||
| create_time | datetime | |
|
||||
| read_time | datetime | 阅读时间 |
|
||||
|
||||
### 题目表 t_question
|
||||
|
||||
| 字段名 | 类型 | 注释 |
|
||||
| ---- | ---- | ---- |
|
||||
| id | int | |
|
||||
| question_type | int | 1.单选题 2.多选题 3.判断题 4.填空题 5.简答题 |
|
||||
| subject_id | int | 学科 |
|
||||
| score | int | 题目总分(千分制) |
|
||||
| grade_level | int | 级别 |
|
||||
| difficult | int | 题目难度 |
|
||||
| correct | text | 正确答案 |
|
||||
| info_text_content_id | int | 题目 填空、 题干、解析、答案等信息 |
|
||||
| create_user | int | 创建人 |
|
||||
| status | int | 1.正常 |
|
||||
| create_time | datetime | 创建时间 |
|
||||
| deleted | bit | |
|
||||
|
||||
### 学科表 t_subject
|
||||
|
||||
| 字段名 | 类型 | 注释 |
|
||||
| ---- | ---- | ---- |
|
||||
| id | int | |
|
||||
| name | varchar | 语文 数学 英语 等 |
|
||||
| level | int | 年级 (1-12) 小学 初中 高中 大学 |
|
||||
| level_name | varchar | 一年级、二年级等 |
|
||||
| item_order | int | 排序 |
|
||||
| deleted | bit | |
|
||||
|
||||
### 任务表 t_task_exam
|
||||
|
||||
| 字段名 | 类型 | 注释 |
|
||||
| ---- | ---- | ---- |
|
||||
| id | int | |
|
||||
| title | varchar | |
|
||||
| grade_level | int | 级别 |
|
||||
| frame_text_content_id | int | 任务框架 内容为JSON |
|
||||
| create_user | int | |
|
||||
| create_time | datetime | |
|
||||
| deleted | bit | |
|
||||
| create_user_name | varchar | |
|
||||
|
||||
### 用户任务表 t_task_exam_customer_answer
|
||||
|
||||
| 字段名 | 类型 | 注释 |
|
||||
| ---- | ---- | ---- |
|
||||
| id | int | |
|
||||
| task_exam_id | int | |
|
||||
| create_user | int | |
|
||||
| create_time | datetime | |
|
||||
| text_content_id | int | 任务完成情况(Json) |
|
||||
|
||||
### 文本表 t_text_content
|
||||
|
||||
| 字段名 | 类型 | 注释 |
|
||||
| ---- | ---- | ---- |
|
||||
| id | int | |
|
||||
| content | text | |
|
||||
| create_time | datetime | |
|
||||
|
||||
### 用户表 t_user
|
||||
|
||||
| 字段名 | 类型 | 注释 |
|
||||
| ---- | ---- | ---- |
|
||||
| id | int | |
|
||||
| user_uuid | varchar | |
|
||||
| user_name | varchar | 用户名 |
|
||||
| password | varchar | |
|
||||
| real_name | varchar | 真实姓名 |
|
||||
| age | int | |
|
||||
| sex | int | 1.男 2女 |
|
||||
| birth_day | datetime | |
|
||||
| user_level | int | 学生年级(1-12) |
|
||||
| phone | varchar | |
|
||||
| role | int | 1.学生 2.老师 3.管理员 |
|
||||
| status | int | 1.启用 2禁用 |
|
||||
| image_path | varchar | 头像地址 |
|
||||
| create_time | datetime | |
|
||||
| modify_time | datetime | |
|
||||
| last_active_time | datetime | |
|
||||
| deleted | bit | 是否删除 |
|
||||
| wx_open_id | varchar | 微信openId |
|
||||
|
||||
### 用户日志表 t_user_event_log
|
||||
|
||||
| 字段名 | 类型 | 注释 |
|
||||
| ---- | ---- | ---- |
|
||||
| id | int | |
|
||||
| user_id | int | 用户id |
|
||||
| user_name | varchar | 用户名 |
|
||||
| real_name | varchar | 真实姓名 |
|
||||
| content | text | 内容 |
|
||||
| create_time | datetime | 时间 |
|
||||
|
||||
### 用户Token表 t_user_token
|
||||
|
||||
| 字段名 | 类型 | 注释 |
|
||||
| ---- | ---- | ---- |
|
||||
| id | int | |
|
||||
| token | varchar | |
|
||||
| user_id | int | 用户Id |
|
||||
| wx_open_id | varchar | 微信openId |
|
||||
| create_time | datetime | |
|
||||
| end_time | datetime | |
|
||||
| user_name | varchar | 用户名 |
|
||||
![架构图](https://gitee.com/mindskip/xzs-mysql/raw/master/doc/image/frame/1.png)
|
||||
|
||||
## 项目开发
|
||||
|
||||
@ -316,7 +122,7 @@ npm run build
|
||||
* 执行下列命令,运行程序
|
||||
|
||||
```java
|
||||
nohup java -Duser.timezone=Asia/Shanghai -jar -Dspring.profiles.active=prod xzs-3.2.0.jar > start1.log 2>&1 &
|
||||
nohup java -Duser.timezone=Asia/Shanghai -jar -Dspring.profiles.active=prod xzs-3.1.0.jar > start1.log 2>&1 &
|
||||
```
|
||||
|
||||
### 前后端分离部署
|
||||
@ -351,6 +157,6 @@ server {
|
||||
* 管理员端访问地址为:<http://ip:8001/admin>
|
||||
|
||||
```docker
|
||||
docker pull registry.cn-hangzhou.aliyuncs.com/mindskip/xzs:v3.2.0
|
||||
docker run -d --name xzs --privileged -it -d -p 8001:8001 -v /etc/localtime:/etc/localtime:ro registry.cn-hangzhou.aliyuncs.com/mindskip/xzs:v3.2.0 /usr/sbin/init
|
||||
docker pull registry.cn-hangzhou.aliyuncs.com/mindskip/xzs:v3.0.6
|
||||
docker run -d --name xzs --privileged -it -d -p 8001:8001 registry.cn-hangzhou.aliyuncs.com/mindskip/xzs:v3.0.6 /usr/sbin/init
|
||||
```
|
||||
|
@ -7,7 +7,7 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<meta name="description" content="Description">
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<link rel="stylesheet" href="vue.css">
|
||||
<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css">
|
||||
<link rel="stylesheet" href="xzs.css">
|
||||
<link rel="shortcut icon" href="favicon.png">
|
||||
</head>
|
||||
@ -35,8 +35,7 @@
|
||||
coverpage: false
|
||||
}
|
||||
</script>
|
||||
<!-- Docsify v4 -->
|
||||
<script src="docsify@4.js"></script>
|
||||
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
1005
docs/vue.css
14185
source/vue/xzs-admin/package-lock.json
generated
Normal 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" />
|
||||
|
@ -27,12 +27,6 @@
|
||||
</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"/>
|
||||
@ -78,13 +72,6 @@ export default {
|
||||
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: {
|
||||
|
@ -19,7 +19,7 @@ module.exports = {
|
||||
hotOnly: false,
|
||||
proxy: {
|
||||
'/api': {
|
||||
target: 'http://129.211.1.159:8080',
|
||||
target: 'http://localhost:8000',
|
||||
changeOrigin: true
|
||||
}
|
||||
}
|
||||
|
14180
source/vue/xzs-student/package-lock.json
generated
Normal file
@ -35,7 +35,7 @@
|
||||
"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"
|
||||
|
@ -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" />
|
||||
|
@ -1,5 +1,6 @@
|
||||
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;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;">
|
||||
|
@ -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>
|
||||
|
@ -95,7 +95,7 @@ export default {
|
||||
_this.$alert('试卷得分:' + re.response + '分', '考试结果', {
|
||||
confirmButtonText: '返回考试记录',
|
||||
callback: action => {
|
||||
window.close()
|
||||
_this.$router.push('/record/index')
|
||||
}
|
||||
})
|
||||
} else {
|
||||
|
@ -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>
|
||||
|
@ -19,7 +19,7 @@ module.exports = {
|
||||
hotOnly: false,
|
||||
proxy: {
|
||||
'/api': {
|
||||
target: 'http://129.211.1.159:8080',
|
||||
target: 'http://localhost:8000',
|
||||
changeOrigin: true
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -44,7 +44,7 @@ public class ExamPaperAnswerController extends BaseApiController {
|
||||
vm.setSubjectName(subject.getName());
|
||||
vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime()));
|
||||
User user = userService.selectById(e.getCreateUser());
|
||||
vm.setUserName(user.getRealName());
|
||||
vm.setUserName(user.getUserName());
|
||||
return vm;
|
||||
});
|
||||
return RestResponse.ok(page);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
||||
|
||||
|
@ -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-19291efa.c306629d.css" rel="prefetch"><link href="static/css/chunk-2e16d177.89936c18.css" rel="prefetch"><link href="static/css/chunk-360c43ba.c306629d.css" rel="prefetch"><link href="static/css/chunk-3f483335.7fbe318e.css" rel="prefetch"><link href="static/css/chunk-42236473.c306629d.css" rel="prefetch"><link href="static/css/chunk-5bc3d75d.c306629d.css" rel="prefetch"><link href="static/css/chunk-65f8ca6f.c306629d.css" rel="prefetch"><link href="static/css/chunk-7c62808c.c306629d.css" rel="prefetch"><link href="static/css/chunk-873a42e2.1951fa25.css" rel="prefetch"><link href="static/css/chunk-a85d3c1e.c8588555.css" rel="prefetch"><link href="static/css/chunk-a9d03770.c306629d.css" rel="prefetch"><link href="static/css/chunk-bab2e2c4.c306629d.css" rel="prefetch"><link href="static/js/chunk-066bbd34.8c049bb7.js" rel="prefetch"><link href="static/js/chunk-111f3671.4c2227bd.js" rel="prefetch"><link href="static/js/chunk-157f9069.2a2ffd47.js" rel="prefetch"><link href="static/js/chunk-16f9edc1.e12730ad.js" rel="prefetch"><link href="static/js/chunk-19291efa.bae3d3e0.js" rel="prefetch"><link href="static/js/chunk-2d0c138b.ff17e698.js" rel="prefetch"><link href="static/js/chunk-2d221bd2.586cf167.js" rel="prefetch"><link href="static/js/chunk-2d2300ef.31228a21.js" rel="prefetch"><link href="static/js/chunk-2d230fe7.3bd3f709.js" rel="prefetch"><link href="static/js/chunk-2e16d177.9fe950b0.js" rel="prefetch"><link href="static/js/chunk-360c43ba.45b8867e.js" rel="prefetch"><link href="static/js/chunk-3f483335.d8f930c4.js" rel="prefetch"><link href="static/js/chunk-42236473.aed74adb.js" rel="prefetch"><link href="static/js/chunk-5bc3d75d.a8c7121b.js" rel="prefetch"><link href="static/js/chunk-65f8ca6f.b96de11f.js" rel="prefetch"><link href="static/js/chunk-733c35b2.3f36c42f.js" rel="prefetch"><link href="static/js/chunk-75f11c77.9ffd406c.js" rel="prefetch"><link href="static/js/chunk-78234ca2.2b01cce9.js" rel="prefetch"><link href="static/js/chunk-793f0082.d38eb1ab.js" rel="prefetch"><link href="static/js/chunk-7c62808c.03172c2b.js" rel="prefetch"><link href="static/js/chunk-873a42e2.b76c19b6.js" rel="prefetch"><link href="static/js/chunk-a85d3c1e.9dae7794.js" rel="prefetch"><link href="static/js/chunk-a9d03770.3d0b088b.js" rel="prefetch"><link href="static/js/chunk-bab2e2c4.cf6e5b3d.js" rel="prefetch"><link href="static/js/chunk-d0753fda.4de701a1.js" rel="prefetch"><link href="static/css/chunk-vendors.ee57d822.css" rel="preload" as="style"><link href="static/css/index.9dc49bd0.css" rel="preload" as="style"><link href="static/js/chunk-vendors.6ba47d39.js" rel="preload" as="script"><link href="static/js/index.3d9957c8.js" rel="preload" as="script"><link href="static/css/chunk-vendors.ee57d822.css" rel="stylesheet"><link href="static/css/index.9dc49bd0.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but vue-demo doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.6ba47d39.js"></script><script src="static/js/index.3d9957c8.js"></script></body></html>
|
@ -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}}]);
|
@ -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"}}]);
|
Before Width: | Height: | Size: 17 KiB |
@ -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>
|
@ -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}}
|
@ -1 +0,0 @@
|
||||
.pagination-container[data-v-52c39d8a]{background:#fff}.pagination-container.hidden[data-v-52c39d8a]{display:none}
|
@ -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}
|
@ -1 +0,0 @@
|
||||
.pagination-container[data-v-52c39d8a]{background:#fff}.pagination-container.hidden[data-v-52c39d8a]{display:none}
|
@ -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}
|
@ -1 +0,0 @@
|
||||
.pagination-container[data-v-52c39d8a]{background:#fff}.pagination-container.hidden[data-v-52c39d8a]{display:none}
|
@ -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}
|
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 9.8 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 154 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 11 KiB |