Browse Source

demo 1

master
DESKTOP-00SUCB6\Administrator 4 years ago
parent
commit
0d1d691608
  1. 6
      .babelrc
  2. 2
      .browserslistrc
  3. 14
      .editorconfig
  4. 0
      .env.development
  5. 1
      .env.production
  6. 21
      .eslintrc.js
  7. 24
      .gitignore
  8. 20
      babel.config.js
  9. 3
      cypress.json
  10. 18709
      package-lock.json
  11. 64
      package.json
  12. 13
      public/config.js
  13. BIN
      public/favicon.ico
  14. 21
      public/index.html
  15. 2
      public/robots.txt
  16. BIN
      public/template/001/img/404_images/404.png
  17. BIN
      public/template/001/img/404_images/404_cloud.png
  18. BIN
      public/template/001/img/404_images/building.png
  19. BIN
      public/template/001/img/home/1.png
  20. BIN
      public/template/001/img/home/2.png
  21. BIN
      public/template/001/img/home/3.png
  22. BIN
      public/template/001/img/home/todoListTip.png
  23. BIN
      public/template/001/img/layout/logo-small.png
  24. BIN
      public/template/001/img/layout/logo2x.png
  25. BIN
      public/template/001/img/layout/logo2xx.png
  26. BIN
      public/template/001/img/login/bg.png
  27. BIN
      public/template/001/img/login/code.png
  28. BIN
      public/template/001/img/login/hide-P.png
  29. BIN
      public/template/001/img/login/pass.png
  30. BIN
      public/template/001/img/login/refresh.png
  31. BIN
      public/template/001/img/login/show-P.png
  32. BIN
      public/template/001/img/login/user.png
  33. 228
      public/template/001/login/login/index.scss
  34. 166
      public/template/001/styles/element-ui.scss
  35. 245
      public/template/001/styles/index.scss
  36. 234
      public/template/001/styles/sidebar.scss
  37. 27
      public/template/001/styles/variables.scss
  38. 0
      public/template/001/systemManage/user/index.scss
  39. 5
      src/App.vue
  40. 51
      src/api/attendee.js
  41. 111
      src/api/company.js
  42. 84
      src/api/login.js
  43. 43
      src/api/meeting.js
  44. 54
      src/api/notice.js
  45. 42
      src/api/permission.js
  46. 42
      src/api/prefix.js
  47. 5
      src/api/public.js
  48. 50
      src/api/role.js
  49. 98
      src/api/user.js
  50. BIN
      src/assets/404_images/404.png
  51. BIN
      src/assets/404_images/404_cloud.png
  52. BIN
      src/assets/404_images/building.png
  53. BIN
      src/assets/layout/logo2x.png
  54. BIN
      src/assets/login/bg.png
  55. BIN
      src/assets/login/code.png
  56. BIN
      src/assets/login/hide-P.png
  57. BIN
      src/assets/login/pass.png
  58. BIN
      src/assets/login/refresh.png
  59. BIN
      src/assets/login/show-P.png
  60. BIN
      src/assets/login/user.png
  61. 58
      src/components/Breadcrumb/index.vue
  62. 120
      src/components/CheckPasswordStrong/index.vue
  63. 44
      src/components/Hamburger/index.vue
  64. 42
      src/components/SvgIcon/index.vue
  65. 76
      src/components/ueditor/index.vue
  66. 9
      src/icons/index.js
  67. 1
      src/icons/svg/biaoshizhuce.svg
  68. 1
      src/icons/svg/dashboard.svg
  69. 1
      src/icons/svg/example.svg
  70. 1
      src/icons/svg/eye.svg
  71. 1
      src/icons/svg/fangwutuoguan.svg
  72. 1
      src/icons/svg/form.svg
  73. 1
      src/icons/svg/gonggaoguanli.svg
  74. 1
      src/icons/svg/gongsiguanli.svg
  75. 1
      src/icons/svg/jiaoliu.svg
  76. 1
      src/icons/svg/jiaoseguanli.svg
  77. 1
      src/icons/svg/password.svg
  78. 1
      src/icons/svg/qianzhuipeizhi.svg
  79. 1
      src/icons/svg/quanxian.svg
  80. 1
      src/icons/svg/table.svg
  81. 1
      src/icons/svg/tree.svg
  82. 1
      src/icons/svg/user.svg
  83. 1
      src/icons/svg/warning.svg
  84. 1
      src/icons/svg/xianzhiziyuan.svg
  85. 1
      src/icons/svg/xinxifabu.svg
  86. 1
      src/icons/svg/yonghuguanli.svg
  87. 30
      src/main.ts
  88. 43
      src/permission.js
  89. 32
      src/registerServiceWorker.ts
  90. 216
      src/router/index.ts
  91. 13
      src/shims-tsx.d.ts
  92. 4
      src/shims-vue.d.ts
  93. 13
      src/store/getters.js
  94. 17
      src/store/index.js
  95. 45
      src/store/modules/app.js
  96. 135
      src/store/modules/user.js
  97. 166
      src/styles/element-ui.scss
  98. 245
      src/styles/index.scss
  99. 28
      src/styles/mixin.scss
  100. 233
      src/styles/sidebar.scss

6
.babelrc

@ -0,0 +1,6 @@
{
"presets": ["@babel/preset-env"],
"plugins": [
"@babel/plugin-transform-runtime"
]
}

2
.browserslistrc

@ -0,0 +1,2 @@
> 1%
last 2 versions

14
.editorconfig

@ -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
.env.development

1
.env.production

@ -0,0 +1 @@

21
.eslintrc.js

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

24
.gitignore

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

20
babel.config.js

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

3
cypress.json

@ -0,0 +1,3 @@
{
"pluginsFile": "tests/e2e/plugins/index.js"
}

18709
package-lock.json

File diff suppressed because it is too large

64
package.json

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

13
public/config.js

@ -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/",
}

BIN
public/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

21
public/index.html

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

2
public/robots.txt

@ -0,0 +1,2 @@
User-agent: *
Disallow:

BIN
public/template/001/img/404_images/404.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
public/template/001/img/404_images/404_cloud.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
public/template/001/img/404_images/building.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
public/template/001/img/home/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
public/template/001/img/home/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

BIN
public/template/001/img/home/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

BIN
public/template/001/img/home/todoListTip.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

BIN
public/template/001/img/layout/logo-small.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 KiB

BIN
public/template/001/img/layout/logo2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
public/template/001/img/layout/logo2xx.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
public/template/001/img/login/bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
public/template/001/img/login/code.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

BIN
public/template/001/img/login/hide-P.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

BIN
public/template/001/img/login/pass.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

BIN
public/template/001/img/login/refresh.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 B

BIN
public/template/001/img/login/show-P.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

BIN
public/template/001/img/login/user.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 557 B

228
public/template/001/login/login/index.scss

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

166
public/template/001/styles/element-ui.scss

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

245
public/template/001/styles/index.scss

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

234
public/template/001/styles/sidebar.scss

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

27
public/template/001/styles/variables.scss

@ -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
public/template/001/systemManage/user/index.scss

5
src/App.vue

@ -0,0 +1,5 @@
<template>
<div id="app">
<router-view/>
</div>
</template>

51
src/api/attendee.js

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

111
src/api/company.js

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

84
src/api/login.js

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

43
src/api/meeting.js

@ -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'
});
}

54
src/api/notice.js

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

42
src/api/permission.js

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

42
src/api/prefix.js

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

5
src/api/public.js

@ -0,0 +1,5 @@
import request from '@/utils/request';

50
src/api/role.js

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

98
src/api/user.js

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

BIN
src/assets/404_images/404.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
src/assets/404_images/404_cloud.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
src/assets/404_images/building.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
src/assets/layout/logo2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
src/assets/login/bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

BIN
src/assets/login/code.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

BIN
src/assets/login/hide-P.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

BIN
src/assets/login/pass.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

BIN
src/assets/login/refresh.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 B

BIN
src/assets/login/show-P.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

BIN
src/assets/login/user.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 557 B

58
src/components/Breadcrumb/index.vue

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

120
src/components/CheckPasswordStrong/index.vue

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

44
src/components/Hamburger/index.vue

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

42
src/components/SvgIcon/index.vue

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

76
src/components/ueditor/index.vue

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

9
src/icons/index.js

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

1
src/icons/svg/biaoshizhuce.svg

@ -0,0 +1 @@
<?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="1589420227050" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13750" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M763.392 823.808H118.784c-3.584 0-6.656 3.584-6.656 8.192v55.808c0 4.608 3.072 8.192 6.656 8.192h644.608c3.584 0 6.656-3.584 6.656-8.192v-55.808c0-4.608-3.072-8.192-6.656-8.192z" p-id="13751"></path><path d="M829.952 891.392v-450.56c0-2.56-3.584-4.608-8.192-4.608h-55.808c-4.608 0-8.192 2.048-8.192 4.608v451.072c0 2.56 3.584 4.608 8.192 4.608h55.808c4.608-0.512 8.192-2.56 8.192-5.12zM597.504 164.864H116.736c-2.56 0-5.12 3.584-5.12 8.192v55.808c0 4.608 2.048 8.192 5.12 8.192h480.768c2.56 0 5.12-3.584 5.12-8.192v-56.32c0-4.096-2.048-7.68-5.12-7.68zM910.848 208.896h-233.472c-1.536 0-2.56 3.584-2.56 8.192v55.808c0 4.608 1.024 8.192 2.56 8.192h233.472c1.536 0 2.56-3.584 2.56-8.192v-56.32c-0.512-4.096-1.536-7.68-2.56-7.68z" p-id="13752"></path><path d="M829.952 361.472V128c0-1.536-3.584-2.56-8.192-2.56h-55.808c-4.608 0-8.192 1.024-8.192 2.56v233.472c0 1.536 3.584 2.56 8.192 2.56h55.808c4.608 0 8.192-1.024 8.192-2.56zM625.664 655.872H290.304c-2.048 0-3.584 3.584-3.584 8.192v55.808c0 4.608 1.536 8.192 3.584 8.192h335.36c2.048 0 3.584-3.584 3.584-8.192v-55.808c-0.512-4.096-2.048-8.192-3.584-8.192zM183.808 888.832v-716.8c0-4.096-3.584-7.168-8.192-7.168H119.808c-4.608 0-8.192 3.584-8.192 7.168v716.8c0 4.096 3.584 7.168 8.192 7.168h55.808c4.608 0 8.192-3.584 8.192-7.168z" p-id="13753"></path></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

1
src/icons/svg/dashboard.svg

@ -0,0 +1 @@
<?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="1509611822979" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10379" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32"><defs><style type="text/css"></style></defs><path d="M219.428571 658.285714q0-30.285714-21.428571-51.714285T146.285714 585.142857t-51.714285 21.428572T73.142857 658.285714t21.428572 51.714286T146.285714 731.428571t51.714286-21.428571T219.428571 658.285714z m109.714286-256q0-30.285714-21.428571-51.714285T256 329.142857t-51.714286 21.428572T182.857143 402.285714t21.428571 51.714286T256 475.428571t51.714286-21.428571T329.142857 402.285714z m244.571429 274.857143l57.714285-218.285714q3.428571-14.857143-4.285714-27.714286T605.142857 414.285714t-27.428571 3.714286-17.142857 22.571429l-57.714286 218.285714q-34.285714 2.857143-61.142857 24.857143t-36 56.285714q-11.428571 44 11.428571 83.428571t66.857143 50.857143 83.428571-11.428571 50.857143-66.857143q9.142857-34.285714-3.428571-66.857143t-41.142857-52z m377.142857-18.857143q0-30.285714-21.428572-51.714285T877.714286 585.142857t-51.714286 21.428572-21.428571 51.714285 21.428571 51.714286 51.714286 21.428571 51.714285-21.428571 21.428572-51.714286z m-365.714286-365.714285q0-30.285714-21.428571-51.714286T512 219.428571t-51.714286 21.428572T438.857143 292.571429t21.428571 51.714285T512 365.714286t51.714286-21.428572T585.142857 292.571429z m256 109.714285q0-30.285714-21.428571-51.714285T768 329.142857t-51.714286 21.428572T694.857143 402.285714t21.428571 51.714286T768 475.428571t51.714286-21.428571T841.142857 402.285714z m182.857143 256q0 149.142857-80.571429 276-10.857143 16.571429-30.857142 16.571429H111.428571q-20 0-30.857142-16.571429Q0 808 0 658.285714q0-104 40.571429-198.857143t109.142857-163.428571 163.428571-109.142857 198.857143-40.571429 198.857143 40.571429 163.428571 109.142857 109.142857 163.428571 40.571429 198.857143z" p-id="10380"></path></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

1
src/icons/svg/example.svg

@ -0,0 +1 @@
<?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="1511504199105" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1815" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M770.56 460.8h250.88C998.4 220.16 803.84 25.6 563.2 2.56v250.88c104.96 20.48 186.88 102.4 207.36 207.36z m0 0M460.8 253.44V2.56C220.16 25.6 25.6 220.16 2.56 460.8h250.88c20.48-104.96 102.4-186.88 207.36-207.36z m0 0M563.2 770.56v250.88c243.2-23.04 435.2-217.6 460.8-460.8H773.12C750.08 668.16 668.16 750.08 563.2 770.56z m0 0M253.44 563.2H2.56c23.04 243.2 217.6 435.2 460.8 460.8V773.12C355.84 750.08 273.92 668.16 253.44 563.2z m0 0" fill="" p-id="1816"></path></svg>

After

Width:  |  Height:  |  Size: 852 B

1
src/icons/svg/eye.svg

@ -0,0 +1 @@
<?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="1503993826520" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7878" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M941.677063 391.710356c9.337669-14.005992 6.224772-32.68133-6.224772-43.575447-14.005992-10.894118-32.68133-7.78122-43.575447 6.224771-1.556449 1.556449-174.300768 205.426673-379.727441 205.426673-199.200878 0-379.727441-205.426673-381.28389-206.982098-10.894118-12.450567-31.124881-14.005992-43.575448-3.112898-12.450567 10.894118-14.005992 31.124881-3.112897 43.575448 3.112897 4.668323 40.46255 46.687322 99.600439 93.375667l-79.369676 82.48155c-12.450567 12.450567-10.894118 32.68133 1.556449 43.575448 3.112897 6.224772 10.894118 9.337669 18.675338 9.337669 7.78122 0 15.562441-3.112897 21.787213-9.337669l85.594447-88.706321c40.46255 28.013007 88.706321 54.469566 141.619438 73.14388L340.959485 707.631586c-4.668323 17.118889 4.669346 34.237779 21.787213 38.906101h9.337669c14.005992 0 26.456558-9.337669 29.568432-23.343661l32.68133-110.494556c24.90011 4.668323 51.356668 7.78122 77.813227 7.78122s52.913117-3.112897 77.813227-7.78122l32.68133 108.938108c3.112897 14.005992 17.118889 23.343661 29.569456 23.343661 3.112897 0 6.224772 0 7.78122-1.556449 17.118889-4.669346 26.456558-21.787212 21.788236-38.906102l-32.68133-108.938108c52.913117-18.675338 101.156888-45.131897 141.619438-73.14388l84.037998 87.150896c6.224772 6.224772 14.005992 9.337669 21.787212 9.337669 7.78122 0 15.562441-3.112897 21.787212-9.337669 12.450567-12.450567 12.450567-31.124881 1.556449-43.575448l-79.369675-82.48155c63.808258-46.688345 101.158934-91.820242 101.158934-91.820242z" p-id="7879"></path></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

1
src/icons/svg/fangwutuoguan.svg

@ -0,0 +1 @@
<?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 class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M599.04 986.453333h-5.12c-13.653333-1.706667-47.786667-11.946667-105.813333-27.306666-64.853333-17.066667-172.373333-46.08-189.44-46.08-11.946667 1.706667-40.96 13.653333-69.973334 25.6-18.773333 6.826667-39.253333 15.36-59.733333 23.893333-5.12 1.706667-10.24 3.413333-17.066667 3.413333-52.906667 0-87.04-87.04-98.986666-138.24-8.533333-39.253333-13.653333-90.453333 18.773333-105.813333 5.12-3.413333 10.24-5.12 15.36-6.826667 35.84-15.36 73.386667-30.72 104.106667-42.666666 11.946667-5.12 25.6-10.24 37.546666-15.36 11.946667-5.12 23.893333-10.24 35.84-13.653334 20.48-8.533333 40.96-15.36 63.146667-23.893333l5.12-1.706667c20.48-6.826667 39.253333-13.653333 61.44-17.066666h10.24c32.426667 0 129.706667 29.013333 244.053333 63.146666 29.013333 8.533333 54.613333 17.066667 68.266667 20.48 29.013333 8.533333 46.08 32.426667 42.666667 59.733334-3.413333 29.013333-30.72 59.733333-73.386667 59.733333-6.826667 0-13.653333 0-20.48-1.706667-42.666667-10.24-104.106667-22.186667-148.48-30.72-17.066667-3.413333-32.426667-6.826667-44.373333-8.533333-10.24-1.706667-15.36 5.12-17.066667 8.533333 0 1.706667-1.706667 5.12 6.826667 6.826667 25.6 10.24 158.72 46.08 199.68 46.08 8.533333 0 18.773333-5.12 30.72-8.533333 3.413333-1.706667 8.533333-3.413333 11.946666-5.12 18.773333-6.826667 39.253333-13.653333 58.026667-22.186667 15.36-5.12 29.013333-11.946667 44.373333-17.066667 23.893333-10.24 49.493333-18.773333 73.386667-27.306666 10.24-3.413333 22.186667-6.826667 32.426667-6.826667 32.426667 0 58.026667 20.48 64.853333 51.2 5.12 27.306667-8.533333 63.146667-49.493333 78.506667-8.533333 3.413333-30.72 11.946667-58.026667 23.893333-155.306667 61.44-244.053333 95.573333-271.36 95.573333z m-303.786667-121.173333c22.186667 0 97.28 20.48 201.386667 47.786667 44.373333 11.946667 90.453333 23.893333 100.693333 25.6 27.306667-1.706667 186.026667-66.56 252.586667-95.573334 29.013333-11.946667 49.493333-20.48 59.733333-23.893333 17.066667-6.826667 20.48-17.066667 18.773334-25.6 0-3.413333-3.413333-13.653333-18.773334-13.653333-5.12 0-10.24 1.706667-15.36 3.413333-23.893333 8.533333-47.786667 18.773333-73.386666 27.306667-15.36 5.12-29.013333 11.946667-44.373334 17.066666-20.48 6.826667-39.253333 15.36-59.733333 22.186667-3.413333 1.706667-6.826667 3.413333-10.24 3.413333-13.653333 5.12-30.72 11.946667-47.786667 11.946667-47.786667 0-187.733333-37.546667-218.453333-49.493333-25.6-10.24-39.253333-34.133333-34.133333-59.733334 6.826667-30.72 37.546667-52.906667 71.68-44.373333 11.946667 1.706667 27.306667 5.12 44.373333 8.533333 44.373333 8.533333 105.813333 22.186667 150.186667 32.426667 3.413333 0 6.826667 1.706667 8.533333 1.706667 17.066667 0 25.6-11.946667 27.306667-20.48 0-3.413333 1.706667-6.826667-8.533334-8.533334-13.653333-3.413333-37.546667-10.24-69.973333-20.48-69.973333-20.48-201.386667-59.733333-228.693333-61.44h-1.706667-1.706667c-17.066667 3.413333-35.84 8.533333-52.906666 15.36l-5.12 1.706667c-22.186667 6.826667-42.666667 15.36-61.44 22.186667-11.946667 5.12-22.186667 8.533333-34.133334 13.653333-13.653333 5.12-25.6 10.24-39.253333 15.36-30.72 11.946667-66.56 27.306667-102.4 42.666667-3.413333 1.706667-8.533333 3.413333-11.946667 5.12-6.826667 15.36 3.413333 78.506667 30.72 126.293333 13.653333 23.893333 23.893333 30.72 25.6 30.72 20.48-6.826667 39.253333-15.36 58.026667-22.186667 35.84-13.653333 63.146667-25.6 81.92-29.013333h8.533333z" /><path d="M791.893333 675.84c-13.653333 0-23.893333-10.24-23.893333-23.893333V419.84c0-13.653333 10.24-23.893333 23.893333-23.893333h58.026667L522.24 92.16 191.146667 394.24h61.44c6.826667 0 11.946667 1.706667 17.066666 6.826667 5.12 5.12 6.826667 10.24 6.826667 17.066666l-1.706667 136.533334c0 13.653333-10.24 23.893333-23.893333 23.893333-13.653333 0-23.893333-10.24-23.893333-23.893333v-112.64H131.413333c-10.24 0-18.773333-5.12-22.186666-15.36-3.413333-8.533333-1.706667-18.773333 6.826666-25.6L506.88 44.373333c8.533333-8.533333 22.186667-8.533333 32.426667 0l385.706666 358.4c6.826667 6.826667 8.533333 17.066667 5.12 25.6s-11.946667 15.36-22.186666 15.36h-93.866667v208.213334c0 13.653333-10.24 23.893333-22.186667 23.893333z" /><path d="M581.973333 566.613333c-13.653333 0-23.893333-10.24-23.893333-23.893333V426.666667h-110.933333l1.706666 95.573333c0 13.653333-10.24 23.893333-23.893333 23.893333s-23.893333-10.24-23.893333-23.893333V426.666667c0-25.6 20.48-46.08 46.08-46.08h110.933333c25.6 0 46.08 20.48 46.08 46.08v117.76c1.706667 11.946667-8.533333 22.186667-22.186667 22.186666z" /></svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

1
src/icons/svg/form.svg

@ -0,0 +1 @@
<?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="1511504319223" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3230" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M942.827259 80.3367c-11.42419-11.406794-26.41051-17.117866-41.377386-17.117866-14.985296 0-29.952172 5.711072-41.358967 17.117866L719.392444 221.014696l-19.441794 19.441794L681.577187 258.832 569.516971 370.909611 375.99749 564.411697l0 0.019443 0 84.372619 81.145112 0 0.010233 0 95.418186-95.435583 213.398228-213.400275 3.14155-3.14155-0.019443 0 9.979282-9.977235 0 0L942.827259 163.073052C965.697129 140.259464 965.697129 103.186104 942.827259 80.3367z" p-id="3231"></path><path d="M793.542234 367.521444 580.14196 580.939115 484.72582 676.376745 473.299583 687.800935 457.152834 687.800935 375.99749 687.800935 337.000314 687.800935 337.000314 648.803759 337.000314 564.411697 337.000314 548.264948 348.424504 536.838711 541.943986 343.338672 654.004201 231.259014 665.428392 219.834824 64.020082 219.834824 64.020082 960.781166 804.966425 960.781166 804.966425 356.116697 796.607036 364.475062Z" p-id="3232"></path></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

1
src/icons/svg/gonggaoguanli.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 4.9 KiB

1
src/icons/svg/gongsiguanli.svg

@ -0,0 +1 @@
<?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 class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M152.7808 450.3552h61.44v61.44h-61.44zM152.7808 696.32h61.44v61.2352h-61.44zM589.824 941.8752h-17.2032V819.2h-122.6752v122.6752h-104.2432v-798.72h331.5712V610.304l61.44-53.248v-45.2608h203.5712V624.64l61.2352-10.24v-163.84H738.7136V82.1248h-196.608V20.48h-61.44v61.44h-196.4032v245.76H20.48v675.6352h602.112l-32.768-61.44z m-375.3984 0V819.2h-61.44v122.6752H81.92V389.12h202.3424l0.2048 552.7552h-70.0416zM152.7808 573.44h61.44v61.44h-61.44zM449.9456 573.44h122.6752v61.44h-122.6752zM449.9456 204.8h122.6752v61.44h-122.6752zM449.9456 327.68h122.6752v61.44h-122.6752zM449.9456 696.32h122.6752v61.2352h-122.6752zM449.9456 450.3552h122.6752v61.44h-122.6752zM1003.52 725.6064c-32.1536-53.6576-31.5392-54.6816-31.5392-54.6816s-111.0016 31.1296-131.8912-75.3664h-64.3072s-17.6128 106.7008-131.2768 75.1616c-32.768 54.6816-33.792 56.32-33.9968 56.32 0 0 88.8832 62.0544 0 146.2272l34.6112 56.7296s98.0992-42.3936 130.2528 73.3184h65.1264s20.48-106.2912 130.8672-74.752c31.5392-53.6576 31.9488-54.0672 31.9488-54.0672s-83.5584-71.8848 0.2048-148.8896z m-197.0176 149.0944c-41.3696 0-75.1616-33.792-75.1616-75.1616s33.792-75.1616 75.1616-75.1616 75.1616 33.792 75.1616 75.1616-33.792 75.1616-75.1616 75.1616z" /></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

1
src/icons/svg/jiaoliu.svg

@ -0,0 +1 @@
<?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 class="icon" width="200px" height="199.42px" viewBox="0 0 1027 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M485.283 1.055C218.733 1.055 3.04 188.695 3.04 420.15c0 142.026 82.416 268.288 206.91 345.43v129.8c0 17.5 12.288 28.02 26.345 28.02 5.244 0 10.519-1.738 13.994-3.507l131.507-87.66c33.357 7.044 66.653 8.781 101.717 8.781 266.55 0 482.211-187.64 482.211-419.095 1.8-233.224-213.892-420.864-480.442-420.864z m0 769.8c-29.82 0-59.64-3.476-89.43-8.782l-14.056-3.475c-8.75-1.769-17.501 0-26.314 5.275l-12.257 8.72L280.08 814.7V746.31c0-12.288-7.013-24.576-17.502-29.82L245.046 706C136.316 641.086 71.432 534.156 71.432 421.92c0-192.884 184.165-348.936 412.082-348.936 227.98 0 412.052 156.052 412.052 348.936 1.8 191.116-184.072 348.936-410.283 348.936zM211.689 432.438a57.872 57.872 0 1 0 115.743 0 57.872 57.872 0 0 0-115.743 0z m219.229 0a57.872 57.872 0 1 0 115.743 0 57.872 57.872 0 0 0-115.743 0z m212.185 0a57.872 57.872 0 1 0 115.743 0 57.872 57.872 0 0 0-115.743 0z m332.148 90.578c-1.024-1.335-2.11-2.576-3.196-3.879a402.897 402.897 0 0 1-31.899 82.416c0.59 1.304 1.303 2.514 1.83 3.755 9.186 21.132 14.182 43.939 14.182 67.708 0 63.085-36.46 123.19-97.56 159.62l-9.805 5.896a19.115 19.115 0 0 0-9.899 16.756v38.447l-35.436-23.676-6.92-4.903a20.232 20.232 0 0 0-14.77-2.948l-7.882 1.955a284.92 284.92 0 0 1-50.238 4.903 261.182 261.182 0 0 1-110.965-24.36 562.114 562.114 0 0 1-101.748 14.12c54.862 47.259 130.296 76.52 213.706 76.52 22.093 0 43.07-1.117 64.015-5.523l82.758 55.172c2.203 1.086 5.523 2.172 8.782 2.172 8.843 0 16.57-6.61 16.57-17.625v-81.703c78.351-48.531 130.234-128.031 130.234-217.367 0.031-54.614-19.084-105.348-51.759-147.456z" /></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

1
src/icons/svg/jiaoseguanli.svg

@ -0,0 +1 @@
<?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 class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M485.696 630.848c30.304 0 54.976 26.048 54.976 58.08 0 17.248-7.104 32.448-18.272 42.976l40.384 157.568a32 32 0 0 1-6.528 28.544l-46.336 55.104a32 32 0 0 1-48.8 0.224l-47.968-56a32 32 0 0 1-6.656-28.896l41.056-157.792-0.736-0.736a59.296 59.296 0 0 1-15.968-36.256l-0.16-4.736c0-32.032 24.672-58.08 55.008-58.08z m423.68 274.304a32 32 0 1 1 0 64h-224a32 32 0 0 1 0-64h224zM502.88 48a272 272 0 0 1 134.24 508.608c17.344 6.624 34.176 14.464 50.432 23.488a32 32 0 1 1-31.04 55.968 332.8 332.8 0 0 0-161.984-41.792C309.76 594.272 160 744.032 160 928.768a32 32 0 1 1-64 0c0-173.696 111.104-321.408 266.144-376A272 272 0 0 1 502.88 48zM909.44 785.152a32 32 0 1 1 0 64h-224a32 32 0 0 1 0-64h224zM448.16 728.32l-0.608 2.336 2.368 2.304c9.6 8.704 22.112 13.984 35.776 13.984 9.28 0 17.92-2.368 25.6-6.624l3.264-2.08-2.752 1.696c-8.032 4.096-17.216 4.256-27.168 4.256-14.4 0-26.656-6.304-36.48-15.872z m461.248-63.168a32 32 0 1 1 0 64h-224a32 32 0 0 1 0-64h224zM502.848 112a208 208 0 1 0 0 416 208 208 0 0 0 0-416z" /></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

1
src/icons/svg/password.svg

@ -0,0 +1 @@
<?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="1503994678729" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9229" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M780.8 354.579692 665.6 354.579692 665.6 311.689846c0-72.310154-19.849846-193.299692-153.6-193.299692-138.870154 0-153.6 135.049846-153.6 193.299692l0 42.889846L243.2 354.579692 243.2 311.689846C243.2 122.249846 348.790154 0 512 0s268.8 122.249846 268.8 311.689846L780.8 354.579692zM588.8 669.420308C588.8 625.900308 554.220308 590.769231 512 590.769231s-76.8 35.131077-76.8 78.651077c0 29.459692 15.399385 54.468923 38.439385 67.820308l0 89.639385c0 21.740308 17.250462 39.699692 38.4 39.699692s38.4-17.959385 38.4-39.699692l0-89.639385C573.44 723.889231 588.8 698.88 588.8 669.420308zM896 512l0 393.609846c0 65.260308-51.869538 118.390154-115.2 118.390154L243.2 1024c-63.291077 0-115.2-53.129846-115.2-118.390154L128 512c0-65.220923 51.869538-118.390154 115.2-118.390154l537.6 0C844.130462 393.609846 896 446.779077 896 512z" p-id="9230"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

1
src/icons/svg/qianzhuipeizhi.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.7 KiB

1
src/icons/svg/quanxian.svg

@ -0,0 +1 @@
<?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 class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M358.4 426.057143c0 82.285714 62.171429 149.942857 140.8 160.914286v184.685714c0 14.628571 12.8 27.428571 27.428571 27.428571s27.428571-12.8 27.428572-27.428571v-100.571429h45.714286c14.628571 0 27.428571-12.8 27.428571-27.428571s-12.8-27.428571-27.428571-27.428572h-45.714286V585.142857c73.142857-14.628571 129.828571-80.457143 129.828571-159.085714 0-89.6-73.142857-162.742857-162.742857-162.742857s-162.742857 73.142857-162.742857 162.742857z m162.742857-107.885714c60.342857 0 107.885714 47.542857 107.885714 107.885714 0 60.342857-47.542857 107.885714-107.885714 107.885714s-107.885714-47.542857-107.885714-107.885714c0-60.342857 47.542857-107.885714 107.885714-107.885714z" /><path d="M864.914286 190.171429l-338.285715-109.714286c-5.485714-1.828571-10.971429-1.828571-16.457142 0l-338.285715 109.714286c-10.971429 3.657143-18.285714 14.628571-18.285714 25.6V643.657143c1.828571 14.628571 21.942857 142.628571 354.742857 298.057143 3.657143 1.828571 7.314286 1.828571 10.971429 1.828571s7.314286 0 10.971428-1.828571C861.257143 786.285714 883.2 658.285714 885.028571 643.657143V215.771429c-1.828571-10.971429-9.142857-21.942857-20.114285-25.6z m-36.571429 449.828571c-1.828571 9.142857-32.914286 113.371429-310.857143 246.857143-279.771429-133.485714-309.028571-237.714286-310.857143-246.857143V235.885714l310.857143-102.4 310.857143 102.4V640z" /></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

1
src/icons/svg/table.svg

@ -0,0 +1 @@
<?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="1511504440567" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5070" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M568.6 0h454.9v454.9H568.6V0z m0 568.6h454.9v454.9H568.6V568.6zM0 568.6h454.9v454.9H0V568.6zM0 0h454.9v454.9H0V0z" fill="" p-id="5071"></path></svg>

After

Width:  |  Height:  |  Size: 532 B

1
src/icons/svg/tree.svg

@ -0,0 +1 @@
<?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="1511512690058" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3507" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M1013.703 693.345c6.865 6.865 10.297 14.874 10.297 24.027l0 205.944c0 9.916-3.432 18.115-10.297 24.599-6.865 6.483-15.255 9.725-25.171 9.725L782.588 957.64c-9.153 0-17.162-3.242-24.027-9.725-6.865-6.483-10.297-14.683-10.297-24.599L748.264 717.372c0-6.102 1.526-11.823 4.577-17.162s7.246-9.534 12.586-12.586 11.06-4.577 17.162-4.577l77.801 0L860.39 546.896c0-4.577-1.144-8.772-3.432-12.586s-5.339-6.865-9.153-9.153-8.009-3.432-12.585-3.432L543.464 521.725l0 161.323 77.801 0c9.153 0 17.162 3.432 24.027 10.297s10.297 14.874 10.297 24.027l0 205.944c0 6.102-1.526 11.823-4.577 17.162s-7.246 9.534-12.585 12.585-11.06 4.577-17.162 4.577L415.321 957.64c-6.102 0-11.823-1.526-17.162-4.577s-9.725-7.246-13.158-12.585-5.149-11.06-5.149-17.162L379.852 717.372c0-9.153 3.432-17.162 10.297-24.027s15.255-10.297 25.171-10.297l76.657 0L491.977 521.725 188.782 521.725c-7.628 0-13.92 2.479-18.878 7.437-4.958 4.958-7.437 10.869-7.437 17.734l0 136.152 77.801 0c9.916 0 18.115 3.432 24.599 10.297s9.725 14.874 9.725 24.027l0 205.944c0 9.916-3.242 18.115-9.725 24.599-6.483 6.483-14.683 9.725-24.599 9.725L34.324 957.64c-3.814 0-7.437-0.572-10.869-1.716-3.432-1.144-6.483-2.67-9.153-4.577-2.67-1.907-5.149-4.386-7.437-7.437-2.288-3.051-4.004-6.293-5.149-9.725C0.572 930.753 0 927.13 0 923.316L0 717.372c0-3.051 0.381-6.102 1.144-9.153s1.907-5.721 3.432-8.009 3.432-4.577 5.721-6.865 4.577-4.195 6.865-5.721 4.958-2.67 8.009-3.432 6.102-1.144 9.153-1.144l77.801 0L112.125 495.41c0-6.865 2.479-12.776 7.437-17.734s10.869-7.437 17.734-7.437l354.682 0L491.978 342.096l-76.657 0c-9.916 0-18.306-3.432-25.171-10.297s-10.297-14.874-10.297-24.027L379.853 101.828c0-9.916 3.432-18.306 10.297-25.171s15.255-10.297 25.171-10.297l205.944 0c6.102 0 11.823 1.716 17.162 5.149 5.339 3.432 9.534 7.818 12.585 13.158 3.051 5.339 4.577 11.06 4.577 17.162l0 205.944c0 9.153-3.432 17.162-10.297 24.027s-14.874 10.297-24.027 10.297l-77.801 0 0 128.143L885.56 470.24c7.628 0 13.92 2.479 18.878 7.437s7.437 10.869 7.437 17.734l0 187.638 76.657 0C998.448 683.048 1006.838 686.48 1013.703 693.345z" p-id="3508"></path></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

1
src/icons/svg/user.svg

@ -0,0 +1 @@
<?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="1503993891882" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7986" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M504.951 511.98c93.49 0 169.28-74.002 169.28-165.26 0-91.276-75.79-165.248-169.28-165.248-93.486 0-169.287 73.972-169.279 165.248-0.001 91.258 75.793 165.26 169.28 165.26z m77.6 55.098H441.466c-120.767 0-218.678 95.564-218.678 213.45V794.3c0 48.183 97.911 48.229 218.678 48.229H582.55c120.754 0 218.66-1.78 218.66-48.229v-13.77c0-117.887-97.898-213.45-218.66-213.45z" p-id="7987"></path></svg>

After

Width:  |  Height:  |  Size: 777 B

1
src/icons/svg/warning.svg

@ -0,0 +1 @@
<?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="1531386779324" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2509" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M598.272514 158.17909C545.018272 71.994036 451.264177 71.951401 397.724122 158.397341L25.049726 760.118586C-28.93569 847.283607 14.324655 927.325257 116.435565 929.308966L891.057077 929.313666C993.88467 931.315989 1036.926865 868.038259 983.25955 781.189694 980.374633 776.521099 980.374633 776.521099 971.719878 762.515313 967.393745 755.514432 967.393745 755.514432 963.78822 749.679695 956.511588 737.90409 941.113263 734.285867 929.3951 741.59817 917.676937 748.910473 914.076365 764.384279 921.352996 776.159885 924.958522 781.994622 924.958522 781.994622 929.284655 788.995503 937.939409 803.001289 937.939409 803.001289 940.824326 807.669884 972.284602 858.581314 957.441559 880.402549 891.539823 879.122276L116.918309 879.117577C54.037254 877.891296 33.95555 840.735497 67.458075 786.642217L440.132471 184.920971C474.112981 130.055931 522.112175 130.077759 556.029583 184.965509L857.08969 656.83971C864.534622 668.508595 879.98329 671.9032 891.595253 664.421773 903.207217 656.940343 906.585263 641.415949 899.140331 629.747063L598.272514 158.17909Z" p-id="2510"></path><path d="M474.536585 619.793346C474.536585 633.654611 485.718547 644.891386 499.512194 644.891386 513.305843 644.891386 524.487806 633.654611 524.487806 619.793346L524.487806 299.793346C524.487806 285.932082 513.305843 274.695307 499.512194 274.695307 485.718547 274.695307 474.536585 285.932082 474.536585 299.793346L474.536585 619.793346Z" p-id="2511"></path><path d="M474.465781 776.736145C474.565553 790.597047 485.828105 801.75225 499.621393 801.651987 513.414679 801.551725 524.515467 790.233967 524.415695 776.373065L523.955031 712.375667C523.855258 698.514767 512.592708 687.359563 498.79942 687.459825 485.006133 687.560087 473.905346 698.877847 474.005118 712.738748L474.465781 776.736145Z" p-id="2512"></path></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

1
src/icons/svg/xianzhiziyuan.svg

@ -0,0 +1 @@
<?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 class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M791.424 870.85568c-96.0512-3.29728-171.60192-84.52096-169.44128-182.15936s81.23392-175.32416 177.3312-174.21824 173.41952 80.5888 173.40928 178.24768c-1.71008 100.0448-82.85696 179.76832-181.2992 178.12992z m10.31168-509.056l-36.28544-25.4464v-86.528l103.63904 61.08672v168.28416h-67.3536V361.79968z m-290.0992 96.72192c-98.47296 1.67424-179.65056-78.05952-181.37088-178.1248 1.6896-100.09088 82.87232-179.86048 181.37088-178.176 98.49344-1.67424 179.68128 78.09536 181.36576 178.176-1.72032 100.0704-82.89792 179.80416-181.36576 178.1248z m-290.16064 20.67456H154.112V310.912l103.64928-61.08672v86.528l-36.28544 25.4464v117.39648z m186.5216 213.82144c-1.68448 100.0704-82.83648 179.82464-181.30432 178.176C129.77664 871.22432 51.2 791.39328 51.2 692.90496S129.72032 514.56 226.63168 514.56c98.49344-1.67424 179.68128 78.09024 181.36576 178.176v0.29184z m222.80704 111.9232v76.57472l-114.01216 45.35808-113.95072-50.89792v-76.5696l113.95072 45.824z m0 0" /></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

1
src/icons/svg/xinxifabu.svg

@ -0,0 +1 @@
<?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 class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M448.73751 961.357H142.01051a79.864 79.864 0 0 1-79.115-80.862v-736.74a79.864 79.864 0 0 1 78.865-80.862h488.416a79.864 79.864 0 0 1 78.865 80.612v229.857a31.446 31.446 0 1 0 62.892 0V143.754A142.756 142.756 0 0 0 630.17751 0H142.01051A142.756 142.756 0 0 0 0.00351 143.754v736.741A143.006 143.006 0 0 0 141.76151 1024h306.976a31.446 31.446 0 0 0 0-62.893z" /><path d="M636.91551 394.077a31.446 31.446 0 0 0-30.198-31.696H165.47051a31.446 31.446 0 0 0 0 62.892h441.246a31.446 31.446 0 0 0 30.198-31.196z m-30.198-204.9H165.47051a31.446 31.446 0 0 0 0 62.892h441.246a31.446 31.446 0 0 0 0-62.892zM965.10451 900.96a268.291 268.291 0 0 0 58.9-168.212 283.765 283.765 0 0 0-567.031 0 280.021 280.021 0 0 0 283.515 274.53 289.256 289.256 0 0 0 101.077-17.969 156.233 156.233 0 0 1 54.906 7.487c37.936 8.736 62.144 13.477 74.872 4.493s7.737-35.44 0-58.9c-4.741-15.224-9.982-35.19-6.239-41.429z m-63.392 24.958c0 3.244 0 6.489 1.748 9.733-45.672-10.482-60.148-12.23-83.857-3.494a226.613 226.613 0 0 1-79.365 14.226 217.129 217.129 0 0 1-220.623-212.637 220.873 220.873 0 0 1 441.246 0 205.649 205.649 0 0 1-44.923 127.782 76.37 76.37 0 0 0-13.976 63.64zM165.47151 535.834a31.446 31.446 0 0 0 0 62.893H417.54051a31.446 31.446 0 0 0 0-62.893z" /><path d="M760.20451 698.556a39.433 39.433 0 1 0 19.717 34.192 39.433 39.433 0 0 0-19.717-34.192z m-126.034 0a39.433 39.433 0 1 0 19.716 34.192 39.682 39.682 0 0 0-19.716-34.192z m252.319 0a39.433 39.433 0 1 0 19.716 33.942 39.433 39.433 0 0 0-19.716-33.942z" /></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

1
src/icons/svg/yonghuguanli.svg

@ -0,0 +1 @@
<?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 class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M775.7696 682.794667a88.192 88.192 0 0 0-80.469333 43.264 90.24 90.24 0 0 0 0.085333 92.16 88.192 88.192 0 0 0 80.554667 43.093333 88.832 88.832 0 0 0 85.546666-89.344 88.832 88.832 0 0 0-85.76-89.130667v-0.042666z m-3.669333 129.92a40.106667 40.106667 0 0 1-28.757334-12.330667 42.581333 42.581333 0 0 1-11.904-29.653333 41.258667 41.258667 0 0 1 40.618667-39.296c21.504 0 39.296 17.194667 40.661333 39.253333 0 23.210667-18.176 41.984-40.661333 41.984h0.042667z m246.570666-92.586667c-3.669333-19.669333-15.914667-32.426667-31.701333-32.426667h-2.218667c-30.208 0-54.613333-25.088-54.784-56.021333 0.426667-7.253333 2.048-14.421333 4.693334-21.333333a41.514667 41.514667 0 0 0-14.848-50.176l-64-36.181334a42.624 42.624 0 0 0-46.848 9.514667c-7.850667 8.533333-28.970667 25.898667-43.648 25.898667-14.72 0-36.053333-17.749333-44.032-26.282667a42.624 42.624 0 0 0-46.592-9.898667l-1.28 0.469334-65.152 36.693333-1.493334 0.810667a41.258667 41.258667 0 0 0-13.610666 49.194666c2.901333 6.698667 4.48 13.994667 4.906666 21.333334-0.170667 30.976-24.576 55.978667-54.826666 55.978666h-2.56c-15.445333 0-27.776 12.928-31.402667 32.426667a345.386667 345.386667 0 0 0-5.376 52.053333c0 21.845333 4.821333 49.066667 5.376 52.053334 3.754667 19.626667 15.957333 32.298667 31.744 32.298666h2.218667c30.037333 0 54.741333 25.173333 54.741333 56.149334 0 8.021333-3.413333 18.090667-4.736 21.248a41.386667 41.386667 0 0 0 14.805333 50.133333l62.848 35.754667a42.282667 42.282667 0 0 0 47.061334-10.069334c7.765333-8.533333 29.738667-27.349333 44.629333-27.349333 15.36 0 36.949333 18.773333 45.141333 27.946667 7.936 8.661333 19.285333 13.653333 31.274667 13.653333a39.552 39.552 0 0 0 17.365333-4.096l63.530667-35.882667 1.450667-1.066666a40.917333 40.917333 0 0 0 13.568-48.938667 66.346667 66.346667 0 0 1-4.864-21.333333c0-31.018667 24.576-56.064 54.741333-56.192h2.602667c15.445333 0 27.776-12.714667 31.274666-32.213334 0-0.298667 5.333333-29.141333 5.333334-52.096 0-21.973333-4.821333-49.194667-5.333334-52.053333z m-46.464 87.296c-50.346667 7.082667-87.893333 53.461333-87.893333 108.373333 0 12.629333 2.773333 24.746667 5.333333 32.981334l-44.245333 26.453333a183.936 183.936 0 0 0-18.218667-16.853333c-19.626667-15.658667-38.613333-23.765333-56.448-23.765334-17.706667 0-36.437333 7.936-56.021333 23.210667-6.357333 5.12-12.330667 10.666667-17.92 16.597333l-42.453333-25.6c2.517333-8.277333 5.546667-20.48 5.546666-33.066666 0-54.869333-37.632-101.333333-88.064-108.373334a276.736 276.736 0 0 1-2.944-34.944c0-11.648 1.749333-26.026667 2.986667-34.986666 50.346667-7.168 87.936-53.461333 88.021333-108.373334 0-12.757333-2.901333-24.789333-5.504-33.024l45.824-27.178666c3.882667 4.138667 10.197333 10.24 18.048 16.128 19.285333 14.933333 37.674667 22.357333 55.04 22.357333 17.237333 0 35.498667-7.338667 54.613334-21.888 7.765333-5.888 14.037333-11.776 17.962666-15.786667l43.861334 26.325334c-3.413333 10.666667-5.248 21.76-5.376 33.024 0 55.253333 37.973333 101.205333 87.893333 108.373333 1.194667 9.045333 2.986667 23.552 2.986667 34.986667 0 11.349333-1.792 25.941333-2.986667 34.986666v0.042667zM439.7696 0a259.84 259.84 0 0 0-244.906667 176.213333 262.357333 262.357333 0 0 0 85.162667 290.645334l16.213333 12.928-19.072 7.552A441.813333 441.813333 0 0 0 0.004267 899.285333v91.136c0 18.56 15.018667 33.578667 33.408 33.578667H521.390933a344.490667 344.490667 0 0 1-40.405333-67.2H66.734933v-57.429333c-0.128-193.536 145.792-355.626667 337.408-374.698667v-0.085333h0.554667c11.477333-1.152 23.210667-1.664 35.072-1.664h5.376c41.813333-3.242667 104.917333-13.226667 138.154667-43.136l16.213333-12.928a262.144 262.144 0 0 0 85.248-290.56A260.096 260.096 0 0 0 439.726933 0h0.042667z m-3.2 455.082667c-107.264-2.645333-192.853333-89.173333-192.768-194.986667-0.085333-105.898667 85.504-192.426667 192.853333-195.072 109.056 0.170667 197.376 87.466667 197.248 195.029333 0.128 107.562667-88.192 194.858667-197.290666 195.072v-0.042666z" /></svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

30
src/main.ts

@ -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')

43
src/permission.js

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

32
src/registerServiceWorker.ts

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

216
src/router/index.ts

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

13
src/shims-tsx.d.ts

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

4
src/shims-vue.d.ts

@ -0,0 +1,4 @@
declare module '*.vue' {
import Vue from 'vue'
export default Vue
}

13
src/store/getters.js

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

17
src/store/index.js

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

45
src/store/modules/app.js

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

135
src/store/modules/user.js

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

166
src/styles/element-ui.scss

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

245
src/styles/index.scss

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

28
src/styles/mixin.scss

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

233
src/styles/sidebar.scss

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

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

Loading…
Cancel
Save