35 Commits

Author SHA1 Message Date
mindskip
a8df81aad4 docker 2020-11-19 09:22:12 +08:00
mindskip
29154803b0 docker部署 2020-11-18 09:51:55 +08:00
mindskip
7101bad7fe docker部署 2020-11-18 09:41:57 +08:00
mindskip
7fb56a99ae 支持docker部署 2020-11-18 09:37:25 +08:00
mindskip
c6fc18483d 部署文档更新 2020-11-17 09:05:27 +08:00
mindskip
d0c8525cbf update 2020-11-16 11:20:56 +08:00
mindskip
e0109cc05e update README.md 2020-11-16 09:37:54 +08:00
mindskip
1bfea8deb8 开发部署教程 2020-11-13 09:22:47 +08:00
mindskip
92bc3e8d6a 组件升级 2020-11-12 09:30:30 +08:00
mindskip
10fe1918d2 开发部署文档 2020-11-11 13:09:20 +08:00
mindskip
db304e38b3 开发部署文档 2020-11-10 09:56:03 +08:00
mindskip
3ade19fcdc 开发、部署教程 2020-11-09 08:27:36 +08:00
mindskip
d3f95c4d46 组件升级 2020-11-06 09:25:58 +08:00
mindskip
ad30c8bf3c 部署教程 2020-11-05 09:35:20 +08:00
mindskip
0260e6c3cb 教程更新 2020-11-04 09:24:30 +08:00
mindskip
fdc3ad80b0 维多多培训考试系统:https://www.mindskip.net/wdd.html 2020-11-03 09:40:02 +08:00
mindskip
0f37f31c43 update README.md 2020-11-02 09:03:52 +08:00
mindskip
e7785d992d update README.md 2020-10-30 09:32:12 +08:00
mindskip
4d2b89e112 update README.md 2020-10-29 09:35:51 +08:00
mindskip
7a296b6a08 update README.md 2020-10-28 10:51:25 +08:00
mindskip
fd74fa76a9 update README.md 2020-10-27 09:13:58 +08:00
mindskip
a78927471d update README.md 2020-10-26 09:05:50 +08:00
mindskip
79a4c4df05 中国开源项目评选地址: https://www.oschina.net/p/alvis-yu-exam 2020-10-23 10:30:31 +08:00
mindskip
83297d9cfc update README.md 2020-10-22 10:05:55 +08:00
mindskip
de874519d3 update README.md 2020-10-21 09:07:57 +08:00
mindskip
b6eddc1dbe 组件更新 2020-10-19 09:08:58 +08:00
mindskip
3e5fada769 update README.md 2020-10-14 10:05:50 +08:00
mindskip
94f625f47b update 2020-10-12 20:00:36 +08:00
mindskip
8f4f2c78e8 update 2020-10-12 08:58:44 +08:00
mindskip
6b62071d05 update docs/README.md 2020-10-09 09:46:08 +08:00
mindskip
caa5f773d8 update doc 2020-09-27 21:08:40 +08:00
mindskip
667db6bac8 docs 2020-09-24 09:55:31 +08:00
mindskip
6f79d3b2e8 组件升级 2020-09-20 21:00:44 +08:00
mindskip
6462e586c8 update 2020-09-13 21:34:07 +08:00
mindskip
3b069128c6 bug fix 2020-09-07 10:32:30 +08:00
195 changed files with 2624 additions and 1901 deletions

View File

@@ -1,43 +1,43 @@
# 学之思在线考试系统
### 项目介绍
学之思在线考试系统是一款 java + vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。目前支持web端和微信小程序能覆盖到pc机和手机等设备。
## 项目介绍
学之思在线考试系统是一款 java + vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。支持web端和微信小程序能覆盖到pc机和手机等设备。
支持多种部署方式集成部署、前后端分离部署、docker部署。
### 开源版使用须知
* 仅用个人学习,商用请购买授权 [http://www.mindskip.net/buy.html](http://www.mindskip.net/buy.html)
* 仅用个人学习
* 禁止将本项目的代码和资源进行任何形式的出售,产生的一切任何后果责任由侵权者自负
### 演示地址
* 官网:[http://www.mindskip.net](http://www.mindskip.net)
* 学之思:[http://www.mindskip.net/xzs.html](http://www.mindskip.net/xzs.html)
* 学多多:[http://www.mindskip.net/xdd.html](http://www.mindskip.net/xdd.html)
* 思多多:[http://www.mindskip.net/sdd.html](http://www.mindskip.net/sdd.html)
* 学之思考试系统[http://www.mindskip.net/xzs.html](http://www.mindskip.net/xzs.html)
* 学多多考试系统[http://www.mindskip.net/xdd.html](http://www.mindskip.net/xdd.html)
* 思多多智能考试平台[http://www.mindskip.net/sdd.html](http://www.mindskip.net/sdd.html)
* 维多多培训考试系统:[http://www.mindskip.net/wdd.html](http://www.mindskip.net/wdd.html)
### 学之思仓库版本地址
* gitee - postgresql [https://gitee.com/mindskip/uexam](https://gitee.com/mindskip/uexam)
* github - postgresql [https://github.com/mindskip/xzs](https://github.com/mindskip/xzs)
* gitee - mysql [https://gitee.com/mindskip/xzs-mysql](https://gitee.com/mindskip/xzs-mysql)
* github - postgresql [https://github.com/mindskip/xzs](https://github.com/mindskip/xzs)
* github - mysql [https://github.com/mindskip/xzs-mysql](https://github.com/mindskip/xzs-mysql)
### 学之思交流群(加群获取数据库脚本)
* 交流五群:`1074095891`
* QQ`2693073475`
* 微信:`alvis-u`
### 开发部署教程
### 大事件
* 2020/5 思多多智能考试平台新版发布 地址:[http://www.mindskip.net/sdd.html](http://www.mindskip.net/sdd.html)
* 2020/2 项目累计突破2000 star
* 2020/1 累计超过150万用户使用
* 2019/12 项目累计突破1000 star
* 2019/11 入围开源中国最受欢迎开源项目
* 2019/10 累计超过100万学生使用
* 2019/10 荣获码云最有价值开源项目
* [http://mindskip.gitee.io/uexam/](http://mindskip.gitee.io/uexam/)
### 学生系统功能
* 登录、注册: 注册时要选年级,过滤不同年级的试卷, 账号为student/123456
* 登录、注册: 注册时要选年级,过滤不同年级的试卷, 账号为student/123456
* 首页: 任务中心、固定试卷、时段试卷、可以能做的一部分试卷
* 试卷中心: 包含了所有能做的试卷,按学科来过滤和分页
* 考试记录: 所有的试卷考试记录在此处分页,可以查看试卷结果、用时、得分、自行批改等
@@ -47,56 +47,32 @@
* 试卷答题和试卷查看: 展示出题目的基本信息和需要填写的内容
### 管理系统功能
* 登录: 账号为 admin/123456
* 登录: 账号为: admin/123456
* 主页: 包含了试卷、题目、做卷数、做题数、用户活跃度的统计功能,活跃度和做题数是按月统计
* 用户管理: 对不同角色 学生、教师、管理员 的增删改查管理功能
* 卷题管理:
1. 试卷列表:试卷的增删改查,新增包含选择学科、试卷类型、试卷名称、考试时间,试卷内容包含添加大标题,然后添加题目到此试卷中,组成一套完整的试卷
2. 题目列表:题目的增删改查,目前题型包含单选题、多选题、判断题、填空题、简单题,支持图片、公式等。
* 任务管理:对任务进行修改
* 教育管理:对不同年级的学科进行增删改查
* 消息中心:可以对多个用户进行消息发送,预留:加入班级,推送试卷等消息
* 消息中心:可以对多个用户进行消息发送
* 日志中心:用户的基本操作进行日志记录,了解用户使用过情况
### 小程序学生系统功能
### 小程序功能
* 用户登录登出功能,登录会自动绑定微信账号,登出会解绑
* 首页包含任务中心、固定试卷、时段试卷、推送试卷模块和web端保持一致
* 首页包含任务中心、固定试卷、时段试卷和web端保持一致
* 试卷模块,固定试卷和时段试卷的分页查询,下拉加载更多,上拉刷新当前数据
* 记录模块,考试结果的分页,包含了试卷基本信息
* 我的模块,包含个人资料的修改,个人动态,消息中心模块
### 技术栈列表
后台系统:
* spring-boot 2.1.6.RELEASE
* spring-boot-security 用户登录验证
* undertow web容器
* postgresql/mysql 优秀的开源数据库
* redis 缓存,提升系统性能
* mybatis 数据库中间件
* hikari 速度最快的数据库连接池
* 七牛云存储 目前10G内免费
前台系统:
* Vue.js 采用新版使用了vue-cli3搭建的系统减少大量配置文件
* element-ui 最流行的vue组件采用的最新版
* vue-element-admin 最新版,对该系统做了大量精简,只保留了部分样式和控件
* echarts 图表统计
* ueditor 填空题扩展插件
微信小程序:
* iView 主题样式
### 使用教程
1. redis 安装
2. 进群获取到数据库脚本,创建表初始化数据
3. /uexam/source/xzs为后台代码建议使用IntelliJ IDEA打开在application-dev.yml文件中配置好postgesql/mysql、redis的服务地址打开XzsApplication文件编译运行,默认端口为8000。
4. 学生系统地址http://localhost:8000/student
5. 管理端地址http://localhost:8000/admin
### 软件架构图
![](doc/image/frame/2.png)
### 系统展示
* 学生考试系统
<table>
<tr>
@@ -129,4 +105,3 @@
<td><img src="doc/image/admin/13.png"/></td>
</tr>
</table>

0
docs/.nojekyll Normal file
View File

171
docs/README.md Normal file
View File

@@ -0,0 +1,171 @@
# 目录
## 项目介绍
学之思在线考试系统是一款 java + vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。支持web端和微信小程序能覆盖到pc机和手机等设备。 支持多种部署方式集成部署、前后端分离部署、docker部署。
## 开源版使用须知
仅用个人学习
禁止将本项目的代码和资源进行任何形式的出售,产生的一切任何后果责任由侵权者自负
## 演示地址
官网:<http://www.mindskip.net>
学之思考试系统:<http://www.mindskip.net/xzs.html>
学多多考试系统:<http://www.mindskip.net/xdd.html>
思多多智能考试平台:<http://www.mindskip.net/sdd.html>
维多多培训考试系统:<http://www.mindskip.net/wdd.html>
## 学之思仓库版本地址
gitee - postgresql [https://gitee.com/mindskip/uexam](https://gitee.com/mindskip/uexam)
gitee - mysql [https://gitee.com/mindskip/xzs-mysql](https://gitee.com/mindskip/xzs-mysql)
github - postgresql [https://github.com/mindskip/xzs](https://github.com/mindskip/xzs)
github - mysql [https://github.com/mindskip/xzs-mysql](https://github.com/mindskip/xzs-mysql)
## 运行环境
| 环境 | 版本 |
| ---- | ---- |
| 操作系统 | Windows / Linux |
| Jdk | 8 |
| Redis | 6.0 |
| PostgreSql / Mysql | 12.0 / 8.0 |
## 技术栈列表
### 后台系统
* spring-boot 2.1.6.RELEASE
* spring-boot-security 用户登录验证
* undertow web容器
* postgresql/mysql 优秀的开源数据库
* redis 缓存,提升系统性能
* mybatis 数据库中间件
* hikari 速度最快的数据库连接池
* 七牛云存储 目前10G内免费
### 前台系统
* Vue.js 采用新版使用了vue-cli3搭建的系统减少大量配置文件
* element-ui 最流行的vue组件采用的最新版
* vue-element-admin 最新版,对该系统做了大量精简,只保留了部分样式和控件
* echarts 图表统计
* ueditor 填空题扩展插件
### 微信小程序
* iView 主题样式
## 项目开发
### 开发说明
* redis 安装
* 进群获取到数据库脚本创建表初始化数据数据库名称为xzs
* 代码分为 mysql / postgresql 2个版本配合响应的数据库使用
* 安装mysql / postgresql ,数据库二选一即可 导入sql脚本。mysql导入xzs-mysql.sql脚本。postgresql导入xzx-postgresql.sql脚本。
### 后端开发
* /uexam/source/xzs为后台代码建议使用IntelliJ IDEA打开
* 打开application-dev.yml文件中配置好postgesql/mysql、redis的服务地址
* 启动后台程序,默认端口为8000。
* 学生系统地址:<http://localhost:8000/student>
* 管理端地址:<http://localhost:8000/admin>
### 前端开发
* 前端使用webstorm或者vscode分别打开文件夹打开源代码\source\vue\xzs-student和source\vue\xzs-admin
* 执行下面2个命令安装node_module
```npm
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
npm install --registry https://registry.npm.taobao.org
```
* 执行下面命令,启动前端代码
```npm
npm run serve
```
* 打包命名
```npm
npm run build
```
### 微信小程序开发
* 去腾讯小程序官网注册账号拿到appid和secret信息
* 下载好微信小程序开发工具
* 打开工具,导入代码 \source\wx\xzs-student
* 修改application.yml文件里的wx配置下面的appid和secret
* 启动小程序开发工具
## 项目部署
### 集成部署
* 分别在\source\vue\xzs-student目录和source\vue\xzs-admin目录执行前端打包命令
```npm
npm run build
```
* 打包后的目录为student和admin
* 将文件放到\source\xzs\src\main\resources\static下然后将java程序打包成jar包
* 修改application-prod.yml中的datasource和redis地址
* 学生端访问地址为:<http://ip:8000/student>
* 管理员端访问地址为:<http://ip:8000/admin>
* 执行下列命令,运行程序
```java
nohup java -Duser.timezone=Asia/Shanghai -jar -Dspring.profiles.active=prod xzs-3.0.7.jar > start1.log 2>&1 &
```
### 前后端分离部署
* 采用前后端分离方式部署后端启动和部署方式1一样
* 前端采用nginx来装载静态页面,先创建/usr/local/xzs/web/目录然后将打包后的student、admin放到此目录下
* 页面访问端口为8001注意检查防火墙端口是否打开
* 学生端访问地址为:<http://ip:8001/student>
* 管理员端访问地址为:<http://ip:8001/admin>
* nginx配置如下
```nginx
server {
listen 8001;
server_name xzs;
location / {
root /usr/local/xzs/web/;
index index.html;
}
location /api/ {
proxy_pass https://localhost:8000;
}
}
```
### docker部署
* 先检查服务器端口、ip转发的是否配置正确否则无法访问到docker内部
* docker内部镜像已经安装了java、mysql、redis、nginx,均已配置好,无需其他操作
* 执行下列docker命令拉取镜像启动容器
* 学生端访问地址为:<http://ip:8001/student>
* 管理员端访问地址为:<http://ip:8001/admin>
```docker
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
docs/_coverpage.md Normal file
View File

@@ -0,0 +1,7 @@
# 学之思考试系统
> 学之思在线考试系统支持多种题型选择题、多选题、判断题、填空题、解答题以及数学公式包含PC端、小程序端扩展性强部署方便、界面设计友好、代码结构清晰。
[Gitee](https://gitee.com/mindskip/uexam)
[Get Started](#quick-start)

23
docs/index.html Normal file
View File

@@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学之思考试系统</title>
<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="//unpkg.com/docsify/lib/themes/vue.css">
<link rel="stylesheet" href="xzs.css">
</head>
<body>
<div id="app"></div>
<script>
window.$docsify = {
name: '学之思考试系统',
repo: 'http://www.mindskip.net/xzs.html',
coverpage: false
}
</script>
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
</body>
</html>

7
docs/xzs.css Normal file
View File

@@ -0,0 +1,7 @@
table th {
min-width: 200px;
}
table td {
text-align: center;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"name": "xzs-admin",
"version": "3.0.7",
"author": "武汉思维跳跃科技",
"author": "武汉思维跳跃科技有限公司",
"description": "学之思管理系统",
"license": "AGPL-3.0",
"private": true,
@@ -16,22 +16,22 @@
},
"dependencies": {
"axios": "^0.19.0",
"core-js": "^3.6.5",
"element-ui": "^2.13.2",
"core-js": "^3.7.0",
"element-ui": "^2.14.1",
"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.3.4",
"vue-router": "^3.4.9",
"vuex": "^3.5.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^4.4.6",
"@vue/cli-plugin-eslint": "^4.4.6",
"@vue/cli-plugin-router": "^4.4.6",
"@vue/cli-plugin-vuex": "^4.4.6",
"@vue/cli-service": "^4.4.6",
"@vue/cli-plugin-babel": "^4.5.8",
"@vue/cli-plugin-eslint": "^4.5.8",
"@vue/cli-plugin-router": "^4.5.8",
"@vue/cli-plugin-vuex": "^4.5.8",
"@vue/cli-service": "^4.5.8",
"@vue/eslint-config-standard": "^4.0.0",
"babel-eslint": "^10.1.0",
"eslint": "^5.16.0",

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"name": "xzs-student",
"version": "3.0.7",
"author": "武汉思维跳跃科技",
"author": "武汉思维跳跃科技有限公司",
"description": "学之思考试系统",
"license": "AGPL-3.0",
"private": true,
@@ -16,21 +16,21 @@
},
"dependencies": {
"axios": "^0.19.0",
"core-js": "^3.4.4",
"element-ui": "^2.13.2",
"core-js": "^3.7.0",
"element-ui": "^2.14.1",
"js-cookie": "2.2.0",
"normalize.css": "8.0.1",
"nprogress": "0.2.0",
"vue": "^2.6.10",
"vue-router": "^3.3.4",
"vue-router": "^3.4.9",
"vuex": "^3.5.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^4.4.6",
"@vue/cli-plugin-eslint": "^4.4.6",
"@vue/cli-plugin-router": "^4.4.6",
"@vue/cli-plugin-vuex": "^4.4.6",
"@vue/cli-service": "^4.4.6",
"@vue/cli-plugin-babel": "^4.5.8",
"@vue/cli-plugin-eslint": "^4.5.8",
"@vue/cli-plugin-router": "^4.5.8",
"@vue/cli-plugin-vuex": "^4.5.8",
"@vue/cli-service": "^4.5.8",
"@vue/eslint-config-standard": "^4.0.0",
"babel-eslint": "^10.0.3",
"eslint": "^5.16.0",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

View File

@@ -35,11 +35,25 @@
<div class="container">
<div class="footer-main">
<h4>产品介绍</h4>
<a href="http://www.mindskip.net" target="_blank" class="footer-main-link">思维跳跃科技</a>
<a href="http://www.mindskip.net/sdd.html" target="_blank" class="footer-main-link">思多多智能考试平台</a>
<a href="http://www.mindskip.net/wdd.html" target="_blank" class="footer-main-link">维多多培训考试系统</a>
<a href="http://www.mindskip.net/xdd.html" target="_blank" class="footer-main-link">学多多考试系统</a>
<a href="http://www.mindskip.net/xzs.html" target="_blank" class="footer-main-link">学之思考试系统</a>
</div>
<div class="footer-main">
<h4>学多多小程序</h4>
<img src="@/assets/code/1.jpg" style="width: 100px;height: 100px;"/>
</div>
<div class="footer-main">
<h4>跃考 H5小程序</h4>
<img src="@/assets/code/2.png" style="width: 100px;height: 100px;"/>
<img src="@/assets/code/3.jpg" style="width: 100px;height: 100px;margin-left: 10px"/>
</div>
<div class="footer-main">
<h4>维考 H5小程序</h4>
<img src="@/assets/code/6.png" style="width: 100px;height: 100px;"/>
<img src="@/assets/code/7.jpg" style="width: 100px;height: 100px;margin-left: 10px"/>
</div>
<div class="footer-main">
<h4>关于我们</h4>
<img src="@/assets/4.jpg" style="width: 100px;height: 100px;"/>

View File

@@ -9,7 +9,7 @@
<packaging>jar</packaging>
<name>xzs</name>
<description>武汉思维跳跃科技-学之思考试系统</description>
<description>学之思考试系统 - 武汉思维跳跃科技有限公司</description>
<properties>

View File

@@ -8,7 +8,7 @@ import org.springframework.cache.annotation.EnableCaching;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@SpringBootApplication
@EnableTransactionManagement

View File

@@ -8,7 +8,7 @@ import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public class BaseApiController {
protected final static String DEFAULT_PAGE_SIZE = "10";

View File

@@ -2,7 +2,7 @@ package com.mindskip.xzs.base;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public abstract class BaseEntity {

View File

@@ -3,7 +3,7 @@ package com.mindskip.xzs.base;
import lombok.Data;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Data

View File

@@ -1,7 +1,7 @@
package com.mindskip.xzs.base;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public class RestResponse<T> {
private int code;

View File

@@ -1,7 +1,7 @@
package com.mindskip.xzs.base;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public enum SystemCode {
/**

View File

@@ -6,7 +6,7 @@ import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Component
public class ApplicationContextProvider implements ApplicationContextAware {

View File

@@ -7,7 +7,7 @@ import java.util.List;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@ConfigurationProperties(prefix = "system")
@Data

View File

@@ -10,7 +10,7 @@ import java.util.List;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Configuration

View File

@@ -3,7 +3,7 @@ package com.mindskip.xzs.configuration.spring.security;
import lombok.Data;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Data

View File

@@ -12,7 +12,7 @@ import java.io.IOException;
/**
* 未登录
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Component
public final class LoginAuthenticationEntryPoint extends LoginUrlAuthenticationEntryPoint {

View File

@@ -12,7 +12,7 @@ import java.io.IOException;
/**
* 账号验证异常
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Component
public class RestAuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler {

View File

@@ -24,9 +24,8 @@ import java.util.ArrayList;
/**
* 登录用户名密码验证
*
* @author : Alvis
* @author : 武汉思维跳跃科技有限公司
* Description : 身份验证
* Creation Date: 2018-05-02 5:00 PM
*/
@Component

View File

@@ -20,7 +20,7 @@ import java.util.Date;
/**
* 登录成功返回
*
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Component
@AllArgsConstructor

View File

@@ -14,9 +14,8 @@ import org.springframework.stereotype.Component;
import java.util.ArrayList;
/**
* @author : Alvis
* @author : 武汉思维跳跃科技有限公司
* Description : 验证通过之后,第二、三...请求,会调用此类
* Creation Date: 2018-05-02 4:32 PM
*/
@Component

View File

@@ -19,7 +19,7 @@ import java.io.InputStream;
/**
* 登录参数序列化
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public class RestLoginAuthenticationFilter extends AbstractAuthenticationProcessingFilter {

View File

@@ -18,7 +18,7 @@ import java.util.Date;
/**
* 用户登出
*
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Component
@AllArgsConstructor

View File

@@ -7,7 +7,7 @@ import javax.servlet.http.HttpServletRequest;
/**
* 记住我Cookie
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public class RestTokenBasedRememberMeServices extends TokenBasedRememberMeServices {
public RestTokenBasedRememberMeServices(String key, UserDetailsService userDetailsService) {

View File

@@ -10,7 +10,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public class RestUtil {
private static final Logger logger = LoggerFactory.getLogger(RestUtil.class);

View File

@@ -19,7 +19,7 @@ import java.util.List;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Configuration

View File

@@ -26,7 +26,7 @@ import java.util.UUID;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@RestController("AdminUserController")
@RequestMapping(value = "/api/admin/user")

View File

@@ -31,7 +31,7 @@ import java.util.stream.Collectors;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@RestController("StudentUserController")
@RequestMapping(value = "/api/student/user")

View File

@@ -32,7 +32,7 @@ import java.util.stream.Collectors;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Controller("WXStudentUserController")
@RequestMapping(value = "/api/wx/student/user")

View File

@@ -6,10 +6,7 @@ import java.util.Map;
public enum ExamPaperTypeEnum {
Fixed(1, "固定试卷"),
Temp(2, "临时时间"),
Classes(3, "班级试卷"),
TimeLimit(4, "时段试卷"),
Push(5, "推送试卷"),
Task(6, "任务试卷");
int code;

View File

@@ -4,7 +4,7 @@ import com.mindskip.xzs.domain.ExamPaperAnswerInfo;
import org.springframework.context.ApplicationEvent;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public class CalculateExamPaperAnswerCompleteEvent extends ApplicationEvent {

View File

@@ -4,7 +4,7 @@ import com.mindskip.xzs.domain.User;
import org.springframework.context.ApplicationEvent;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public class OnRegistrationCompleteEvent extends ApplicationEvent {

View File

@@ -1,7 +1,7 @@
package com.mindskip.xzs.exception;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public class BusinessException extends RuntimeException {

View File

@@ -19,7 +19,7 @@ import java.util.List;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Component
@AllArgsConstructor

View File

@@ -8,7 +8,7 @@ import org.springframework.stereotype.Component;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Component
public class EmailSendListener implements ApplicationListener<OnRegistrationCompleteEvent> {

View File

@@ -10,7 +10,7 @@ import java.util.List;
import java.util.Map;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Mapper

View File

@@ -3,7 +3,7 @@ package com.mindskip.xzs.service;
import com.mindskip.xzs.domain.User;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public interface AuthenticationService {

View File

@@ -8,7 +8,7 @@ import com.github.pagehelper.PageInfo;
import java.util.List;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public interface UserService extends BaseService<User> {

View File

@@ -9,7 +9,7 @@ import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Service
@AllArgsConstructor

View File

@@ -21,7 +21,7 @@ import java.util.List;
import java.util.Map;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Service
public class UserServiceImpl extends BaseServiceImpl<User> implements UserService {

View File

@@ -10,7 +10,7 @@ import java.time.Duration;
import java.util.*;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public class DateTimeUtil {

View File

@@ -1,6 +1,7 @@
package com.mindskip.xzs.utility;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
@@ -14,6 +15,10 @@ public class JsonUtil {
private static final ObjectMapper MAPPER = new ObjectMapper();
private static final Logger logger = LoggerFactory.getLogger(JsonUtil.class);
static {
MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
public static <T> String toJsonStr(T o) {
try {
return MAPPER.writeValueAsString(o);

View File

@@ -11,7 +11,7 @@ import java.security.NoSuchAlgorithmException;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public class Md5Util {

View File

@@ -6,7 +6,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public class PageInfoHelper {

View File

@@ -13,7 +13,7 @@ import java.util.Base64;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
public class RsaUtil {
/**

View File

@@ -5,7 +5,7 @@ import lombok.Data;
import org.modelmapper.ModelMapper;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Data

View File

@@ -4,7 +4,7 @@ import com.mindskip.xzs.base.BasePage;
import lombok.Data;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Data

View File

@@ -4,7 +4,7 @@ import com.mindskip.xzs.base.BasePage;
import lombok.Data;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Data

View File

@@ -6,7 +6,7 @@ import com.mindskip.xzs.viewmodel.BaseVM;
import lombok.Data;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Data

View File

@@ -6,7 +6,7 @@ import com.mindskip.xzs.viewmodel.BaseVM;
import lombok.Data;
/**
* @author alvis
* @author 武汉思维跳跃科技有限公司
*/
@Data

File diff suppressed because one or more lines are too long

View File

@@ -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 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%;
}
@@ -7,10 +7,10 @@
margin: 0;
height:100%;
width: 100%;
}</style><script src=./admin/components/echarts/echarts.min.js></script><script src=./admin/components/echarts/theme/macarons.js></script><script src="./admin/components/ueditor/ueditor.config.js?v=3"></script><script src="./admin/components/ueditor/ueditor.all.js?v=3"></script><script src=./admin/components/ueditor/lang/zh-cn/zh-cn.js></script><script src=./admin/components/ueditor/kityformula-plugin/addKityFormulaDialog.js></script><script src=./admin/components/ueditor/kityformula-plugin/getKfContent.js></script><script src=./admin/components/ueditor/kityformula-plugin/defaultFilterFix.js></script><script>var _hmt = _hmt || [];
}</style><script src="./admin/components/echarts/echarts.min.js"></script><script src="./admin/components/echarts/theme/macarons.js"></script><script src="./admin/components/ueditor/ueditor.config.js?v=3"></script><script src="./admin/components/ueditor/ueditor.all.js?v=3"></script><script src="./admin/components/ueditor/lang/zh-cn/zh-cn.js"></script><script src="./admin/components/ueditor/kityformula-plugin/addKityFormulaDialog.js"></script><script src="./admin/components/ueditor/kityformula-plugin/getKfContent.js"></script><script src="./admin/components/ueditor/kityformula-plugin/defaultFilterFix.js"></script><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-04b6c2be.b6b9412a.css rel=prefetch><link href=static/css/chunk-07d991b3.b6b9412a.css rel=prefetch><link href=static/css/chunk-1159e38a.a13e9690.css rel=prefetch><link href=static/css/chunk-37f7a892.b6b9412a.css rel=prefetch><link href=static/css/chunk-4472f2d7.6aadbd54.css rel=prefetch><link href=static/css/chunk-448755e2.b6b9412a.css rel=prefetch><link href=static/css/chunk-4cf8ab8c.b6b9412a.css rel=prefetch><link href=static/css/chunk-5025ea04.b6b9412a.css rel=prefetch><link href=static/css/chunk-63af86fe.b6b9412a.css rel=prefetch><link href=static/css/chunk-6e3b3ca0.60f7ef12.css rel=prefetch><link href=static/css/chunk-71f81c10.d7c9fb7c.css rel=prefetch><link href=static/css/chunk-913f50a6.b6b9412a.css rel=prefetch><link href=static/css/chunk-c2aa2eac.b6b9412a.css rel=prefetch><link href=static/css/chunk-c7b9eaf2.03972c94.css rel=prefetch><link href=static/js/chunk-04b6c2be.d3d1d894.js rel=prefetch><link href=static/js/chunk-07d991b3.91538e3d.js rel=prefetch><link href=static/js/chunk-1159e38a.e9f2d52a.js rel=prefetch><link href=static/js/chunk-16f9edc1.9e607ba9.js rel=prefetch><link href=static/js/chunk-2d0c138b.6013aadc.js rel=prefetch><link href=static/js/chunk-2d221bd2.f0317f6a.js rel=prefetch><link href=static/js/chunk-2d2300ef.364e9538.js rel=prefetch><link href=static/js/chunk-2d230fe7.042d38d1.js rel=prefetch><link href=static/js/chunk-37f7a892.4b2c4910.js rel=prefetch><link href=static/js/chunk-4472f2d7.ce2acb74.js rel=prefetch><link href=static/js/chunk-448755e2.6bfbe912.js rel=prefetch><link href=static/js/chunk-4cf8ab8c.8e8d8e31.js rel=prefetch><link href=static/js/chunk-5025ea04.4db07336.js rel=prefetch><link href=static/js/chunk-63af86fe.1559b7ea.js rel=prefetch><link href=static/js/chunk-6e3b3ca0.9246343f.js rel=prefetch><link href=static/js/chunk-71f81c10.6f8ea9d4.js rel=prefetch><link href=static/js/chunk-733c35b2.b1ed088c.js rel=prefetch><link href=static/js/chunk-75f11c77.127f2336.js rel=prefetch><link href=static/js/chunk-78234ca2.20c96828.js rel=prefetch><link href=static/js/chunk-793f0082.c3d69e72.js rel=prefetch><link href=static/js/chunk-913f50a6.98221e66.js rel=prefetch><link href=static/js/chunk-c2aa2eac.0f9bd604.js rel=prefetch><link href=static/js/chunk-c7b9eaf2.d49733ad.js rel=prefetch><link href=static/js/chunk-d0753fda.cd82a2db.js rel=prefetch><link href=static/css/chunk-vendors.ee57d822.css rel=preload as=style><link href=static/css/index.74782572.css rel=preload as=style><link href=static/js/chunk-vendors.7fbfa118.js rel=preload as=script><link href=static/js/index.7ba6ea01.js rel=preload as=script><link href=static/css/chunk-vendors.ee57d822.css rel=stylesheet><link href=static/css/index.74782572.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.7fbfa118.js></script><script src=static/js/index.7ba6ea01.js></script></body></html>
})()</script><link href="static/css/chunk-0226adbc.0e1403ca.css" rel="prefetch"><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-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-0226adbc.dddb072c.js" rel="prefetch"><link href="static/js/chunk-066bbd34.e13de155.js" rel="prefetch"><link href="static/js/chunk-111f3671.626a0836.js" rel="prefetch"><link href="static/js/chunk-157f9069.73f4fdd0.js" rel="prefetch"><link href="static/js/chunk-16f9edc1.7a44c77c.js" rel="prefetch"><link href="static/js/chunk-2d0c138b.64a87593.js" rel="prefetch"><link href="static/js/chunk-2d221bd2.03aead1b.js" rel="prefetch"><link href="static/js/chunk-2d2300ef.4ef86efb.js" rel="prefetch"><link href="static/js/chunk-2d230fe7.042d38d1.js" rel="prefetch"><link href="static/js/chunk-2e16d177.8c320377.js" rel="prefetch"><link href="static/js/chunk-360c43ba.2365c7e7.js" rel="prefetch"><link href="static/js/chunk-42236473.476b0b60.js" rel="prefetch"><link href="static/js/chunk-5bc3d75d.a4a9b88a.js" rel="prefetch"><link href="static/js/chunk-65f8ca6f.01fd3ef0.js" rel="prefetch"><link href="static/js/chunk-733c35b2.7d8ff87a.js" rel="prefetch"><link href="static/js/chunk-75f11c77.412d839e.js" rel="prefetch"><link href="static/js/chunk-78234ca2.0ffc825f.js" rel="prefetch"><link href="static/js/chunk-793f0082.547083f3.js" rel="prefetch"><link href="static/js/chunk-7c62808c.8fc263fb.js" rel="prefetch"><link href="static/js/chunk-873a42e2.fb187784.js" rel="prefetch"><link href="static/js/chunk-a85d3c1e.ea88b0b5.js" rel="prefetch"><link href="static/js/chunk-a9d03770.a1e9bd36.js" rel="prefetch"><link href="static/js/chunk-bab2e2c4.5b4119f2.js" rel="prefetch"><link href="static/js/chunk-d0753fda.af6d4d94.js" rel="prefetch"><link href="static/css/chunk-vendors.ee57d822.css" rel="preload" as="style"><link href="static/css/index.a92eac13.css" rel="preload" as="style"><link href="static/js/chunk-vendors.9dd0934b.js" rel="preload" as="script"><link href="static/js/index.68027ebf.js" rel="preload" as="script"><link href="static/css/chunk-vendors.ee57d822.css" rel="stylesheet"><link href="static/css/index.a92eac13.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.9dd0934b.js"></script><script src="static/js/index.68027ebf.js"></script></body></html>

View File

@@ -1 +1 @@
@supports (-webkit-mask:none) and (not (cater-color:#fff)){.login-container .el-input input{color:#fff}}.login-container .el-input{display:inline-block;height:47px;width:85%}.login-container .el-input input{background:transparent;border:0;-webkit-appearance:none;border-radius:0;padding:12px 5px 12px 15px;color:#fff;height:47px;caret-color:#fff}.login-container .el-input input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #283443 inset!important;box-shadow:inset 0 0 0 1000px #283443!important;-webkit-text-fill-color:#fff!important}.login-container .el-form-item{border:1px solid hsla(0,0%,100%,.1);background:rgba(0,0,0,.1);border-radius:5px;color:#454545}.login-container[data-v-e35e4c42]{min-height:100%;width:100%;background-color:#2d3a4b;overflow:hidden}.login-container .login-form[data-v-e35e4c42]{position:relative;width:520px;max-width:100%;padding:30px 50px 10px 50px;margin:120px auto auto auto;overflow:hidden;background:rgba(252,254,255,.11)}.login-container .tips[data-v-e35e4c42]{font-size:14px;color:#fff;margin-bottom:10px}.login-container .tips span[data-v-e35e4c42]:first-of-type{margin-right:16px}.login-container .svg-container[data-v-e35e4c42]{padding:6px 5px 6px 15px;color:#889aa4;vertical-align:middle;width:30px;display:inline-block}.login-container .title-container[data-v-e35e4c42]{position:relative}.login-container .title-container .title[data-v-e35e4c42]{font-size:26px;color:#eee;margin:0 auto 40px auto;text-align:center;font-weight:700}.login-container .show-pwd[data-v-e35e4c42]{position:absolute;right:10px;top:7px;font-size:16px;color:#889aa4;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.login-container .thirdparty-button[data-v-e35e4c42]{position:absolute;right:0;bottom:6px}@media only screen and (max-width:470px){.login-container .thirdparty-button[data-v-e35e4c42]{display:none}}
@supports (-webkit-mask:none) and (not (cater-color:#fff)){.login-container .el-input input{color:#fff}}.login-container .el-input{display:inline-block;height:47px;width:85%}.login-container .el-input input{background:transparent;border:0;-webkit-appearance:none;border-radius:0;padding:12px 5px 12px 15px;color:#fff;height:47px;caret-color:#fff}.login-container .el-input input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #283443 inset!important;box-shadow:inset 0 0 0 1000px #283443!important;-webkit-text-fill-color:#fff!important}.login-container .el-form-item{border:1px solid hsla(0,0%,100%,.1);background:rgba(0,0,0,.1);border-radius:5px;color:#454545}.login-container[data-v-675a2798]{min-height:100%;width:100%;background-color:#2d3a4b;overflow:hidden}.login-container .login-form[data-v-675a2798]{position:relative;width:520px;max-width:100%;padding:30px 50px 10px 50px;margin:120px auto auto auto;overflow:hidden;background:rgba(252,254,255,.11)}.login-container .tips[data-v-675a2798]{font-size:14px;color:#fff;margin-bottom:10px}.login-container .tips span[data-v-675a2798]:first-of-type{margin-right:16px}.login-container .svg-container[data-v-675a2798]{padding:6px 5px 6px 15px;color:#889aa4;vertical-align:middle;width:30px;display:inline-block}.login-container .title-container[data-v-675a2798]{position:relative}.login-container .title-container .title[data-v-675a2798]{font-size:26px;color:#eee;margin:0 auto 40px auto;text-align:center;font-weight:700}.login-container .show-pwd[data-v-675a2798]{position:absolute;right:10px;top:7px;font-size:16px;color:#889aa4;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.login-container .thirdparty-button[data-v-675a2798]{position:absolute;right:0;bottom:6px}@media only screen and (max-width:470px){.login-container .thirdparty-button[data-v-675a2798]{display:none}}

View File

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

View File

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

View File

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

View File

@@ -0,0 +1 @@
.dashboard-container[data-v-777ccb68]{padding:32px;background-color:#f0f2f5;position:relative}.dashboard-container .chart-wrapper[data-v-777ccb68]{background:#fff;padding:16px 16px 0;margin-bottom:32px}.dashboard-editor-container[data-v-777ccb68]{padding:32px;background-color:#f0f2f5;position:relative}.dashboard-editor-container .github-corner[data-v-777ccb68]{position:absolute;top:0;border:0;right:0}.dashboard-editor-container .chart-wrapper[data-v-777ccb68]{background:#fff;padding:16px 16px 0;margin-bottom:32px}@media (max-width:1024px){.chart-wrapper[data-v-777ccb68]{padding:8px}}.panel-group[data-v-777ccb68]{margin-top:18px}.panel-group .card-panel-col[data-v-777ccb68]{margin-bottom:32px}.panel-group .card-panel[data-v-777ccb68]{height:108px;cursor:pointer;font-size:12px;position:relative;overflow:hidden;color:#666;background:#fff;-webkit-box-shadow:4px 4px 40px rgba(0,0,0,.05);box-shadow:4px 4px 40px rgba(0,0,0,.05);border-color:rgba(0,0,0,.05)}.panel-group .card-panel:hover .card-panel-icon-wrapper[data-v-777ccb68]{color:#fff}.panel-group .card-panel:hover .icon-people[data-v-777ccb68]{background:#40c9c6}.panel-group .card-panel:hover .icon-message[data-v-777ccb68]{background:#36a3f7}.panel-group .card-panel:hover .icon-money[data-v-777ccb68]{background:#f4516c}.panel-group .card-panel:hover .icon-shopping[data-v-777ccb68]{background:#34bfa3}.panel-group .card-panel .icon-people[data-v-777ccb68]{color:#40c9c6}.panel-group .card-panel .icon-message[data-v-777ccb68]{color:#36a3f7}.panel-group .card-panel .icon-money[data-v-777ccb68]{color:#f4516c}.panel-group .card-panel .icon-shopping[data-v-777ccb68]{color:#34bfa3}.panel-group .card-panel .card-panel-icon-wrapper[data-v-777ccb68]{float:left;margin:14px 0 0 14px;padding:16px;-webkit-transition:all .38s ease-out;transition:all .38s ease-out;border-radius:6px}.panel-group .card-panel .card-panel-icon[data-v-777ccb68]{float:left;font-size:48px}.panel-group .card-panel .card-panel-description[data-v-777ccb68]{float:right;font-weight:700;margin:26px;margin-left:0}.panel-group .card-panel .card-panel-description .card-panel-text[data-v-777ccb68]{line-height:18px;color:rgba(0,0,0,.45);font-size:16px;margin-bottom:12px}.panel-group .card-panel .card-panel-description .card-panel-num[data-v-777ccb68]{font-size:20px}@media (max-width:550px){.card-panel-description[data-v-777ccb68]{display:none}.card-panel-icon-wrapper[data-v-777ccb68]{float:none!important;width:100%;height:100%;margin:0!important}.card-panel-icon-wrapper .svg-icon[data-v-777ccb68]{display:block;margin:14px auto!important;float:none!important}}.echarts-line[data-v-777ccb68]{background:#fff;padding:16px 16px 0;margin-bottom:32px}

View File

@@ -1 +0,0 @@
.dashboard-container[data-v-3089d1f3]{padding:32px;background-color:#f0f2f5;position:relative}.dashboard-container .chart-wrapper[data-v-3089d1f3]{background:#fff;padding:16px 16px 0;margin-bottom:32px}.dashboard-editor-container[data-v-3089d1f3]{padding:32px;background-color:#f0f2f5;position:relative}.dashboard-editor-container .github-corner[data-v-3089d1f3]{position:absolute;top:0;border:0;right:0}.dashboard-editor-container .chart-wrapper[data-v-3089d1f3]{background:#fff;padding:16px 16px 0;margin-bottom:32px}@media (max-width:1024px){.chart-wrapper[data-v-3089d1f3]{padding:8px}}.panel-group[data-v-3089d1f3]{margin-top:18px}.panel-group .card-panel-col[data-v-3089d1f3]{margin-bottom:32px}.panel-group .card-panel[data-v-3089d1f3]{height:108px;cursor:pointer;font-size:12px;position:relative;overflow:hidden;color:#666;background:#fff;-webkit-box-shadow:4px 4px 40px rgba(0,0,0,.05);box-shadow:4px 4px 40px rgba(0,0,0,.05);border-color:rgba(0,0,0,.05)}.panel-group .card-panel:hover .card-panel-icon-wrapper[data-v-3089d1f3]{color:#fff}.panel-group .card-panel:hover .icon-people[data-v-3089d1f3]{background:#40c9c6}.panel-group .card-panel:hover .icon-message[data-v-3089d1f3]{background:#36a3f7}.panel-group .card-panel:hover .icon-money[data-v-3089d1f3]{background:#f4516c}.panel-group .card-panel:hover .icon-shopping[data-v-3089d1f3]{background:#34bfa3}.panel-group .card-panel .icon-people[data-v-3089d1f3]{color:#40c9c6}.panel-group .card-panel .icon-message[data-v-3089d1f3]{color:#36a3f7}.panel-group .card-panel .icon-money[data-v-3089d1f3]{color:#f4516c}.panel-group .card-panel .icon-shopping[data-v-3089d1f3]{color:#34bfa3}.panel-group .card-panel .card-panel-icon-wrapper[data-v-3089d1f3]{float:left;margin:14px 0 0 14px;padding:16px;-webkit-transition:all .38s ease-out;transition:all .38s ease-out;border-radius:6px}.panel-group .card-panel .card-panel-icon[data-v-3089d1f3]{float:left;font-size:48px}.panel-group .card-panel .card-panel-description[data-v-3089d1f3]{float:right;font-weight:700;margin:26px;margin-left:0}.panel-group .card-panel .card-panel-description .card-panel-text[data-v-3089d1f3]{line-height:18px;color:rgba(0,0,0,.45);font-size:16px;margin-bottom:12px}.panel-group .card-panel .card-panel-description .card-panel-num[data-v-3089d1f3]{font-size:20px}@media (max-width:550px){.card-panel-description[data-v-3089d1f3]{display:none}.card-panel-icon-wrapper[data-v-3089d1f3]{float:none!important;width:100%;height:100%;margin:0!important}.card-panel-icon-wrapper .svg-icon[data-v-3089d1f3]{display:block;margin:14px auto!important;float:none!important}}.echarts-line[data-v-3089d1f3]{background:#fff;padding:16px 16px 0;margin-bottom:32px}

View File

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

View File

@@ -0,0 +1 @@
.box-center[data-v-bd51907a]{margin:0 auto;display:table}.text-muted[data-v-bd51907a]{color:#777}.user-profile .user-name[data-v-bd51907a]{font-weight:700}.user-profile .box-center[data-v-bd51907a]{padding-top:10px}.user-profile .user-role[data-v-bd51907a]{padding-top:10px;font-weight:400;font-size:14px}.user-profile .box-social[data-v-bd51907a]{padding-top:30px}.user-profile .box-social .el-table[data-v-bd51907a]{border-top:1px solid #dfe6ec}.user-profile .user-follow[data-v-bd51907a]{padding-top:20px}.user-bio[data-v-bd51907a]{margin-top:20px;color:#606266}.user-bio span[data-v-bd51907a]{padding-left:4px}.user-bio .user-bio-section[data-v-bd51907a]{font-size:14px;padding:15px 0}.user-bio .user-bio-section .user-bio-section-header[data-v-bd51907a]{border-bottom:1px solid #dfe6ec;padding-bottom:10px;margin-bottom:10px;font-weight:700}

View File

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

View File

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

View File

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

View File

@@ -1 +0,0 @@
.pagination-container[data-v-4e4cda8d]{background:#fff}.pagination-container.hidden[data-v-4e4cda8d]{display:none}.exampaper-item-box .q-title{margin:0 5px 0 5px}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1 +0,0 @@
.box-center[data-v-8266b938]{margin:0 auto;display:table}.text-muted[data-v-8266b938]{color:#777}.user-profile .user-name[data-v-8266b938]{font-weight:700}.user-profile .box-center[data-v-8266b938]{padding-top:10px}.user-profile .user-role[data-v-8266b938]{padding-top:10px;font-weight:400;font-size:14px}.user-profile .box-social[data-v-8266b938]{padding-top:30px}.user-profile .box-social .el-table[data-v-8266b938]{border-top:1px solid #dfe6ec}.user-profile .user-follow[data-v-8266b938]{padding-top:20px}.user-bio[data-v-8266b938]{margin-top:20px;color:#606266}.user-bio span[data-v-8266b938]{padding-left:4px}.user-bio .user-bio-section[data-v-8266b938]{font-size:14px;padding:15px 0}.user-bio .user-bio-section .user-bio-section-header[data-v-8266b938]{border-bottom:1px solid #dfe6ec;padding-bottom:10px;margin-bottom:10px;font-weight:700}

View File

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

View File

@@ -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}}

View File

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

View File

@@ -0,0 +1 @@
.pagination-container[data-v-90fd946a]{background:#fff}.pagination-container.hidden[data-v-90fd946a]{display:none}.exampaper-item-box .q-title{margin:0 5px 0 5px}

View File

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

View File

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

View File

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

View File

@@ -1 +0,0 @@
.wscn-http404-container[data-v-27c8e228]{-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;top:40%;left:50%}.wscn-http404[data-v-27c8e228]{position:relative;width:1200px;padding:0 50px;overflow:hidden}.wscn-http404 .pic-404[data-v-27c8e228]{position:relative;float:left;width:600px;overflow:hidden}.wscn-http404 .pic-404__parent[data-v-27c8e228]{width:100%}.wscn-http404 .pic-404__child[data-v-27c8e228]{position:absolute}.wscn-http404 .pic-404__child.left[data-v-27c8e228]{width:80px;top:17px;left:220px;opacity:0;-webkit-animation-name:cloudLeft-data-v-27c8e228;animation-name:cloudLeft-data-v-27c8e228;-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-27c8e228]{width:46px;top:10px;left:420px;opacity:0;-webkit-animation-name:cloudMid-data-v-27c8e228;animation-name:cloudMid-data-v-27c8e228;-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-27c8e228]{width:62px;top:100px;left:500px;opacity:0;-webkit-animation-name:cloudRight-data-v-27c8e228;animation-name:cloudRight-data-v-27c8e228;-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-27c8e228{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-27c8e228{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-27c8e228{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-27c8e228{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-27c8e228{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-27c8e228{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-27c8e228]{position:relative;float:left;width:300px;padding:30px 0;overflow:hidden}.wscn-http404 .bullshit__oops[data-v-27c8e228]{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-27c8e228],.wscn-http404 .bullshit__oops[data-v-27c8e228]{font-weight:700;opacity:0;-webkit-animation-name:slideUp-data-v-27c8e228;animation-name:slideUp-data-v-27c8e228;-webkit-animation-duration:.5s;animation-duration:.5s}.wscn-http404 .bullshit__headline[data-v-27c8e228]{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-27c8e228]{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-27c8e228],.wscn-http404 .bullshit__return-home[data-v-27c8e228]{opacity:0;-webkit-animation-name:slideUp-data-v-27c8e228;animation-name:slideUp-data-v-27c8e228;-webkit-animation-duration:.5s;animation-duration:.5s}.wscn-http404 .bullshit__return-home[data-v-27c8e228]{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-27c8e228{0%{-webkit-transform:translateY(60px);transform:translateY(60px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes slideUp-data-v-27c8e228{0%{-webkit-transform:translateY(60px);transform:translateY(60px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}

View File

@@ -0,0 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-0226adbc"],{2017:function(e,o,t){"use strict";t("cafe")},"3c9b":function(e,o,t){"use strict";t("e852")},"9ed6":function(e,o,t){"use strict";t.r(o);var s=function(){var e=this,o=e.$createElement,t=e._self._c||o;return t("div",{staticClass:"login-container"},[t("el-form",{ref:"loginForm",staticClass:"login-form",attrs:{model:e.loginForm,rules:e.loginRules,"auto-complete":"on","label-position":"left"}},[t("div",{staticClass:"title-container"},[t("h3",{staticClass:"title"},[e._v("学之思管理系统")])]),t("el-form-item",{attrs:{prop:"userName"}},[t("span",{staticClass:"svg-container"},[t("svg-icon",{attrs:{"icon-class":"user"}})],1),t("el-input",{ref:"userName",attrs:{placeholder:"用户名",name:"userName",type:"text",tabindex:"1","auto-complete":"on"},model:{value:e.loginForm.userName,callback:function(o){e.$set(e.loginForm,"userName",o)},expression:"loginForm.userName"}})],1),t("el-tooltip",{attrs:{content:"Caps lock is On",placement:"right",manual:""},model:{value:e.capsTooltip,callback:function(o){e.capsTooltip=o},expression:"capsTooltip"}},[t("el-form-item",{attrs:{prop:"password"}},[t("span",{staticClass:"svg-container"},[t("svg-icon",{attrs:{"icon-class":"password"}})],1),t("el-input",{key:e.passwordType,ref:"password",attrs:{type:e.passwordType,placeholder:"密码",name:"password",tabindex:"2","auto-complete":"on"},on:{blur:function(o){e.capsTooltip=!1}},nativeOn:{keyup:[function(o){return e.checkCapslock(o)},function(o){return!o.type.indexOf("key")&&e._k(o.keyCode,"enter",13,o.key,"Enter")?null:e.handleLogin(o)}]},model:{value:e.loginForm.password,callback:function(o){e.$set(e.loginForm,"password",o)},expression:"loginForm.password"}}),t("span",{staticClass:"show-pwd",on:{click:e.showPwd}},[t("svg-icon",{attrs:{"icon-class":"password"===e.passwordType?"eye":"eye-open"}})],1)],1)],1),t("el-checkbox",{staticStyle:{"margin-bottom":"20px","margin-left":"5px"},model:{value:e.loginForm.remember,callback:function(o){e.$set(e.loginForm,"remember",o)},expression:"loginForm.remember"}},[e._v("记住密码")]),t("el-button",{staticStyle:{width:"100%","margin-bottom":"30px"},attrs:{loading:e.loading,type:"primary"},nativeOn:{click:function(o){return o.preventDefault(),e.handleLogin(o)}}},[e._v("登录")])],1),e._m(0)],1)},n=[function(){var e=this,o=e.$createElement,t=e._self._c||o;return t("div",{staticClass:"account-foot-copyright"},[t("span",[e._v("Copyright © 2020 武汉思维跳跃科技有限公司 版权所有")])])}],a=t("5530"),r=t("2f62"),i=t("7ded"),l={name:"Login",data:function(){var e=function(e,o,t){o.length<5?t(new Error("用户名不能少于5个字符")):t()},o=function(e,o,t){o.length<5?t(new Error("密码不能少于5个字符")):t()};return{loginForm:{userName:"",password:"",remember:!1},loginRules:{userName:[{required:!0,trigger:"blur",validator:e}],password:[{required:!0,trigger:"blur",validator:o}]},passwordType:"password",capsTooltip:!1,loading:!1,showDialog:!1}},created:function(){},mounted:function(){""===this.loginForm.userName?this.$refs.userName.focus():""===this.loginForm.password&&this.$refs.password.focus()},destroyed:function(){},methods:Object(a["a"])({checkCapslock:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=e.shiftKey,t=e.key;t&&1===t.length&&(this.capsTooltip=!!(o&&t>="a"&&t<="z"||!o&&t>="A"&&t<="Z")),"CapsLock"===t&&!0===this.capsTooltip&&(this.capsTooltip=!1)},showPwd:function(){var e=this;"password"===this.passwordType?this.passwordType="":this.passwordType="password",this.$nextTick((function(){e.$refs.password.focus()}))},handleLogin:function(){var e=this,o=this;this.$refs.loginForm.validate((function(t){if(!t)return!1;e.loading=!0,i["a"].login(e.loginForm).then((function(e){e&&1===e.code?(o.setUserName(o.loginForm.userName),o.$router.push({path:"/"})):(o.loading=!1,o.$message({message:e.message,type:"error"}))})).catch((function(e){o.loading=!1}))}))}},Object(r["d"])("user",["setUserName"]))},c=l,p=(t("2017"),t("3c9b"),t("2877")),u=Object(p["a"])(c,s,n,!1,null,"675a2798",null);o["default"]=u.exports},cafe:function(e,o,t){},e852:function(e,o,t){}}]);

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

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