@ -0,0 +1,6 @@ |
|||||
|
{ |
||||
|
"presets": ["@babel/preset-env"], |
||||
|
"plugins": [ |
||||
|
"@babel/plugin-transform-runtime" |
||||
|
] |
||||
|
} |
@ -0,0 +1,2 @@ |
|||||
|
> 1% |
||||
|
last 2 versions |
@ -0,0 +1,14 @@ |
|||||
|
# https://editorconfig.org |
||||
|
root = true |
||||
|
|
||||
|
[*] |
||||
|
charset = utf-8 |
||||
|
indent_style = space |
||||
|
indent_size = 4 |
||||
|
end_of_line = lf |
||||
|
insert_final_newline = true |
||||
|
trim_trailing_whitespace = true |
||||
|
|
||||
|
[*.md] |
||||
|
insert_final_newline = false |
||||
|
trim_trailing_whitespace = false |
@ -0,0 +1 @@ |
|||||
|
|
@ -0,0 +1,21 @@ |
|||||
|
module.exports = { |
||||
|
root: true, |
||||
|
env: { |
||||
|
node: true |
||||
|
}, |
||||
|
"globals": { |
||||
|
"config": true //这里添加变量名称
|
||||
|
}, |
||||
|
'extends': [ |
||||
|
'plugin:vue/essential', |
||||
|
'eslint:recommended', |
||||
|
'@vue/typescript/recommended' |
||||
|
], |
||||
|
parserOptions: { |
||||
|
ecmaVersion: 2020 |
||||
|
}, |
||||
|
rules: { |
||||
|
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', |
||||
|
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' |
||||
|
} |
||||
|
} |
@ -0,0 +1,24 @@ |
|||||
|
.DS_Store |
||||
|
node_modules |
||||
|
/dist |
||||
|
|
||||
|
/tests/e2e/videos/ |
||||
|
/tests/e2e/screenshots/ |
||||
|
|
||||
|
# local env files |
||||
|
.env.local |
||||
|
.env.*.local |
||||
|
|
||||
|
# Log files |
||||
|
npm-debug.log* |
||||
|
yarn-debug.log* |
||||
|
yarn-error.log* |
||||
|
|
||||
|
# Editor directories and files |
||||
|
.idea |
||||
|
.vscode |
||||
|
*.suo |
||||
|
*.ntvs* |
||||
|
*.njsproj |
||||
|
*.sln |
||||
|
*.sw? |
@ -0,0 +1,20 @@ |
|||||
|
const plugins = []; |
||||
|
if (['production', 'prod'].includes(process.env.NODE_ENV)) { |
||||
|
plugins.push("transform-remove-console") |
||||
|
} |
||||
|
|
||||
|
module.exports = { |
||||
|
presets: [ |
||||
|
[ |
||||
|
"@vue/app", |
||||
|
{ |
||||
|
"useBuiltIns": "entry", |
||||
|
polyfills: [ |
||||
|
'es6.promise', |
||||
|
'es6.symbol' |
||||
|
] |
||||
|
} |
||||
|
] |
||||
|
], |
||||
|
plugins: plugins |
||||
|
}; |
@ -0,0 +1,3 @@ |
|||||
|
{ |
||||
|
"pluginsFile": "tests/e2e/plugins/index.js" |
||||
|
} |
@ -0,0 +1,64 @@ |
|||||
|
{ |
||||
|
"name": "GY_web", |
||||
|
"version": "0.1.0", |
||||
|
"private": true, |
||||
|
"scripts": { |
||||
|
"serve": "vue-cli-service serve", |
||||
|
"build": "vue-cli-service build", |
||||
|
"test:e2e": "vue-cli-service test:e2e", |
||||
|
"lint": "vue-cli-service lint" |
||||
|
}, |
||||
|
"dependencies": { |
||||
|
"@babel/compat-data": "^7.12.5", |
||||
|
"@types/js-cookie": "^2.2.5", |
||||
|
"@types/qs": "^6.9.1", |
||||
|
"axios": "^0.19.2", |
||||
|
"babel-plugin-transform-remove-console": "^6.9.4", |
||||
|
"core-js": "^3.6.4", |
||||
|
"echarts": "^4.6.0", |
||||
|
"echarts-gl": "^1.1.1", |
||||
|
"element-ui": "^2.13.0", |
||||
|
"es6-promise": "^4.2.8", |
||||
|
"js-cookie": "^2.2.1", |
||||
|
"js-md5": "^0.7.3", |
||||
|
"jsencrypt": "^3.0.0-rc.1", |
||||
|
"nprogress": "^0.2.0", |
||||
|
"querystring": "^0.2.0", |
||||
|
"quill": "^1.3.7", |
||||
|
"quill-image-drop-module": "^1.0.3", |
||||
|
"quill-image-extend-module": "^1.1.2", |
||||
|
"quill-image-resize-module": "^3.0.0", |
||||
|
"register-service-worker": "^1.6.2", |
||||
|
"v-distpicker": "^1.2.2", |
||||
|
"vue": "^2.6.11", |
||||
|
"vue-class-component": "^7.2.2", |
||||
|
"vue-property-decorator": "^8.3.0", |
||||
|
"vue-quill-editor": "^3.0.6", |
||||
|
"vue-router": "^3.1.5", |
||||
|
"vue-seamless-scroll": "^1.1.21", |
||||
|
"vue-ueditor": "^0.1.3", |
||||
|
"vuex": "^3.1.2" |
||||
|
}, |
||||
|
"devDependencies": { |
||||
|
"@typescript-eslint/eslint-plugin": "^2.18.0", |
||||
|
"@typescript-eslint/parser": "^2.18.0", |
||||
|
"@vue/cli-plugin-babel": "~4.2.0", |
||||
|
"@vue/cli-plugin-e2e-cypress": "~4.2.0", |
||||
|
"@vue/cli-plugin-eslint": "~4.2.0", |
||||
|
"@vue/cli-plugin-pwa": "~4.2.0", |
||||
|
"@vue/cli-plugin-router": "~4.2.0", |
||||
|
"@vue/cli-plugin-typescript": "~4.2.0", |
||||
|
"@vue/cli-plugin-vuex": "~4.2.0", |
||||
|
"@vue/cli-service": "~4.2.0", |
||||
|
"@vue/eslint-config-typescript": "^5.0.1", |
||||
|
"babel-polyfill": "^6.26.0", |
||||
|
"eslint": "^6.7.2", |
||||
|
"eslint-plugin-vue": "^6.1.2", |
||||
|
"sass": "^1.25.0", |
||||
|
"sass-loader": "^8.0.2", |
||||
|
"svg-sprite-loader": "^5.0.0", |
||||
|
"typescript": "~3.7.5", |
||||
|
"vue-template-compiler": "^2.6.11", |
||||
|
"vue-ueditor-wrap": "^2.4.1" |
||||
|
} |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
// config = {
|
||||
|
// API_URL: 'http://www.fatoaniic.com/api',
|
||||
|
// UPLOAD_URL: "http://www.fatoaniic.com/api/api-ftp/ftp/upload",
|
||||
|
// DOWNLOAD_URL: "http://www.fatoaniic.com/api/api-ftp/ftp/download?filename=",
|
||||
|
// SHOW_URL: "http://www.fatoaniic.com/ftpfile/",
|
||||
|
// }
|
||||
|
config = { |
||||
|
API_URL: 'http://61.135.192.42:8082', |
||||
|
UPLOAD_URL: "http://61.135.192.42:8082/attachment/uploadOne", |
||||
|
DOWNLOAD_URL: "http://61.135.192.42:8082/api-ftp/ftp/download?filename=", |
||||
|
SHOW_URL: "http://www.fatoaniic.com/ftpfile/", |
||||
|
} |
||||
|
|
After Width: | Height: | Size: 66 KiB |
@ -0,0 +1,21 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="utf-8"> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
||||
|
<meta name="viewport" content="width=device-width,initial-scale=1.0"> |
||||
|
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> |
||||
|
<title>牛栏山工业互联网防伪系统</title> |
||||
|
<script src="./config.js"></script> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<noscript> |
||||
|
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> |
||||
|
</noscript> |
||||
|
<div id="app"></div> |
||||
|
<!-- built files will be auto injected --> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
@ -0,0 +1,2 @@ |
|||||
|
User-agent: * |
||||
|
Disallow: |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 103 KiB |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 823 B |
After Width: | Height: | Size: 419 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 574 B |
After Width: | Height: | Size: 576 B |
After Width: | Height: | Size: 495 B |
After Width: | Height: | Size: 642 B |
After Width: | Height: | Size: 521 B |
After Width: | Height: | Size: 557 B |
@ -0,0 +1,228 @@ |
|||||
|
|
||||
|
$bg: #2d3a4b; |
||||
|
$light_gray: #eee; |
||||
|
|
||||
|
/* reset element-ui css */ |
||||
|
.login-container { |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
background: url("../../img/login/bg.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
.platform-select .el-input{ |
||||
|
width:100%; |
||||
|
} |
||||
|
.el-input { |
||||
|
display: inline-block; |
||||
|
height: 34px; |
||||
|
width: 80%; |
||||
|
|
||||
|
input { |
||||
|
background: transparent; |
||||
|
border: 0px; |
||||
|
-webkit-appearance: none; |
||||
|
border-radius: 0px; |
||||
|
padding: 0 10px; |
||||
|
color: #333; |
||||
|
height: 32px; |
||||
|
font-size: 16px; |
||||
|
|
||||
|
/**&:-webkit-autofill { |
||||
|
-webkit-box-shadow: 0 0 0px 1000px $bg inset !important; |
||||
|
-webkit-text-fill-color: #fff !important; |
||||
|
}**/ |
||||
|
} |
||||
|
.el-input__inner { |
||||
|
line-height: normal; |
||||
|
} |
||||
|
input::-webkit-input-placeholder { /* WebKit browsers */ |
||||
|
color: rgba(153,153,153,1); |
||||
|
font-size: 14px; |
||||
|
} |
||||
|
|
||||
|
input::-moz-placeholder { /* Mozilla Firefox 19+ */ |
||||
|
color: rgba(153,153,153,1); |
||||
|
font-size: 14px; |
||||
|
} |
||||
|
|
||||
|
input:-ms-input-placeholder { /* Internet Explorer 10+ */ |
||||
|
color: rgba(153,153,153,1); |
||||
|
font-size: 14px; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.el-form-item { |
||||
|
// width:407px; |
||||
|
max-width: 100%; |
||||
|
height:34px; |
||||
|
background:rgba(255,255,255,1); |
||||
|
border:1px solid rgba(220,220,220,1); |
||||
|
border-radius:4px; |
||||
|
margin-bottom: 25px; |
||||
|
.el-form-item__content{ |
||||
|
line-height: normal; |
||||
|
} |
||||
|
} |
||||
|
.login-btn{ |
||||
|
font-size:18px; |
||||
|
padding: 0; |
||||
|
color:rgba(255,255,255,1); |
||||
|
width:405px; |
||||
|
height:35px; |
||||
|
// background:linear-gradient(-24deg,rgba(223,52,52,1),rgba(255,108,88,1)); |
||||
|
border:1px solid rgba(220, 220, 220, 1); |
||||
|
border-radius:4px; |
||||
|
} |
||||
|
a.click_link { |
||||
|
font-size: 14px; |
||||
|
color: #2788CC; |
||||
|
cursor: pointer; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
$bg: #2d3a4b; |
||||
|
$dark_blue:#2788CC; |
||||
|
$dark_gray: #889aa4; |
||||
|
$light_gray: #eee; |
||||
|
.login-container { |
||||
|
position: relative; |
||||
|
height: 100%; |
||||
|
min-height: 700px; |
||||
|
width: 100%; |
||||
|
min-width: 700px; |
||||
|
background-color: $bg; |
||||
|
|
||||
|
.login-form { |
||||
|
background:rgba(255,255,255,1); |
||||
|
box-shadow:0px 3px 40px 0px rgba(143, 143, 143, 0.35); |
||||
|
border-radius:4px; |
||||
|
position: absolute; |
||||
|
width: 450px; |
||||
|
left: 50%; |
||||
|
top:calc(15vh + 130px); |
||||
|
z-index: 100; |
||||
|
padding: 50px 70px; |
||||
|
transform: translateX(-50%); |
||||
|
.platform-select{ |
||||
|
width:100%; |
||||
|
} |
||||
|
} |
||||
|
.title-form { |
||||
|
font-size:24px; |
||||
|
font-family:PingFang SC; |
||||
|
font-weight:500; |
||||
|
color:rgba(51,51,51,1); |
||||
|
line-height:45px; |
||||
|
margin-bottom: 20px; |
||||
|
.title-regiter{ |
||||
|
float: right; |
||||
|
font-size:14px; |
||||
|
// a { |
||||
|
// font-size: 14px; |
||||
|
// color: #2788CC; |
||||
|
// cursor: pointer; |
||||
|
// } |
||||
|
} |
||||
|
} |
||||
|
.svg-container { |
||||
|
padding: 5px 5px 5px 10px; |
||||
|
color: $dark_gray; |
||||
|
display: inline-block; |
||||
|
position: relative; |
||||
|
vertical-align: top; |
||||
|
.user-img{ |
||||
|
width:19px; |
||||
|
height:21px; |
||||
|
} |
||||
|
.pass-img{ |
||||
|
width:19px; |
||||
|
height:21px; |
||||
|
// margin-left: 4px; |
||||
|
} |
||||
|
} |
||||
|
.code-refresh { |
||||
|
position: absolute; |
||||
|
right: 2px; |
||||
|
top: 5px; |
||||
|
width: 25px; |
||||
|
height: 20px; |
||||
|
cursor: pointer; |
||||
|
} |
||||
|
.code-pic { |
||||
|
margin: 0 5px; |
||||
|
border:1px solid rgba(220, 220, 220, 1); |
||||
|
border-radius:3px; |
||||
|
width: 90px; |
||||
|
height: 34px; |
||||
|
// cursor: pointer; |
||||
|
} |
||||
|
.header { |
||||
|
position: relative; |
||||
|
text-align: center; |
||||
|
top: 15vh; |
||||
|
font-weight:bold; |
||||
|
color:rgba(255,255,255,1); |
||||
|
letter-spacing:5px; |
||||
|
.title-cn { |
||||
|
font-size:48px; |
||||
|
height: 48px; |
||||
|
line-height: 48px; |
||||
|
font-family:Microsoft YaHei; |
||||
|
text-shadow:0px 1px 3px rgba(0, 0, 0, 0.4); |
||||
|
} |
||||
|
.title-en { |
||||
|
margin-top: 15px; |
||||
|
height:22px; |
||||
|
font-size:22px; |
||||
|
line-height:22px; |
||||
|
font-family:Arial; |
||||
|
text-shadow:0px 1px 2px rgba(0, 0, 0, 0.4); |
||||
|
letter-spacing: 3px; |
||||
|
word-spacing: 2px; |
||||
|
} |
||||
|
} |
||||
|
.remember-block { |
||||
|
margin-bottom: 20px; |
||||
|
// a { |
||||
|
// font-size: 14px; |
||||
|
// color: #2788CC; |
||||
|
// cursor: pointer; |
||||
|
// } |
||||
|
} |
||||
|
|
||||
|
.show-pwd { |
||||
|
position: absolute; |
||||
|
width: 20px; |
||||
|
height: 15px; |
||||
|
right: 10px; |
||||
|
top: 9px; |
||||
|
font-size: 16px; |
||||
|
color: $dark_gray; |
||||
|
cursor: pointer; |
||||
|
user-select: none; |
||||
|
.eye { |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
background: url("../../img/login/show-P.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
} |
||||
|
.eye-open { |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
background: url("../../img/login/hide-P.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.login_copyright{ |
||||
|
position: absolute; |
||||
|
bottom: 0; |
||||
|
|
||||
|
width: 100vw; |
||||
|
height:56px; |
||||
|
font-size: 14px; |
||||
|
line-height: 56px; |
||||
|
text-align: center; |
||||
|
color:#000; |
||||
|
background-color: rgba(255, 255, 255, 0.2); |
||||
|
} |
@ -0,0 +1,166 @@ |
|||||
|
//to reset element-ui default css |
||||
|
//table header reset css |
||||
|
.el-table thead { |
||||
|
color: #333333; |
||||
|
font-weight: 500; |
||||
|
font-size: 15px; |
||||
|
} |
||||
|
.el-table__header-wrapper tr { |
||||
|
background-color: #ececec !important; |
||||
|
} |
||||
|
.el-table th, |
||||
|
.el-table tr { |
||||
|
background-color: transparent; |
||||
|
} |
||||
|
|
||||
|
//分页器reset css |
||||
|
.el-pagination { |
||||
|
padding: 30px 5px; |
||||
|
text-align: center; |
||||
|
} |
||||
|
.el-pagination.is-background .btn-next, |
||||
|
.el-pagination.is-background .btn-prev, |
||||
|
.el-pagination.is-background .el-pager li { |
||||
|
background-color: #ffffff; |
||||
|
border: 1px solid #ececec; |
||||
|
color: #606266; |
||||
|
} |
||||
|
.el-pagination.is-background .el-pager li:not(.disabled):hover { |
||||
|
color: #1b5c7d; |
||||
|
} |
||||
|
.el-pagination.is-background .el-pager li:not(.disabled).active { |
||||
|
background-color: #1b5c7d; |
||||
|
color: #fff; |
||||
|
} |
||||
|
.el-pagination__sizes .el-input .el-input__inner:hover { |
||||
|
border-color: #1b5c7d; |
||||
|
} |
||||
|
.el-select .el-input.is-focus .el-input__inner { |
||||
|
border-color: #1b5c7d; |
||||
|
} |
||||
|
.el-select-dropdown__item.selected { |
||||
|
color: #1b5c7d; |
||||
|
} |
||||
|
.el-input.is-active .el-input__inner, |
||||
|
.el-input__inner:focus { |
||||
|
border-color: #1b5c7d; |
||||
|
} |
||||
|
|
||||
|
.el-dialog__header { |
||||
|
background-color:rgba(248,248,248,1); |
||||
|
} |
||||
|
//下拉条 |
||||
|
.avatar-uploader .el-upload { |
||||
|
border: 1px dashed #929292; |
||||
|
border-radius: 6px; |
||||
|
cursor: pointer; |
||||
|
position: relative; |
||||
|
overflow: hidden; |
||||
|
} |
||||
|
.avatar-uploader .el-upload:hover { |
||||
|
border-color: #409EFF; |
||||
|
} |
||||
|
.avatar-uploader-icon { |
||||
|
font-size: 28px; |
||||
|
color: #8c939d; |
||||
|
width: 120px; |
||||
|
height: 120px; |
||||
|
line-height: 120px; |
||||
|
text-align: center; |
||||
|
} |
||||
|
.avatar { |
||||
|
width: 120px; |
||||
|
height: 120px; |
||||
|
display: block; |
||||
|
} |
||||
|
|
||||
|
//下拉菜单 |
||||
|
.el-dropdown-menu { |
||||
|
background-color: #F7F7F7 !important; |
||||
|
.el-dropdown-menu__item:focus, .el-dropdown-menu__item:not(.is-disabled):hover { |
||||
|
background-color: #ffe8e6 !important; |
||||
|
color: #606266; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//步骤条 |
||||
|
.el-step__head.is-process { |
||||
|
color: #1b5c7d; |
||||
|
border-color: #1b5c7d; |
||||
|
} |
||||
|
.el-step__title.is-process { |
||||
|
font-weight: 700; |
||||
|
color: #1b5c7d; |
||||
|
} |
||||
|
.el-step__description.is-process { |
||||
|
color: #1b5c7d; |
||||
|
} |
||||
|
|
||||
|
//文字链接 |
||||
|
.el-link { |
||||
|
vertical-align: unset; |
||||
|
} |
||||
|
|
||||
|
.el-header{ |
||||
|
position: relative; |
||||
|
width:100%; |
||||
|
padding: 0; |
||||
|
height:84px; |
||||
|
background-color: #1b5c7d; |
||||
|
z-index: 100; |
||||
|
} |
||||
|
|
||||
|
//el-dialog样式 |
||||
|
.el-dialog__title { |
||||
|
font-size: 16px; |
||||
|
} |
||||
|
.el-dialog__headerbtn { |
||||
|
font-size: 22px; |
||||
|
} |
||||
|
.el-dialog__footer { |
||||
|
text-align: center; |
||||
|
} |
||||
|
//el-message-box样式 |
||||
|
.el-message-box__title { |
||||
|
font-size: 16px; |
||||
|
} |
||||
|
.el-message-box__headerbtn { |
||||
|
font-size: 22px; |
||||
|
} |
||||
|
// .el-upload { |
||||
|
// input[type="file"] { |
||||
|
// display: none !important; |
||||
|
// } |
||||
|
// } |
||||
|
|
||||
|
// .el-upload__input { |
||||
|
// display: none; |
||||
|
// } |
||||
|
|
||||
|
// //暂时性解决diolag 问题 https://github.com/ElemeFE/element/issues/2461 |
||||
|
// .el-dialog { |
||||
|
// transform: none; |
||||
|
// left: 0; |
||||
|
// position: relative; |
||||
|
// margin: 0 auto; |
||||
|
// } |
||||
|
|
||||
|
// //element ui upload |
||||
|
// .upload-container { |
||||
|
// .el-upload { |
||||
|
// width: 100%; |
||||
|
// .el-upload-dragger { |
||||
|
// width: 100%; |
||||
|
// height: 200px; |
||||
|
// } |
||||
|
// } |
||||
|
// } |
||||
|
// //树形节点 |
||||
|
// .custom-tree-node { |
||||
|
// flex: 1; |
||||
|
// display: flex; |
||||
|
// align-items: center; |
||||
|
// justify-content: space-between; |
||||
|
// font-size: 14px; |
||||
|
// padding-right: 8px; |
||||
|
// } |
@ -0,0 +1,245 @@ |
|||||
|
@import './variables.scss'; |
||||
|
// @import './mixin.scss'; |
||||
|
// @import './transition.scss'; |
||||
|
@import './element-ui.scss'; |
||||
|
@import './sidebar.scss'; |
||||
|
// @import './button.scss'; |
||||
|
// @import './header.scss'; |
||||
|
// @import './reset-el';//覆盖element 表单和表格样式 |
||||
|
html, body, h1, h2, h3, h4, h5, h6, div, dl, dt, dd, ul, ol, li, p, blockquote, pre, hr, figure, table, caption, th, td, form, fieldset, legend, input, button, textarea, menu { |
||||
|
margin: 0; |
||||
|
padding: 0; |
||||
|
} |
||||
|
body { |
||||
|
height: 100%; |
||||
|
-moz-osx-font-smoothing: grayscale; |
||||
|
-webkit-font-smoothing: antialiased; |
||||
|
text-rendering: optimizeLegibility; |
||||
|
font-family: Helvetica Neue,Helvetica,Arial,Microsoft Yahei,Hiragino Sans GB,Heiti SC,WenQuanYi Micro Hei,sans-serif; |
||||
|
} |
||||
|
|
||||
|
label { |
||||
|
font-weight: 700; |
||||
|
} |
||||
|
|
||||
|
html { |
||||
|
height: 100%; |
||||
|
box-sizing: border-box; |
||||
|
} |
||||
|
|
||||
|
#app { |
||||
|
height: 100%; |
||||
|
} |
||||
|
|
||||
|
*, |
||||
|
*:before, |
||||
|
*:after { |
||||
|
box-sizing: inherit; |
||||
|
} |
||||
|
|
||||
|
a, |
||||
|
a:focus, |
||||
|
a:hover { |
||||
|
cursor: pointer; |
||||
|
color: inherit; |
||||
|
outline: none; |
||||
|
text-decoration: none; |
||||
|
} |
||||
|
|
||||
|
div:focus { |
||||
|
outline: none; |
||||
|
} |
||||
|
|
||||
|
a:focus, |
||||
|
a:active { |
||||
|
outline: none; |
||||
|
} |
||||
|
//IE9不支持颜色渐变 |
||||
|
#starsBox { |
||||
|
background-color: #0C1739; |
||||
|
.my-header span { |
||||
|
background-color: #166ECF; |
||||
|
} |
||||
|
#dashboard .my-main .map-header li span { |
||||
|
background-color: #1094DD; |
||||
|
} |
||||
|
} |
||||
|
.clearfix { |
||||
|
&:after { |
||||
|
visibility: hidden; |
||||
|
display: block; |
||||
|
font-size: 0; |
||||
|
content: " "; |
||||
|
clear: both; |
||||
|
height: 0; |
||||
|
} |
||||
|
} |
||||
|
.flex-box { |
||||
|
display: -webkit-box; |
||||
|
display: -webkit-flex; /* Safari */ |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
} |
||||
|
.flex-box-column { |
||||
|
display: -webkit-box; |
||||
|
display: -webkit-flex; /* Safari */ |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
flex-direction: column; |
||||
|
} |
||||
|
.font-size-21 { |
||||
|
font-size: 21px; |
||||
|
} |
||||
|
.font-size-13 { |
||||
|
font-size: 13px; |
||||
|
} |
||||
|
.font-size-16 { |
||||
|
font-size: 16px; |
||||
|
} |
||||
|
.font-weight-bold { |
||||
|
font-weight:bold; |
||||
|
} |
||||
|
.line-height-2em { |
||||
|
line-height: 2em; |
||||
|
} |
||||
|
.text-center { |
||||
|
text-align: center; |
||||
|
} |
||||
|
.text-right { |
||||
|
text-align: right; |
||||
|
} |
||||
|
.flex-1 { |
||||
|
-webkit-box-flex: 1; |
||||
|
-webkit-flex: 1; |
||||
|
flex: 1; |
||||
|
} |
||||
|
.color-success { |
||||
|
color: #5CB959; |
||||
|
} |
||||
|
.color-error { |
||||
|
color: #EA6356; |
||||
|
} |
||||
|
.color-wait { |
||||
|
color: #FFBF00; |
||||
|
} |
||||
|
.color-send { |
||||
|
color: #4395ff; |
||||
|
} |
||||
|
.float-left{ |
||||
|
float: left; |
||||
|
} |
||||
|
.float-right{ |
||||
|
float: right; |
||||
|
} |
||||
|
// ul,ol,li{ |
||||
|
// list-style: none; |
||||
|
// } |
||||
|
|
||||
|
//main-container全局样式 |
||||
|
.app-main { |
||||
|
min-height: 100%; |
||||
|
padding-top:84px; |
||||
|
border-top: 2px solid #1b5c7d; |
||||
|
} |
||||
|
|
||||
|
.app-container { |
||||
|
padding: 20px; |
||||
|
background-color: #fff; |
||||
|
.input-suffix { |
||||
|
line-height: 60px; |
||||
|
display: inline; |
||||
|
margin: 0 1em; |
||||
|
} |
||||
|
.filter-container { |
||||
|
line-height: 50px; |
||||
|
text-align: right; |
||||
|
} |
||||
|
} |
||||
|
//瀑布流中间内容 |
||||
|
.sault-container { |
||||
|
width: 1200px; |
||||
|
margin: 0 auto; |
||||
|
.title-1 { |
||||
|
position: relative; |
||||
|
text-align: center; |
||||
|
color: #333333; |
||||
|
font-size: 38px; |
||||
|
line-height: 100px; |
||||
|
margin-bottom: 30px; |
||||
|
&:before { |
||||
|
content: ""; |
||||
|
position: absolute; |
||||
|
display: inline-block; |
||||
|
bottom: 0px; |
||||
|
left:calc(50% - 20px); |
||||
|
width: 40px; |
||||
|
height: 4px; |
||||
|
background-color: #E63229; |
||||
|
z-index: 100; |
||||
|
} |
||||
|
} |
||||
|
.title-2 { |
||||
|
position: relative; |
||||
|
text-align: center; |
||||
|
color: #333333; |
||||
|
font-size: 21px; |
||||
|
margin-bottom: 30px; |
||||
|
} |
||||
|
.content-box { |
||||
|
padding: 20px; |
||||
|
} |
||||
|
} |
||||
|
//处理浏览器输入框记住账号密码后的背景色 |
||||
|
input:-webkit-autofill , textarea:-webkit-autofill, select:-webkit-autofill { |
||||
|
-webkit-text-fill-color: #333 !important; |
||||
|
-webkit-box-shadow: 0 0 0px 1000px transparent inset !important; |
||||
|
background-color:transparent; |
||||
|
background-image: none; |
||||
|
transition: background-color 50000s ease-in-out 0s; //背景色透明 生效时长 过渡效果 启用时延迟的时间 |
||||
|
} |
||||
|
input { |
||||
|
background-color:transparent; |
||||
|
} |
||||
|
|
||||
|
// .container-box{ |
||||
|
// .query-box{ |
||||
|
// background: #fff; |
||||
|
// margin-bottom:20px; |
||||
|
// border-radius: 5px; |
||||
|
// .title{ |
||||
|
// padding: 20px; |
||||
|
// font-size:18px; |
||||
|
// font-family:Microsoft YaHei; |
||||
|
// font-weight:400; |
||||
|
// color:rgba(52,123,229,1); |
||||
|
// border-bottom:1px solid #DEDEDE; |
||||
|
// } |
||||
|
// } |
||||
|
// .table-box{ |
||||
|
// background: #fff; |
||||
|
// border-radius: 5px; |
||||
|
// padding-bottom: 50px; |
||||
|
// .title-box{ |
||||
|
// .title{ |
||||
|
// padding: 21px 0 21px 21px; |
||||
|
// p{ |
||||
|
// font-size:18px; |
||||
|
// font-family:Microsoft YaHei; |
||||
|
// font-weight:400; |
||||
|
// color:rgba(68,138,231,1); |
||||
|
// border-left:3px solid #448AE7; |
||||
|
// padding-left: 8px; |
||||
|
// } |
||||
|
// } |
||||
|
// .btn{ |
||||
|
// padding: 11px 54px 11px 0; |
||||
|
// } |
||||
|
// } |
||||
|
// } |
||||
|
// } |
||||
|
// input:-webkit-autofill { |
||||
|
// -webkit-box-shadow: 0 0 0 1000px white inset !important; |
||||
|
// } |
||||
|
|
@ -0,0 +1,234 @@ |
|||||
|
@import './variables.scss'; |
||||
|
#app { |
||||
|
// 主体区域 |
||||
|
.main-container { |
||||
|
position: relative; |
||||
|
min-height: 100%; |
||||
|
width: calc(100% - 180px); |
||||
|
background-color: #EFEFEF; |
||||
|
transition: margin-left .28s; |
||||
|
margin-left: 180px; |
||||
|
} |
||||
|
.main-content { |
||||
|
width: calc(100% - 180px); |
||||
|
margin: 0 15px; |
||||
|
} |
||||
|
.header-content { |
||||
|
width: 100%; |
||||
|
padding: 0 20px; |
||||
|
} |
||||
|
// 顶边栏 |
||||
|
.header-sidebar-container { |
||||
|
width: 100%; |
||||
|
// height: 60px; |
||||
|
position: fixed; |
||||
|
min-width: 700px; |
||||
|
background-color: #1b5c7d; |
||||
|
color: #fff; |
||||
|
top: 0; |
||||
|
left: 0; |
||||
|
font-size: 18px; |
||||
|
z-index: 1001; |
||||
|
// overflow: hidden; |
||||
|
.svg-icon { |
||||
|
color: #000; |
||||
|
margin-right: 16px; |
||||
|
} |
||||
|
.el-menu { |
||||
|
display: inline-block; |
||||
|
border: none; |
||||
|
height: 84px; |
||||
|
vertical-align: bottom; |
||||
|
a, |
||||
|
.el-submenu { |
||||
|
display: inline-block; |
||||
|
float: left; |
||||
|
} |
||||
|
.el-submenu__icon-arrow { |
||||
|
position: static; |
||||
|
vertical-align: middle; |
||||
|
margin-left: 8px; |
||||
|
margin-top: -3px; |
||||
|
} |
||||
|
.el-menu-item, |
||||
|
.el-submenu__title { |
||||
|
i { |
||||
|
color: #ffffff; |
||||
|
} |
||||
|
height: 84px; |
||||
|
line-height: 84px; |
||||
|
font-size: 16px; |
||||
|
padding:0 15px; |
||||
|
&:hover { |
||||
|
background-color: $menuHover !important; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.is-active { |
||||
|
border-top: 3px solid #fff; |
||||
|
border-bottom: 0; |
||||
|
background-color: $menuHover !important; |
||||
|
} |
||||
|
// menu hover |
||||
|
// .submenu-title-noDropdown, |
||||
|
// .el-submenu__title { |
||||
|
// i { |
||||
|
// color: #ffffff; |
||||
|
// } |
||||
|
// &:hover { |
||||
|
// background-color: $menuHover !important; |
||||
|
// } |
||||
|
// } |
||||
|
// .is-active>.el-submenu__title { |
||||
|
// color: $subMenuActiveText !important; |
||||
|
// } |
||||
|
// & .nest-menu .el-submenu>.el-submenu__title, |
||||
|
// & .el-submenu .el-menu-item { |
||||
|
// min-width: $sideBarWidth !important; |
||||
|
// background-color: $subMenuBg !important; |
||||
|
// &:hover { |
||||
|
// background-color: $subMenuHover !important; |
||||
|
// } |
||||
|
// } |
||||
|
} |
||||
|
// 侧边栏 |
||||
|
.sidebar-container { |
||||
|
transition: width 0.28s; |
||||
|
width: 180px !important; |
||||
|
height: calc(100% - 84px); |
||||
|
position: fixed; |
||||
|
font-size: 0px; |
||||
|
top: 84px; |
||||
|
bottom: 0; |
||||
|
left: 0; |
||||
|
z-index: 1001; |
||||
|
overflow: hidden; |
||||
|
//reset element-ui css |
||||
|
.horizontal-collapse-transition { |
||||
|
transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; |
||||
|
} |
||||
|
.scrollbar-wrapper { |
||||
|
height: calc(100% + 15px); |
||||
|
.el-scrollbar__view { |
||||
|
height: 100%; |
||||
|
} |
||||
|
} |
||||
|
.is-horizontal { |
||||
|
display: none; |
||||
|
} |
||||
|
a { |
||||
|
display: inline-block; |
||||
|
width: 100%; |
||||
|
overflow: hidden; |
||||
|
} |
||||
|
.svg-icon { |
||||
|
margin-right: 16px; |
||||
|
} |
||||
|
.el-menu { |
||||
|
border: none; |
||||
|
height: 100%; |
||||
|
width: 100% !important; |
||||
|
// background-image: url("../../static/bg.png"); |
||||
|
background-repeat: no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
li { |
||||
|
&:hover { |
||||
|
color: #1b5c7d; |
||||
|
background-color: #ececec !important; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.is-active { |
||||
|
border-left: 3px solid #1b5c7d; |
||||
|
color: #1b5c7d; |
||||
|
border-bottom: 0; |
||||
|
background-color: #ececec !important; |
||||
|
} |
||||
|
} |
||||
|
.openSidebar { |
||||
|
position: relative; |
||||
|
top: 84px; |
||||
|
height: calc(100% - 84px); |
||||
|
} |
||||
|
.hideSidebar { |
||||
|
position: relative; |
||||
|
top: 84px; |
||||
|
height: calc(100% - 84px); |
||||
|
.sidebar-container { |
||||
|
width: 60px !important; |
||||
|
} |
||||
|
.main-container { |
||||
|
margin-left: 60px; |
||||
|
} |
||||
|
.submenu-title-noDropdown { |
||||
|
padding-left: 10px !important; |
||||
|
position: relative; |
||||
|
.el-tooltip { |
||||
|
padding: 0 10px !important; |
||||
|
} |
||||
|
} |
||||
|
.el-submenu { |
||||
|
overflow: hidden; |
||||
|
&>.el-submenu__title { |
||||
|
padding-left: 10px !important; |
||||
|
.el-submenu__icon-arrow { |
||||
|
display: none; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.el-menu--collapse { |
||||
|
.el-submenu { |
||||
|
&>.el-submenu__title { |
||||
|
&>span { |
||||
|
height: 0; |
||||
|
width: 0; |
||||
|
overflow: hidden; |
||||
|
visibility: hidden; |
||||
|
display: inline-block; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
//适配移动端 |
||||
|
.mobile { |
||||
|
.main-container { |
||||
|
margin-left: 0px; |
||||
|
} |
||||
|
.sidebar-container { |
||||
|
transition: transform .28s; |
||||
|
width: 180px !important; |
||||
|
} |
||||
|
&.hideSidebar { |
||||
|
.sidebar-container { |
||||
|
transition-duration: 0.3s; |
||||
|
transform: translate3d(-180px, 0, 0); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.withoutAnimation { |
||||
|
.main-container, |
||||
|
.sidebar-container { |
||||
|
transition: none; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.el-menu--horizontal { |
||||
|
// width: 100% !important; |
||||
|
// left: 0 !important; |
||||
|
background-color: #F7F7F7; |
||||
|
.el-menu--popup { |
||||
|
min-width: 120px; |
||||
|
.is-active { |
||||
|
// border-bottom: 2px solid #fff; |
||||
|
background-color: rgba(255, 232, 230, 1) !important; |
||||
|
} |
||||
|
.el-menu-item { |
||||
|
color: #000 !important; |
||||
|
&:hover { |
||||
|
background-color: rgba(255, 232, 230, 1) !important; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,27 @@ |
|||||
|
//sidebar |
||||
|
$menuText:#fff; |
||||
|
$menuText2:#212121; |
||||
|
$menuActiveText:#fff; |
||||
|
$menuActiveText2:rgb(217, 52, 223); |
||||
|
$subMenuActiveText:#4b4bce; //https://github.com/ElemeFE/element/issues/12951 |
||||
|
|
||||
|
$menuBg:rgba(0,0,0,0); |
||||
|
$menuHover: rgba(255,255,255,0.3); |
||||
|
|
||||
|
$subMenuBg:#000; |
||||
|
$subMenuHover:#ffffff33; |
||||
|
|
||||
|
$sideBarWidth: 200px; |
||||
|
|
||||
|
// the :export directive is the magic sauce for webpack |
||||
|
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass |
||||
|
:export { |
||||
|
menuText: $menuText; |
||||
|
menuActiveText: $menuActiveText; |
||||
|
subMenuActiveText: $subMenuActiveText; |
||||
|
menuBg: $menuBg; |
||||
|
menuHover: $menuHover; |
||||
|
subMenuBg: $subMenuBg; |
||||
|
subMenuHover: $subMenuHover; |
||||
|
sideBarWidth: $sideBarWidth; |
||||
|
} |
@ -0,0 +1,5 @@ |
|||||
|
<template> |
||||
|
<div id="app"> |
||||
|
<router-view/> |
||||
|
</div> |
||||
|
</template> |
@ -0,0 +1,51 @@ |
|||||
|
|
||||
|
|
||||
|
import request from '@/utils/request'; |
||||
|
//获取参会人员列表信息
|
||||
|
export function getAttendeeList(param) { |
||||
|
return request({ |
||||
|
url: '/conferee/search', |
||||
|
method: 'post', |
||||
|
data:param |
||||
|
}); |
||||
|
} |
||||
|
//创建参会人员
|
||||
|
export function addAttendee(param) { |
||||
|
return request({ |
||||
|
url: '/conferee/add', |
||||
|
method: 'post', |
||||
|
data:param |
||||
|
}); |
||||
|
} |
||||
|
//删除参会人员
|
||||
|
export function deleteAttendee(param) { |
||||
|
return request({ |
||||
|
url: '/conferee/delete', |
||||
|
method: 'post', |
||||
|
data:param |
||||
|
}); |
||||
|
} |
||||
|
//修改参会人员
|
||||
|
export function editAttendee(param) { |
||||
|
return request({ |
||||
|
url: '/conferee/edit', |
||||
|
method: 'post', |
||||
|
data:param |
||||
|
}); |
||||
|
} |
||||
|
// //获取参会人员详情信息(id)
|
||||
|
// export function getAttendeeById(id) {
|
||||
|
// return request({
|
||||
|
// url: '/conferee/get/'+id,
|
||||
|
// method: 'get'
|
||||
|
// });
|
||||
|
// }
|
||||
|
//导出参会人员列表信息
|
||||
|
export function getAttendeeById(param) { |
||||
|
return request({ |
||||
|
url: '/conferee/export', |
||||
|
method: 'post', |
||||
|
data:param |
||||
|
}); |
||||
|
} |
||||
|
|
@ -0,0 +1,111 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
//获取企业列表
|
||||
|
export function getEnterpriseList(params) { |
||||
|
return request({ |
||||
|
url: '/company/search', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//删除企业
|
||||
|
export function deleteEnterprise(params) { |
||||
|
return request({ |
||||
|
url: '/company/delete', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//获取企业详情
|
||||
|
export function getEnterpriseDetails(params) { |
||||
|
return request({ |
||||
|
url: '/company/get/'+params, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
//修改企业信息
|
||||
|
export function editEnterprise(params) { |
||||
|
return request({ |
||||
|
url: '/company/edit', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//添加企业
|
||||
|
export function addEnterprise(params) { |
||||
|
return request({ |
||||
|
url: '/company/add', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//区域查询接口
|
||||
|
export function getArea(params) { |
||||
|
return request({ |
||||
|
url: '/common/getComboList_2/40010/'+params, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
//行业大类查询接口
|
||||
|
export function getBigIndustryList() { |
||||
|
return request({ |
||||
|
url: '/common/getComboList_1/40008', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
//行业小类查询接口
|
||||
|
export function getSmallIndustryList(params) { |
||||
|
return request({ |
||||
|
url: '/common/getComboList_2/40009/'+params, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
//审核企业信息
|
||||
|
export function approveEnterprise(params) { |
||||
|
return request({ |
||||
|
url: '/company/audit', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
//启
|
||||
|
export function enableEnterprise(params) { |
||||
|
return request({ |
||||
|
url: '/api-enterprise/enterprise/enable', |
||||
|
method: 'put', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//停
|
||||
|
export function disableEnterprise(params) { |
||||
|
return request({ |
||||
|
url: '/api-enterprise/enterprise/disable', |
||||
|
method: 'put', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
//企业审核列表
|
||||
|
export function enApplyList(params) { |
||||
|
return request({ |
||||
|
url: '/api-enterprise/enApply/page', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
//公司审核页面的详情
|
||||
|
export function enApplyDetail(params) { |
||||
|
return request({ |
||||
|
url: '/api-enterprise/enApply/detail', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
@ -0,0 +1,84 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
//登录接口
|
||||
|
export function login(param) { |
||||
|
return request({ |
||||
|
url: '/user/login', |
||||
|
method: 'post', |
||||
|
data:param |
||||
|
}); |
||||
|
} |
||||
|
//登出接口
|
||||
|
export function logout() { |
||||
|
return request({ |
||||
|
url: '/common/logout', |
||||
|
method: 'post' |
||||
|
}); |
||||
|
} |
||||
|
//普通账户修改密码
|
||||
|
export function updatePass(params) { |
||||
|
return request({ |
||||
|
url: '/common/updatePassword', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
//注册账户
|
||||
|
export function registerUser(params) { |
||||
|
return request({ |
||||
|
url: '/api-login/user/registerUser', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//获取短信验证码
|
||||
|
export function sendMessage(params) { |
||||
|
return request({ |
||||
|
url: '/api-login/common/send', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
//忘记密码-输入账号换取手机号
|
||||
|
export function userToTelphone(params) { |
||||
|
return request({ |
||||
|
url: '/api-login/user/telPhone', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
//忘记密码-重设密码
|
||||
|
export function setUpPassword(params) { |
||||
|
return request({ |
||||
|
url: '/api-login/user/setUpPassword', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//验证短信验证码
|
||||
|
export function smsVerification(params) { |
||||
|
return request({ |
||||
|
url: '/api-login/common/smsVerification', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//非法字符列表
|
||||
|
export function getKeysList(params) { |
||||
|
return request({ |
||||
|
url: '/api-login/key/keys', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
//获取待办事项
|
||||
|
export function getAnnCount(params) { |
||||
|
return request({ |
||||
|
url: '/api-login/ann/getAnnCount', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
@ -0,0 +1,43 @@ |
|||||
|
|
||||
|
|
||||
|
import request from '@/utils/request'; |
||||
|
//获取会议列表信息
|
||||
|
export function getMeetingList(param) { |
||||
|
return request({ |
||||
|
url: '/conference/search', |
||||
|
method: 'post', |
||||
|
data:param |
||||
|
}); |
||||
|
} |
||||
|
//创建会议
|
||||
|
export function addMeeting(param) { |
||||
|
return request({ |
||||
|
url: '/conference/add', |
||||
|
method: 'post', |
||||
|
data:param |
||||
|
}); |
||||
|
} |
||||
|
//删除会议
|
||||
|
export function deleteMeeting(param) { |
||||
|
return request({ |
||||
|
url: '/conference/delete', |
||||
|
method: 'post', |
||||
|
data:param |
||||
|
}); |
||||
|
} |
||||
|
//修改会议
|
||||
|
export function editMeeting(param) { |
||||
|
return request({ |
||||
|
url: '/conference/edit', |
||||
|
method: 'post', |
||||
|
data:param |
||||
|
}); |
||||
|
} |
||||
|
//获取会议详情信息(id)
|
||||
|
export function getMeetingById(id) { |
||||
|
return request({ |
||||
|
url: '/conference/get/'+id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
@ -0,0 +1,54 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import requestLoading from '@/utils/requestLoading'; |
||||
|
//获取文章类型下拉列表
|
||||
|
export function getNoticeTypeList(params) { |
||||
|
return request({ |
||||
|
url: '/common/getComboList_1/40005', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
//获取文章列表
|
||||
|
export function getNoticeList(params) { |
||||
|
return request({ |
||||
|
url: '/content/search', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//添加文章
|
||||
|
export function addNoticeInfo(params) { |
||||
|
return request({ |
||||
|
url: '/content/add', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
//获取文章详情
|
||||
|
export function getNoticeInfo(params) { |
||||
|
return request({ |
||||
|
url: '/content/get/'+params, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
//更新文章详情
|
||||
|
export function editNoticeInfo(params) { |
||||
|
return request({ |
||||
|
url: '/content/edit', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//删除文章
|
||||
|
export function deleteNoticeInfo(params) { |
||||
|
return request({ |
||||
|
url: '/content/delete', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
@ -0,0 +1,42 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import requestLoading from '@/utils/requestLoading'; |
||||
|
//获取权限列表
|
||||
|
export function getAuthorityList(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-login/authority/authoritys', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
//获取权限详情
|
||||
|
export function getAuthorityInfo(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-login/authority/authority', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
//添加权限
|
||||
|
export function addAuthority(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-login/authority/authority', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//修改权限
|
||||
|
export function editAuthority(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-login/authority/authority', |
||||
|
method: 'put', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//获取菜单tree
|
||||
|
export function getMenusTree(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-login/menu/menus', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
@ -0,0 +1,42 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import requestLoading from '@/utils/requestLoading'; |
||||
|
//获取前缀列表
|
||||
|
export function getPrefixList(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-enterprise/prefix/apply', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
//详情
|
||||
|
export function getPrefixInfo(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-enterprise/prefix/enInfo', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
//申请前缀
|
||||
|
export function applyPrefix(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-enterprise/prefix/apply', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//前缀审核
|
||||
|
export function auditingPrefix(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-enterprise/prefix/approve', |
||||
|
method: 'put', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//同步
|
||||
|
export function syncPrefix(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-enterprise/prefix/synchronizationEnInfo', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
@ -0,0 +1,5 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
@ -0,0 +1,50 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import requestLoading from '@/utils/requestLoading'; |
||||
|
//获取角色列表
|
||||
|
export function getRoleList(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-login/role/roleList', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
//获取角色详情
|
||||
|
export function getRoleInfo(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-login/role/roleInfo', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
//添加角色
|
||||
|
export function addRole(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-login/role/role', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//修改角色
|
||||
|
export function editRole(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-login/role/role', |
||||
|
method: 'put', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//删除角色
|
||||
|
export function deleteRole(params) { |
||||
|
return requestLoading({ |
||||
|
url: '/api-login/role/role', |
||||
|
method: 'delete', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
//校验角色
|
||||
|
export function existsRoleName(params) { |
||||
|
return request({ |
||||
|
url: '/api-login/role/existName', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
@ -0,0 +1,98 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
//获取用户列表
|
||||
|
export function getUserList(params) { |
||||
|
return request({ |
||||
|
url: '/user/search', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//根据id获取用户详情
|
||||
|
export function getUserDetail(id) { |
||||
|
return request({ |
||||
|
url: '/user/get/'+id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
//添加用户
|
||||
|
export function addUser(params) { |
||||
|
return request({ |
||||
|
url: '/user/add', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//删除用户
|
||||
|
export function deleteUser(params) { |
||||
|
return request({ |
||||
|
url: '/user/delete', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//更新用户信息
|
||||
|
export function updateUserInfo(params) { |
||||
|
return request({ |
||||
|
url: '/user/edit', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
//添加用户时校验用户是否存在
|
||||
|
export function existsUserName(params) { |
||||
|
return request({ |
||||
|
url: '/user/checkUserInfo', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
//用户启用停用状态
|
||||
|
export function editUserStatus(params) { |
||||
|
return request({ |
||||
|
url: '/api-login/user/status', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
//获取角色类型
|
||||
|
export function getRoleType(params) { |
||||
|
return request({ |
||||
|
url: '/api-login/user/types', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
//管理员账户重置密码
|
||||
|
export function resetPass(params) { |
||||
|
return request({ |
||||
|
url: '/api-login/user/restPassword', |
||||
|
method: 'post', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
//获取当前用户类别与角色
|
||||
|
export function getAddRole(params) { |
||||
|
return request({ |
||||
|
url: '/api-login/user/getAddRole', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
//更改个人中心信息
|
||||
|
export function editPersonalCenter(params) { |
||||
|
return request({ |
||||
|
url: '/api-login/user/personalCenter', |
||||
|
method: 'put', |
||||
|
data:params |
||||
|
}); |
||||
|
} |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 86 KiB |
After Width: | Height: | Size: 574 B |
After Width: | Height: | Size: 576 B |
After Width: | Height: | Size: 495 B |
After Width: | Height: | Size: 642 B |
After Width: | Height: | Size: 521 B |
After Width: | Height: | Size: 557 B |
@ -0,0 +1,58 @@ |
|||||
|
<template> |
||||
|
<el-breadcrumb class="app-breadcrumb" separator=">"> |
||||
|
<transition-group name="breadcrumb"> |
||||
|
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path" v-if="item.title || item.meta.title"> |
||||
|
<span v-if="item.redirect==='noredirect'||index==levelList.length-1" class="no-redirect">{{item.title || item.meta.title}}</span> |
||||
|
<router-link v-else :to="item.redirect||item.path">{{item.title || item.meta.title}}</router-link> |
||||
|
</el-breadcrumb-item> |
||||
|
</transition-group> |
||||
|
</el-breadcrumb> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
created() { |
||||
|
this.getBreadcrumb() |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
levelList: null |
||||
|
} |
||||
|
}, |
||||
|
watch: { |
||||
|
$route() { |
||||
|
this.getBreadcrumb() |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
getBreadcrumb() { |
||||
|
let matched = [] |
||||
|
if(this.$route.meta.breadcrumbList && this.$route.meta.breadcrumbList.length != 0) |
||||
|
{ |
||||
|
matched = this.$route.meta.breadcrumbList |
||||
|
} else { |
||||
|
matched = this.$route.matched.filter(item => item.name) |
||||
|
} |
||||
|
|
||||
|
// const first = matched[0] |
||||
|
// if (first && first.name !== 'dashboard') { |
||||
|
// matched = [{ path: '/dashboard', meta: { title: '首页' }}].concat(matched) |
||||
|
// } |
||||
|
this.levelList = matched |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style rel="stylesheet/scss" lang="scss" scoped> |
||||
|
.app-breadcrumb.el-breadcrumb { |
||||
|
display: inline-block; |
||||
|
font-size: 14px; |
||||
|
line-height: 50px; |
||||
|
margin-left: 10px; |
||||
|
.no-redirect { |
||||
|
color: #97a8be; |
||||
|
cursor: text; |
||||
|
} |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,120 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<div class='input_span'> |
||||
|
<!-- <label style='margin-left:40px;'>强度:</label> --> |
||||
|
<span id="one_ps"></span> |
||||
|
<span id="two_ps"></span> |
||||
|
<span id="three_ps"></span> |
||||
|
</div> |
||||
|
<div id="font_ps"> |
||||
|
<span>弱</span> |
||||
|
<span>中</span> |
||||
|
<span>强</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
export default { |
||||
|
name:'checkPasswordStrong', |
||||
|
data(){ |
||||
|
return { |
||||
|
msgText:'', |
||||
|
pwd:'' |
||||
|
} |
||||
|
}, |
||||
|
props:{ |
||||
|
sValue:{ |
||||
|
type: String, |
||||
|
} |
||||
|
}, |
||||
|
watch:{ |
||||
|
sValue(newValue) { |
||||
|
this.msgText = this.checkStrong(newValue); |
||||
|
if(this.msgText > 1 || this.msgText == 1) { |
||||
|
document.getElementById("one_ps").style.background = "red" |
||||
|
} else { |
||||
|
document.getElementById("one_ps").style.background = "#eee" |
||||
|
} |
||||
|
if(this.msgText > 2 || this.msgText == 2) { |
||||
|
document.getElementById("two_ps").style.background = "#ff9268" |
||||
|
} else { |
||||
|
document.getElementById("two_ps").style.background = "#eee" |
||||
|
} |
||||
|
if(this.msgText == 4) { |
||||
|
document.getElementById("three_ps").style.background = "#00D1B2" |
||||
|
} else { |
||||
|
document.getElementById("three_ps").style.background = "#eee" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
methods:{ |
||||
|
checkStrong(value) { |
||||
|
let modes = 0; |
||||
|
//正则表达式验证符合要求的 |
||||
|
if(value.length < 1) return modes; |
||||
|
if(/\d/.test(value)) modes++; //数字 |
||||
|
if(/[a-z]/.test(value)) modes++; //小写 |
||||
|
if(/[A-Z]/.test(value)) modes++; //大写 |
||||
|
if(/\W/.test(value)) modes++; //特殊字符 |
||||
|
|
||||
|
//逻辑处理 |
||||
|
switch(modes) { |
||||
|
case 1: |
||||
|
return 1; |
||||
|
case 2: |
||||
|
return 2; |
||||
|
case 3: |
||||
|
case 4: |
||||
|
return value.length < 10 ? 3 : 4 |
||||
|
} |
||||
|
return modes; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
.input_span,#font_ps { |
||||
|
line-height: 20px; |
||||
|
} |
||||
|
.input_span span { |
||||
|
display: inline-block; |
||||
|
width: calc(33% - 3px); |
||||
|
height: 10px; |
||||
|
background: #eee; |
||||
|
line-height: 20px; |
||||
|
} |
||||
|
|
||||
|
#one_ps { |
||||
|
border-top-left-radius: 5px; |
||||
|
border-bottom-left-radius: 5px; |
||||
|
border-right: 0px solid; |
||||
|
/* margin-left: 20px; */ |
||||
|
margin-right: 5px; |
||||
|
} |
||||
|
|
||||
|
#two_ps { |
||||
|
border-left: 0px solid; |
||||
|
border-right: 0px solid; |
||||
|
/* margin-left: -5px; */ |
||||
|
margin-right: 5px; |
||||
|
} |
||||
|
|
||||
|
#three_ps { |
||||
|
border-top-right-radius: 5px; |
||||
|
border-bottom-right-radius: 5px; |
||||
|
border-left: 0px solid; |
||||
|
/* margin-left: -5px; */ |
||||
|
} |
||||
|
#font_ps span:nth-child(1){ |
||||
|
color:red; |
||||
|
margin-left: 14%; |
||||
|
} |
||||
|
#font_ps span:nth-child(2){ |
||||
|
color:orange; |
||||
|
margin: 0 28%; |
||||
|
} |
||||
|
#font_ps span:nth-child(3){ |
||||
|
color:#00D1B2; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,44 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<svg t="1492500959545" @click="toggleClick" class="hamburger" :class="{'is-active':isActive}" style="" viewBox="0 0 1024 1024" |
||||
|
version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1691" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"> |
||||
|
<path d="M966.8023 568.849776 57.196677 568.849776c-31.397081 0-56.850799-25.452695-56.850799-56.850799l0 0c0-31.397081 25.452695-56.849776 56.850799-56.849776l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.849776l0 0C1023.653099 543.397081 998.200404 568.849776 966.8023 568.849776z" |
||||
|
p-id="1692" fill="#212121"></path> |
||||
|
<path d="M966.8023 881.527125 57.196677 881.527125c-31.397081 0-56.850799-25.452695-56.850799-56.849776l0 0c0-31.397081 25.452695-56.849776 56.850799-56.849776l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.849776l0 0C1023.653099 856.07443 998.200404 881.527125 966.8023 881.527125z" |
||||
|
p-id="1693" fill="#212121"></path> |
||||
|
<path d="M966.8023 256.17345 57.196677 256.17345c-31.397081 0-56.850799-25.452695-56.850799-56.849776l0 0c0-31.397081 25.452695-56.850799 56.850799-56.850799l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.850799l0 0C1023.653099 230.720755 998.200404 256.17345 966.8023 256.17345z" |
||||
|
p-id="1694" fill="#212121"></path> |
||||
|
</svg> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
name: 'hamburger', |
||||
|
props: { |
||||
|
isActive: { |
||||
|
type: Boolean, |
||||
|
default: false |
||||
|
}, |
||||
|
toggleClick: { |
||||
|
type: Function, |
||||
|
default: null |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
.hamburger { |
||||
|
display: inline-block; |
||||
|
cursor: pointer; |
||||
|
width: 20px; |
||||
|
height: 20px; |
||||
|
transform: rotate(90deg); |
||||
|
transition: .38s; |
||||
|
transform-origin: 50% 50%; |
||||
|
} |
||||
|
.hamburger.is-active { |
||||
|
transform: rotate(0deg); |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,42 @@ |
|||||
|
<template> |
||||
|
<svg :class="svgClass" aria-hidden="true"> |
||||
|
<use :xlink:href="iconName"></use> |
||||
|
</svg> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
name: 'svg-icon', |
||||
|
props: { |
||||
|
iconClass: { |
||||
|
type: String, |
||||
|
required: true |
||||
|
}, |
||||
|
className: { |
||||
|
type: String |
||||
|
} |
||||
|
}, |
||||
|
computed: { |
||||
|
iconName() { |
||||
|
return `#icon-${this.iconClass}` |
||||
|
}, |
||||
|
svgClass() { |
||||
|
if (this.className) { |
||||
|
return 'svg-icon ' + this.className |
||||
|
} else { |
||||
|
return 'svg-icon' |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
.svg-icon { |
||||
|
width: 1em; |
||||
|
height: 1em; |
||||
|
vertical-align: -0.15em; |
||||
|
fill: currentColor; |
||||
|
overflow: hidden; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,76 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<!--下面通过传递进来的id完成初始化--> |
||||
|
<script :id="randomId" type="text/plain"></script> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
//主体文件引入 |
||||
|
import '../../../public/ueditor/ueditor.config.js' |
||||
|
import '../../../public/ueditor/ueditor.all.min.js' |
||||
|
import '../../../public/ueditor/lang/zh-cn/zh-cn.js' |
||||
|
|
||||
|
export default { |
||||
|
name: 'UE', |
||||
|
props: { |
||||
|
value: { |
||||
|
default: function() { |
||||
|
return '' |
||||
|
} |
||||
|
}, |
||||
|
//配置可以传递进来 |
||||
|
ueditorConfig: {} |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
//每个编辑器生成不同的id,以防止冲突 |
||||
|
randomId: 'editor_' + (Math.random() * 100000000000000000), |
||||
|
//编辑器实例 |
||||
|
instance: null, |
||||
|
ready: false, |
||||
|
}; |
||||
|
}, |
||||
|
watch: { |
||||
|
value: function(val, oldVal) { |
||||
|
if (val != null && this.ready) { |
||||
|
this.instance = UE.getEditor(this.randomId, this.ueditorConfig); |
||||
|
this.instance.setContent(val); |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
//此时--el挂载到实例上去了,可以初始化对应的编辑器了 |
||||
|
mounted() { |
||||
|
this.initEditor(); |
||||
|
}, |
||||
|
|
||||
|
beforeDestroy() { |
||||
|
// 组件销毁的时候,要销毁 UEditor 实例 |
||||
|
if(this.instance !== null && this.instance.destroy) { |
||||
|
this.instance.destroy(); |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
initEditor() { |
||||
|
const _this = this; |
||||
|
//dom元素已经挂载上去了 |
||||
|
this.$nextTick(() => { |
||||
|
this.instance = UE.getEditor(this.randomId, this.ueditorConfig); |
||||
|
// 绑定事件,当 UEditor 初始化完成后,将编辑器实例通过自定义的 ready 事件交出去 |
||||
|
this.instance.addListener('ready', () => { |
||||
|
this.ready = true; |
||||
|
this.$emit('ready', this.instance); |
||||
|
}); |
||||
|
}); |
||||
|
}, |
||||
|
setText(con) { |
||||
|
this.instance = UE.getEditor(this.randomId, this.ueditorConfig); |
||||
|
this.instance.setContent(con); |
||||
|
}, |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style> |
||||
|
</style> |
@ -0,0 +1,9 @@ |
|||||
|
import Vue from 'vue' |
||||
|
import SvgIcon from '@/components/SvgIcon'// svg组件
|
||||
|
|
||||
|
// register globally
|
||||
|
Vue.component('svg-icon', SvgIcon) |
||||
|
|
||||
|
const requireAll = requireContext => requireContext.keys().map(requireContext) |
||||
|
const req = require.context('./svg', false, /\.svg$/) |
||||
|
requireAll(req) |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 852 B |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 532 B |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 777 B |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 4.1 KiB |
@ -0,0 +1,30 @@ |
|||||
|
import 'babel-polyfill' //兼容IE9
|
||||
|
import 'es6-promise/auto' //兼容IE9
|
||||
|
// import Es6Promise from 'es6-promise'
|
||||
|
// Es6Promise.polyfill()
|
||||
|
import Vue from 'vue' |
||||
|
import ElementUI from 'element-ui' |
||||
|
import 'element-ui/lib/theme-chalk/index.css' |
||||
|
import '@/styles/index.scss' // global css
|
||||
|
import App from './App.vue' |
||||
|
import './registerServiceWorker' |
||||
|
import router from './router' |
||||
|
import store from './store' |
||||
|
import '@/icons' // icon
|
||||
|
import echarts from 'echarts' //echarts
|
||||
|
import scroll from 'vue-seamless-scroll' //滚动插件
|
||||
|
import md5 from 'js-md5'; //md5 加密
|
||||
|
// import '@/permission' // 权限控制
|
||||
|
|
||||
|
Vue.use(scroll) |
||||
|
Vue.use(ElementUI) |
||||
|
Vue.config.productionTip = false |
||||
|
Vue.prototype.$echarts = echarts |
||||
|
Vue.prototype.$md5 = md5 |
||||
|
|
||||
|
new Vue({ |
||||
|
router, |
||||
|
store, |
||||
|
render: h => h(App) |
||||
|
}).$mount('#app') |
||||
|
|
@ -0,0 +1,43 @@ |
|||||
|
import router from './router' |
||||
|
import store from './store' |
||||
|
import NProgress from 'nprogress' // Progress 进度条
|
||||
|
import 'nprogress/nprogress.css'// Progress 进度条样式
|
||||
|
// import { Message } from 'element-ui'
|
||||
|
import {getToken} from '@/utils/auth' // 验权
|
||||
|
|
||||
|
const whiteList = ['/login', '/register', '/retrievePassword'] // 不重定向白名单
|
||||
|
router.beforeEach((to, from, next) => { |
||||
|
NProgress.start() |
||||
|
if (getToken()) { |
||||
|
if (to.path === '/login') { |
||||
|
next({path: '/'}) |
||||
|
NProgress.done() // if current page is dashboard will not trigger afterEach hook, so manually handle it
|
||||
|
} else { |
||||
|
// if (store.getters.roles.length === 0) {
|
||||
|
// store.dispatch('GetInfo').then(res => { // 拉取用户信息
|
||||
|
// next()
|
||||
|
// }).catch((err) => {
|
||||
|
// store.dispatch('FedLogOut').then(() => {
|
||||
|
// Message.error(err || 'Verification failed, please login again')
|
||||
|
// next({ path: '/' })
|
||||
|
// })
|
||||
|
// })
|
||||
|
// } else {
|
||||
|
// store.dispatch('changeActiveIndex', '/' + to.path.split("/")[1]).then();
|
||||
|
next() |
||||
|
NProgress.done() |
||||
|
// }
|
||||
|
} |
||||
|
} else { |
||||
|
if (whiteList.indexOf(to.path) !== -1) { |
||||
|
next() |
||||
|
} else { |
||||
|
next('/login') |
||||
|
NProgress.done() |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
|
||||
|
router.afterEach(() => { |
||||
|
NProgress.done() // 结束Progress
|
||||
|
}) |
@ -0,0 +1,32 @@ |
|||||
|
/* eslint-disable no-console */ |
||||
|
|
||||
|
import { register } from 'register-service-worker' |
||||
|
|
||||
|
if (process.env.NODE_ENV === 'production') { |
||||
|
register(`${process.env.BASE_URL}service-worker.js`, { |
||||
|
ready () { |
||||
|
console.log( |
||||
|
'App is being served from cache by a service worker.\n' + |
||||
|
'For more details, visit https://goo.gl/AFskqB' |
||||
|
) |
||||
|
}, |
||||
|
registered () { |
||||
|
console.log('Service worker has been registered.') |
||||
|
}, |
||||
|
cached () { |
||||
|
console.log('Content has been cached for offline use.') |
||||
|
}, |
||||
|
updatefound () { |
||||
|
console.log('New content is downloading.') |
||||
|
}, |
||||
|
updated () { |
||||
|
console.log('New content is available; please refresh.') |
||||
|
}, |
||||
|
offline () { |
||||
|
console.log('No internet connection found. App is running in offline mode.') |
||||
|
}, |
||||
|
error (error) { |
||||
|
console.error('Error during service worker registration:', error) |
||||
|
} |
||||
|
}) |
||||
|
} |
@ -0,0 +1,216 @@ |
|||||
|
import Vue from 'vue' |
||||
|
import VueRouter from 'vue-router' |
||||
|
import Layout from '../views/layout/Layout.vue'; |
||||
|
import AppMain from '../views/layout/components/AppMain.vue'; |
||||
|
|
||||
|
Vue.use(VueRouter) |
||||
|
|
||||
|
/** |
||||
|
* hidden: true if `hidden:true` will not show in the sidebar(default is false) |
||||
|
* alwaysShow: true if set true, will always show the root menu, whatever its child routes length |
||||
|
* if not set alwaysShow, only more than one route under the children |
||||
|
* it will becomes nested mode, otherwise not show the root menu |
||||
|
* redirect: noredirect if `redirect:noredirect` will no redirect in the breadcrumb |
||||
|
* name:'router-name' the name is used by <keep-alive> (must set!!!) |
||||
|
* meta : { |
||||
|
title: 'title' the name show in subMenu and breadcrumb (recommend set) |
||||
|
icon: 'svg-name' the icon show in the sidebar |
||||
|
breadcrumb: false if false, the item will hidden in breadcrumb(default is true) |
||||
|
breadcrumbList:[ 自定义面包屑列表,需要从一级按顺序开始写 |
||||
|
{title: "系统管理", path: "",redirect:'noredirect'}, |
||||
|
{title: "公司管理", path: "/system/company/list"}, |
||||
|
{title: "公司详情", path: "/system/company/companyDetail"} |
||||
|
] |
||||
|
} |
||||
|
**/ |
||||
|
//
|
||||
|
const routes = [ |
||||
|
{path: '/login', name: 'login', component: () => import('@/views/login/index.vue'), hidden: true}, |
||||
|
{path: '/404', component: () => import('@/views/404.vue'), hidden: true}, |
||||
|
// { path: '/', component: () => import('@/views/markSearch/index.vue'), hidden: true },
|
||||
|
// { path: '/search/detail', component: () => import('@/views/markSearch/detail.vue'), hidden: true },
|
||||
|
{ |
||||
|
path: '', |
||||
|
name: '', |
||||
|
component: Layout, |
||||
|
children: [ |
||||
|
//防伪码管理---系统管理员
|
||||
|
{ |
||||
|
path: 'antiFake', |
||||
|
component: AppMain, |
||||
|
name: 'antiFake', |
||||
|
redirect: 'noredirect', |
||||
|
meta: {title: '防伪码管理'}, |
||||
|
children: [ |
||||
|
{ |
||||
|
path: 'send', |
||||
|
component: () => import('@/views/send/send.vue'), |
||||
|
name: 'send', |
||||
|
meta: {title: '防伪码发码', icon: 'eye', noCache: true}, |
||||
|
}, |
||||
|
|
||||
|
{ |
||||
|
path: 'cancel', |
||||
|
name: 'cancel', |
||||
|
component: () => import('@/views/send/cancel.vue'), |
||||
|
meta: {title: '防伪码作废', icon: 'form', noCache: true}, |
||||
|
}, |
||||
|
{ |
||||
|
path: 'getDetail', |
||||
|
name: 'getDetail', |
||||
|
hidden: true, |
||||
|
component: () => import('@/views/send/getDetail.vue'), |
||||
|
meta: {title: '取码详情', icon: 'form', noCache: true}, |
||||
|
}, |
||||
|
{ |
||||
|
path: 'cancelDetail', |
||||
|
name: 'cancelDetail', |
||||
|
hidden: true, |
||||
|
component: () => import('@/views/send/cancelDetail.vue'), |
||||
|
meta: {title: '防伪码作废详情', icon: 'form', noCache: true}, |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
//防伪码取码管理---印刷厂
|
||||
|
{ |
||||
|
path: 'getAntiFake', |
||||
|
component: AppMain, |
||||
|
name: 'getAntiFake', |
||||
|
redirect: 'noredirect', |
||||
|
meta: {title: '防伪码取码管理'}, |
||||
|
children: [ |
||||
|
{ |
||||
|
path: 'getAntiFake', |
||||
|
component: () => import('@/views/get/get.vue'), |
||||
|
name: 'getAntiFake', |
||||
|
meta: {title: '取码单管理', icon: 'form', noCache: true}, |
||||
|
}, |
||||
|
{ |
||||
|
path: 'addGet', |
||||
|
component: () => import('@/views/get/addGet.vue'), |
||||
|
name: 'addGet', |
||||
|
hidden: true, |
||||
|
meta: {title: '创建取码单', icon: 'form', noCache: true}, |
||||
|
}, |
||||
|
{ |
||||
|
path: 'getDetail', |
||||
|
component: () => import('@/views/get/getDetail.vue'), |
||||
|
name: 'getGetDetail', |
||||
|
hidden: true, |
||||
|
meta: {title: '取码单详情', icon: 'form', noCache: true}, |
||||
|
}, |
||||
|
{ |
||||
|
path: 'cancelAntiFake', |
||||
|
name: 'cancelAntiFake', |
||||
|
component: () => import('@/views/get/cancel.vue'), |
||||
|
meta: {title: '废码单管理', icon: 'form', noCache: true}, |
||||
|
}, |
||||
|
{ |
||||
|
path: 'addCancel', |
||||
|
name: 'addCancel', |
||||
|
hidden: true, |
||||
|
component: () => import('@/views/get/addCancel.vue'), |
||||
|
meta: {title: '创建废码单', icon: 'form', noCache: true}, |
||||
|
}, |
||||
|
{ |
||||
|
path: 'cancelDetail', |
||||
|
name: 'getCancelDetail', |
||||
|
hidden: true, |
||||
|
component: () => import('@/views/send/cancelDetail.vue'), //与管理员页面一样
|
||||
|
meta: {title: '废码单详情', icon: 'form', noCache: true}, |
||||
|
}, |
||||
|
{ |
||||
|
path: 'returnReceipt', |
||||
|
name: 'returnReceipt', |
||||
|
component: () => import('@/views/get/returnReceipt.vue'), |
||||
|
meta: {title: '回执单管理', icon: 'form', noCache: true}, |
||||
|
}, |
||||
|
{ |
||||
|
path: 'deliverGoods', |
||||
|
name: 'deliverGoods', |
||||
|
hidden: true, |
||||
|
component: () => import('@/views/get/deliverGoods.vue'), |
||||
|
meta: {title: '送货', icon: 'form', noCache: true}, |
||||
|
}, |
||||
|
{ |
||||
|
path: 'returnReceiptDetail', |
||||
|
name: 'returnReceiptDetail', |
||||
|
hidden: true, |
||||
|
component: () => import('@/views/get/getDetail.vue'), //与取码详情页面一样
|
||||
|
meta: {title: '回执单详情', icon: 'form', noCache: true}, |
||||
|
} |
||||
|
], |
||||
|
}, |
||||
|
//防伪码发放情况---酒厂
|
||||
|
{ |
||||
|
path: 'sendStatus', |
||||
|
component: AppMain, |
||||
|
name: 'sendStatus', |
||||
|
redirect: 'noredirect', |
||||
|
meta: {title: '防伪码发放情况'}, |
||||
|
children: [ |
||||
|
{ |
||||
|
path: '', |
||||
|
component: () => import('@/views/status/sendStatus.vue'), |
||||
|
name: 'sendStatus', |
||||
|
meta: {title: '防伪码发放情况', icon: 'form', noCache: true}, |
||||
|
} |
||||
|
], |
||||
|
}, |
||||
|
//印制成品码数据统计---酒厂
|
||||
|
{ |
||||
|
path: 'goodsCount', |
||||
|
component: AppMain, |
||||
|
name: 'goodsCount', |
||||
|
redirect: 'noredirect', |
||||
|
meta: {title: '印制成品码数据统计'}, |
||||
|
children: [ |
||||
|
{ |
||||
|
path: '', |
||||
|
component: () => import('@/views/status/goodsCount.vue'), |
||||
|
name: 'goodsCount', |
||||
|
meta: {title: '印制成品码数据统计', icon: 'form', noCache: true}, |
||||
|
}, |
||||
|
{ |
||||
|
path: 'getGoodsDetail', |
||||
|
component: () => import('@/views/get/getDetail.vue'), |
||||
|
name: 'getGoodsDetail', |
||||
|
hidden: true, |
||||
|
meta: {title: '成品码去向', icon: 'form', noCache: true}, |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
//系统管理
|
||||
|
{ |
||||
|
path: 'system', |
||||
|
component: AppMain, |
||||
|
name: 'system', |
||||
|
redirect: 'noredirect', |
||||
|
meta: {title: '系统管理'}, |
||||
|
children: [ |
||||
|
{ |
||||
|
path: 'user', |
||||
|
component: () => import('@/views/systemManage/user.vue'), |
||||
|
name: 'userManage', |
||||
|
meta: {title: '用户管理', icon: 'register', noCache: true}, |
||||
|
}, |
||||
|
{ |
||||
|
path: 'whiteList', |
||||
|
name: 'whiteList', |
||||
|
component: () => import('@/views/systemManage/whiteList.vue'), |
||||
|
meta: {title: '白名单', icon: 'form', noCache: true}, |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{path: '*', redirect: '/404', hidden: true}, |
||||
|
] |
||||
|
|
||||
|
const router = new VueRouter({ |
||||
|
// mode: 'history',
|
||||
|
// base: config.API_URL,
|
||||
|
routes |
||||
|
}) |
||||
|
|
||||
|
export default router |
@ -0,0 +1,13 @@ |
|||||
|
import Vue, { VNode } from 'vue' |
||||
|
|
||||
|
declare global { |
||||
|
namespace JSX { |
||||
|
// tslint:disable no-empty-interface
|
||||
|
interface Element extends VNode {} |
||||
|
// tslint:disable no-empty-interface
|
||||
|
interface ElementClass extends Vue {} |
||||
|
interface IntrinsicElements { |
||||
|
[elem: string]: any; |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,4 @@ |
|||||
|
declare module '*.vue' { |
||||
|
import Vue from 'vue' |
||||
|
export default Vue |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
const getters = { |
||||
|
sidebar: state => state.app.sidebar, //全局变量菜单栏
|
||||
|
device: state => state.app.device, //全局变量设备端类型
|
||||
|
token: state => state.user.token, //全局变量token
|
||||
|
id: state => state.user.id, //全局变量id
|
||||
|
router: state => state.user.router, //全局变量路由
|
||||
|
name: state => state.user.name, //全局变量用户姓名
|
||||
|
activeIndex: state => state.user.activeIndex, //全局变量菜单索引
|
||||
|
template: state => state.user.template, //全局变量皮肤模板
|
||||
|
identity: state => state.user.identity, //全局变量用户类型
|
||||
|
keys: state => state.user.keys //全局变量敏感字符集
|
||||
|
} |
||||
|
export default getters |
@ -0,0 +1,17 @@ |
|||||
|
import Vue from 'vue' |
||||
|
import Vuex from 'vuex' |
||||
|
import app from './modules/app' |
||||
|
import user from './modules/user' |
||||
|
import getters from './getters' |
||||
|
|
||||
|
Vue.use(Vuex) |
||||
|
|
||||
|
const store = new Vuex.Store({ |
||||
|
modules: { |
||||
|
app, |
||||
|
user |
||||
|
}, |
||||
|
getters |
||||
|
}) |
||||
|
|
||||
|
export default store |
@ -0,0 +1,45 @@ |
|||||
|
import Cookies from 'js-cookie' |
||||
|
|
||||
|
const app = { |
||||
|
state: { |
||||
|
sidebar: { |
||||
|
opened: !+Cookies.get('sidebarStatus'), |
||||
|
withoutAnimation: false |
||||
|
}, |
||||
|
device: 'desktop' |
||||
|
}, |
||||
|
mutations: { |
||||
|
TOGGLE_SIDEBAR: state => { |
||||
|
if (state.sidebar.opened) { |
||||
|
Cookies.set('sidebarStatus', 1) |
||||
|
} else { |
||||
|
Cookies.set('sidebarStatus', 0) |
||||
|
} |
||||
|
state.sidebar.opened = !state.sidebar.opened |
||||
|
state.sidebar.withoutAnimation = false |
||||
|
}, |
||||
|
CLOSE_SIDEBAR: (state, withoutAnimation) => { |
||||
|
// Cookies.set('sidebarStatus', 1)
|
||||
|
// state.sidebar.opened = false
|
||||
|
// state.sidebar.withoutAnimation = withoutAnimation
|
||||
|
|
||||
|
//响应式左侧菜单,可以折叠暂时去掉
|
||||
|
}, |
||||
|
TOGGLE_DEVICE: (state, device) => { |
||||
|
state.device = device |
||||
|
} |
||||
|
}, |
||||
|
actions: { |
||||
|
ToggleSideBar: ({ commit }) => { |
||||
|
commit('TOGGLE_SIDEBAR') |
||||
|
}, |
||||
|
CloseSideBar({ commit }, { withoutAnimation }) { |
||||
|
commit('CLOSE_SIDEBAR', withoutAnimation) |
||||
|
}, |
||||
|
ToggleDevice({ commit }, device) { |
||||
|
commit('TOGGLE_DEVICE', device) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
export default app |
@ -0,0 +1,135 @@ |
|||||
|
import {login, logout, getKeysList} from '@/api/login'; |
||||
|
import { |
||||
|
getToken, |
||||
|
setToken, |
||||
|
removeToken, |
||||
|
// getTemplate,
|
||||
|
// setTemplate,
|
||||
|
// getRouter,
|
||||
|
// setRouter,
|
||||
|
// removeRouter,
|
||||
|
getName, |
||||
|
setName, |
||||
|
removeName, |
||||
|
// getId,
|
||||
|
// setId,
|
||||
|
// removeId,
|
||||
|
// getIdentity,
|
||||
|
// setIdentity,
|
||||
|
// removeIdentity,
|
||||
|
// setActiveIndex,
|
||||
|
// removeActiveIndex,
|
||||
|
// getActiveIndex,
|
||||
|
// getKeys,
|
||||
|
// setKeys,
|
||||
|
// removeKeys
|
||||
|
} from '@/utils/auth'; |
||||
|
|
||||
|
const user = { |
||||
|
state: { |
||||
|
token: getToken() || '', |
||||
|
// router: getRouter() || [],
|
||||
|
name: getName() || '', |
||||
|
// id: getId()|| '',
|
||||
|
// template: getTemplate() || '001',
|
||||
|
// identity: getIdentity() || '',
|
||||
|
// activeIndex: getActiveIndex() || '',
|
||||
|
// keys: getKeys() || []
|
||||
|
}, |
||||
|
|
||||
|
mutations: { |
||||
|
SET_TOKEN: (state, token) => { |
||||
|
state.token = token; |
||||
|
}, |
||||
|
// SET_ROUTER: (state, router) => {
|
||||
|
// state.router = router;
|
||||
|
// },
|
||||
|
SET_NAME: (state, name) => { |
||||
|
state.name = name; |
||||
|
}, |
||||
|
// SET_ID: (state, id) => {
|
||||
|
// state.id = id;
|
||||
|
// },
|
||||
|
// SET_TEMPLATE: (state, template) => {
|
||||
|
// state.template = template;
|
||||
|
// },
|
||||
|
// SET_IDENTITY: (state, identity) => {
|
||||
|
// state.identity = identity;
|
||||
|
// },
|
||||
|
// SET_ACTIVEINDEX: (state, activeIndex) => {
|
||||
|
// state.activeIndex = activeIndex;
|
||||
|
// },
|
||||
|
// SET_KEYS: (state, keys) => {
|
||||
|
// state.keys = keys;
|
||||
|
// },
|
||||
|
}, |
||||
|
|
||||
|
actions: { |
||||
|
// 登录
|
||||
|
Login({commit}, param) { |
||||
|
//登录获取登录权限
|
||||
|
return new Promise((resolve, reject) => { |
||||
|
login(param).then(response => { |
||||
|
const data = response.data |
||||
|
setToken(data.token) |
||||
|
setName(data.account) |
||||
|
commit('SET_TOKEN', data.token) |
||||
|
commit('SET_NAME', data.account) |
||||
|
resolve(data) |
||||
|
}).catch(error => { |
||||
|
reject(error) |
||||
|
}) |
||||
|
}) |
||||
|
}, |
||||
|
// 一级菜单变化
|
||||
|
// changeActiveIndex({commit}, activeIndex) {
|
||||
|
// return new Promise(resolve => {
|
||||
|
// setActiveIndex(activeIndex)
|
||||
|
// commit('SET_ACTIVEINDEX', activeIndex);
|
||||
|
// resolve();
|
||||
|
// });
|
||||
|
// },
|
||||
|
// keyWords({commit, state}) {
|
||||
|
// if (state.keys.length != 0) {
|
||||
|
// return
|
||||
|
// } else {
|
||||
|
// return new Promise(resolve => {
|
||||
|
// getKeysList().then(res => {
|
||||
|
// setKeys(res.data)
|
||||
|
// commit('SET_KEYS', res.data);
|
||||
|
// resolve(res.data)
|
||||
|
// }).catch(error => {
|
||||
|
// reject(error)
|
||||
|
// })
|
||||
|
// });
|
||||
|
// }
|
||||
|
// },
|
||||
|
// // 登出
|
||||
|
LogOut({commit, state}) { |
||||
|
return new Promise((resolve, reject) => { |
||||
|
logout({}).then(() => { |
||||
|
commit('SET_TOKEN', ''); |
||||
|
commit('SET_NAME', "") |
||||
|
removeToken(); |
||||
|
removeName() |
||||
|
resolve(); |
||||
|
}).catch(error => { |
||||
|
reject(error); |
||||
|
}); |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
// 前端 登出
|
||||
|
FedLogOut({commit}) { |
||||
|
return new Promise(resolve => { |
||||
|
commit('SET_TOKEN', ''); |
||||
|
commit('SET_NAME', "") |
||||
|
removeToken(); |
||||
|
removeName() |
||||
|
resolve(); |
||||
|
}); |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
|
||||
|
export default user; |
@ -0,0 +1,166 @@ |
|||||
|
//to reset element-ui default css |
||||
|
//table header reset css |
||||
|
.el-table thead { |
||||
|
color: #333333; |
||||
|
font-weight: 500; |
||||
|
font-size: 15px; |
||||
|
} |
||||
|
.el-table__header-wrapper tr { |
||||
|
background-color: #ececec !important; |
||||
|
} |
||||
|
.el-table th, |
||||
|
.el-table tr { |
||||
|
background-color: transparent; |
||||
|
} |
||||
|
|
||||
|
//分页器reset css |
||||
|
.el-pagination { |
||||
|
padding: 30px 5px; |
||||
|
text-align: center; |
||||
|
} |
||||
|
.el-pagination.is-background .btn-next, |
||||
|
.el-pagination.is-background .btn-prev, |
||||
|
.el-pagination.is-background .el-pager li { |
||||
|
background-color: #ffffff; |
||||
|
border: 1px solid #ececec; |
||||
|
color: #606266; |
||||
|
} |
||||
|
.el-pagination.is-background .el-pager li:not(.disabled):hover { |
||||
|
color: #1b5c7d; |
||||
|
} |
||||
|
.el-pagination.is-background .el-pager li:not(.disabled).active { |
||||
|
background-color: #1b5c7d; |
||||
|
color: #fff; |
||||
|
} |
||||
|
.el-pagination__sizes .el-input .el-input__inner:hover { |
||||
|
border-color: #1b5c7d; |
||||
|
} |
||||
|
.el-select .el-input.is-focus .el-input__inner { |
||||
|
border-color: #1b5c7d; |
||||
|
} |
||||
|
.el-select-dropdown__item.selected { |
||||
|
color: #1b5c7d; |
||||
|
} |
||||
|
.el-input.is-active .el-input__inner, |
||||
|
.el-input__inner:focus { |
||||
|
border-color: #1b5c7d; |
||||
|
} |
||||
|
|
||||
|
.el-dialog__header { |
||||
|
background-color:rgba(248,248,248,1); |
||||
|
} |
||||
|
//下拉条 |
||||
|
.avatar-uploader .el-upload { |
||||
|
border: 1px dashed #929292; |
||||
|
border-radius: 6px; |
||||
|
cursor: pointer; |
||||
|
position: relative; |
||||
|
overflow: hidden; |
||||
|
} |
||||
|
.avatar-uploader .el-upload:hover { |
||||
|
border-color: #409EFF; |
||||
|
} |
||||
|
.avatar-uploader-icon { |
||||
|
font-size: 28px; |
||||
|
color: #8c939d; |
||||
|
width: 120px; |
||||
|
height: 120px; |
||||
|
line-height: 120px; |
||||
|
text-align: center; |
||||
|
} |
||||
|
.avatar { |
||||
|
width: 120px; |
||||
|
height: 120px; |
||||
|
display: block; |
||||
|
} |
||||
|
|
||||
|
//下拉菜单 |
||||
|
.el-dropdown-menu { |
||||
|
background-color: #F7F7F7 !important; |
||||
|
.el-dropdown-menu__item:focus, .el-dropdown-menu__item:not(.is-disabled):hover { |
||||
|
// background-color: #ffe8e6 !important; |
||||
|
color: #606266; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//步骤条 |
||||
|
.el-step__head.is-process { |
||||
|
color: #1b5c7d; |
||||
|
border-color: #1b5c7d; |
||||
|
} |
||||
|
.el-step__title.is-process { |
||||
|
font-weight: 700; |
||||
|
color: #1b5c7d; |
||||
|
} |
||||
|
.el-step__description.is-process { |
||||
|
color: #1b5c7d; |
||||
|
} |
||||
|
|
||||
|
//文字链接 |
||||
|
.el-link { |
||||
|
vertical-align: unset; |
||||
|
} |
||||
|
|
||||
|
.el-header{ |
||||
|
position: relative; |
||||
|
width:100%; |
||||
|
padding: 0; |
||||
|
height:84px; |
||||
|
background-color: #439CFF; |
||||
|
z-index: 100; |
||||
|
} |
||||
|
|
||||
|
//el-dialog样式 |
||||
|
.el-dialog__title { |
||||
|
font-size: 16px; |
||||
|
} |
||||
|
.el-dialog__headerbtn { |
||||
|
font-size: 22px; |
||||
|
} |
||||
|
.el-dialog__footer { |
||||
|
text-align: center; |
||||
|
} |
||||
|
//el-message-box样式 |
||||
|
.el-message-box__title { |
||||
|
font-size: 16px; |
||||
|
} |
||||
|
.el-message-box__headerbtn { |
||||
|
font-size: 22px; |
||||
|
} |
||||
|
// .el-upload { |
||||
|
// input[type="file"] { |
||||
|
// display: none !important; |
||||
|
// } |
||||
|
// } |
||||
|
|
||||
|
// .el-upload__input { |
||||
|
// display: none; |
||||
|
// } |
||||
|
|
||||
|
// //暂时性解决diolag 问题 https://github.com/ElemeFE/element/issues/2461 |
||||
|
// .el-dialog { |
||||
|
// transform: none; |
||||
|
// left: 0; |
||||
|
// position: relative; |
||||
|
// margin: 0 auto; |
||||
|
// } |
||||
|
|
||||
|
// //element ui upload |
||||
|
// .upload-container { |
||||
|
// .el-upload { |
||||
|
// width: 100%; |
||||
|
// .el-upload-dragger { |
||||
|
// width: 100%; |
||||
|
// height: 200px; |
||||
|
// } |
||||
|
// } |
||||
|
// } |
||||
|
// //树形节点 |
||||
|
// .custom-tree-node { |
||||
|
// flex: 1; |
||||
|
// display: flex; |
||||
|
// align-items: center; |
||||
|
// justify-content: space-between; |
||||
|
// font-size: 14px; |
||||
|
// padding-right: 8px; |
||||
|
// } |
@ -0,0 +1,245 @@ |
|||||
|
@import './variables.scss'; |
||||
|
// @import './mixin.scss'; |
||||
|
// @import './transition.scss'; |
||||
|
@import './element-ui.scss'; |
||||
|
@import './sidebar.scss'; |
||||
|
// @import './button.scss'; |
||||
|
// @import './header.scss'; |
||||
|
// @import './reset-el';//覆盖element 表单和表格样式 |
||||
|
html, body, h1, h2, h3, h4, h5, h6, div, dl, dt, dd, ul, ol, li, p, blockquote, pre, hr, figure, table, caption, th, td, form, fieldset, legend, input, button, textarea, menu { |
||||
|
margin: 0; |
||||
|
padding: 0; |
||||
|
} |
||||
|
body { |
||||
|
height: 100%; |
||||
|
-moz-osx-font-smoothing: grayscale; |
||||
|
-webkit-font-smoothing: antialiased; |
||||
|
text-rendering: optimizeLegibility; |
||||
|
font-family: Helvetica Neue,Helvetica,Arial,Microsoft Yahei,Hiragino Sans GB,Heiti SC,WenQuanYi Micro Hei,sans-serif; |
||||
|
} |
||||
|
|
||||
|
label { |
||||
|
font-weight: 700; |
||||
|
} |
||||
|
|
||||
|
html { |
||||
|
height: 100%; |
||||
|
box-sizing: border-box; |
||||
|
} |
||||
|
|
||||
|
#app { |
||||
|
height: 100%; |
||||
|
} |
||||
|
|
||||
|
*, |
||||
|
*:before, |
||||
|
*:after { |
||||
|
box-sizing: inherit; |
||||
|
} |
||||
|
|
||||
|
a, |
||||
|
a:focus, |
||||
|
a:hover { |
||||
|
cursor: pointer; |
||||
|
color: inherit; |
||||
|
outline: none; |
||||
|
text-decoration: none; |
||||
|
} |
||||
|
|
||||
|
div:focus { |
||||
|
outline: none; |
||||
|
} |
||||
|
|
||||
|
a:focus, |
||||
|
a:active { |
||||
|
outline: none; |
||||
|
} |
||||
|
//IE9不支持颜色渐变 |
||||
|
#starsBox { |
||||
|
background-color: #0C1739; |
||||
|
.my-header span { |
||||
|
background-color: #166ECF; |
||||
|
} |
||||
|
#dashboard .my-main .map-header li span { |
||||
|
background-color: #1094DD; |
||||
|
} |
||||
|
} |
||||
|
.clearfix { |
||||
|
&:after { |
||||
|
visibility: hidden; |
||||
|
display: block; |
||||
|
font-size: 0; |
||||
|
content: " "; |
||||
|
clear: both; |
||||
|
height: 0; |
||||
|
} |
||||
|
} |
||||
|
.flex-box { |
||||
|
display: -webkit-box; |
||||
|
display: -webkit-flex; /* Safari */ |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
} |
||||
|
.flex-box-column { |
||||
|
display: -webkit-box; |
||||
|
display: -webkit-flex; /* Safari */ |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
flex-direction: column; |
||||
|
} |
||||
|
.font-size-21 { |
||||
|
font-size: 21px; |
||||
|
} |
||||
|
.font-size-13 { |
||||
|
font-size: 13px; |
||||
|
} |
||||
|
.font-size-16 { |
||||
|
font-size: 16px; |
||||
|
} |
||||
|
.font-weight-bold { |
||||
|
font-weight:bold; |
||||
|
} |
||||
|
.line-height-2em { |
||||
|
line-height: 2em; |
||||
|
} |
||||
|
.text-center { |
||||
|
text-align: center; |
||||
|
} |
||||
|
.text-right { |
||||
|
text-align: right; |
||||
|
} |
||||
|
.flex-1 { |
||||
|
-webkit-box-flex: 1; |
||||
|
-webkit-flex: 1; |
||||
|
flex: 1; |
||||
|
} |
||||
|
.color-success { |
||||
|
color: #5CB959; |
||||
|
} |
||||
|
.color-error { |
||||
|
color: #EA6356; |
||||
|
} |
||||
|
.color-wait { |
||||
|
color: #FFBF00; |
||||
|
} |
||||
|
.color-send { |
||||
|
color: #4395ff; |
||||
|
} |
||||
|
.float-left{ |
||||
|
float: left; |
||||
|
} |
||||
|
.float-right{ |
||||
|
float: right; |
||||
|
} |
||||
|
// ul,ol,li{ |
||||
|
// list-style: none; |
||||
|
// } |
||||
|
|
||||
|
//main-container全局样式 |
||||
|
.app-main { |
||||
|
min-height: 100%; |
||||
|
padding-top:84px; |
||||
|
border-top: 2px solid #1b5c7d; |
||||
|
} |
||||
|
|
||||
|
.app-container { |
||||
|
padding: 20px; |
||||
|
background-color: #fff; |
||||
|
.input-suffix { |
||||
|
line-height: 60px; |
||||
|
display: inline; |
||||
|
margin: 0 1em; |
||||
|
} |
||||
|
.filter-container { |
||||
|
line-height: 50px; |
||||
|
text-align: right; |
||||
|
} |
||||
|
} |
||||
|
//瀑布流中间内容 |
||||
|
.sault-container { |
||||
|
width: 1200px; |
||||
|
margin: 0 auto; |
||||
|
.title-1 { |
||||
|
position: relative; |
||||
|
text-align: center; |
||||
|
color: #333333; |
||||
|
font-size: 38px; |
||||
|
line-height: 100px; |
||||
|
margin-bottom: 30px; |
||||
|
&:before { |
||||
|
content: ""; |
||||
|
position: absolute; |
||||
|
display: inline-block; |
||||
|
bottom: 0px; |
||||
|
left:calc(50% - 20px); |
||||
|
width: 40px; |
||||
|
height: 4px; |
||||
|
background-color: #E63229; |
||||
|
z-index: 100; |
||||
|
} |
||||
|
} |
||||
|
.title-2 { |
||||
|
position: relative; |
||||
|
text-align: center; |
||||
|
color: #333333; |
||||
|
font-size: 21px; |
||||
|
margin-bottom: 30px; |
||||
|
} |
||||
|
.content-box { |
||||
|
padding: 20px; |
||||
|
} |
||||
|
} |
||||
|
//处理浏览器输入框记住账号密码后的背景色 |
||||
|
input:-webkit-autofill , textarea:-webkit-autofill, select:-webkit-autofill { |
||||
|
-webkit-text-fill-color: #333 !important; |
||||
|
-webkit-box-shadow: 0 0 0px 1000px transparent inset !important; |
||||
|
background-color:transparent; |
||||
|
background-image: none; |
||||
|
transition: background-color 50000s ease-in-out 0s; //背景色透明 生效时长 过渡效果 启用时延迟的时间 |
||||
|
} |
||||
|
input { |
||||
|
background-color:transparent; |
||||
|
} |
||||
|
|
||||
|
// .container-box{ |
||||
|
// .query-box{ |
||||
|
// background: #fff; |
||||
|
// margin-bottom:20px; |
||||
|
// border-radius: 5px; |
||||
|
// .title{ |
||||
|
// padding: 20px; |
||||
|
// font-size:18px; |
||||
|
// font-family:Microsoft YaHei; |
||||
|
// font-weight:400; |
||||
|
// color:rgba(52,123,229,1); |
||||
|
// border-bottom:1px solid #DEDEDE; |
||||
|
// } |
||||
|
// } |
||||
|
// .table-box{ |
||||
|
// background: #fff; |
||||
|
// border-radius: 5px; |
||||
|
// padding-bottom: 50px; |
||||
|
// .title-box{ |
||||
|
// .title{ |
||||
|
// padding: 21px 0 21px 21px; |
||||
|
// p{ |
||||
|
// font-size:18px; |
||||
|
// font-family:Microsoft YaHei; |
||||
|
// font-weight:400; |
||||
|
// color:rgba(68,138,231,1); |
||||
|
// border-left:3px solid #448AE7; |
||||
|
// padding-left: 8px; |
||||
|
// } |
||||
|
// } |
||||
|
// .btn{ |
||||
|
// padding: 11px 54px 11px 0; |
||||
|
// } |
||||
|
// } |
||||
|
// } |
||||
|
// } |
||||
|
// input:-webkit-autofill { |
||||
|
// -webkit-box-shadow: 0 0 0 1000px white inset !important; |
||||
|
// } |
||||
|
|
@ -0,0 +1,28 @@ |
|||||
|
@mixin clearfix { |
||||
|
&:after { |
||||
|
content: ""; |
||||
|
display: table; |
||||
|
clear: both; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@mixin scrollBar { |
||||
|
&::-webkit-scrollbar-track-piece { |
||||
|
background: #d3dce6; |
||||
|
} |
||||
|
|
||||
|
&::-webkit-scrollbar { |
||||
|
width: 6px; |
||||
|
} |
||||
|
|
||||
|
&::-webkit-scrollbar-thumb { |
||||
|
background: #99a9bf; |
||||
|
border-radius: 20px; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@mixin relative { |
||||
|
position: relative; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
} |
@ -0,0 +1,233 @@ |
|||||
|
@import './variables.scss'; |
||||
|
#app { |
||||
|
// 主体区域 |
||||
|
.main-container { |
||||
|
position: relative; |
||||
|
min-height: 100%; |
||||
|
width: calc(100% - 180px); |
||||
|
background-color: #EFEFEF; |
||||
|
transition: margin-left .28s; |
||||
|
margin-left: 180px; |
||||
|
} |
||||
|
.main-content { |
||||
|
width: calc(100% - 180px); |
||||
|
margin: 0 15px; |
||||
|
} |
||||
|
.header-content { |
||||
|
width: 100%; |
||||
|
padding: 0 20px; |
||||
|
} |
||||
|
// 顶边栏 |
||||
|
.header-sidebar-container { |
||||
|
width: 100%; |
||||
|
// height: 60px; |
||||
|
position: fixed; |
||||
|
min-width: 700px; |
||||
|
background-color: #439CFF; |
||||
|
color: #fff; |
||||
|
top: 0; |
||||
|
left: 0; |
||||
|
font-size: 18px; |
||||
|
z-index: 1001; |
||||
|
// overflow: hidden; |
||||
|
.svg-icon { |
||||
|
color: #000; |
||||
|
margin-right: 16px; |
||||
|
} |
||||
|
.el-menu { |
||||
|
display: inline-block; |
||||
|
border: none; |
||||
|
height: 84px; |
||||
|
vertical-align: bottom; |
||||
|
a, |
||||
|
.el-submenu { |
||||
|
display: inline-block; |
||||
|
float: left; |
||||
|
} |
||||
|
.el-submenu__icon-arrow { |
||||
|
position: static; |
||||
|
vertical-align: middle; |
||||
|
margin-left: 8px; |
||||
|
margin-top: -3px; |
||||
|
} |
||||
|
.el-menu-item, |
||||
|
.el-submenu__title { |
||||
|
i { |
||||
|
color: #ffffff; |
||||
|
} |
||||
|
height: 84px; |
||||
|
line-height: 84px; |
||||
|
font-size: 16px; |
||||
|
padding:0 15px; |
||||
|
&:hover { |
||||
|
background-color: $menuHover !important; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.is-active { |
||||
|
border-top: 3px solid #fff; |
||||
|
border-bottom: 0; |
||||
|
background-color: $menuHover !important; |
||||
|
} |
||||
|
// menu hover |
||||
|
// .submenu-title-noDropdown, |
||||
|
// .el-submenu__title { |
||||
|
// i { |
||||
|
// color: #ffffff; |
||||
|
// } |
||||
|
// &:hover { |
||||
|
// background-color: $menuHover !important; |
||||
|
// } |
||||
|
// } |
||||
|
// .is-active>.el-submenu__title { |
||||
|
// color: $subMenuActiveText !important; |
||||
|
// } |
||||
|
// & .nest-menu .el-submenu>.el-submenu__title, |
||||
|
// & .el-submenu .el-menu-item { |
||||
|
// min-width: $sideBarWidth !important; |
||||
|
// background-color: $subMenuBg !important; |
||||
|
// &:hover { |
||||
|
// background-color: $subMenuHover !important; |
||||
|
// } |
||||
|
// } |
||||
|
} |
||||
|
// 侧边栏 |
||||
|
.sidebar-container { |
||||
|
transition: width 0.28s; |
||||
|
width: 180px !important; |
||||
|
height: calc(100% - 84px); |
||||
|
position: fixed; |
||||
|
font-size: 0px; |
||||
|
top: 84px; |
||||
|
bottom: 0; |
||||
|
left: 0; |
||||
|
z-index: 1001; |
||||
|
overflow: hidden; |
||||
|
//reset element-ui css |
||||
|
.horizontal-collapse-transition { |
||||
|
transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; |
||||
|
} |
||||
|
.scrollbar-wrapper { |
||||
|
height: calc(100% + 15px); |
||||
|
.el-scrollbar__view { |
||||
|
height: 100%; |
||||
|
} |
||||
|
} |
||||
|
.is-horizontal { |
||||
|
display: none; |
||||
|
} |
||||
|
a { |
||||
|
display: inline-block; |
||||
|
width: 100%; |
||||
|
overflow: hidden; |
||||
|
} |
||||
|
.svg-icon { |
||||
|
margin-right: 16px; |
||||
|
} |
||||
|
.el-menu { |
||||
|
border: none; |
||||
|
height: 100%; |
||||
|
width: 100% !important; |
||||
|
background-repeat: no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
li { |
||||
|
&:hover { |
||||
|
color: #1b5c7d; |
||||
|
// background-color: #ececec !important; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.is-active { |
||||
|
border-left: 3px solid #1b5c7d; |
||||
|
color: #1b5c7d; |
||||
|
border-bottom: 0; |
||||
|
// background-color: #ececec !important; |
||||
|
} |
||||
|
} |
||||
|
.openSidebar { |
||||
|
position: relative; |
||||
|
top: 84px; |
||||
|
height: calc(100% - 84px); |
||||
|
} |
||||
|
.hideSidebar { |
||||
|
position: relative; |
||||
|
top: 84px; |
||||
|
height: calc(100% - 84px); |
||||
|
.sidebar-container { |
||||
|
width: 60px !important; |
||||
|
} |
||||
|
.main-container { |
||||
|
margin-left: 60px; |
||||
|
} |
||||
|
.submenu-title-noDropdown { |
||||
|
padding-left: 10px !important; |
||||
|
position: relative; |
||||
|
.el-tooltip { |
||||
|
padding: 0 10px !important; |
||||
|
} |
||||
|
} |
||||
|
.el-submenu { |
||||
|
overflow: hidden; |
||||
|
&>.el-submenu__title { |
||||
|
padding-left: 10px !important; |
||||
|
.el-submenu__icon-arrow { |
||||
|
display: none; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.el-menu--collapse { |
||||
|
.el-submenu { |
||||
|
&>.el-submenu__title { |
||||
|
&>span { |
||||
|
height: 0; |
||||
|
width: 0; |
||||
|
overflow: hidden; |
||||
|
visibility: hidden; |
||||
|
display: inline-block; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
//适配移动端 |
||||
|
.mobile { |
||||
|
.main-container { |
||||
|
margin-left: 0px; |
||||
|
} |
||||
|
.sidebar-container { |
||||
|
transition: transform .28s; |
||||
|
width: 180px !important; |
||||
|
} |
||||
|
&.hideSidebar { |
||||
|
.sidebar-container { |
||||
|
transition-duration: 0.3s; |
||||
|
transform: translate3d(-180px, 0, 0); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.withoutAnimation { |
||||
|
.main-container, |
||||
|
.sidebar-container { |
||||
|
transition: none; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.el-menu--horizontal { |
||||
|
// width: 100% !important; |
||||
|
// left: 0 !important; |
||||
|
background-color: #F7F7F7; |
||||
|
.el-menu--popup { |
||||
|
min-width: 120px; |
||||
|
.is-active { |
||||
|
// border-bottom: 2px solid #fff; |
||||
|
background-color: rgba(255, 232, 230, 1) !important; |
||||
|
} |
||||
|
.el-menu-item { |
||||
|
color: #000 !important; |
||||
|
&:hover { |
||||
|
background-color: rgba(255, 232, 230, 1) !important; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |