Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
I
intel_promotion_manage
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张伯涛
intel_promotion_manage
Commits
2be47c4a
Commit
2be47c4a
authored
Jun 03, 2024
by
张伯涛
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
项目搭建
parent
29f91c56
Changes
69
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
69 changed files
with
898 additions
and
2299 deletions
+898
-2299
.env.development
.env.development
+2
-2
.env.test
.env.test
+3
-2
package.json
package.json
+14
-8
index.html
public/index.html
+2
-2
login.js
src/api/login.js
+3
-2
errorLog.js
src/api/monitor/errorLog.js
+1
-1
loginInfo.js
src/api/monitor/loginInfo.js
+1
-1
operLog.js
src/api/monitor/operLog.js
+1
-1
sysStudent.js
src/api/sysStudent.js
+0
-68
dept.js
src/api/system/dept.js
+8
-0
menu.js
src/api/system/menu.js
+3
-2
role.js
src/api/system/role.js
+8
-0
user.js
src/api/system/user.js
+18
-1
sysStudent.js
src/api/userInfo/sysStudent.js
+0
-68
assetManagementInvolved.svg
src/assets/icons/svg/assetManagementInvolved.svg
+1
-1
system.svg
src/assets/icons/svg/system.svg
+1
-1
index.vue
src/components/IconSelect/index.vue
+1
-1
index.vue
src/components/bpmn/index.vue
+2
-2
index.vue
src/layout/components/Settings/index.vue
+2
-0
Logo.vue
src/layout/components/Sidebar/Logo.vue
+24
-9
index.vue
src/layout/components/Sidebar/index.vue
+7
-1
ScrollPane.vue
src/layout/components/TagsView/ScrollPane.vue
+1
-14
logo.vue
src/layoutLogin/components/logo.vue
+1
-1
main.js
src/main.js
+7
-3
settings.js
src/settings.js
+1
-1
user.js
src/store/modules/user.js
+3
-1
element-ui.scss
src/styles/element-ui.scss
+2
-2
index.scss
src/styles/index.scss
+1
-0
sidebar.scss
src/styles/sidebar.scss
+11
-11
common.scss
src/styles/themeA/common.scss
+0
-244
layout.scss
src/styles/themeA/layout.scss
+1
-1
login.scss
src/styles/themeA/login.scss
+58
-31
navigationBar.scss
src/styles/themeA/navigationBar.scss
+59
-9
sidebar.scss
src/styles/themeA/sidebar.scss
+18
-21
tagsView.scss
src/styles/themeA/tagsView.scss
+1
-1
user.scss
src/styles/themeA/user.scss
+1
-1
variables.scss
src/styles/themeA/variables.scss
+7
-7
login.scss
src/styles/themeB/login.scss
+4
-0
variables.scss
src/styles/themeB/variables.scss
+3
-3
login.scss
src/styles/themeC/login.scss
+2
-0
variables.scss
src/styles/themeC/variables.scss
+2
-2
login.scss
src/styles/themeD/login.scss
+2
-0
variables.scss
src/styles/themeD/variables.scss
+2
-2
variables.scss
src/styles/variables.scss
+5
-5
auth.js
src/utils/auth.js
+1
-1
index.js
src/utils/auth/index.js
+1
-1
common.js
src/utils/common.js
+14
-0
jsencrypt.js
src/utils/jsencrypt.js
+19
-0
rem.js
src/utils/rem.js
+8
-4
index.vue
src/views/assessment/classReport/index.vue
+0
-11
index.vue
src/views/assessment/list/index.vue
+0
-11
index.vue
src/views/assessment/team/index.vue
+0
-11
index.vue
src/views/home/index.vue
+0
-11
login.vue
src/views/login/login.vue
+19
-19
setPwd.vue
src/views/login/setPwd.vue
+3
-3
index.vue
src/views/monitor/loginInfo/index.vue
+3
-3
index.vue
src/views/monitor/operLog/index.vue
+5
-5
reSetPsw.vue
src/views/reSetPsw.vue
+6
-6
data.vue
src/views/system/dict/data.vue
+23
-23
index.vue
src/views/system/dict/index.vue
+17
-33
index.vue
src/views/system/log/index.vue
+0
-11
index.vue
src/views/system/menu/index.vue
+17
-25
index.vue
src/views/system/role/index.vue
+64
-59
index.vue
src/views/system/user/index.vue
+381
-205
index.vue
src/views/teacher/profiles/index.vue
+0
-11
index.vue
src/views/userInfo/expert/index.vue
+0
-444
index.vue
src/views/userInfo/student/index.vue
+0
-444
index.vue
src/views/userInfo/teacher/index.vue
+0
-423
vue.config.js
vue.config.js
+23
-2
No files found.
.env.development
View file @
2be47c4a
...
...
@@ -3,8 +3,8 @@ ENV = 'development'
# base api
VUE_APP_BASE_API = '/dev-api'
VUE_APP_BASE_API = '/dev-api'
VUE_APP_BASE_APIS = 'http://49.232.167.247:20020/teaServer'
VUE_CLI_BABEL_TRANSPILE_MODULES = true
.env.test
View file @
2be47c4a
# just a flag
ENV
=
'
test
'
ENV
=
'
production
'
# 测试环境
# base api
VUE_APP_BASE_API
=
'http://192.144.239.97:20075/'
VUE_APP_BASE_API
=
'http://49.232.167.247:20024/'
VUE_APP_BASE_APIS
=
'http://49.232.167.247:20020/teaServer'
package.json
View file @
2be47c4a
...
...
@@ -18,7 +18,7 @@
"
axios
"
:
"
0.18.1
"
,
"
bpmn-js
"
:
"
^6.1.1
"
,
"
bpmn-js-properties-panel
"
:
"
^0.33.1
"
,
"
echarts
"
:
"
^
5.3.2
"
,
"
echarts
"
:
"
^
4.9.0
"
,
"
element-resize-detector
"
:
"
^1.2.4
"
,
"
element-ui
"
:
"
2.13.0
"
,
"
gm-crypt
"
:
"
^0.0.2
"
,
...
...
@@ -26,6 +26,7 @@
"
js-base64
"
:
"
^2.6.2
"
,
"
js-cookie
"
:
"
2.2.0
"
,
"
jsencrypt
"
:
"
^3.0.0-rc.1
"
,
"
less-loader
"
:
"
^5.0.0
"
,
"
markdown-loader
"
:
"
^5.1.0
"
,
"
moment
"
:
"
^2.27.0
"
,
"
normalize.css
"
:
"
7.0.0
"
,
...
...
@@ -37,10 +38,11 @@
"
v-viewer
"
:
"
^1.6.4
"
,
"
viewerjs
"
:
"
^1.11.6
"
,
"
vue
"
:
"
2.7.10
"
,
"
vue-cropper
"
:
"
^0.5.4
"
,
"
vue-pdf
"
:
"
^4.1.0
"
,
"
vue-print-nb
"
:
"
^1.7.5
"
,
"
vue-cropper
"
:
"
^0.5.11
"
,
"
vue-pdf
"
:
"
^4.3.0
"
,
"
vue-router
"
:
"
3.0.6
"
,
"
vue-video-player
"
:
"
^5.0.0
"
,
"
vue2-editor
"
:
"
^2.10.3
"
,
"
vuedraggable
"
:
"
^2.23.2
"
,
"
vuex
"
:
"
3.1.0
"
},
...
...
@@ -50,28 +52,32 @@
"
@vue/cli-plugin-babel
"
:
"
3.6.0
"
,
"
@vue/cli-plugin-eslint
"
:
"
^3.9.1
"
,
"
@vue/cli-plugin-unit-jest
"
:
"
3.6.3
"
,
"
@vue/cli-service
"
:
"
3.6.0
"
,
"
@vue/cli-service
"
:
"
4.4.6
"
,
"
@vue/test-utils
"
:
"
1.0.0-beta.29
"
,
"
autoprefixer
"
:
"
^9.5.1
"
,
"
babel-core
"
:
"
7.0.0-bridge.0
"
,
"
babel-eslint
"
:
"
10.0.1
"
,
"
chalk
"
:
"
2.4.2
"
,
"
compression-webpack-plugin
"
:
"
^1.1.12
"
,
"
connect
"
:
"
3.6.6
"
,
"
crypto-js
"
:
"
4.1.1
"
,
"
eslint
"
:
"
5.15.3
"
,
"
eslint-plugin-vue
"
:
"
5.2.2
"
,
"
html-webpack-plugin
"
:
"
3.2.0
"
,
"
less
"
:
"
^3.9.0
"
,
"
mockjs
"
:
"
1.0.1-beta3
"
,
"
node-sass
"
:
"
^4.9.0
"
,
"
runjs
"
:
"
^4.3.2
"
,
"
sass-loader
"
:
"
^7.
1.0
"
,
"
sass-loader
"
:
"
^7.
3.1
"
,
"
script-ext-html-webpack-plugin
"
:
"
2.1.3
"
,
"
serve-static
"
:
"
^1.13.2
"
,
"
style-loader
"
:
"
^4.0.0
"
,
"
stylus
"
:
"
^0.54.7
"
,
"
stylus-loader
"
:
"
^3.0.2
"
,
"
svg-sprite-loader
"
:
"
4.1.3
"
,
"
svgo
"
:
"
1.2.2
"
,
"
vue-template-compiler
"
:
"
2.6
.10
"
,
"
crypto-js
"
:
"
4.1.1
"
"
terser-webpack-plugin
"
:
"
^5.3
.10
"
,
"
vue-template-compiler
"
:
"
2.6.10
"
},
"engines"
:
{
"node"
:
">=8.9"
,
...
...
public/index.html
View file @
2be47c4a
...
...
@@ -4,10 +4,10 @@
<meta
charset=
"utf-8"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge,chrome=1"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
>
<link
rel=
"icon"
href=
"<%= BASE_URL %>
liulanqi_l
ogo.png"
>
<link
rel=
"icon"
href=
"<%= BASE_URL %>
collapseMenuL
ogo.png"
>
<!-- <link rel="stylesheet" href="//at.alicdn.com/t/font_2011217_f70ptj9y4oc.css">-->
<!-- <title><%= webpackConfig.name %></title>-->
<title>
教
师能力测评系统
</title>
<title>
教
学资源云平台
</title>
</head>
<body>
<noscript>
...
...
src/api/login.js
View file @
2be47c4a
...
...
@@ -3,12 +3,13 @@ import { encrypt } from '@/utils/jsencrypt'
import
Qs
from
'qs'
// 登录方法
export
function
login
(
username
,
password
,
code
,
uuid
)
{
export
function
login
(
username
,
password
,
code
,
uuid
,
type
)
{
const
data
=
{
username
,
password
,
code
,
uuid
uuid
,
type
}
console
.
log
(
'加密前数据'
,
data
)
return
request
({
...
...
src/api/monitor/errorLog.js
View file @
2be47c4a
...
...
@@ -11,7 +11,7 @@ import Qs from 'qs'
// 查询异常日志列表
export
function
list
(
query
)
{
return
request
({
url
:
'/monitor/errorLog/
list
'
,
url
:
'/monitor/errorLog/
queryErrorLogListByPagination
'
,
method
:
'get'
,
params
:
query
})
...
...
src/api/monitor/loginInfo.js
View file @
2be47c4a
...
...
@@ -11,7 +11,7 @@ import Qs from 'qs'
// 查询登录日志列表
export
function
list
(
query
)
{
return
request
({
url
:
'/monitor/loginInfo/
list
'
,
url
:
'/monitor/loginInfo/
querySysLoginListByPagination
'
,
method
:
'get'
,
params
:
query
})
...
...
src/api/monitor/operLog.js
View file @
2be47c4a
...
...
@@ -11,7 +11,7 @@ import Qs from 'qs'
// 查询操作日志列表
export
function
list
(
query
)
{
return
request
({
url
:
'/monitor/operLog/
list
'
,
url
:
'/monitor/operLog/
queryOperLogListByPagination
'
,
method
:
'get'
,
params
:
query
})
...
...
src/api/sysStudent.js
deleted
100644 → 0
View file @
29f91c56
import
request
from
'@/utils/request'
import
Qs
from
'qs'
/**
* 1. 列表查询
* 2. 查询详细信息
* 3. 新增
* 4. 修改
* 5. 逻辑删除
* 6. 导出
*
*/
// 1. 查询通用_学生列表
export
function
listSysStudent
(
query
)
{
return
request
({
url
:
'/sysstudent/querySysStudentByPagination'
,
method
:
'get'
,
params
:
query
})
}
// 2. 查询通用_学生详细信息
export
function
getSysStudent
(
businessId
)
{
return
request
({
url
:
'/sysstudent/detail/'
+
businessId
,
method
:
'get'
})
}
// 3. 新增通用_学生
export
function
addSysStudent
(
data
)
{
data
=
Qs
.
stringify
(
data
)
return
request
({
url
:
'/sysstudent/add'
,
method
:
'post'
,
data
:
data
})
}
// 4. 修改通用_学生
export
function
updateSysStudent
(
data
)
{
const
businessId
=
data
.
businessId
data
=
Qs
.
stringify
(
data
)
return
request
({
url
:
'/sysstudent/update/'
+
businessId
,
method
:
'put'
,
data
})
}
// 5. 逻辑删除通用_学生
export
function
delSysStudent
(
businessId
)
{
return
request
({
url
:
'/sysstudent/deleteLogical/'
+
businessId
,
method
:
'delete'
})
}
// 6. 导出通用_学生
export
function
exportSysStudent
(
query
)
{
return
request
({
url
:
'/sysstudent/export'
,
method
:
'get'
,
params
:
query
,
responseType
:
'blob'
})
}
src/api/system/dept.js
View file @
2be47c4a
...
...
@@ -155,4 +155,12 @@ export function transformDept(data) {
})
}
// 17.查询所属部门
export
function
listAllDept
(
query
)
{
return
request
({
url
:
'/system/dept/listAll'
,
method
:
'get'
,
params
:
query
})
}
src/api/system/menu.js
View file @
2be47c4a
...
...
@@ -75,10 +75,11 @@ export function getMenu(menuId) {
}
// 10.查询菜单下拉树结构
export
function
treeSelect
()
{
export
function
treeSelect
(
params
)
{
return
request
({
url
:
'/system/menu/treeSelect'
,
method
:
'get'
method
:
'get'
,
params
})
}
...
...
src/api/system/role.js
View file @
2be47c4a
...
...
@@ -94,6 +94,14 @@ export function changeRoleStatus(businessId, flag) {
// 9.查询角色下拉
export
function
getListRole
()
{
return
request
({
url
:
'system/role/listAllExcludeUnitRole'
,
method
:
'get'
})
}
// 9.查询角色下拉--老
export
function
getListRoleOld
()
{
return
request
({
url
:
'system/role/listAll'
,
method
:
'get'
...
...
src/api/system/user.js
View file @
2be47c4a
...
...
@@ -58,10 +58,18 @@ export function listUser(query) {
params
:
query
})
}
// 4.分页查询用户列表
export
function
listUserWeb
(
query
)
{
return
request
({
url
:
'/pc/sysuser/weblist'
,
method
:
'get'
,
params
:
query
})
}
// 5.查询用户列表
export
function
getListUser
()
{
return
request
({
url
:
'system/role/listAll'
,
url
:
'system/role/listAll
ExcludeUnitRole
'
,
method
:
'get'
})
}
...
...
@@ -179,3 +187,12 @@ export function uploadFalseFile(params) {
responseType
:
'blob'
})
}
// 17.分页查询用户列表
export
function
listByIdentity
(
query
)
{
return
request
({
url
:
'/pc/sysuser/listByIdentity'
,
method
:
'get'
,
params
:
query
})
}
src/api/userInfo/sysStudent.js
deleted
100644 → 0
View file @
29f91c56
import
request
from
'@/utils/request'
import
Qs
from
'qs'
/**
* 1. 列表查询
* 2. 查询详细信息
* 3. 新增
* 4. 修改
* 5. 逻辑删除
* 6. 导出
*
*/
// 1. 查询通用_学生列表
export
function
listSysStudent
(
query
)
{
return
request
({
url
:
'/sysstudent/querySysStudentByPagination'
,
method
:
'get'
,
params
:
query
})
}
// 2. 查询通用_学生详细信息
export
function
getSysStudent
(
businessId
)
{
return
request
({
url
:
'/sysstudent/detail/'
+
businessId
,
method
:
'get'
})
}
// 3. 新增通用_学生
export
function
addSysStudent
(
data
)
{
data
=
Qs
.
stringify
(
data
)
return
request
({
url
:
'/sysstudent/add'
,
method
:
'post'
,
data
:
data
})
}
// 4. 修改通用_学生
export
function
updateSysStudent
(
data
)
{
const
businessId
=
data
.
businessId
data
=
Qs
.
stringify
(
data
)
return
request
({
url
:
'/sysstudent/update/'
+
businessId
,
method
:
'put'
,
data
})
}
// 5. 逻辑删除通用_学生
export
function
delSysStudent
(
businessId
)
{
return
request
({
url
:
'/sysstudent/deleteLogical/'
+
businessId
,
method
:
'delete'
})
}
// 6. 导出通用_学生
export
function
exportSysStudent
(
query
)
{
return
request
({
url
:
'/sysstudent/export'
,
method
:
'get'
,
params
:
query
,
responseType
:
'blob'
})
}
src/assets/icons/svg/assetManagementInvolved.svg
View file @
2be47c4a
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1603195985670"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"3613"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M1001.91129653 452.07671895v-4.65416756a36.65157036 36.65157036 0 0 0-50.61407304-11.05364835L488.20754334 734.23563151a36.65157036 36.65157036 0 0 0-11.05364828 50.61407304l3.4906264 4.65416754a36.65157036 36.65157036 0 0 0 50.61407302 11.05364831l460.18082479-297.86672846a36.65157036 36.65157036 0 0 0 10.47187726-50.61407299z"
fill=
"#2c2c2c"
p-id=
"3614"
></path><path
d=
"M450.39243187 816.84710735l-6.39948078-9.3083351a67.48543104 67.48543104 0 0 1-3.49062543-64.5765757v-3.4906264a66.90366 66.90366 0 0 1 22.10729566-25.59792206l392.11362366-255.39744843V100.68706308A97.73752063 97.73752063 0 0 0 758.73103758 2.36777139h-639.94805017A97.73752063 97.73752063 0 0 0 22.79077997 100.68706308v823.20590002a97.73752063 97.73752063 0 0 0 98.31929169 97.73752063h639.9480492a97.73752063 97.73752063 0 0 0 97.73752063-97.73752063v-290.88547764L546.38463931 838.95440399A67.48543104 67.48543104 0 0 1 450.39243187 816.84710735zM179.86893767 167.00895097h533.48396551c22.10729663 0 39.5604247 12.79896052 39.56042469 29.08854845s-17.45312907 29.08854743-39.56042469 29.08854749H179.86893767c-21.52552556 0-39.5604247-12.79896052-39.56042472-29.08854749s18.03489916-29.08854743 39.56042472-29.08854845z m0 178.0219122h533.48396551c22.10729663 0 39.5604247 12.79896052 39.56042469 29.08854848s-17.45312907 29.08854743-39.56042469 29.08854746H179.86893767c-21.52552556 0-39.5604247-13.38073158-39.56042472-29.08854746s18.03489916-29.08854743 39.56042472-29.08854848zM179.86893767 525.96163072h257.14276159c22.10729663 0 39.5604247 13.38073158 39.56042472 29.08854746s-17.45312907 29.08854743-39.56042471 29.08854745H179.86893767c-21.52552556 0-40.72396684-11.63541939-40.72396686-27.92500535S158.34341207 525.96163072 179.86893767 525.96163072z m143.69742607 280.41359939a29.08854743 29.08854743 0 0 1 29.08854747 29.08854746 29.08854743 29.08854743 0 0 1-29.08854747 29.08854847h-47.70521867v25.59792205a29.08854743 29.08854743 0 0 1-29.08854746 29.08854744 29.08854743 29.08854743 0 0 1-29.08854748-29.08854744v-25.59792205h-48.28698973a29.08854743 29.08854743 0 0 1-29.08854745-29.08854847 29.67031855 29.67031855 0 0 1 29.08854745-29.08854746h48.28698973v-7.56302191h-48.28698973a29.08854743 29.08854743 0 0 1-29.08854745-29.08854845 29.67031855 29.67031855 0 0 1 29.08854745-29.08854744h11.63541939l-30.83386068-37.81511154a29.08854743 29.08854743 0 0 1 47.12344762-35.48802822l51.77761416 62.83126249 52.94115731-63.41303356a28.5067764 28.5067764 0 0 1 40.72396686-3.49062642 29.08854743 29.08854743 0 0 1 4.07239649 40.72396685l-33.16094397 37.81511252h11.05364731a29.08854743 29.08854743 0 0 1 29.08854846 29.08854747 29.08854743 29.08854743 0 0 1-29.08854846 29.08854745h-48.86875982v7.5630229z"
fill=
"#2c2c2c"
p-id=
"3615"
></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1603195985670"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"3613"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><defs><style
type=
"text/css"
></style></defs><path
d=
"M1001.91129653 452.07671895v-4.65416756a36.65157036 36.65157036 0 0 0-50.61407304-11.05364835L488.20754334 734.23563151a36.65157036 36.65157036 0 0 0-11.05364828 50.61407304l3.4906264 4.65416754a36.65157036 36.65157036 0 0 0 50.61407302 11.05364831l460.18082479-297.86672846a36.65157036 36.65157036 0 0 0 10.47187726-50.61407299z"
fill=
"currentColor"
p-id=
"3614"
></path><path
d=
"M450.39243187 816.84710735l-6.39948078-9.3083351a67.48543104 67.48543104 0 0 1-3.49062543-64.5765757v-3.4906264a66.90366 66.90366 0 0 1 22.10729566-25.59792206l392.11362366-255.39744843V100.68706308A97.73752063 97.73752063 0 0 0 758.73103758 2.36777139h-639.94805017A97.73752063 97.73752063 0 0 0 22.79077997 100.68706308v823.20590002a97.73752063 97.73752063 0 0 0 98.31929169 97.73752063h639.9480492a97.73752063 97.73752063 0 0 0 97.73752063-97.73752063v-290.88547764L546.38463931 838.95440399A67.48543104 67.48543104 0 0 1 450.39243187 816.84710735zM179.86893767 167.00895097h533.48396551c22.10729663 0 39.5604247 12.79896052 39.56042469 29.08854845s-17.45312907 29.08854743-39.56042469 29.08854749H179.86893767c-21.52552556 0-39.5604247-12.79896052-39.56042472-29.08854749s18.03489916-29.08854743 39.56042472-29.08854845z m0 178.0219122h533.48396551c22.10729663 0 39.5604247 12.79896052 39.56042469 29.08854848s-17.45312907 29.08854743-39.56042469 29.08854746H179.86893767c-21.52552556 0-39.5604247-13.38073158-39.56042472-29.08854746s18.03489916-29.08854743 39.56042472-29.08854848zM179.86893767 525.96163072h257.14276159c22.10729663 0 39.5604247 13.38073158 39.56042472 29.08854746s-17.45312907 29.08854743-39.56042471 29.08854745H179.86893767c-21.52552556 0-40.72396684-11.63541939-40.72396686-27.92500535S158.34341207 525.96163072 179.86893767 525.96163072z m143.69742607 280.41359939a29.08854743 29.08854743 0 0 1 29.08854747 29.08854746 29.08854743 29.08854743 0 0 1-29.08854747 29.08854847h-47.70521867v25.59792205a29.08854743 29.08854743 0 0 1-29.08854746 29.08854744 29.08854743 29.08854743 0 0 1-29.08854748-29.08854744v-25.59792205h-48.28698973a29.08854743 29.08854743 0 0 1-29.08854745-29.08854847 29.67031855 29.67031855 0 0 1 29.08854745-29.08854746h48.28698973v-7.56302191h-48.28698973a29.08854743 29.08854743 0 0 1-29.08854745-29.08854845 29.67031855 29.67031855 0 0 1 29.08854745-29.08854744h11.63541939l-30.83386068-37.81511154a29.08854743 29.08854743 0 0 1 47.12344762-35.48802822l51.77761416 62.83126249 52.94115731-63.41303356a28.5067764 28.5067764 0 0 1 40.72396686-3.49062642 29.08854743 29.08854743 0 0 1 4.07239649 40.72396685l-33.16094397 37.81511252h11.05364731a29.08854743 29.08854743 0 0 1 29.08854846 29.08854747 29.08854743 29.08854743 0 0 1-29.08854846 29.08854745h-48.86875982v7.5630229z"
fill=
"currentColor"
p-id=
"3615"
></path></svg>
src/assets/icons/svg/system.svg
View file @
2be47c4a
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1543827724451"
class=
"icon"
style=
""
viewBox=
"0 0 1084 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"10233"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"211.71875"
height=
"200"
><defs><style
type=
"text/css"
>
@font-face { font-family: rbicon; src: url("chrome-extension://dipiagiiohfljcicegpgffpbnjmgjcnf/fonts/rbicon.woff2") format("woff2"); font-weight: normal; font-style: normal; }
</style></defs><path
d=
"M1080.09609 434.500756c-4.216302-23.731757-26.9241-47.945376-50.595623-53.185637l-17.648235-4.095836a175.940257 175.940257 0 0 1-101.612877-80.832531 177.807476 177.807476 0 0 1-18.732427-129.801867l5.541425-16.684509c7.10748-23.129428-2.108151-54.992624-20.599646-70.833873 0 0-16.624276-14.094495-63.244529-41.199293-46.800951-26.984332-66.858502-34.513443-66.858502-34.513443-22.76803-8.372371-54.631227-0.361397-71.255503 17.407304l-12.287509 13.251234a173.470708 173.470708 0 0 1-120.465769 48.065842A174.13327 174.13327 0 0 1 421.329029 33.590675L409.583617 20.761071C393.140039 2.99237 361.096144-4.898138 338.267881 3.353767c0 0-20.358715 7.529111-67.099434 34.513443-46.800951 27.34573-63.244529 41.440225-63.244529 41.440225-18.431263 15.66055-27.646894 47.222582-20.539413 70.592941l5.059562 16.865207a178.048407 178.048407 0 0 1-18.672194 129.621169 174.916297 174.916297 0 0 1-102.275439 81.073463l-17.045906 3.854904c-23.310126 5.42096-46.258856 29.333415-50.595623 53.185637 0 0-3.854905 21.382674-3.854905 75.712737 0 54.330062 3.854905 75.712736 3.854905 75.712736 4.216302 23.972688 26.9241 47.945376 50.595623 53.185637l16.624276 3.854905a174.253736 174.253736 0 0 1 102.395904 81.314394c23.310126 40.837896 28.911785 87.337683 18.732427 129.801867l-4.81863 16.443578c-7.10748 23.129428 2.108151 54.992624 20.599646 70.833872 0 0 16.624276 14.094495 63.244529 41.199293 46.800951 27.104798 66.918735 34.513443 66.918735 34.513443 22.707798 8.372371 54.631227 0.361397 71.255503-17.407303l11.624947-12.588673a175.096996 175.096996 0 0 1 242.256662 0.120465l11.624947 12.648906c16.383345 17.708468 48.427239 25.598976 71.255503 17.347071 0 0 20.358715-7.529111 67.159666-34.513443 46.740719-27.104798 63.124063-41.199293 63.124064-41.199293 18.491496-15.600317 27.707127-47.463513 20.599646-70.833873l-5.059562-17.106139a176.723284 176.723284 0 0 1 18.672194-129.139305 176.060722 176.060722 0 0 1 102.395904-81.314394l16.68451-3.854905c23.310126-5.42096 46.258856-29.333415 50.595623-53.185637 0 0 3.854905-21.382674 3.854904-75.712737-0.240932-54.330062-4.095836-75.833202-4.095836-75.833202z m-537.819428 293.334149c-119.261112 0-216.175824-97.336342-216.175824-217.621412a216.657687 216.657687 0 0 1 216.236057-217.320249c119.200879 0 216.115591 97.276109 216.11559 217.56118-0.240932 120.044139-96.974945 217.320248-216.175823 217.320249z"
p-id=
"10234"
fill=
"#bfbfbf"
></path></svg>
\ No newline at end of file
</style></defs><path
d=
"M1080.09609 434.500756c-4.216302-23.731757-26.9241-47.945376-50.595623-53.185637l-17.648235-4.095836a175.940257 175.940257 0 0 1-101.612877-80.832531 177.807476 177.807476 0 0 1-18.732427-129.801867l5.541425-16.684509c7.10748-23.129428-2.108151-54.992624-20.599646-70.833873 0 0-16.624276-14.094495-63.244529-41.199293-46.800951-26.984332-66.858502-34.513443-66.858502-34.513443-22.76803-8.372371-54.631227-0.361397-71.255503 17.407304l-12.287509 13.251234a173.470708 173.470708 0 0 1-120.465769 48.065842A174.13327 174.13327 0 0 1 421.329029 33.590675L409.583617 20.761071C393.140039 2.99237 361.096144-4.898138 338.267881 3.353767c0 0-20.358715 7.529111-67.099434 34.513443-46.800951 27.34573-63.244529 41.440225-63.244529 41.440225-18.431263 15.66055-27.646894 47.222582-20.539413 70.592941l5.059562 16.865207a178.048407 178.048407 0 0 1-18.672194 129.621169 174.916297 174.916297 0 0 1-102.275439 81.073463l-17.045906 3.854904c-23.310126 5.42096-46.258856 29.333415-50.595623 53.185637 0 0-3.854905 21.382674-3.854905 75.712737 0 54.330062 3.854905 75.712736 3.854905 75.712736 4.216302 23.972688 26.9241 47.945376 50.595623 53.185637l16.624276 3.854905a174.253736 174.253736 0 0 1 102.395904 81.314394c23.310126 40.837896 28.911785 87.337683 18.732427 129.801867l-4.81863 16.443578c-7.10748 23.129428 2.108151 54.992624 20.599646 70.833872 0 0 16.624276 14.094495 63.244529 41.199293 46.800951 27.104798 66.918735 34.513443 66.918735 34.513443 22.707798 8.372371 54.631227 0.361397 71.255503-17.407303l11.624947-12.588673a175.096996 175.096996 0 0 1 242.256662 0.120465l11.624947 12.648906c16.383345 17.708468 48.427239 25.598976 71.255503 17.347071 0 0 20.358715-7.529111 67.159666-34.513443 46.740719-27.104798 63.124063-41.199293 63.124064-41.199293 18.491496-15.600317 27.707127-47.463513 20.599646-70.833873l-5.059562-17.106139a176.723284 176.723284 0 0 1 18.672194-129.139305 176.060722 176.060722 0 0 1 102.395904-81.314394l16.68451-3.854905c23.310126-5.42096 46.258856-29.333415 50.595623-53.185637 0 0 3.854905-21.382674 3.854904-75.712737-0.240932-54.330062-4.095836-75.833202-4.095836-75.833202z m-537.819428 293.334149c-119.261112 0-216.175824-97.336342-216.175824-217.621412a216.657687 216.657687 0 0 1 216.236057-217.320249c119.200879 0 216.115591 97.276109 216.11559 217.56118-0.240932 120.044139-96.974945 217.320248-216.175823 217.320249z"
p-id=
"10234"
fill=
"currentColor"
></path></svg>
src/components/IconSelect/index.vue
View file @
2be47c4a
<!-- @author zhengjie -->
<
template
>
<div
class=
"icon-body"
>
<el-input
v-model=
"name"
style=
"position: relative;"
clearable
placeholder=
"请输入图标名称"
@
clear=
"filterIcons"
@
input
.
native=
"filterIcons"
>
<el-input
v-model
.
trim
=
"name"
style=
"position: relative;"
clearable
placeholder=
"请输入图标名称"
@
clear=
"filterIcons"
@
input
.
native=
"filterIcons"
>
<i
slot=
"suffix"
class=
"el-icon-search el-input__icon"
/>
</el-input>
<div
class=
"icon-list"
>
...
...
src/components/bpmn/index.vue
View file @
2be47c4a
...
...
@@ -216,7 +216,7 @@
:value=
"item.value"
/>
</el-select>
<el-input
v-else
v-model=
"isEditText"
disabled
/>
<el-input
v-else
v-model
.
trim
=
"isEditText"
disabled
/>
</
template
>
</el-table-column>
<el-table-column
label=
"显示隐藏"
>
...
...
@@ -246,7 +246,7 @@
<div
v-if=
"showPanel3"
class=
"custom-panel"
>
<el-form
label-width=
"80px"
style=
"margin-top: 80px"
>
<el-form-item
label=
"结束事件"
>
<el-input
v-model=
"listenEntityPath"
:maxlength=
"100"
show-word-limit
size=
"small"
placeholder=
"请输入结束事件"
/>
<el-input
v-model
.
trim
=
"listenEntityPath"
:maxlength=
"100"
show-word-limit
size=
"small"
placeholder=
"请输入结束事件"
/>
</el-form-item>
</el-form>
</div>
...
...
src/layout/components/Settings/index.vue
View file @
2be47c4a
...
...
@@ -41,6 +41,8 @@ export default {
{
value
:
'2'
,
label
:
'风格2'
},
{
value
:
'3'
,
label
:
'风格3'
},
{
value
:
'4'
,
label
:
'风格4'
},
{
value
:
'5'
,
label
:
'风格5'
},
{
value
:
'6'
,
label
:
'风格6'
},
]
}
},
...
...
src/layout/components/Sidebar/Logo.vue
View file @
2be47c4a
<
template
>
<div
class=
"sidebar-logo-container
"
:class=
"
{'collapse':collapse}">
<div
v-if=
"collapse"
class=
"sidebar-logo-containerCollapse
"
:class=
"
{'collapse':collapse}">
<transition
name=
"sidebarLogoFade"
>
<router-link
v-if=
"collapse"
key=
"collapse"
class=
"sidebar-logo-link"
to=
"/"
>
<img
:src=
"logo"
class=
"sidebar-logo"
>
<
!--
<div
class=
"sidebar-title"
>
{{
title
}}
</div>
--
>
<router-link
key=
"collapse"
class=
"sidebar-logo-link"
to=
"/"
>
12222
<
img
:src=
"collapseLogo"
class=
"sidebar-logo2"
>
</router-link>
<router-link
v-else
key=
"expand"
class=
"sidebar-logo-link"
to=
"/"
>
</transition>
</div>
<div
v-else
class=
"sidebar-logo-container"
:class=
"
{'collapse':collapse}">
<transition
name=
"sidebarLogoFade"
>
<router-link
key=
"expand"
class=
"sidebar-logo-link"
to=
"/"
>
<div
class=
"sidebar-logoTitle"
>
<div
class=
"sidebar-logoRow"
><img
:src=
"logo"
class=
"sidebar-logo"
></div>
<div
class=
"sidebar-title"
>
{{
title
}}
</div>
<div
class=
"sidebar-title
title-current
"
>
{{
title
}}
</div>
</div>
</router-link>
</transition>
...
...
@@ -28,7 +32,8 @@ export default {
},
data
()
{
return
{
title
:
'教师能力测评系统'
collapseLogo
:
require
(
'@/assets/image/logo3.png'
),
title
:
'教学资源云平台'
// logo: require('@/assets/image/denglu_logo@2x.png')
}
},
...
...
@@ -37,13 +42,17 @@ export default {
// eslint-disable-next-line vue/return-in-computed-property
logo
()
{
if
(
!
localStorage
.
getItem
(
'theme'
)
||
localStorage
.
getItem
(
'theme'
)
===
'1'
)
{
return
require
(
'@/assets/image/
denglu_logo@2x
.png'
)
return
require
(
'@/assets/image/
logo2
.png'
)
}
else
if
(
localStorage
.
getItem
(
'theme'
)
===
'2'
)
{
return
require
(
'@/assets/themeBImage/menuLogo.png'
)
}
else
if
(
localStorage
.
getItem
(
'theme'
)
===
'3'
)
{
return
require
(
'@/assets/themeCImage/menuLogo.png'
)
}
else
if
(
localStorage
.
getItem
(
'theme'
)
===
'4'
)
{
return
require
(
'@/assets/themeDImage/menuLogo.png'
)
}
else
if
(
localStorage
.
getItem
(
'theme'
)
===
'5'
)
{
return
require
(
'@/assets/themeDImage/menuLogo.png'
)
}
else
if
(
localStorage
.
getItem
(
'theme'
)
===
'6'
)
{
return
require
(
'@/assets/image/denglu_logo@2x.png'
)
}
}
},
...
...
@@ -56,5 +65,11 @@ export default {
</
script
>
<
style
lang=
"scss"
scoped
>
.sidebar-logo-container
.sidebar-logo-link
.sidebar-title.title-current
{
color
:
#fff
!
important
}
.sidebar-logo2
{
margin-right
:
0
;
vertical-align
:
middle
;
}
</
style
>
src/layout/components/Sidebar/index.vue
View file @
2be47c4a
...
...
@@ -22,10 +22,12 @@
import
{
mapGetters
}
from
'vuex'
import
Logo
from
'./Logo'
import
SidebarItem
from
'./SidebarItem'
import
variables
from
'@/styles/
themeA/
variables.scss'
import
variables
from
'@/styles/variables.scss'
import
themeBvariables
from
'@/styles/themeB/variables.scss'
import
themeCvariables
from
'@/styles/themeC/variables.scss'
import
themeDvariables
from
'@/styles/themeD/variables.scss'
import
themeEvariables
from
'@/styles/themeE/variables.scss'
import
themeFvariables
from
'@/styles/themeF/variables.scss'
export
default
{
components
:
{
SidebarItem
,
Logo
},
...
...
@@ -57,6 +59,10 @@ export default {
return
themeCvariables
}
else
if
(
localStorage
.
getItem
(
'theme'
)
===
'4'
)
{
return
themeDvariables
}
else
if
(
localStorage
.
getItem
(
'theme'
)
===
'5'
)
{
return
themeEvariables
}
else
if
(
localStorage
.
getItem
(
'theme'
)
===
'6'
)
{
return
themeFvariables
}
},
isCollapse
()
{
...
...
src/layout/components/TagsView/ScrollPane.vue
View file @
2be47c4a
...
...
@@ -77,18 +77,5 @@ export default {
</
script
>
<
style
lang=
"scss"
scoped
>
.scroll-container
{
white-space
:
nowrap
;
position
:
relative
;
overflow
:
hidden
;
width
:
100%
;
/
deep
/
{
.el-scrollbar__bar
{
bottom
:
0px
;
}
.el-scrollbar__wrap
{
height
:
49px
;
}
}
}
</
style
>
src/layoutLogin/components/logo.vue
View file @
2be47c4a
...
...
@@ -24,7 +24,7 @@ export default {
},
data
()
{
return
{
title
:
'教
师能力测评系统
'
,
title
:
'教
学资源云平台
'
,
logo
:
'https://image-1252351428.cos.ap-beijing.myqcloud.com/home_logo.png'
}
},
...
...
src/main.js
View file @
2be47c4a
...
...
@@ -2,8 +2,8 @@ import Vue from 'vue'
import
'normalize.css/normalize.css'
// A modern alternative to CSS resets
import
moment
from
'moment'
import
Element
from
'element-ui'
import
echarts
from
"echarts"
;
import
'./utils/rem.js'
// 自适应分辨率
import
Print
from
'vue-print-nb'
// import ElementUI from 'element-ui'
// import './styles/element-variables.scss'
// import locale from 'element-ui/lib/locale/lang/en' // lang i18n
...
...
@@ -20,6 +20,10 @@ if (!storageValue || storageValue === '1') {
import
(
'@/styles/themeC/index.scss'
)
}
else
if
(
storageValue
===
'4'
)
{
import
(
'@/styles/themeD/index.scss'
)
}
else
if
(
storageValue
===
'5'
)
{
import
(
'@/styles/themeE/index.scss'
)
}
else
if
(
storageValue
===
'6'
)
{
import
(
'@/styles/themeF/index.scss'
)
}
import
halberd
from
'@/utils/halberd'
import
App
from
'./App'
...
...
@@ -58,8 +62,7 @@ Viewer.setDefaults({
'keyboard'
:
true
,
minZoomRatio
:
0.50
,
maxZoomRatio
:
150
}
})
// 全局引用
Vue
.
use
(
Print
);
// 全局方法挂载
Vue
.
prototype
.
getDict
=
getDict
Vue
.
prototype
.
getConfigKey
=
getConfigKey
...
...
@@ -75,6 +78,7 @@ Vue.prototype.UIUrl = process.env.VUE_APP_UI
Vue
.
prototype
.
$ha
=
halberd
Vue
.
prototype
.
$uploadFile
=
uploadPublic
Vue
.
prototype
.
$haveAuth
=
includePermission
Vue
.
prototype
.
$echarts
=
echarts
;
// set ElementUI lang to EN
Vue
.
prototype
.
$axios
=
xhr
...
...
src/settings.js
View file @
2be47c4a
module
.
exports
=
{
title
:
'
信息化管理系统
'
,
title
:
'
教学资源云平台
'
,
/**
* @type {boolean} true | false
...
...
src/store/modules/user.js
View file @
2be47c4a
...
...
@@ -38,12 +38,14 @@ const user = {
actions
:
{
// 登录
Login
({
commit
},
userInfo
)
{
console
.
log
(
'userInfo'
,
userInfo
)
const
username
=
userInfo
.
username
.
trim
()
const
password
=
userInfo
.
password
const
code
=
userInfo
.
code
const
uuid
=
userInfo
.
uuid
const
type
=
userInfo
.
type
return
new
Promise
((
resolve
,
reject
)
=>
{
login
(
username
,
password
,
code
,
uuid
).
then
(
res
=>
{
login
(
username
,
password
,
code
,
uuid
,
type
).
then
(
res
=>
{
setToken
(
res
.
data
)
commit
(
'SET_TOKEN'
,
res
.
data
)
resolve
()
...
...
src/styles/element-ui.scss
View file @
2be47c4a
...
...
@@ -187,7 +187,7 @@ body .el-table th.gutter{
th
{
padding
:
0
;
color
:
#333333
;
background-color
:
#
ecf9fe
;
background-color
:
#
F2F2F2
;
border-right
:
1px
dashed
#EBEEF5
;
.cell
{
font-size
:
14px
;
...
...
@@ -348,7 +348,7 @@ label {
margin-left
:
15px
;
font-size
:
16px
;
font-weight
:
bold
;
color
:
#
46BCF3
;
color
:
#
214E90
;
}
// 时间选择器样式改写
.el-date-editor
{
...
...
src/styles/index.scss
View file @
2be47c4a
...
...
@@ -34,6 +34,7 @@ html {
height
:
inherit
;
}
}
*,
*
:before
,
*
:after
{
...
...
src/styles/sidebar.scss
View file @
2be47c4a
...
...
@@ -228,26 +228,26 @@
// hover样式
.el-submenu__title
:hover
{
color
:
#
46bcf2
!
important
;
color
:
#
214E90
!
important
;
.el-submenu__icon-arrow
{
color
:
#
46bcf2
!
important
;
color
:
#
214E90
!
important
;
}
}
.nest-menu
.el-submenu
>
.el-submenu__title
:hover
{
background-color
:
#fff
!
important
;
color
:
#
46bcf2
!
important
;
color
:
#
214E90
!
important
;
}
.is-active
>
.el-submenu__title
:hover
{
color
:
#
46bcf2
!
important
;
color
:
#
214E90
!
important
;
}
.el-submenu
.el-menu-item
:hover
{
color
:
#
46bcf2
!
important
;
color
:
#
214E90
!
important
;
}
.el-menu-item.submenu-title-noDropdown
:hover
{
color
:
#
46bcf2
!
important
;
color
:
#
214E90
!
important
;
}
.el-menu--vertical
.el-menu-item
:hover
{
color
:
#
46bcf2
!
important
;
color
:
#
214E90
!
important
;
}
.el-submenu.is-opened
{
...
...
@@ -255,10 +255,10 @@
>
.el-submenu__title
{
background-color
:
#fff
!
important
;
color
:
#
46bcf2
!
important
;
color
:
#
214E90
!
important
;
.el-submenu__icon-arrow
{
color
:
#
46bcf2
!
important
;
color
:
#
214E90
!
important
;
}
}
...
...
@@ -268,7 +268,7 @@
color
:
#000000
!
important
;
&
.is-active
{
color
:
#
46bcf2
!
important
;
color
:
#
214E90
!
important
;
}
}
}
...
...
@@ -279,7 +279,7 @@
color
:
#000000
!
important
;
.el-submenu__icon-arrow
{
color
:
#
46bcf2
!
important
;
color
:
#
214E90
!
important
;
}
}
}
...
...
src/styles/themeA/common.scss
View file @
2be47c4a
...
...
@@ -15,247 +15,3 @@
left
:
576px
!
important
;
padding
:
12px
10px
;
}
//新增按钮
.addBtn
{
//width: 72px;
//height: 34px;
background
:
#FFFFFF
!
important
;
border
:
1px
solid
#6672FB
!
important
;
border-radius
:
4px
;
font-size
:
16px
;
font-family
:
Alibaba
PuHuiTi
;
font-weight
:
400
;
color
:
#6672FB
;
&
:hover
{
opacity
:
0
.85
;
background
:
#FFFFFF
;
color
:
#6672FB
;
border
:
1px
solid
#6672FB
!
important
;
}
&
:focus
{
opacity
:
0
.85
;
background
:
#FFFFFF
;
color
:
#6672FB
;
border
:
1px
solid
#6672FB
!
important
;
}
}
// 弹窗确定按钮
.submitBtn
{
width
:
74px
;
height
:
38px
;
background
:
#6672FB
;
border
:
1px
solid
#6672FB
!
important
;
border-radius
:
4px
;
font-family
:
Alibaba
PuHuiTi
;
font-weight
:
400
;
font-size
:
16px
;
color
:
#FFFFFF
;
&
:hover
{
opacity
:
0
.85
;
background
:
#6672FB
;
border
:
1px
solid
#6672FB
!
important
;
}
&
:focus
{
opacity
:
0
.85
;
background
:
#6672FB
;
border
:
1px
solid
#6672FB
!
important
;
}
}
//弹窗取消按钮
.cancelBtn
{
width
:
74px
;
height
:
38px
;
background
:
#ffffff
;
border
:
1px
solid
#6672FB
;
border-radius
:
4px
;
font-size
:
16px
;
font-family
:
Microsoft
YaHei
,
Microsoft
YaHei-400
;
font-weight
:
400
;
color
:
#6672FB
;
&
:hover
{
opacity
:
0
.85
;
background
:
#ffffff
;
border
:
1px
solid
#6672FB
!
important
;
}
&
:focus
{
opacity
:
0
.85
;
background
:
#ffffff
;
border
:
1px
solid
#6672FB
!
important
;
}
}
//导入按钮
.importBtn
{
//width: 72px;
//height: 34px;
background
:
#FFFFFF
!
important
;
border
:
1px
solid
#6672FB
!
important
;
border-radius
:
4px
;
font-size
:
16px
;
font-family
:
Alibaba
PuHuiTi
;
font-weight
:
400
;
color
:
#6672FB
;
&
:hover
{
opacity
:
0
.85
;
background
:
#FFFFFF
;
color
:
#6672FB
;
border
:
1px
solid
#6672FB
!
important
;
}
&
:focus
{
opacity
:
0
.85
;
background
:
#FFFFFF
;
color
:
#6672FB
;
border
:
1px
solid
#6672FB
!
important
;
}
}
//导出按钮
.exportBtn
{
//width: 72px;
//height: 34px;
background
:
#FFFFFF
!
important
;
border
:
1px
solid
#6672FB
!
important
;
border-radius
:
4px
;
font-size
:
16px
;
font-family
:
Alibaba
PuHuiTi
;
font-weight
:
400
;
color
:
#6672FB
;
&
:hover
{
opacity
:
0
.85
;
background
:
#FFFFFF
;
color
:
#6672FB
;
border
:
1px
solid
#6672FB
!
important
;
}
&
:focus
{
opacity
:
0
.85
;
background
:
#FFFFFF
;
color
:
#6672FB
;
border
:
1px
solid
#6672FB
!
important
;
}
}
//修改按钮文字类型样式
.updateBtn
{
font-family
:
Alibaba
PuHuiTi
;
font-weight
:
400
;
font-size
:
16px
;
color
:
#6672FB
}
.resetBtnText
{
font-family
:
Alibaba
PuHuiTi
;
font-weight
:
400
;
font-size
:
16px
;
color
:
#6672FB
}
.delBtn
{
font-family
:
Alibaba
PuHuiTi
;
font-weight
:
400
;
font-size
:
16px
;
color
:
#6672FB
}
// switch开样式
.el-switch__core
{
width
:
40px
!
important
;
}
.el-switch.is-checked
.el-switch__core
{
border-color
:
#6672FB
;
background-color
:
#6672FB
;
}
.el-message-box__btns
button
:nth-child
(
2
)
{
border-color
:
#6672FB
;
background-color
:
#6672FB
;
}
.search
{
.formClass
{
padding
:
0
35px
19px
53px
;
border-bottom
:
1px
solid
#F5F6F9
;
.el-form-item
{
margin-right
:
20px
;
}
.el-input__inner
{
width
:
300px
;
height
:
38px
;
}
}
.btnRow
{
padding
:
25px
0
53px
52px
;
}
// 查询按钮
.queryBtn
{
width
:
74px
;
height
:
38px
;
background
:
#6672FB
;
border
:
1px
solid
#6672FB
!
important
;
border-radius
:
4px
;
font-family
:
Alibaba
PuHuiTi
;
font-weight
:
400
;
font-size
:
16px
;
color
:
#FFFFFF
;
&
:hover
{
opacity
:
0
.85
;
background
:
#6672FB
;
border
:
1px
solid
#6672FB
!
important
;
}
&
:focus
{
opacity
:
0
.85
;
background
:
#6672FB
;
border
:
1px
solid
#6672FB
!
important
;
}
}
//重置按钮
.resetBtn
{
width
:
74px
;
height
:
38px
;
background
:
#ffffff
;
border
:
1px
solid
#6672FB
;
border-radius
:
4px
;
font-size
:
16px
;
font-family
:
Microsoft
YaHei
,
Microsoft
YaHei-400
;
font-weight
:
400
;
color
:
#6672FB
;
&
:hover
{
opacity
:
0
.85
;
background
:
#ffffff
;
border
:
1px
solid
#6672FB
!
important
;
}
&
:focus
{
opacity
:
0
.85
;
background
:
#ffffff
;
border
:
1px
solid
#6672FB
!
important
;
}
}
}
.table-content
{
padding
:
0
54px
0
53px
;
}
.el-table
th
.cell
{
justify-content
:
center
;
}
.el-table
td
.cell
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
.el-table
th
{
border-right
:
none
;
background-color
:
#F6F7FD
;
}
.el-table
th
.cell
{
font-family
:
Alibaba
PuHuiTi
;
font-weight
:
400
;
font-size
:
16px
;
color
:
#222222
;
}
.el-table
td
{
border-bottom
:
1px
solid
#F3F3F3
;
border-right
:
none
;
}
.el-table
td
.cell
{
font-family
:
Alibaba
PuHuiTi
;
font-weight
:
400
;
font-size
:
16px
;
color
:
#222222
;
}
.el-pagination
{
text-align
:
center
!
important
;
}
.el-pagination.is-background
.el-pager
li
:not
(
.disabled
)
.active
{
background-color
:
#6672FB
;
}
src/styles/themeA/layout.scss
View file @
2be47c4a
...
...
@@ -16,7 +16,7 @@
//position: absolute;
top
:
0
;
width
:
100%
;
z-index
:
1
001
;
z-index
:
1
;
}
.nav-container-two
{
width
:
100%
;
...
...
src/styles/themeA/login.scss
View file @
2be47c4a
...
...
@@ -3,26 +3,48 @@
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
height
:
100%
;
background-image
:
url("../../assets/image/login-background.jpg")
;
width
:
1920px
;
height
:
923px
;
background-image
:
url("../../assets/image/login-bg.png")
;
background-size
:
cover
;
.el-checkbox__input.is-checked
.el-checkbox__inner
{
width
:
14px
;
height
:
14px
;
background
:
#214e90
;
border-radius
:
2px
;
border-color
:
#214e90
;
}
.el-checkbox
.el-checkbox__inner
:hover
{
border
:
1px
solid
#214e90
!
important
;
}
.el-checkbox__input.is-focus
.el-checkbox__inner
{
border
:
1px
solid
#214e90
!
important
;
}
.el-checkbox__input.is-checked
+
.el-checkbox__label
{
font-size
:
14px
;
font-family
:
Microsoft
YaHei
,
Microsoft
YaHei-400
;
font-weight
:
400
;
color
:
#333333
;
}
.login_logoRow
{
padding-top
:
1
0px
;
padding-bottom
:
10
px
;
padding-top
:
5
0px
;
padding-bottom
:
39
px
;
display
:
flex
;
justify-content
:
center
;
width
:
100%
;
.login_form_logo
{
width
:
64px
;
height
:
64px
;
background-image
:
url("../../assets/image/login_logo.png")
;
background-repeat
:
no-repeat
;
background-size
:
100%
;
width
:
319px
;
height
:
39px
;
background-image
:
url("../../assets/image/loginLogo.png")
;
}
}
.loginTitleRow
{
width
:
100%
;
display
:
flex
;
justify-content
:
center
;
margin-
top
:
2
0px
;
margin-
bottom
:
4
0px
;
.title
{
font-size
:
24px
;
font-family
:
Microsoft
YaHei
,
Microsoft
YaHei-700
;
...
...
@@ -46,7 +68,7 @@
font-size
:
16px
;
}
.el-form-item
{
margin-bottom
:
4vh
;
margin-bottom
:
30px
;
}
}
...
...
@@ -54,31 +76,25 @@
position
:
absolute
;
backdrop-filter
:
blur
(
4px
);
display
:
inline
;
flex-direction
:
column
;
align-items
:
flex-end
;
border-radius
:
6px
;
background
:
#ffffff
no-repeat
;
background-size
:
59%
;
background-position-y
:
57px
;
width
:
650px
;
height
:
550px
;
padding
:
25px
25px
5px
25px
;
width
:
499px
;
height
:
560px
;
background-image
:
url("../../assets/image/loginForm-bg.png")
;
border-radius
:
20px
;
background-repeat
:
no-repeat
;
background-size
:
100%
;
.login-form-content
{
position
:
absolute
;
top
:
40%
;
right
:
28%
;
width
:
45%
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
.el-form-item
{
width
:
343px
;
height
:
44px
;
.el-input__inner
{
border-radius
:
4px
;
}
}
.loginCode_formItem
{
width
:
80%
;
width
:
343px
;
display
:
flex
;
justify-content
:
space-between
;
//align-items: center;
...
...
@@ -86,22 +102,30 @@
.el-form-item
{
width
:
400px
;
}
.el-form-item__content
{
width
:
210px
!
important
;
}
}
.blue-btn
{
border
:
none
;
width
:
343px
;
height
:
40px
;
height
:
44px
;
background
:
#214e90
;
border-radius
:
4px
;
font-size
:
18px
;
font-size
:
16px
;
font-family
:
Microsoft
YaHei
,
Microsoft
YaHei-700
;
font-weight
:
700
;
color
:
#ffffff
;
}
}
.el-input
{
height
:
38
px
;
height
:
44
px
;
input
{
height
:
38
px
;
height
:
44
px
;
}
}
.input-icon
{
height
:
39
px
;
height
:
44
px
;
width
:
14px
;
margin-left
:
2px
;
}
...
...
@@ -113,10 +137,10 @@
}
.login-code
{
//width: 33%;
height
:
38
px
;
height
:
44
px
;
//float: right;
img
{
height
:
38
px
;
height
:
44
px
;
cursor
:
pointer
;
vertical-align
:
middle
;
}
...
...
@@ -138,7 +162,10 @@
width
:
343px
;
justify-content
:
space-between
;
.rem-code
span
{
color
:
$font-dark
;
font-size
:
14px
!
important
;
font-family
:
Microsoft
YaHei
,
Microsoft
YaHei-400
;
font-weight
:
400
!
important
;
color
:
#333333
!
important
;
}
.el-link
span
{
color
:
$color-theme
;
...
...
src/styles/themeA/navigationBar.scss
View file @
2be47c4a
...
...
@@ -11,13 +11,63 @@
.sidebar-logo-container
{
position
:
relative
;
width
:
100%
;
height
:
50px
;
height
:
150px
!
important
;
line-height
:
50px
;
background
:
#
FFFFFF
;
background
:
#
214E90
;
padding-left
:
11px
;
overflow
:
hidden
;
.sidebar-logoTitle
{
display
:
flex
;
//.sidebar-logoTitle{
// display: flex;
//}
.sidebar-logoRow
{
padding-top
:
28px
!
important
;
padding-bottom
:
2px
!
important
;
text-align
:
center
!
important
;
}
&
.sidebar-logo-link
{
height
:
100%
;
width
:
100%
;
&
.sidebar-logo
{
width
:
85px
;
height
:
39px
;
vertical-align
:
middle
;
margin-right
:
12px
;
}
&
.sidebar-title
{
text-align
:
center
!
important
;
color
:
#333333
!
important
;
margin
:
0
;
font-weight
:
600
;
line-height
:
50px
;
font-size
:
16px
;
font-family
:
Avenir
,
Helvetica
Neue
,
Arial
,
Helvetica
,
sans-serif
;
vertical-align
:
middle
;
}
}
&
.collapse
{
.sidebar-logo
{
margin-right
:
0px
;
}
}
}
.sidebar-logo-containerCollapse
{
position
:
relative
;
width
:
100%
;
height
:
70px
!
important
;
line-height
:
70px
;
background
:
#214E90
;
padding-left
:
11px
;
overflow
:
hidden
;
//.sidebar-logoTitle{
// display: flex;
//}
.sidebar-logoRow
{
padding-top
:
28px
!
important
;
padding-bottom
:
2px
!
important
;
text-align
:
center
!
important
;
}
&
.sidebar-logo-link
{
height
:
100%
;
...
...
@@ -31,13 +81,13 @@
}
&
.sidebar-title
{
font-family
:
Alibaba
PuHuiTi
;
font-weight
:
bold
;
font-size
:
18px
;
color
:
#222222
;
display
:
inline-block
;
text-align
:
center
!
important
;
color
:
#333333
!
important
;
margin
:
0
;
font-weight
:
600
;
line-height
:
50px
;
font-size
:
16px
;
font-family
:
Avenir
,
Helvetica
Neue
,
Arial
,
Helvetica
,
sans-serif
;
vertical-align
:
middle
;
}
}
...
...
src/styles/themeA/sidebar.scss
View file @
2be47c4a
@import
'.
./../styles
/variables'
;
@import
'./variables'
;
#app
{
.main-container
{
padding-top
:
6
.4vh
;
...
...
@@ -11,7 +11,7 @@
.sidebar-container
{
transition
:
width
0
.28s
;
width
:
$sideBarWidth
!
important
;
background-color
:
#FFFFFF
;
background-color
:
$menuBg
;
height
:
100%
;
position
:
fixed
;
font-size
:
0px
;
...
...
@@ -211,7 +211,7 @@
}
.el-submenu__icon-arrow
{
color
:
#
222222
!
important
;
color
:
#
ffffff
!
important
;
}
.is-active.submenu-title-noDropdown
{
...
...
@@ -228,51 +228,47 @@
// hover样式
.el-submenu__title
:hover
{
color
:
#
6672FB
!
important
;
color
:
#
214E90
!
important
;
.el-submenu__icon-arrow
{
color
:
#
6672FB
!
important
;
color
:
#
214E90
!
important
;
}
}
.nest-menu
.el-submenu
>
.el-submenu__title
:hover
{
background-color
:
#fff
!
important
;
color
:
#
6672FB
!
important
;
color
:
#
214E90
!
important
;
}
.is-active
>
.el-submenu__title
:hover
{
color
:
#
6672FB
!
important
;
color
:
#
214E90
!
important
;
}
.el-submenu
.el-menu-item
:hover
{
color
:
#
6672FB
!
important
;
color
:
#
214E90
!
important
;
}
.el-menu-item.submenu-title-noDropdown
:hover
{
color
:
#
6672FB
!
important
;
color
:
#
214E90
!
important
;
}
.el-menu--vertical
.el-menu-item
:hover
{
color
:
#6672FB
!
important
;
}
.el-submenu__title
{
font-size
:
18px
!
important
;
}
.el-menu-item
{
font-size
:
18px
!
important
;
color
:
#214E90
!
important
;
}
.el-submenu.is-opened
{
background-color
:
#FFFFFF
!
important
;
>
.el-submenu__title
{
background-color
:
#fff
!
important
;
color
:
#
6672FB
!
important
;
color
:
#
214E90
!
important
;
.el-submenu__icon-arrow
{
color
:
#
6672FB
!
important
;
color
:
#
214E90
!
important
;
}
}
.el-menu
{
.el-menu-item
{
background-color
:
#fff
!
important
;
color
:
#000000
;
color
:
#000000
!
important
;
&
.is-active
{
color
:
#
6672FB
!
important
;
color
:
#
214E90
!
important
;
}
}
}
...
...
@@ -281,8 +277,9 @@
.el-submenu__title
{
background-color
:
#fff
!
important
;
color
:
#000000
!
important
;
.el-submenu__icon-arrow
{
color
:
#
6672FB
!
important
;
color
:
#
214E90
!
important
;
}
}
}
...
...
src/styles/themeA/tagsView.scss
View file @
2be47c4a
...
...
@@ -27,7 +27,7 @@
}
&
.active
{
background-color
:
#fff
;
color
:
#6672FB
;
color
:
$color-theme
;
border-color
:
transparent
;
//&::before {
// content: '';
...
...
src/styles/themeA/user.scss
View file @
2be47c4a
...
...
@@ -9,7 +9,7 @@ $color-theme: #f4ac10;
margin-left
:
15px
;
font-size
:
16px
;
font-weight
:
bold
;
color
:
#
46BCF3
;
color
:
#
214E90
;
}
.paddingFixed
{
.el-dialog__body
{
...
...
src/styles/themeA/variables.scss
View file @
2be47c4a
// 主题色
$color-theme
:
#
46BCF3
;
$color-theme
:
#
214E90
;
$color-red
:
#F57b7b
;
$color-purple
:
#ff33a9
;
$color-orange
:
#f4ac10
;
...
...
@@ -36,7 +36,7 @@ $color-green-light: #80e4e9;
// 线框、线段、列表 虚线分割线、表单不可修改
$color-border
:
#e5e5e5
;
// 查询 新增 申请 tab标签 分页列表中除修改之外的其他按钮
$blue-prime
:
#
46BCF3
;
$blue-prime
:
#
214E90
;
$blue-prime-hover
:
#6bc9f5
;
$blue-prime-active
:
#0098de
;
// 导出 导入 修改
...
...
@@ -80,14 +80,14 @@ $bg-page-light: #f9f9f9;
$bg-menu-hover
:
#f2f6fc
;
// sidebar
$menuText
:
#
222222
;
$menuActiveText
:
#
6672FB
;
$subMenuActiveText
:
#
6672FB
;
//https://github.com/ElemeFE/element/issues/12951
$menuText
:
#
fff
;
$menuActiveText
:
#
214E90
;
$subMenuActiveText
:
#
f4f4f5
;
//https://github.com/ElemeFE/element/issues/12951
$menuBg
:
#
FFFFFF
;
$menuBg
:
#
214E90
;
$menuHover
:
#fff
;
$subMenuBg
:
#
46BCF2
;
$subMenuBg
:
#
214E90
;
$subMenuHover
:
#fff
;
$sideBarWidth
:
254px
;
...
...
src/styles/themeB/login.scss
View file @
2be47c4a
...
...
@@ -11,6 +11,8 @@
justify-content
:
center
;
width
:
100%
;
.login_form_logo
{
background-repeat
:
no-repeat
;
background-size
:
100%
;
width
:
64px
;
height
:
64px
;
background-image
:
url("../../assets/themeBImage/login_logo.png")
;
...
...
@@ -53,6 +55,8 @@
background
:
#ffffff
no-repeat
;
background-size
:
59%
;
background-position-y
:
57px
;
background-repeat
:
no-repeat
;
background-size
:
100%
;
.login-form-content
{
padding-top
:
35px
;
width
:
100%
;
...
...
src/styles/themeB/variables.scss
View file @
2be47c4a
...
...
@@ -36,7 +36,7 @@ $color-green-light: #80e4e9;
// 线框、线段、列表 虚线分割线、表单不可修改
$color-border
:
#e5e5e5
;
// 查询 新增 申请 tab标签 分页列表中除修改之外的其他按钮
$blue-prime
:
#
46BCF3
;
$blue-prime
:
#
214E90
;
$blue-prime-hover
:
#6bc9f5
;
$blue-prime-active
:
#0098de
;
// 导出 导入 修改
...
...
@@ -81,13 +81,13 @@ $bg-menu-hover: #f2f6fc;
// sidebar
$menuText
:
#333333
;
$menuActiveText
:
#
46BCF2
;
$menuActiveText
:
#
214E90
;
$subMenuActiveText
:
#f4f4f5
;
//https://github.com/ElemeFE/element/issues/12951
$menuBg
:
#FFFFFF
;
$menuHover
:
#fff
;
$subMenuBg
:
#
46BCF2
;
$subMenuBg
:
#
214E90
;
$subMenuHover
:
#fff
;
$sideBarWidth
:
219px
;
...
...
src/styles/themeC/login.scss
View file @
2be47c4a
...
...
@@ -12,6 +12,8 @@
justify-content
:
center
;
width
:
100%
;
.login_form_logo
{
background-repeat
:
no-repeat
;
background-size
:
100%
;
width
:
64px
;
height
:
64px
;
background-image
:
url("../../assets/themeCImage/login_logo.png")
;
...
...
src/styles/themeC/variables.scss
View file @
2be47c4a
...
...
@@ -36,7 +36,7 @@ $color-green-light: #80e4e9;
// 线框、线段、列表 虚线分割线、表单不可修改
$color-border
:
#e5e5e5
;
// 查询 新增 申请 tab标签 分页列表中除修改之外的其他按钮
$blue-prime
:
#
46BCF3
;
$blue-prime
:
#
214E90
;
$blue-prime-hover
:
#6bc9f5
;
$blue-prime-active
:
#0098de
;
// 导出 导入 修改
...
...
@@ -87,7 +87,7 @@ $subMenuActiveText:#f4f4f5; //https://github.com/ElemeFE/element/issues/12951
$menuBg
:
#FFFFFF
;
$menuHover
:
#fff
;
$subMenuBg
:
#
46BCF2
;
$subMenuBg
:
#
214E90
;
$subMenuHover
:
#fff
;
$sideBarWidth
:
219px
;
...
...
src/styles/themeD/login.scss
View file @
2be47c4a
...
...
@@ -12,6 +12,8 @@
justify-content
:
center
;
width
:
100%
;
.login_form_logo
{
background-repeat
:
no-repeat
;
background-size
:
100%
;
width
:
64px
;
height
:
64px
;
background-image
:
url("../../assets/themeDImage/login_logo.png")
;
...
...
src/styles/themeD/variables.scss
View file @
2be47c4a
...
...
@@ -36,7 +36,7 @@ $color-green-light: #80e4e9;
// 线框、线段、列表 虚线分割线、表单不可修改
$color-border
:
#e5e5e5
;
// 查询 新增 申请 tab标签 分页列表中除修改之外的其他按钮
$blue-prime
:
#
46BCF3
;
$blue-prime
:
#
214E90
;
$blue-prime-hover
:
#6bc9f5
;
$blue-prime-active
:
#0098de
;
// 导出 导入 修改
...
...
@@ -87,7 +87,7 @@ $subMenuActiveText:#f4f4f5; //https://github.com/ElemeFE/element/issues/12951
$menuBg
:
#F6F6F6
;
$menuHover
:
#fff
;
$subMenuBg
:
#
46BCF2
;
$subMenuBg
:
#
214E90
;
$subMenuHover
:
#fff
;
$sideBarWidth
:
219px
;
...
...
src/styles/variables.scss
View file @
2be47c4a
// 主题色
$color-theme
:
#
46BCF3
;
$color-theme
:
#
214E90
;
$color-red
:
#F57b7b
;
$color-purple
:
#ff33a9
;
$color-orange
:
#f4ac10
;
...
...
@@ -36,7 +36,7 @@ $color-green-light: #80e4e9;
// 线框、线段、列表 虚线分割线、表单不可修改
$color-border
:
#e5e5e5
;
// 查询 新增 申请 tab标签 分页列表中除修改之外的其他按钮
$blue-prime
:
#
46BCF3
;
$blue-prime
:
#
214E90
;
$blue-prime-hover
:
#6bc9f5
;
$blue-prime-active
:
#0098de
;
// 导出 导入 修改
...
...
@@ -81,13 +81,13 @@ $bg-menu-hover: #f2f6fc;
// sidebar
$menuText
:
#fff
;
$menuActiveText
:
#
46BCF2
;
$menuActiveText
:
#
214E90
;
$subMenuActiveText
:
#f4f4f5
;
//https://github.com/ElemeFE/element/issues/12951
$menuBg
:
#
46BCF2
;
$menuBg
:
#
214E90
;
$menuHover
:
#fff
;
$subMenuBg
:
#
46BCF2
;
$subMenuBg
:
#
214E90
;
$subMenuHover
:
#fff
;
$sideBarWidth
:
254px
;
...
...
src/utils/auth.js
View file @
2be47c4a
import
Cookies
from
'js-cookie'
const
TokenKey
=
'Admin-Token'
const
TokenKey
=
'Admin-Token
Web
'
export
function
getToken
()
{
return
Cookies
.
get
(
TokenKey
)
...
...
src/utils/auth/index.js
View file @
2be47c4a
const
TokenKey
=
'token'
const
TokenKey
=
'token
Web
'
const
emailKey
=
'email'
export
function
getToken
()
{
...
...
src/utils/common.js
View file @
2be47c4a
...
...
@@ -135,6 +135,20 @@ export function praseStrEmpty(str) {
}
return
str
}
export
function
deepClone
(
source
)
{
if
(
!
source
&&
typeof
source
!==
'object'
)
{
throw
new
Error
(
'error arguments'
,
'deepClone'
)
}
const
targetObj
=
source
.
constructor
===
Array
?
[]
:
{}
Object
.
keys
(
source
).
forEach
(
keys
=>
{
if
(
source
[
keys
]
&&
typeof
source
[
keys
]
===
'object'
)
{
targetObj
[
keys
]
=
deepClone
(
source
[
keys
])
}
else
{
targetObj
[
keys
]
=
source
[
keys
]
}
})
return
targetObj
}
/**
* 构造树型结构数据
...
...
src/utils/jsencrypt.js
View file @
2be47c4a
...
...
@@ -49,3 +49,22 @@ export function passwordDecrypt(txt) {
return
encryptor
.
decrypt
(
txt
)
}
const
urlPrivateKey
=
'MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCstNcEy/A6v3BddApjjCN8VESMSh95q3TeFd//1E+36CA1WMIshzP1sL0L9wTHfVjUK/Ii6agsVXkstMMC1+HqavoSz42krvrgadfzEJIepOK4Z2E25YTcyIZ1dt7HgKxz+xhXZWRvbEYdLZrVMVJtjltagFB80RjKStv85U94Z6DMXBF8bZA8DMYGv7+p2Sszl3BUk79X2XLBoF+h2d9Jn0Rl0xKfxPS1k7tSfEVGk0VJArEUZJNAzrr/zCMhH+CN8LISQ/8sI1VYHTx2E85/KhcnewtHjb2P6h5q0fnZ5ELgsf1Bxj/dl2GxW+ybeW1Ir+tyNJWbMz/N7XTZUaLHAgMBAAECggEALCFBV/5scfZ81cRS60DhyGEX6uj9xe8ju6PHSu2LOSjdIgR+CTa69iqlA6uo0viafAyGoJkn2bw1bFD8C3vyRB31rFzQiqYTgMhK39b6H05uiEQSOR7Ipkmu4dDv9/ZPGousmphT44y9FbOTfqpNr6TSfvuOlXYwaXBbafGGLvOQRKqeP0mVq6xmiQOKg9yBAwN1dcoGx77OsvMEV2o0JR0+/0BMd3qRZQLAYH03zv3LE8xkI0zta9Gmmbh44YPwWGW/mMY24Iae1/pKnZxWTGty+X/pLGqHQdtxz6qQr/pCSA9lESNkkocHzVI9D6SxX5+bHWc0AX17EHomB2HawQKBgQDZYIAagH0tRR1XtIsexv1OpAOoHbXnpNmMPkAurpGlIzBlZlQYevPg0gcs7GBA90ZAyt68bkq4ABZ1CYPMEMazcMa2TOMaf9yw5bxnD8Ek2KWOnR4juQqKOyL8/2ddLPBV0J2Boo2D9MFSucyHB3lvRZF/DlYuLbj+GNdt9IZjFwKBgQDLZHosddeLo9Ux4mTChveMdo9nFzrXZZ83mbMPETTJ3EygQGqWmMUUQx9iWkiHWUYyyel/jafdIxOnaZfTEvcYcMDOsj3kDNZ5a1v+ZswqwT5fzQBv4huO3X8CrN7hnNsv9HIVrbT2ZlHhSI0g4Q0nfzSjxo7rYF50vJ6Qk+VL0QKBgQCtGadpc0A7OHpxSRgv3g4A/aLb0Sz11dRXVYsOoXzhn+/+D0qQY/io4xdLsr/DfCW5mtNcAggGFivL71PAwOs6IWhb60Y95+v6AjfRaj5H9S2BL6S8lbHK+eSWy1uoWwzXiVSj0qoWlmUMV2CDdnRBI4kFQIloJIjX7zg+GyaY6QKBgFCyUs7lCln67JFYM4YCqqDuQUMzskLXrO4QazylJP6aC0ThieiqQDcj0oXhMDmTMAjil2PmPh281wVrHbO/KI5n3fekPG4IseeGsv8ipgqolSjJW00ItspeExBqqht1cnl6UPFM9Cl2uzHY6TWMVP3AuI/qLbYxjAhg9cCDDUyhAoGBAI9h0SJjnSivVWl9OCQ8HT17Erl5lPpoI9GA+BjnuHnpWhKu4mxjPKzDMUxF1jmENLpvmGzK6KoeiRSLik2DOosQ1ip4U8N1IlSqJDkwzAVAHpDErwIiIox4bMpnD3vt/MgE1OIkK4PvjYyKfxngygof3gaHaEULTJFFIZVV1KM7'
const
urlPublicKey
=
'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArLTXBMvwOr9wX
\
n'
+
'XQKY4wjfFREjEofeat03hXf/9RPt+ggNVjCLIcz9bC9C/cEx31Y1CvyIumoLFV5LLTDAtfh6mr6Es+NpK764GnX8x
\
n'
+
'CSHqTiuGdhNuWE3MiGdXbex4Csc/sYV2Vkb2xGHS2a1TFSbY5bWoBQfNEYykrb/OVPeGegzFwRfG2QPAzGBr+/qdk
\
n'
+
'rM5dwVJO/V9lywaBfodnfSZ9EZdMSn8T0tZO7UnxFRpNFSQKxFGSTQM66/8wjIR/gjfCyEkP/LCNVWB08dhPOfyoX
\
n'
+
'J3sLR429j+oeatH52eRC4LH9QcY/3ZdhsVvsm3ltSK/rcjSVmzM/ze102VGixwIDAQAB'
// 视频,pdf加密
export
function
urlEncrypt
(
txt
)
{
const
encryptor
=
new
JSEncrypt
()
encryptor
.
setPublicKey
(
urlPublicKey
)
// 设置公钥
return
encryptor
.
encrypt
(
txt
)
// 对需要加密的数据进行加密
}
// 视频,pdf解密
export
function
urlDecrypt
(
txt
)
{
const
encryptor
=
new
JSEncrypt
()
encryptor
.
setPrivateKey
(
urlPrivateKey
)
return
encryptor
.
decrypt
(
txt
)
}
src/utils/rem.js
View file @
2be47c4a
...
...
@@ -2,15 +2,19 @@
// 基准大小
const
baseSize
=
16
// 设置 rem 函数
function
setRem
()
{
// 当前页面屏幕分辨率相对于
1920宽的缩
放比例,可根据自己需要修改
function
setRem
()
{
// 当前页面屏幕分辨率相对于
的缩1920宽
放比例,可根据自己需要修改
const
scale
=
document
.
documentElement
.
clientWidth
/
1920
// 设置页面根节点字体大小(“Math.min(scale, 2)” 指最高放大比例为2,可根据实际业务需求调整)
document
.
documentElement
.
style
.
fontSize
=
baseSize
*
Math
.
min
(
scale
,
2
)
+
'px'
// document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px'
// 设置页面根节点字体大小, 字体大小最小为12
const
fontSize
=
(
baseSize
*
Math
.
min
(
scale
,
2
))
>
16
?
(
baseSize
*
Math
.
min
(
scale
,
2
))
:
16
document
.
documentElement
.
style
.
fontSize
=
fontSize
+
'px'
}
// 初始化
setRem
()
// 改变窗口大小时重新设置 rem
window
.
onresize
=
function
()
{
window
.
onresize
=
function
()
{
setRem
()
}
src/views/assessment/classReport/index.vue
deleted
100644 → 0
View file @
29f91c56
<
script
setup
>
</
script
>
<
template
>
<div>
classReport
</div>
</
template
>
<
style
scoped
lang=
"scss"
>
</
style
>
src/views/assessment/list/index.vue
deleted
100644 → 0
View file @
29f91c56
<
script
setup
>
</
script
>
<
template
>
<div>
测评列表 list
</div>
</
template
>
<
style
scoped
lang=
"scss"
>
</
style
>
src/views/assessment/team/index.vue
deleted
100644 → 0
View file @
29f91c56
<
script
setup
>
</
script
>
<
template
>
<div>
评估组管理 team
</div>
</
template
>
<
style
scoped
lang=
"scss"
>
</
style
>
src/views/home/index.vue
deleted
100644 → 0
View file @
29f91c56
<
script
setup
>
</
script
>
<
template
>
<div>
index
</div>
</
template
>
<
style
scoped
lang=
"scss"
>
</
style
>
src/views/login/login.vue
View file @
2be47c4a
<
template
>
<div
class=
"login"
>
<!-- v-loading="vLoading"-->
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"rules"
class=
"login-form"
>
<el-form
ref=
"loginForm"
v-loading=
"vLoading"
:model=
"loginForm"
:rules=
"rules"
class=
"login-form"
>
<!--
<img
class=
"fy-logo"
src=
"../../assets/image/denglu_logo.png"
>
-->
<div
class=
"login_logoRow"
>
<div
class=
"login_form_logo"
/>
</div>
<div
class=
"loginTitleRow"
>
<div
class=
"title"
>
教
师能力测评系统
</div>
<div
class=
"title"
>
教
学资源云后台管理
</div>
</div>
<div
class=
"login-form-content"
>
<el-form-item
prop=
"username"
>
<el-input
v-model=
"loginForm.username"
type=
"text"
auto-complete=
"off"
placeholder=
"账号"
>
<el-input
v-model=
"loginForm.username"
auto-complete=
"off"
placeholder=
"账号"
>
<svg-icon
slot=
"prefix"
icon-class=
"user"
class=
"el-input__icon input-icon"
/>
</el-input>
</el-form-item>
<el-form-item
prop=
"password"
>
<el-input
v-model=
"loginForm.password"
type=
"password"
auto-complete=
"off"
type=
"password"
placeholder=
"密码"
@
keypress
.
enter
.
native=
"handleLogin"
>
...
...
@@ -87,10 +86,9 @@
:loading=
"loading"
size=
"medium"
type=
"primary"
:disabled=
"!verify"
@
click
.
native
.
prevent=
"handleLogin"
>
<!-- :disabled="!verify"-->
<span
v-if=
"!loading"
>
{{
'登 录'
}}
</span>
<span
v-else
>
登 录 中...
</span>
</el-button>
...
...
@@ -128,6 +126,7 @@ export default {
codeUrl
:
''
,
cookiePassword
:
''
,
loginForm
:
{
type
:
'1'
,
username
:
''
,
password
:
''
,
rememberMe
:
false
,
...
...
@@ -195,11 +194,13 @@ export default {
})
},
getCookie
()
{
const
username
=
Cookies
.
get
(
'username'
)
const
password
=
Cookies
.
get
(
'password'
)
const
rememberMe
=
Cookies
.
get
(
'rememberMe'
)
const
username
=
Cookies
.
get
(
'usernameWeb'
)
const
password
=
Cookies
.
get
(
'passwordWeb'
)
const
type
=
Cookies
.
get
(
'typeWeb'
)
const
rememberMe
=
Cookies
.
get
(
'rememberMeWeb'
)
this
.
loginForm
=
{
username
:
username
===
undefined
?
this
.
loginForm
.
username
:
username
,
type
:
type
===
undefined
?
this
.
loginForm
.
type
:
type
,
password
:
password
===
undefined
?
this
.
loginForm
.
password
:
passwordDecrypt
(
password
),
rememberMe
:
rememberMe
===
undefined
?
false
:
Boolean
(
rememberMe
)
}
...
...
@@ -230,13 +231,15 @@ export default {
},
rememberMe
()
{
if
(
this
.
loginForm
.
rememberMe
)
{
Cookies
.
set
(
'username'
,
this
.
loginForm
.
username
,
{
expires
:
30
})
Cookies
.
set
(
'password'
,
passwordEncrypt
(
this
.
loginForm
.
password
),
{
expires
:
30
})
Cookies
.
set
(
'rememberMe'
,
this
.
loginForm
.
rememberMe
,
{
expires
:
30
})
Cookies
.
set
(
'usernameWeb'
,
this
.
loginForm
.
username
,
{
expires
:
30
})
Cookies
.
set
(
'typeWeb'
,
this
.
loginForm
.
type
,
{
expires
:
30
})
Cookies
.
set
(
'passwordWeb'
,
passwordEncrypt
(
this
.
loginForm
.
password
),
{
expires
:
30
})
Cookies
.
set
(
'rememberMeWeb'
,
this
.
loginForm
.
rememberMe
,
{
expires
:
30
})
}
else
{
Cookies
.
remove
(
'username'
)
Cookies
.
remove
(
'password'
)
Cookies
.
remove
(
'rememberMe'
)
Cookies
.
remove
(
'usernameWeb'
)
Cookies
.
remove
(
'typeWeb'
)
Cookies
.
remove
(
'passwordWeb'
)
Cookies
.
remove
(
'rememberMeWeb'
)
}
},
successLogin
()
{
...
...
@@ -246,9 +249,6 @@ export default {
// this.$router.push({ path: `http://main.court.com${this.redirect || "/"}` });
// this.$router.push('/welcome')
this
.
$router
.
push
(
'/controlPlatform/control'
)
setTimeout
(()
=>
{
this
.
loading
=
false
},
1000
)
}).
catch
(()
=>
{
this
.
loading
=
false
this
.
verify
=
false
...
...
src/views/login/setPwd.vue
View file @
2be47c4a
...
...
@@ -14,7 +14,7 @@
<el-input
v-model=
"pwdList.pass"
type=
"password"
placeholder=
"
8~16
位,由字母和数字混合组成"
placeholder=
"
6~20
位,由字母和数字混合组成"
/>
</el-form-item>
<el-form-item
...
...
@@ -104,11 +104,11 @@ export default {
if
(
value
===
''
)
{
callback
(
new
Error
(
'请输入密码'
))
}
else
{
const
pw_pattern
=
'^(?![A-Za-z]+$)(?![a-z
\\
W]+$)(?![A-Z
\\
W]+$)(?![0-9
\\
W]+$)[a-zA-Z0-9
\\
W]{
8,16
}$'
const
pw_pattern
=
'^(?![A-Za-z]+$)(?![a-z
\\
W]+$)(?![A-Z
\\
W]+$)(?![0-9
\\
W]+$)[a-zA-Z0-9
\\
W]{
6,20
}$'
if
(
value
.
match
(
pw_pattern
))
{
callback
()
}
else
{
callback
(
new
Error
(
'
8~16
位,由字母和数字混合组成'
))
callback
(
new
Error
(
'
6~20
位,由字母和数字混合组成'
))
}
}
},
...
...
src/views/monitor/loginInfo/index.vue
View file @
2be47c4a
...
...
@@ -2,9 +2,9 @@
<div
class=
"loginInfo-manage"
>
<div
class=
"search"
style=
"border-bottom: 14px solid #f4f4f4"
>
<el-form
v-show=
"showSearch"
ref=
"queryForm"
style=
"padding: 0 0 0 10px"
:model=
"queryParams"
:inline=
"true"
label-width=
"auto"
>
<el-form-item
label=
"用户名称"
prop=
"userName"
>
<el-form-item
label=
"用户名称
:
"
prop=
"userName"
>
<el-input
v-model=
"queryParams.username"
v-model
.
trim
=
"queryParams.username"
placeholder=
"请输入用户名称"
clearable
:maxlength=
"30"
...
...
@@ -13,7 +13,7 @@
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"登录时间"
prop=
"loginTime"
>
<el-form-item
label=
"登录时间
:
"
prop=
"loginTime"
>
<el-date-picker
v-model=
"queryParams.loginTime"
type=
"month"
...
...
src/views/monitor/operLog/index.vue
View file @
2be47c4a
...
...
@@ -2,9 +2,9 @@
<div
class=
"operlog-manage"
>
<div
class=
"search"
style=
"border-bottom: 14px solid #f4f4f4"
>
<el-form
ref=
"queryForm"
style=
"padding: 0 0 0 10px"
:model=
"queryParams"
:inline=
"true"
label-width=
"auto"
>
<el-form-item
label=
"系统模块"
prop=
"title"
>
<el-form-item
label=
"系统模块
:
"
prop=
"title"
>
<el-input
v-model=
"queryParams.title"
v-model
.
trim
=
"queryParams.title"
placeholder=
"请输入系统模块"
clearable
style=
"width: 170px"
...
...
@@ -13,9 +13,9 @@
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"用户名称"
prop=
"operName"
>
<el-form-item
label=
"用户名称
:
"
prop=
"operName"
>
<el-input
v-model=
"queryParams.operName"
v-model
.
trim
=
"queryParams.operName"
style=
"width: 170px"
placeholder=
"请输入用户名称"
clearable
...
...
@@ -24,7 +24,7 @@
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"操作月份"
prop=
"operTime"
>
<el-form-item
label=
"操作月份
:
"
prop=
"operTime"
>
<el-date-picker
v-model=
"queryParams.operTime"
type=
"month"
...
...
src/views/reSetPsw.vue
View file @
2be47c4a
...
...
@@ -10,7 +10,7 @@
>
<el-form-item
prop=
"oldPass"
label=
"旧密码"
label=
"旧密码
:
"
>
<el-input
v-model=
"pwdList.oldPass"
...
...
@@ -20,17 +20,17 @@
</el-form-item>
<el-form-item
prop=
"pass"
label=
"新密码"
label=
"新密码
:
"
>
<el-input
v-model=
"pwdList.pass"
type=
"password"
placeholder=
"
8~16
位,由字母和数字混合组成"
placeholder=
"
6~20
位,由字母和数字混合组成"
/>
</el-form-item>
<el-form-item
prop=
"checkPass"
label=
"确认密码"
label=
"确认密码
:
"
>
<el-input
v-model=
"pwdList.checkPass"
...
...
@@ -100,11 +100,11 @@ export default {
if
(
value
===
''
)
{
callback
(
new
Error
(
'请输入密码'
))
}
else
{
const
pw_pattern
=
'^(?![A-Za-z]+$)(?![a-z
\\
W]+$)(?![A-Z
\\
W]+$)(?![0-9
\\
W]+$)[a-zA-Z0-9
\\
W]{
8,16
}$'
const
pw_pattern
=
'^(?![A-Za-z]+$)(?![a-z
\\
W]+$)(?![A-Z
\\
W]+$)(?![0-9
\\
W]+$)[a-zA-Z0-9
\\
W]{
6,20
}$'
if
(
value
.
match
(
pw_pattern
))
{
callback
()
}
else
{
callback
(
new
Error
(
'
8~16
位,由字母和数字混合组成'
))
callback
(
new
Error
(
'
6~20
位,由字母和数字混合组成'
))
}
}
},
...
...
src/views/system/dict/data.vue
View file @
2be47c4a
...
...
@@ -2,8 +2,8 @@
<div
class=
"dictData-manage"
>
<div
class=
"search"
style=
"border-bottom: 14px solid #f4f4f4"
>
<el-form
v-show=
"showSearch"
ref=
"queryForm"
style=
"padding: 0 0 0 10px"
:model=
"queryParams"
:inline=
"true"
>
<el-form-item
label=
"字典名称"
prop=
"dictType"
>
<el-select
disabled
v-model=
"queryParams.dictType"
placeholder=
"请选择字典名称"
clearable
size=
"small"
>
<el-form-item
label=
"字典名称
:
"
prop=
"dictType"
>
<el-select
v-model=
"queryParams.dictType"
disabled
placeholder=
"请选择字典名称"
clearable
size=
"small"
>
<el-option
v-for=
"item in typeOptions"
:key=
"item.businessId"
...
...
@@ -12,9 +12,9 @@
/>
</el-select>
</el-form-item>
<el-form-item
label=
"字典标签"
prop=
"dictLabel"
>
<el-form-item
label=
"字典标签
:
"
prop=
"dictLabel"
>
<el-input
v-model=
"queryParams.dictLabel"
v-model
.
trim
=
"queryParams.dictLabel"
placeholder=
"请输入字典标签"
clearable
:maxlength=
"30"
...
...
@@ -22,7 +22,7 @@
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"flag"
>
<el-form-item
label=
"状态
:
"
prop=
"flag"
>
<el-select
v-model=
"queryParams.flag"
placeholder=
"数据状态"
clearable
size=
"small"
>
<el-option
v-for=
"dict in statusOptions"
...
...
@@ -45,15 +45,15 @@
size=
"small"
@
click=
"handleImport"
>
导入
</el-button>
<
el-button
v-has-permi=
"['sys:dict:export']"
class=
"exportBtn"
type=
"success"
icon=
"el-icon-download"
size=
"small"
@
click=
"handleExport"
>
导出
<
/el-button
>
<
!--
<el-button-->
<!-- v-has-permi="['sys:dict:export']"-->
<!-- class="exportBtn"-->
<!-- type="success"-->
<!-- icon="el-icon-download"-->
<!-- size="small"-->
<!-- @click="handleExport"-->
<!-- >导出-->
<
!--
</el-button>
--
>
<right-toolbar
:show-search
.
sync=
"showSearch"
@
queryTable=
"getList"
/>
</div>
</el-form>
...
...
@@ -124,19 +124,19 @@
<!-- 添加或修改参数配置对话框 -->
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"500px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"auto"
>
<el-form-item
label=
"字典类型"
>
<el-form-item
label=
"字典类型
:
"
>
<el-input
v-model
.
trim=
"form.dictType"
:disabled=
"true"
show-word-limit
maxlength=
"30"
placeholder=
"请输入字典类型"
/>
</el-form-item>
<el-form-item
label=
"参数标签"
prop=
"dictLabel"
>
<el-form-item
label=
"参数标签
:
"
prop=
"dictLabel"
>
<el-input
v-model
.
trim=
"form.dictLabel"
show-word-limit
maxlength=
"30"
placeholder=
"请输入参数标签"
/>
</el-form-item>
<el-form-item
label=
"参数键值"
prop=
"dictValue"
>
<el-form-item
label=
"参数键值
:
"
prop=
"dictValue"
>
<el-input
v-model
.
trim=
"form.dictValue"
show-word-limit
maxlength=
"300"
placeholder=
"请输入参数键值"
/>
</el-form-item>
<el-form-item
label=
"参数排序"
prop=
"dictSort"
>
<el-form-item
label=
"参数排序
:
"
prop=
"dictSort"
>
<el-input-number
v-model=
"form.dictSort"
style=
"width: 100%"
controls-position=
"right"
:min=
"0"
/>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"remarks"
>
<el-form-item
label=
"备注
:
"
prop=
"remarks"
>
<el-input
v-model
.
trim=
"form.remarks"
type=
"textarea"
show-word-limit
maxlength=
"200"
placeholder=
"请输入内容"
/>
</el-form-item>
</el-form>
...
...
@@ -245,11 +245,11 @@ export default {
statusOptions
:
[
{
dictLabel
:
'正常'
,
dictValue
:
'
0
'
dictValue
:
'
1
'
},
{
dictLabel
:
'停用'
,
dictValue
:
'
1
'
dictValue
:
'
0
'
}
],
// 类型数据字典
...
...
@@ -298,9 +298,9 @@ export default {
const
dictId
=
this
.
$route
.
params
&&
this
.
$route
.
params
.
dictId
this
.
getType
(
dictId
)
this
.
getTypeList
()
this
.
getDict
(
dictCons
[
'NORMAL_DISABLE'
]).
then
(
response
=>
{
/*
this.getDict(dictCons['NORMAL_DISABLE']).then(response => {
this.statusOptions = response.data
})
})
*/
},
methods
:
{
// 状态
...
...
src/views/system/dict/index.vue
View file @
2be47c4a
...
...
@@ -2,9 +2,9 @@
<div
class=
"dict-manage"
>
<div
class=
"search"
style=
"border-bottom: 14px solid #f4f4f4"
>
<el-form
ref=
"queryForm"
style=
"padding: 0 0 0 10px"
:model=
"queryParams"
:inline=
"true"
label-width=
"auto"
>
<el-form-item
label=
"字典名称"
prop=
"dictName"
>
<el-form-item
label=
"字典名称
:
"
prop=
"dictName"
>
<el-input
v-model=
"queryParams.dictName"
v-model
.
trim
=
"queryParams.dictName"
placeholder=
"请输入字典名称"
clearable
:maxlength=
"30"
...
...
@@ -13,7 +13,7 @@
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"字典类型"
prop=
"dictType"
>
<el-form-item
label=
"字典类型
:
"
prop=
"dictType"
>
<el-input
v-model
.
trim=
"queryParams.dictType"
placeholder=
"请输入字典类型"
...
...
@@ -24,23 +24,7 @@
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"flag"
>
<el-select
v-model=
"queryParams.flag"
placeholder=
"字典状态"
clearable
size=
"small"
style=
"width: 200px"
>
<el-option
v-for=
"dict in statusOptions"
:key=
"dict.dictValue"
:label=
"dict.dictLabel"
:value=
"dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"创建时间"
>
<el-form-item
label=
"创建时间:"
>
<el-date-picker
v-model=
"dateRange"
size=
"small"
...
...
@@ -80,14 +64,14 @@
@
click=
"handleAdd"
>
{{
commonField
.
addName
}}
</el-button>
<!-- //导出-->
<el-button
v-hasPermi=
"exportHaspermi"
:class=
"commonField.exportClass"
:type=
"commonField.typeSuccess"
:icon=
"commonField.exportIcon"
:size=
"commonField.smallSize"
@
click=
"handleExport"
>
{{
commonField
.
exportName
}}
</el-button
>
<!--
<el-button-->
<!-- v-hasPermi="exportHaspermi"-->
<!-- :class="commonField.exportClass"-->
<!-- :type="commonField.typeSuccess"-->
<!-- :icon="commonField.exportIcon"-->
<!-- :size="commonField.smallSize"-->
<!-- @click="handleExport"-->
<!-- >
{{
commonField
.
exportName
}}
</el-button>
--
>
</div>
</el-form>
...
...
@@ -166,15 +150,15 @@
@
pagination=
"getList"
/>
<!-- 添加或修改参数配置对话框 -->
<el-dialog
title=
"字典信息"
:visible
.
sync=
"open"
width=
"500px"
append-to-body
@
close=
"reset"
>
<el-dialog
title=
"字典信息
:
"
:visible
.
sync=
"open"
width=
"500px"
append-to-body
@
close=
"reset"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"auto"
>
<el-form-item
label=
"字典名称"
prop=
"dictName"
>
<el-form-item
label=
"字典名称
:
"
prop=
"dictName"
>
<el-input
v-model
.
trim=
"form.dictName"
:maxlength=
"30"
placeholder=
"请输入字典名称"
/>
</el-form-item>
<el-form-item
label=
"字典类型"
prop=
"dictType"
>
<el-form-item
label=
"字典类型
:
"
prop=
"dictType"
>
<el-input
v-model
.
trim=
"form.dictType"
:maxlength=
"30"
placeholder=
"请输入字典类型"
/>
</el-form-item>
<el-form-item
label=
"父字典名称"
>
<el-form-item
label=
"父字典名称
:
"
>
<el-select
v-model=
"form.parentId"
style=
"width: 100%"
clearable
placeholder=
"请选择父字典类型"
@
clear=
"setRules"
@
change=
"getOptions"
>
<el-option
v-for=
"item in options"
...
...
@@ -198,7 +182,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"remarks"
>
<el-form-item
label=
"备注
:
"
prop=
"remarks"
>
<el-input
v-model
.
trim=
"form.remarks"
maxlength=
"200"
type=
"textarea"
placeholder=
"请输入内容"
/>
</el-form-item>
</el-form>
...
...
src/views/system/log/index.vue
deleted
100644 → 0
View file @
29f91c56
<
script
setup
>
</
script
>
<
template
>
<div>
日志
</div>
</
template
>
<
style
scoped
lang=
"scss"
>
</
style
>
src/views/system/menu/index.vue
View file @
2be47c4a
<
template
>
<div
id=
"nbprint"
class=
"menu-manage"
>
<div
class=
"menu-manage"
>
<div
class=
"search"
style=
"border-bottom: 14px solid #f4f4f4"
>
<el-form
style=
"padding: 0 0 0 10px"
:inline=
"true"
>
<el-form-item
label=
"菜单名称"
>
<el-form-item
label=
"菜单名称
:
"
>
<el-input
v-model=
"queryParams.menuName"
v-model
.
trim
=
"queryParams.menuName"
placeholder=
"请输入菜单名称"
clearable
:maxlength=
"30"
...
...
@@ -30,10 +30,6 @@
>
{{
commonField
.
resetName
}}
</el-button>
</el-form-item>
<div
style=
"float: right"
>
<el-button
:class=
"commonField.addClass"
:type=
"commonField.typePrimary"
v-print=
"printOption"
>
打印
</el-button>
<el-form-item>
<!-- //新增按钮-->
<el-button
...
...
@@ -136,7 +132,7 @@
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"auto"
>
<el-row>
<el-col
:span=
"24"
>
<el-form-item
label=
"上级菜单"
prop=
"parentId"
>
<el-form-item
label=
"上级菜单
:
"
prop=
"parentId"
>
<treeSelect
v-model=
"form.parentId"
...
...
@@ -145,13 +141,13 @@
:options=
"menuOptions"
:normalizer=
"normalizer"
:show-count=
"true"
placeholder=
"选择上级菜单"
placeholder=
"选择上级菜单
:
"
style=
"width: 95%"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"菜单类型"
prop=
"menuType"
>
<el-form-item
label=
"菜单类型
:
"
prop=
"menuType"
>
<el-radio-group
v-model=
"form.menuType"
>
<el-radio
label=
"M"
>
目录
</el-radio>
<el-radio
label=
"C"
>
菜单
</el-radio>
...
...
@@ -160,7 +156,7 @@
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
v-if=
"form.menuType !== 'F'"
label=
"菜单图标"
>
<el-form-item
v-if=
"form.menuType !== 'F'"
label=
"菜单图标
:
"
>
<el-popover
placement=
"bottom-start"
width=
"460"
...
...
@@ -182,22 +178,22 @@
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"菜单名称"
prop=
"menuName"
>
<el-form-item
label=
"菜单名称
:
"
prop=
"menuName"
>
<el-input
v-model
.
trim=
"form.menuName"
show-word-limit
maxlength=
"20"
placeholder=
"请输入菜单名称"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"菜单排序"
prop=
"orderNum"
>
<el-form-item
label=
"菜单排序
:
"
prop=
"orderNum"
>
<el-input-number
v-model=
"form.orderNum"
style=
"width: 88%"
controls-position=
"right"
:min=
"0"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
v-if=
"form.menuType !== 'M'"
label=
"权限标识"
>
<el-form-item
v-if=
"form.menuType !== 'M'"
label=
"权限标识
:
"
>
<el-input
v-model
.
trim=
"form.perms"
style=
"width: 95%"
show-word-limit
maxlength=
"50"
placeholder=
"请权限标识"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
style=
"margin-right: 1px"
>
<el-form-item
v-if=
"form.menuType !== 'F'"
label=
"是否外链"
>
<el-form-item
v-if=
"form.menuType !== 'F'"
label=
"是否外链
:
"
>
<el-radio-group
v-model=
"form.isFrame"
>
<el-radio
label=
"0"
>
是
</el-radio>
<el-radio
label=
"1"
>
否
</el-radio>
...
...
@@ -205,7 +201,7 @@
</el-form-item>
</el-col>
<el-col
:span=
"12"
style=
"margin-right: -1px"
>
<el-form-item
v-if=
"form.menuType !== 'F'"
label=
"是工作流"
>
<el-form-item
v-if=
"form.menuType !== 'F'"
label=
"是工作流
:
"
>
<el-radio-group
v-model=
"form.isProcess"
>
<el-radio
label=
"0"
>
是
</el-radio>
<el-radio
label=
"1"
>
否
</el-radio>
...
...
@@ -213,7 +209,7 @@
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
v-if=
"form.menuType !== 'F'"
label=
"显示状态"
>
<el-form-item
v-if=
"form.menuType !== 'F'"
label=
"显示状态
:
"
>
<el-radio-group
v-model=
"form.visible"
>
<el-radio
label=
"1"
>
显示
</el-radio>
<el-radio
label=
"0"
>
隐藏
</el-radio>
...
...
@@ -221,7 +217,7 @@
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
v-if=
"form.menuType !== 'F'"
label=
"菜单状态"
>
<el-form-item
v-if=
"form.menuType !== 'F'"
label=
"菜单状态
:
"
>
<el-radio-group
v-model=
"form.flag"
>
<el-radio
label=
"1"
>
启用
</el-radio>
<el-radio
label=
"0"
>
停用
</el-radio>
...
...
@@ -229,12 +225,12 @@
</el-form-item>
</el-col>
<el-col
:span=
"12"
style=
"width: 100%;"
>
<el-form-item
v-if=
"form.menuType !== 'F'"
label=
"路由地址"
prop=
"path"
>
<el-form-item
v-if=
"form.menuType !== 'F'"
label=
"路由地址
:
"
prop=
"path"
>
<el-input
v-model
.
trim=
"form.path"
style=
"width: 95%"
show-word-limit
maxlength=
"100"
placeholder=
"请输入路由地址"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
v-if=
"form.menuType !== 'F' && form.isProcess==='0'"
label=
"工作流"
>
<el-form-item
v-if=
"form.menuType !== 'F' && form.isProcess==='0'"
label=
"工作流
:
"
>
<el-select
v-model=
"form.processId"
clearable
placeholder=
"请选择工作流"
>
<el-option
v-for=
"item in workFlows"
...
...
@@ -246,7 +242,7 @@
</el-form-item>
</el-col>
<el-col
v-if=
"form.menuType === 'C'"
:span=
"12"
>
<el-form-item
label=
"组件路径"
prop=
"component"
>
<el-form-item
label=
"组件路径
:
"
prop=
"component"
>
<el-input
v-model
.
trim=
"form.component"
show-word-limit
maxlength=
"100"
placeholder=
"请输入组件路径"
/>
</el-form-item>
</el-col>
...
...
@@ -279,10 +275,6 @@ export default {
callback
()
}
return
{
printOption
:
{
id
:
'nbprint'
,
// 打印元素的id 不需要携带#号
popTitle
:
'打印信息'
// 页眉标题 默认浏览器标题 空字符串时显示undefined 使用html语言
},
hasDelMenuPerm
:
[
'sys:menu:delete'
],
hasUpdateMenuPerm
:
[
'sys:menu:update'
],
hasAddMenuPerm
:
[
'sys:menu:add'
],
...
...
src/views/system/role/index.vue
View file @
2be47c4a
<
template
>
<div
class=
"role-manage"
>
<div
class=
"search"
>
<el-form
ref=
"queryForm"
class=
"formClass
"
:model=
"queryParams"
:inline=
"true"
>
<el-form-item
prop=
"roleName"
>
<div
class=
"search"
style=
"border-bottom: 14px solid #f4f4f4"
>
<el-form
ref=
"queryForm"
style=
"padding: 0 0 0 10px
"
:model=
"queryParams"
:inline=
"true"
>
<el-form-item
label=
"角色名称:"
prop=
"roleName"
>
<el-input
v-model=
"queryParams.roleName"
v-model
.
trim
=
"queryParams.roleName"
placeholder=
"请输入角色名称"
clearable
:maxlength=
"30"
size=
"small"
style=
"width: 150px"
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
prop=
"roleKey"
>
<el-input
v-model=
"queryParams.roleKey"
placeholder=
"请输入权限字符"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
prop=
"flag"
>
<el-form-item
label=
"角色状态:"
prop=
"flag"
>
<el-select
v-model=
"queryParams.flag"
placeholder=
"请选择角色状态"
clearable
size=
"small"
style=
"width: 150px"
>
<el-option
v-for=
"dict in statusOptions"
...
...
@@ -41,54 +34,53 @@
<el-button
:class=
"commonField.queryClass"
:type=
"commonField.typePrimary"
:icon=
"commonField.queryIcon"
:size=
"commonField.smallSize"
@
click=
"handleQuery"
>
{{
commonField
.
queryName
}}
</el-button>
<!-- //重置按钮-->
<el-button
:class=
"commonField.resetClass"
:icon=
"commonField.resetIcon"
:size=
"commonField.smallSize"
@
click=
"resetQuery"
>
{{
commonField
.
resetName
}}
</el-button>
</el-form-item>
<div
style=
"float: right"
>
<el-form-item>
<!-- //新增按钮-->
<el-button
v-hasPermi=
"hasAddPerm"
:class=
"commonField.addClass"
:type=
"commonField.typePrimary"
:icon=
"commonField.addIcon"
:size=
"commonField.smallSize"
@
click=
"handleAdd"
>
{{
commonField
.
addName
}}
</el-button>
<!-- //导出-->
<!--
<el-button-->
<!-- v-hasPermi="hasExportPerm"-->
<!-- :class="commonField.exportClass"-->
<!-- :type="commonField.typeSuccess"-->
<!-- :icon="commonField.exportIcon"-->
<!-- :size="commonField.smallSize"-->
<!-- @click="handleExport"-->
<!-- >
{{
commonField
.
exportName
}}
</el-button>
-->
</el-form-item>
</div>
</el-form>
<div
class=
"btnRow"
>
<!-- //新增按钮-->
<el-button
v-hasPermi=
"hasAddPerm"
:class=
"commonField.addClass"
:size=
"commonField.smallSize"
@
click=
"handleAdd"
>
{{
commonField
.
addName
}}
</el-button>
<!-- //导出-->
<el-button
v-hasPermi=
"hasExportPerm"
:class=
"commonField.exportClass"
:size=
"commonField.smallSize"
@
click=
"handleExport"
>
{{
commonField
.
exportName
}}
</el-button>
</div>
</div>
<div
class=
"table-content
"
>
<!--
<div
class=
"tableTitle"
>
角色管理列表
</div>
--
>
<div
style=
"padding:5px 10px
"
>
<div
class=
"tableTitle"
>
角色管理列表
</div
>
<el-table
v-loading=
"loading"
border
:data=
"roleList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"index"
label=
"序号"
width=
"90"
/>
<el-table-column
label=
"名称"
prop=
"roleName"
:show-overflow-tooltip=
"true"
>
<el-table-column
type=
"index"
label=
"序号"
width=
"50"
/>
<el-table-column
label=
"角色编号"
prop=
"number"
/>
<el-table-column
label=
"角色名称"
prop=
"roleName"
:show-overflow-tooltip=
"true"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
roleName
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"权限字符"
prop=
"roleKey"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
roleKey
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"显示顺序"
prop=
"roleSort"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
roleSort
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"状态"
align=
"center"
width=
"100"
>
<el-table-column
label=
"角色状态"
align=
"center"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.flag"
...
...
@@ -103,6 +95,11 @@
<span>
{{
scope
.
row
.
createDate
|
transformDateByFormat
(
'YYYY-MM-DD HH:mm'
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"更新时间"
:show-overflow-tooltip=
"true"
align=
"center"
prop=
"createTime"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
updateDate
|
transformDateByFormat
(
'YYYY-MM-DD HH:mm'
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
class-name=
"small-padding fixed-width"
width=
"200px"
>
<
template
slot-scope=
"scope"
>
<!-- //修改-->
...
...
@@ -114,13 +111,13 @@
@
click=
"handleUpdate(scope.row)"
>
{{
commonField
.
updateName
}}
</el-button>
<!-- //数据权限-->
<
el-button
v-hasPermi=
"hasDelPerm"
:class=
"commonField.delClass"
:type=
"commonField.typeParent"
:size=
"commonField.size"
@
click=
"handleMenu(scope.row)"
>
{{
commonField
.
dataPower
}}
</el-button
>
<
!--
<el-button-->
<!-- v-hasPermi="hasDelPerm"-->
<!-- :class="commonField.delClass"-->
<!-- :type="commonField.typeParent"-->
<!-- :size="commonField.size"-->
<!-- @click="handleMenu(scope.row)"-->
<!-- >
{{
commonField
.
dataPower
}}
</el-button>
--
>
<!-- //删除-->
<el-button
v-hasPermi=
"hasDelPerm"
...
...
@@ -143,20 +140,20 @@
<!-- 添加或修改角色配置对话框 -->
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"500px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
size=
"small"
label-width=
"auto"
>
<el-form-item
label=
"名称"
prop=
"roleName"
>
<el-form-item
label=
"名称
:
"
prop=
"roleName"
>
<el-input
v-model
.
trim=
"form.roleName"
show-word-limit
:maxlength=
"30"
placeholder=
"请输入角色名称"
/>
</el-form-item>
<el-form-item
label=
"权限字符"
prop=
"roleKey"
>
<el-form-item
label=
"权限字符
:
"
prop=
"roleKey"
>
<el-input
v-model
.
trim=
"form.roleKey"
show-word-limit
:maxlength=
"30"
placeholder=
"请输入权限字符"
/>
</el-form-item>
<el-form-item
label=
"排序"
prop=
"roleSort"
>
<el-form-item
label=
"排序
:
"
prop=
"roleSort"
>
<el-input-number
v-model=
"form.roleSort"
style=
"width: 100%"
controls-position=
"right"
:min=
"0"
/>
</el-form-item>
<el-form-item
label=
"状态"
>
<el-form-item
label=
"状态
:
"
>
<el-radio
v-model=
"form.flag"
label=
"1"
>
启用
</el-radio>
<el-radio
v-model=
"form.flag"
label=
"0"
>
停用
</el-radio>
</el-form-item>
<el-form-item
label=
"菜单权限"
prop=
"menuIds"
>
<el-form-item
label=
"菜单权限
:
"
prop=
"menuIds"
>
<el-tree
ref=
"menu"
:check-strictly=
"true"
...
...
@@ -169,7 +166,7 @@
@
check=
"handleCheck"
/>
</el-form-item>
<el-form-item
label=
"备注"
>
<el-form-item
label=
"备注
:
"
>
<el-input
v-model
.
trim=
"form.remarks"
maxlength=
"200"
show-word-limit
type=
"textarea"
placeholder=
"请输入内容"
/>
</el-form-item>
</el-form>
...
...
@@ -441,15 +438,23 @@ export default {
this
.
loading
=
true
listRole
(
this
.
queryParams
).
then
(
response
=>
{
this
.
roleList
=
[]
this
.
roleList
=
response
.
rows
/* response.rows.forEach(item => {
if (item.businessId === 1 || item.businessId === 2 || item.businessId === 108) {
this.roleList.push(item)
}
})*/
// this.roleList = response.rows
this
.
total
=
response
.
total
// this.total = this.roleList.length
this
.
loading
=
false
}
)
},
/** 查询菜单树结构 */
getMenuTreeSelect
()
{
menuTreeSelect
().
then
(
response
=>
{
menuTreeSelect
(
{
flag
:
'1'
}
).
then
(
response
=>
{
this
.
menuOptions
=
response
.
data
this
.
updateMenu
.
push
(
this
.
menuOptions
[
0
].
id
)
})
...
...
src/views/system/user/index.vue
View file @
2be47c4a
This diff is collapsed.
Click to expand it.
src/views/teacher/profiles/index.vue
deleted
100644 → 0
View file @
29f91c56
<
script
setup
>
</
script
>
<
template
>
<div>
教师档案 profiles
</div>
</
template
>
<
style
scoped
lang=
"scss"
>
</
style
>
src/views/userInfo/expert/index.vue
deleted
100644 → 0
View file @
29f91c56
This diff is collapsed.
Click to expand it.
src/views/userInfo/student/index.vue
deleted
100644 → 0
View file @
29f91c56
This diff is collapsed.
Click to expand it.
src/views/userInfo/teacher/index.vue
deleted
100644 → 0
View file @
29f91c56
This diff is collapsed.
Click to expand it.
vue.config.js
View file @
2be47c4a
...
...
@@ -8,6 +8,8 @@ const D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate())
const
h
=
(
date
.
getHours
()
<
10
?
'0'
+
(
date
.
getHours
())
:
date
.
getHours
())
const
m
=
(
date
.
getMinutes
()
<
10
?
'0'
+
(
date
.
getMinutes
())
:
date
.
getMinutes
())
const
now
=
Y
+
M
+
D
+
h
+
m
const
CompressionWebpackPlugin
=
require
(
'compression-webpack-plugin'
)
const
productionGzipExtensions
=
[
'js'
,
'css'
]
function
resolve
(
dir
)
{
return
path
.
join
(
__dirname
,
dir
)
}
...
...
@@ -57,8 +59,9 @@ module.exports = {
open
:
false
,
proxy
:
{
[
process
.
env
.
VUE_APP_BASE_API
]:
{
// target: `http://192.168.1.78:8089/`,
target
:
`http://192.168.1.41:8089/`
,
// target: `http://49.232.167.247:20024/`,
// target: `http://192.168.1.119:8090/`,
target
:
`http://192.168.1.29:8090/`
,
// 奕霖后端
pathRewrite
:
{
[
'^'
+
process
.
env
.
VUE_APP_BASE_API
]:
''
}
...
...
@@ -67,6 +70,15 @@ module.exports = {
},
configureWebpack
:
{
name
:
name
,
plugins
:
[
new
CompressionWebpackPlugin
({
filename
:
'[path].gz[query]'
,
// 提示compression-webpack-plugin@3.0.0的话asset改为filename
algorithm
:
'gzip'
,
test
:
new
RegExp
(
'
\\
.('
+
productionGzipExtensions
.
join
(
'|'
)
+
')$'
),
threshold
:
10240
,
minRatio
:
0.8
})
],
resolve
:
{
alias
:
{
'@'
:
resolve
(
'src'
)
...
...
@@ -74,6 +86,15 @@ module.exports = {
}
},
chainWebpack
(
config
)
{
// 删除注释
// config.optimization.minimizer('terser').tap(args => {
// // 直接修改 terserOptions 下的属性值,保留原有配置
// // 这里访问 terserOptions 的时候并没有 output,访问不到 output.comments 需要直接赋值
// args[0].terserOptions.output = {
// comments: false,
// }
// return args
// })
config
.
plugins
.
delete
(
'preload'
)
// TODO: need test
config
.
plugins
.
delete
(
'prefetch'
)
// TODO: need test
config
.
module
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment