Compare commits
35 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a8df81aad4 | ||
|
|
29154803b0 | ||
|
|
7101bad7fe | ||
|
|
7fb56a99ae | ||
|
|
c6fc18483d | ||
|
|
d0c8525cbf | ||
|
|
e0109cc05e | ||
|
|
1bfea8deb8 | ||
|
|
92bc3e8d6a | ||
|
|
10fe1918d2 | ||
|
|
db304e38b3 | ||
|
|
3ade19fcdc | ||
|
|
d3f95c4d46 | ||
|
|
ad30c8bf3c | ||
|
|
0260e6c3cb | ||
|
|
fdc3ad80b0 | ||
|
|
0f37f31c43 | ||
|
|
e7785d992d | ||
|
|
4d2b89e112 | ||
|
|
7a296b6a08 | ||
|
|
fd74fa76a9 | ||
|
|
a78927471d | ||
|
|
79a4c4df05 | ||
|
|
83297d9cfc | ||
|
|
de874519d3 | ||
|
|
b6eddc1dbe | ||
|
|
3e5fada769 | ||
|
|
94f625f47b | ||
|
|
8f4f2c78e8 | ||
|
|
6b62071d05 | ||
|
|
caa5f773d8 | ||
|
|
667db6bac8 | ||
|
|
6f79d3b2e8 | ||
|
|
6462e586c8 | ||
|
|
3b069128c6 |
81
README.md
@@ -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](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/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
|
||||
|
||||
### 软件架构图
|
||||
|
||||

|
||||
|
||||
### 系统展示
|
||||
|
||||
* 学生考试系统
|
||||
<table>
|
||||
<tr>
|
||||
@@ -129,4 +105,3 @@
|
||||
<td><img src="doc/image/admin/13.png"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
0
docs/.nojekyll
Normal file
171
docs/README.md
Normal 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
@@ -0,0 +1,7 @@
|
||||
|
||||
# 学之思考试系统
|
||||
|
||||
> 学之思在线考试系统,支持多种题型:选择题、多选题、判断题、填空题、解答题以及数学公式,包含PC端、小程序端,扩展性强,部署方便、界面设计友好、代码结构清晰。
|
||||
|
||||
[Gitee](https://gitee.com/mindskip/uexam)
|
||||
[Get Started](#quick-start)
|
||||
23
docs/index.html
Normal 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
@@ -0,0 +1,7 @@
|
||||
table th {
|
||||
min-width: 200px;
|
||||
}
|
||||
|
||||
table td {
|
||||
text-align: center;
|
||||
}
|
||||
1872
source/vue/xzs-admin/package-lock.json
generated
@@ -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",
|
||||
|
||||
1872
source/vue/xzs-student/package-lock.json
generated
@@ -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",
|
||||
|
||||
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 26 KiB |
BIN
source/vue/xzs-student/src/assets/code/1.jpg
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
source/vue/xzs-student/src/assets/code/2.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
BIN
source/vue/xzs-student/src/assets/code/3.jpg
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
source/vue/xzs-student/src/assets/code/4.jpg
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
source/vue/xzs-student/src/assets/code/5.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
source/vue/xzs-student/src/assets/code/6.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
source/vue/xzs-student/src/assets/code/7.jpg
Normal file
|
After Width: | Height: | Size: 87 KiB |
@@ -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;"/>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>xzs</name>
|
||||
<description>武汉思维跳跃科技-学之思考试系统</description>
|
||||
<description>学之思考试系统 - 武汉思维跳跃科技有限公司</description>
|
||||
|
||||
|
||||
<properties>
|
||||
|
||||
@@ -8,7 +8,7 @@ import org.springframework.cache.annotation.EnableCaching;
|
||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
@SpringBootApplication
|
||||
@EnableTransactionManagement
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.mindskip.xzs.base;
|
||||
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
public abstract class BaseEntity {
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.mindskip.xzs.base;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
|
||||
@Data
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.mindskip.xzs.base;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
public class RestResponse<T> {
|
||||
private int code;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.mindskip.xzs.base;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
public enum SystemCode {
|
||||
/**
|
||||
|
||||
@@ -6,7 +6,7 @@ import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
@Component
|
||||
public class ApplicationContextProvider implements ApplicationContextAware {
|
||||
|
||||
@@ -7,7 +7,7 @@ import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
@ConfigurationProperties(prefix = "system")
|
||||
@Data
|
||||
|
||||
@@ -10,7 +10,7 @@ import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
|
||||
@Configuration
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.mindskip.xzs.configuration.spring.security;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
|
||||
@Data
|
||||
|
||||
@@ -12,7 +12,7 @@ import java.io.IOException;
|
||||
|
||||
/**
|
||||
* 未登录
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
@Component
|
||||
public final class LoginAuthenticationEntryPoint extends LoginUrlAuthenticationEntryPoint {
|
||||
|
||||
@@ -12,7 +12,7 @@ import java.io.IOException;
|
||||
|
||||
/**
|
||||
* 账号验证异常
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
@Component
|
||||
public class RestAuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler {
|
||||
|
||||
@@ -24,9 +24,8 @@ import java.util.ArrayList;
|
||||
/**
|
||||
* 登录用户名密码验证
|
||||
*
|
||||
* @author : Alvis
|
||||
* @author : 武汉思维跳跃科技有限公司
|
||||
* Description : 身份验证
|
||||
* Creation Date: 2018-05-02 5:00 PM
|
||||
*/
|
||||
|
||||
@Component
|
||||
|
||||
@@ -20,7 +20,7 @@ import java.util.Date;
|
||||
/**
|
||||
* 登录成功返回
|
||||
*
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -19,7 +19,7 @@ import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* 登录参数序列化
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
|
||||
public class RestLoginAuthenticationFilter extends AbstractAuthenticationProcessingFilter {
|
||||
|
||||
@@ -18,7 +18,7 @@ import java.util.Date;
|
||||
/**
|
||||
* 用户登出
|
||||
*
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
|
||||
@@ -7,7 +7,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* 记住我,Cookie
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
public class RestTokenBasedRememberMeServices extends TokenBasedRememberMeServices {
|
||||
public RestTokenBasedRememberMeServices(String key, UserDetailsService userDetailsService) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -19,7 +19,7 @@ import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
|
||||
@Configuration
|
||||
|
||||
@@ -26,7 +26,7 @@ import java.util.UUID;
|
||||
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
@RestController("AdminUserController")
|
||||
@RequestMapping(value = "/api/admin/user")
|
||||
|
||||
@@ -31,7 +31,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
@RestController("StudentUserController")
|
||||
@RequestMapping(value = "/api/student/user")
|
||||
|
||||
@@ -32,7 +32,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
@Controller("WXStudentUserController")
|
||||
@RequestMapping(value = "/api/wx/student/user")
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.mindskip.xzs.domain.ExamPaperAnswerInfo;
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
public class CalculateExamPaperAnswerCompleteEvent extends ApplicationEvent {
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.mindskip.xzs.domain.User;
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
public class OnRegistrationCompleteEvent extends ApplicationEvent {
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.mindskip.xzs.exception;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
public class BusinessException extends RuntimeException {
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
|
||||
@@ -8,7 +8,7 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
@Component
|
||||
public class EmailSendListener implements ApplicationListener<OnRegistrationCompleteEvent> {
|
||||
|
||||
@@ -10,7 +10,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
|
||||
@Mapper
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.mindskip.xzs.service;
|
||||
import com.mindskip.xzs.domain.User;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
public interface AuthenticationService {
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.github.pagehelper.PageInfo;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
public interface UserService extends BaseService<User> {
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
@Service
|
||||
@AllArgsConstructor
|
||||
|
||||
@@ -21,7 +21,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
@Service
|
||||
public class UserServiceImpl extends BaseServiceImpl<User> implements UserService {
|
||||
|
||||
@@ -10,7 +10,7 @@ import java.time.Duration;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
public class DateTimeUtil {
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -11,7 +11,7 @@ import java.security.NoSuchAlgorithmException;
|
||||
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
public class Md5Util {
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
public class PageInfoHelper {
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import java.util.Base64;
|
||||
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
public class RsaUtil {
|
||||
/**
|
||||
|
||||
@@ -5,7 +5,7 @@ import lombok.Data;
|
||||
import org.modelmapper.ModelMapper;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
|
||||
@Data
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.mindskip.xzs.base.BasePage;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
|
||||
@Data
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.mindskip.xzs.base.BasePage;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
|
||||
@Data
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.mindskip.xzs.viewmodel.BaseVM;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
|
||||
@Data
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.mindskip.xzs.viewmodel.BaseVM;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author alvis
|
||||
* @author 武汉思维跳跃科技有限公司
|
||||
*/
|
||||
|
||||
@Data
|
||||
|
||||
@@ -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>
|
||||
@@ -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}}
|
||||
@@ -1 +0,0 @@
|
||||
.pagination-container[data-v-4e4cda8d]{background:#fff}.pagination-container.hidden[data-v-4e4cda8d]{display:none}
|
||||
@@ -0,0 +1 @@
|
||||
.pagination-container[data-v-90fd946a]{background:#fff}.pagination-container.hidden[data-v-90fd946a]{display:none}
|
||||
@@ -1 +0,0 @@
|
||||
.pagination-container[data-v-4e4cda8d]{background:#fff}.pagination-container.hidden[data-v-4e4cda8d]{display:none}
|
||||
@@ -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}
|
||||
@@ -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}
|
||||
@@ -0,0 +1 @@
|
||||
.pagination-container[data-v-90fd946a]{background:#fff}.pagination-container.hidden[data-v-90fd946a]{display:none}
|
||||
@@ -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}
|
||||
@@ -0,0 +1 @@
|
||||
.pagination-container[data-v-90fd946a]{background:#fff}.pagination-container.hidden[data-v-90fd946a]{display:none}
|
||||
@@ -1 +0,0 @@
|
||||
.pagination-container[data-v-4e4cda8d]{background:#fff}.pagination-container.hidden[data-v-4e4cda8d]{display:none}
|
||||
@@ -0,0 +1 @@
|
||||
.pagination-container[data-v-90fd946a]{background:#fff}.pagination-container.hidden[data-v-90fd946a]{display:none}
|
||||
@@ -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}
|
||||
@@ -1 +0,0 @@
|
||||
.pagination-container[data-v-4e4cda8d]{background:#fff}.pagination-container.hidden[data-v-4e4cda8d]{display:none}
|
||||
@@ -1 +0,0 @@
|
||||
.pagination-container[data-v-4e4cda8d]{background:#fff}.pagination-container.hidden[data-v-4e4cda8d]{display:none}
|
||||
@@ -1 +0,0 @@
|
||||
.pagination-container[data-v-4e4cda8d]{background:#fff}.pagination-container.hidden[data-v-4e4cda8d]{display:none}
|
||||
@@ -0,0 +1 @@
|
||||
.pagination-container[data-v-90fd946a]{background:#fff}.pagination-container.hidden[data-v-90fd946a]{display:none}
|
||||
@@ -1 +0,0 @@
|
||||
.pagination-container[data-v-4e4cda8d]{background:#fff}.pagination-container.hidden[data-v-4e4cda8d]{display:none}
|
||||
@@ -0,0 +1 @@
|
||||
.pagination-container[data-v-90fd946a]{background:#fff}.pagination-container.hidden[data-v-90fd946a]{display:none}
|
||||
@@ -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}
|
||||
@@ -0,0 +1 @@
|
||||
.pagination-container[data-v-90fd946a]{background:#fff}.pagination-container.hidden[data-v-90fd946a]{display:none}
|
||||
@@ -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}}
|
||||
@@ -1 +0,0 @@
|
||||
.pagination-container[data-v-4e4cda8d]{background:#fff}.pagination-container.hidden[data-v-4e4cda8d]{display:none}
|
||||
@@ -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}
|
||||
@@ -0,0 +1 @@
|
||||
.pagination-container[data-v-90fd946a]{background:#fff}.pagination-container.hidden[data-v-90fd946a]{display:none}
|
||||
@@ -0,0 +1 @@
|
||||
.pagination-container[data-v-90fd946a]{background:#fff}.pagination-container.hidden[data-v-90fd946a]{display:none}
|
||||
@@ -1 +0,0 @@
|
||||
.pagination-container[data-v-4e4cda8d]{background:#fff}.pagination-container.hidden[data-v-4e4cda8d]{display:none}
|
||||
@@ -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}}
|
||||
@@ -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){}}]);
|
||||