Browse Source

Merge remote-tracking branch 'origin/feature/qdsb_2112' into feature/qdsb_2112

# Conflicts:
#	package-lock.json
#	package.json
master
wanggongfeng 4 years ago
parent
commit
9b7dd0ba8c
  1. 284
      package-lock.json
  2. 6
      package.json
  3. BIN
      src/assets/img/guanlipingtai@2x.png
  4. BIN
      src/assets/img/login_bg_2112.png
  5. BIN
      src/assets/img/main_index_bg.png
  6. BIN
      src/assets/img/shujukeshihua@2x.png
  7. BIN
      src/assets/img/zhuangshi@2x.png
  8. 529
      src/assets/scss/pages/login.scss
  9. 1446
      src/element-ui/theme-variables.scss
  10. 2
      src/element-ui/theme/autocomplete.css
  11. 2
      src/element-ui/theme/base.css
  12. 2
      src/element-ui/theme/breadcrumb.css
  13. 2
      src/element-ui/theme/button.css
  14. 2
      src/element-ui/theme/cascader.css
  15. 2
      src/element-ui/theme/checkbox.css
  16. 2
      src/element-ui/theme/col.css
  17. 2
      src/element-ui/theme/collapse.css
  18. 2
      src/element-ui/theme/color-picker.css
  19. 2
      src/element-ui/theme/date-picker.css
  20. 2
      src/element-ui/theme/dialog.css
  21. 2
      src/element-ui/theme/dropdown.css
  22. 2
      src/element-ui/theme/form.css
  23. 2
      src/element-ui/theme/index.css
  24. 2
      src/element-ui/theme/input-number.css
  25. 2
      src/element-ui/theme/input.css
  26. 2
      src/element-ui/theme/loading.css
  27. 2
      src/element-ui/theme/menu.css
  28. 2
      src/element-ui/theme/message-box.css
  29. 2
      src/element-ui/theme/message.css
  30. 2
      src/element-ui/theme/option.css
  31. 2
      src/element-ui/theme/pagination.css
  32. 2
      src/element-ui/theme/popover.css
  33. 2
      src/element-ui/theme/progress.css
  34. 2
      src/element-ui/theme/radio-button.css
  35. 2
      src/element-ui/theme/radio.css
  36. 2
      src/element-ui/theme/reset.css
  37. 2
      src/element-ui/theme/select-dropdown.css
  38. 2
      src/element-ui/theme/select.css
  39. 2
      src/element-ui/theme/slider.css
  40. 2
      src/element-ui/theme/step.css
  41. 2
      src/element-ui/theme/switch.css
  42. 2
      src/element-ui/theme/table-column.css
  43. 2
      src/element-ui/theme/table.css
  44. 2
      src/element-ui/theme/tabs.css
  45. 2
      src/element-ui/theme/tag.css
  46. 2
      src/element-ui/theme/time-picker.css
  47. 2
      src/element-ui/theme/time-select.css
  48. 2
      src/element-ui/theme/transfer.css
  49. 2
      src/element-ui/theme/tree.css
  50. 2
      src/element-ui/theme/upload.css
  51. 157
      src/views/main-index.vue
  52. 195
      src/views/main-navbar-update-password.vue
  53. 371
      src/views/main-navbar.vue
  54. 146
      src/views/main-sidebar-sub-menu.vue
  55. 335
      src/views/main-sidebar.vue
  56. 232
      src/views/main.vue
  57. 386
      src/views/modules/workRecord/weekrecordinfo.vue
  58. 347
      src/views/pages/login.vue

284
package-lock.json

@ -2084,9 +2084,9 @@
"integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA="
},
"are-we-there-yet": {
"version": "1.1.7",
"resolved": "https://registry.nlark.com/are-we-there-yet/download/are-we-there-yet-1.1.7.tgz",
"integrity": "sha1-sVR0qTKtq0/4pQ2a36fk6SbyEUY=",
"version": "1.1.5",
"resolved": "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz",
"integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=",
"requires": {
"delegates": "^1.0.0",
"readable-stream": "^2.0.6"
@ -2094,7 +2094,7 @@
"dependencies": {
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
"resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"readable-stream": {
@ -3002,9 +3002,9 @@
}
},
"graceful-fs": {
"version": "4.1.11",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=",
"dev": true
},
"lru-cache": {
@ -3358,12 +3358,12 @@
"dependencies": {
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz",
"resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz",
"integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc="
},
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz",
"resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz",
"integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
"requires": {
"color-convert": "^1.9.0"
@ -3371,12 +3371,12 @@
},
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
"resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz?cache=0&sync_timestamp=1618552489864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
"string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1632421013520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz",
"resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz",
"integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
"requires": {
"emoji-regex": "^7.0.1",
@ -3386,7 +3386,7 @@
},
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
"resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
"integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
"requires": {
"ansi-regex": "^4.1.0"
@ -3394,7 +3394,7 @@
},
"wrap-ansi": {
"version": "5.1.0",
"resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-5.1.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz",
"resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz?cache=0&sync_timestamp=1618558923406&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz",
"integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=",
"requires": {
"ansi-styles": "^3.2.0",
@ -3806,7 +3806,7 @@
},
"cross-spawn": {
"version": "3.0.1",
"resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz",
"resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz?cache=0&sync_timestamp=1570440024132&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-3.0.1.tgz",
"integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
"requires": {
"lru-cache": "^4.0.1",
@ -3815,7 +3815,7 @@
"dependencies": {
"lru-cache": {
"version": "4.1.5",
"resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz",
"resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
"integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
"requires": {
"pseudomap": "^1.0.2",
@ -4746,7 +4746,7 @@
},
"emoji-regex": {
"version": "7.0.3",
"resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz",
"resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1614682707048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz",
"integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY="
},
"emojis-list": {
@ -4780,9 +4780,9 @@
},
"dependencies": {
"graceful-fs": {
"version": "4.1.11",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=",
"dev": true
}
}
@ -5128,10 +5128,9 @@
}
},
"graceful-fs": {
"version": "4.1.11",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"dev": true
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo="
},
"isarray": {
"version": "1.0.0",
@ -5149,6 +5148,14 @@
"parse-json": "^2.2.0",
"pify": "^2.0.0",
"strip-bom": "^3.0.0"
},
"dependencies": {
"graceful-fs": {
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=",
"dev": true
}
}
},
"minimatch": {
@ -5877,9 +5884,9 @@
},
"dependencies": {
"graceful-fs": {
"version": "4.1.11",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=",
"dev": true
}
}
@ -6102,9 +6109,9 @@
},
"dependencies": {
"graceful-fs": {
"version": "4.1.11",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=",
"dev": true
}
}
@ -6122,9 +6129,9 @@
},
"dependencies": {
"graceful-fs": {
"version": "4.1.11",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=",
"dev": true
}
}
@ -6713,7 +6720,7 @@
},
"gauge": {
"version": "2.7.4",
"resolved": "https://registry.npmmirror.com/gauge/download/gauge-2.7.4.tgz",
"resolved": "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz",
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"requires": {
"aproba": "^1.0.3",
@ -6972,12 +6979,19 @@
"graceful-fs": "~1.2.0",
"inherits": "1",
"minimatch": "~0.2.11"
},
"dependencies": {
"graceful-fs": {
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo="
}
}
},
"graceful-fs": {
"version": "1.2.3",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-1.2.3.tgz",
"integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q="
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo="
},
"inherits": {
"version": "1.0.2",
@ -7008,14 +7022,6 @@
"sparkles": "^1.0.0"
}
},
"graceful-fs": {
"version": "3.0.11",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-3.0.11.tgz",
"integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
"requires": {
"natives": "^1.1.0"
}
},
"graceful-readlink": {
"version": "1.0.1",
"resolved": "http://r.cnpmjs.org/graceful-readlink/download/graceful-readlink-1.0.1.tgz",
@ -7258,9 +7264,9 @@
}
},
"graceful-fs": {
"version": "2.0.3",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-2.0.3.tgz",
"integrity": "sha1-fNLNsiiko/Nule+mzBQt59GhNtA="
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo="
},
"gulp-rename": {
"version": "1.1.0",
@ -8376,7 +8382,7 @@
},
"in-publish": {
"version": "2.0.1",
"resolved": "https://registry.npm.taobao.org/in-publish/download/in-publish-2.0.1.tgz",
"resolved": "https://registry.npm.taobao.org/in-publish/download/in-publish-2.0.1.tgz?cache=0&sync_timestamp=1584389407092&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fin-publish%2Fdownload%2Fin-publish-2.0.1.tgz",
"integrity": "sha1-lIsaU1yAMFYc6lIvc/ePS+NX4Aw="
},
"indent-string": {
@ -9049,9 +9055,9 @@
},
"dependencies": {
"graceful-fs": {
"version": "4.1.11",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=",
"dev": true,
"optional": true
}
@ -9191,9 +9197,9 @@
},
"dependencies": {
"graceful-fs": {
"version": "4.1.11",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo="
},
"strip-bom": {
"version": "2.0.0",
@ -10072,11 +10078,6 @@
"to-regex": "^3.0.1"
}
},
"natives": {
"version": "1.1.5",
"resolved": "http://r.cnpmjs.org/natives/download/natives-1.1.5.tgz",
"integrity": "sha1-O9vbQQQCPl3SObVvx+89mhesxqo="
},
"natural-compare": {
"version": "1.4.0",
"resolved": "http://r.cnpmjs.org/natural-compare/download/natural-compare-1.4.0.tgz",
@ -10110,7 +10111,7 @@
},
"node-gyp": {
"version": "3.8.0",
"resolved": "https://registry.npmmirror.com/node-gyp/download/node-gyp-3.8.0.tgz",
"resolved": "https://registry.npm.taobao.org/node-gyp/download/node-gyp-3.8.0.tgz",
"integrity": "sha1-VAMEJhwzDoDQ1e3OJTpoyzlkIYw=",
"requires": {
"fstream": "^1.0.0",
@ -10128,9 +10129,9 @@
},
"dependencies": {
"glob": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz",
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
"version": "7.1.7",
"resolved": "https://registry.nlark.com/glob/download/glob-7.1.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob%2Fdownload%2Fglob-7.1.7.tgz",
"integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@ -10155,7 +10156,7 @@
},
"semver": {
"version": "5.3.0",
"resolved": "https://registry.nlark.com/semver/download/semver-5.3.0.tgz?cache=0&sync_timestamp=1618846864940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-5.3.0.tgz",
"resolved": "https://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz?cache=0&sync_timestamp=1581458265183&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.3.0.tgz",
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
}
}
@ -10190,8 +10191,8 @@
},
"node-sass": {
"version": "4.14.1",
"resolved": "https://registry.npmmirror.com/node-sass/download/node-sass-4.14.1.tgz",
"integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==",
"resolved": "https://registry.nlark.com/node-sass/download/node-sass-4.14.1.tgz",
"integrity": "sha1-mch+wu+3BH7WOPtMnbfzpC4iF7U=",
"requires": {
"async-foreach": "^0.1.3",
"chalk": "^1.1.1",
@ -10214,7 +10215,7 @@
"dependencies": {
"ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz",
"resolved": "https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1626380017209&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
"integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
"requires": {
"fast-deep-equal": "^3.1.1",
@ -10225,21 +10226,21 @@
},
"fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599675178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz",
"resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz",
"integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU="
},
"gaze": {
"version": "1.1.3",
"resolved": "https://registry.npmmirror.com/gaze/download/gaze-1.1.3.tgz",
"resolved": "https://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz",
"integrity": "sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=",
"requires": {
"globule": "^1.0.0"
}
},
"glob": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz",
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
"version": "7.1.7",
"resolved": "https://registry.nlark.com/glob/download/glob-7.1.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob%2Fdownload%2Fglob-7.1.7.tgz",
"integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@ -10250,33 +10251,18 @@
}
},
"globule": {
"version": "1.3.3",
"resolved": "https://registry.nlark.com/globule/download/globule-1.3.3.tgz?cache=0&sync_timestamp=1629247157227&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobule%2Fdownload%2Fglobule-1.3.3.tgz",
"integrity": "sha1-gRkZ7qwatzROkF8uO+gKE0R5c8I=",
"version": "1.3.2",
"resolved": "https://registry.npm.taobao.org/globule/download/globule-1.3.2.tgz?cache=0&sync_timestamp=1591641966255&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobule%2Fdownload%2Fglobule-1.3.2.tgz",
"integrity": "sha1-2L3Z6eTu+PluJFmZpd7n612FKcQ=",
"requires": {
"glob": "~7.1.1",
"lodash": "~4.17.10",
"minimatch": "~3.0.2"
},
"dependencies": {
"glob": {
"version": "7.1.7",
"resolved": "https://registry.npmmirror.com/glob/download/glob-7.1.7.tgz",
"integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
}
}
},
"har-validator": {
"version": "5.1.5",
"resolved": "https://registry.npmmirror.com/har-validator/download/har-validator-5.1.5.tgz",
"resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz?cache=0&sync_timestamp=1596084327526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.5.tgz",
"integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=",
"requires": {
"ajv": "^6.12.3",
@ -10285,7 +10271,7 @@
},
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz?cache=0&sync_timestamp=1608000211395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz",
"resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
"integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA="
},
"minimatch": {
@ -10297,9 +10283,9 @@
}
},
"nan": {
"version": "2.15.0",
"resolved": "https://registry.nlark.com/nan/download/nan-2.15.0.tgz?cache=0&sync_timestamp=1628093656744&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnan%2Fdownload%2Fnan-2.15.0.tgz",
"integrity": "sha1-PzSkc/8Y4VwbVia2KQO1rW5mX+4="
"version": "2.14.2",
"resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591700047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz",
"integrity": "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk="
},
"oauth-sign": {
"version": "0.9.0",
@ -10313,7 +10299,7 @@
},
"request": {
"version": "2.88.2",
"resolved": "https://registry.npmmirror.com/request/download/request-2.88.2.tgz",
"resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz",
"integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=",
"requires": {
"aws-sign2": "~0.7.0",
@ -10349,14 +10335,14 @@
},
"uuid": {
"version": "3.4.0",
"resolved": "https://registry.npmmirror.com/uuid/download/uuid-3.4.0.tgz",
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
"resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1585683718911&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz",
"integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4="
}
}
},
"nopt": {
"version": "3.0.6",
"resolved": "https://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz",
"resolved": "https://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnopt%2Fdownload%2Fnopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"requires": {
"abbrev": "1"
@ -10409,7 +10395,7 @@
},
"npmlog": {
"version": "4.1.2",
"resolved": "https://registry.npmmirror.com/npmlog/download/npmlog-4.1.2.tgz",
"resolved": "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz",
"integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=",
"requires": {
"are-we-there-yet": "~1.1.2",
@ -10942,9 +10928,9 @@
},
"dependencies": {
"graceful-fs": {
"version": "4.1.11",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo="
}
}
},
@ -13152,7 +13138,7 @@
},
"psl": {
"version": "1.8.0",
"resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz?cache=0&sync_timestamp=1585143522654&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.8.0.tgz",
"resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz?cache=0&sync_timestamp=1585142991033&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.8.0.tgz",
"integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ="
},
"public-encrypt": {
@ -13419,9 +13405,9 @@
},
"dependencies": {
"graceful-fs": {
"version": "4.1.11",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=",
"dev": true
},
"isarray": {
@ -13908,9 +13894,9 @@
},
"dependencies": {
"glob": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz",
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
"version": "7.1.7",
"resolved": "https://registry.nlark.com/glob/download/glob-7.1.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob%2Fdownload%2Fglob-7.1.7.tgz",
"integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@ -14589,7 +14575,7 @@
"dependencies": {
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
"resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"readable-stream": {
@ -15238,7 +15224,7 @@
},
"tar": {
"version": "2.2.2",
"resolved": "https://registry.nlark.com/tar/download/tar-2.2.2.tgz",
"resolved": "https://registry.npm.taobao.org/tar/download/tar-2.2.2.tgz",
"integrity": "sha1-DKiEhWLHKZuLRG/2pNYM27I+3EA=",
"requires": {
"block-stream": "*",
@ -15256,9 +15242,9 @@
},
"dependencies": {
"graceful-fs": {
"version": "2.0.3",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-2.0.3.tgz",
"integrity": "sha1-fNLNsiiko/Nule+mzBQt59GhNtA="
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo="
}
}
},
@ -15351,6 +15337,14 @@
"ssri": "^6.0.1",
"unique-filename": "^1.1.1",
"y18n": "^4.0.0"
},
"dependencies": {
"graceful-fs": {
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=",
"dev": true
}
}
},
"end-of-stream": {
@ -15414,10 +15408,9 @@
}
},
"graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
"dev": true
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo="
},
"json-schema-traverse": {
"version": "0.4.1",
@ -15838,9 +15831,9 @@
},
"dependencies": {
"glob": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz",
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
"version": "7.1.7",
"resolved": "https://registry.nlark.com/glob/download/glob-7.1.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob%2Fdownload%2Fglob-7.1.7.tgz",
"integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@ -16355,6 +16348,11 @@
"resolved": "http://r.cnpmjs.org/clone/download/clone-0.2.0.tgz",
"integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
},
"graceful-fs": {
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo="
},
"readable-stream": {
"version": "1.0.34",
"resolved": "http://r.cnpmjs.org/readable-stream/download/readable-stream-1.0.34.tgz",
@ -16513,9 +16511,9 @@
},
"dependencies": {
"graceful-fs": {
"version": "4.1.11",
"resolved": "http://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
"integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=",
"dev": true
}
}
@ -18783,11 +18781,11 @@
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
"wide-align": {
"version": "1.1.5",
"resolved": "https://registry.npmmirror.com/wide-align/download/wide-align-1.1.5.tgz?cache=0&sync_timestamp=1634307502489&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwide-align%2Fdownload%2Fwide-align-1.1.5.tgz",
"integrity": "sha1-3x1MIGhUNp7PPJpImPGyP72dFdM=",
"version": "1.1.3",
"resolved": "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz",
"integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=",
"requires": {
"string-width": "^1.0.2 || 2 || 3 || 4"
"string-width": "^1.0.2 || 2"
}
},
"wordwrap": {
@ -18864,7 +18862,7 @@
},
"yargs": {
"version": "13.3.2",
"resolved": "https://registry.npmmirror.com/yargs/download/yargs-13.3.2.tgz",
"resolved": "https://registry.nlark.com/yargs/download/yargs-13.3.2.tgz",
"integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=",
"requires": {
"cliui": "^5.0.0",
@ -18881,12 +18879,12 @@
"dependencies": {
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz",
"resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz",
"integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc="
},
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz",
"resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz",
"integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
"requires": {
"locate-path": "^3.0.0"
@ -18899,12 +18897,12 @@
},
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
"resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz?cache=0&sync_timestamp=1618552489864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.nlark.com/locate-path/download/locate-path-3.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz",
"resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz",
"integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
"requires": {
"p-locate": "^3.0.0",
@ -18913,7 +18911,7 @@
},
"p-limit": {
"version": "2.3.0",
"resolved": "https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz",
"resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz",
"integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
"requires": {
"p-try": "^2.0.0"
@ -18921,7 +18919,7 @@
},
"p-locate": {
"version": "3.0.0",
"resolved": "https://registry.nlark.com/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1629892761309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz",
"resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz",
"integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
"requires": {
"p-limit": "^2.0.0"
@ -18929,12 +18927,12 @@
},
"p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmmirror.com/p-try/download/p-try-2.2.0.tgz?cache=0&sync_timestamp=1633364600466&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-2.2.0.tgz",
"resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
"integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY="
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz?cache=0&sync_timestamp=1628765027018&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz",
"resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
},
"require-main-filename": {
@ -18944,7 +18942,7 @@
},
"string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1632421013520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz",
"resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz",
"integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
"requires": {
"emoji-regex": "^7.0.1",
@ -18954,7 +18952,7 @@
},
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
"resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
"integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
"requires": {
"ansi-regex": "^4.1.0"
@ -18962,14 +18960,14 @@
},
"y18n": {
"version": "4.0.3",
"resolved": "https://registry.nlark.com/y18n/download/y18n-4.0.3.tgz",
"resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.3.tgz",
"integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8="
}
}
},
"yargs-parser": {
"version": "13.1.2",
"resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz",
"resolved": "https://registry.nlark.com/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1624233275366&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz",
"integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=",
"requires": {
"camelcase": "^5.0.0",
@ -18978,7 +18976,7 @@
"dependencies": {
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz",
"resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603921799543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz",
"integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA="
}
}

6
package.json

@ -11,7 +11,11 @@
"lint": "vue-cli-service lint",
"et": "node_modules/.bin/et",
"et:init": "node_modules/.bin/et -i",
"et:list": "gulp themes"
"et:list": "gulp themes",
"preinstall": "npx npm-force-resolutions"
},
"resolutions": {
"graceful-fs": "^4.2.4"
},
"dependencies": {
"axios": "^0.18.1",

BIN
src/assets/img/guanlipingtai@2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

BIN
src/assets/img/login_bg_2112.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 KiB

BIN
src/assets/img/main_index_bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

BIN
src/assets/img/shujukeshihua@2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
src/assets/img/zhuangshi@2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

529
src/assets/scss/pages/login.scss

@ -1,262 +1,269 @@
.aui-page__login {
&::before,
&::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
content: "";
}
&::before {
background: url(~@/assets/img/login_bg.jpg) no-repeat;
background-size: 100% 100%;
}
// &::after {
// background-color: rgba(38, 50, 56, .4);
// }
.aui-content {
display: flex;
flex-flow: column wrap;
justify-content: center;
align-items: center;
min-height: 100vh;
padding: 50px 20px 150px;
text-align: center;
&__wrapper {
height: 100vh;
background-color: transparent;
overflow-x: hidden;
overflow-y: auto;
}
}
.login-header {
padding: 20px;
color: #fff;
.login-brand {
margin: 0 0 15px;
font-size: 40px;
font-weight: 400;
letter-spacing: 2px;
text-transform: uppercase;
}
.login-intro {
padding: 0;
margin: 0;
list-style: none;
>li {
font-size: 16px;
line-height: 1.5;
color: rgba(255, 255, 255, .6);
&+li {
margin-top: 5px;
}
}
}
}
.login-body,
.login-footer {
width: 460px;
}
.login-body {
padding: 20px 30px;
background-color: #fff;
box-shadow: 6px 6px 16px #FDDBD4;
.login-title {
font-size: 18px;
font-weight: 400;
}
.el-input__prefix .el-input__icon {
font-size: 16px;
}
.login-captcha {
height: $--input-height;
line-height: $--input-height -2px;
>img {
max-width: 100%;
cursor: pointer;
}
}
.login-shortcut {
margin-bottom: 20px;
&__title {
position: relative;
margin: 0 0 15px;
font-weight: 400;
&::before {
position: absolute;
top: 50%;
right: 0;
left: 0;
z-index: 1;
content: "";
height: 1px;
margin-top: -.5px;
background-color: $--border-color-base;
overflow: hidden;
}
>span {
position: relative;
z-index: 2;
padding: 0 20px;
color: rgba(0, 0, 0, .3);
background-color: #fff;
}
}
&__list {
padding: 0;
margin: 0;
list-style: none;
font-size: 0;
>li {
display: inline-block;
vertical-align: middle;
margin: 0 10px;
font-size: 28px;
}
}
}
.login-guide {
color: rgba(0, 0, 0, .3);
}
}
.login-footer {
position: absolute;
bottom: 0;
padding: 20px;
color: rgba(255, 255, 255, .6);
p {
margin: 10px 0;
}
a {
padding: 0 5px;
color: rgba(255, 255, 255, .6);
&:focus,
&:hover {
color: #fff;
}
}
}
// 右侧垂直风格
&--right-vertical {
.aui-content {
flex-flow: row nowrap;
justify-content: flex-start;
align-items: stretch;
padding: 0;
}
.login-header {
flex: 1;
display: flex;
flex-flow: column wrap;
justify-content: center;
padding: 30px 120px;
text-align: left;
}
.login-body {
position: relative;
display: flex;
flex-flow: column wrap;
justify-content: center;
padding: 120px 30px 150px;
text-align: center;
.login-guide {
margin-top: 0;
}
}
.login-footer {
right: 0;
color: $--color-text-regular;
a {
color: $--color-text-regular;
&:focus,
&:hover {
color: $--color-primary;
}
}
}
}
}
@media (max-width: 991px) {
.aui-page__login {
&--right-vertical {
.login-header {
padding: 30px;
}
}
}
}
@media (max-width: 767px) {
.aui-page__login {
&--right-vertical {
.login-header {
.login-brand,
.login-intro {
display: none;
}
}
}
}
}
@media (max-width: 575px) {
.aui-page__login {
.login-body,
.login-footer {
width: 100%;
}
.login-captcha {
text-align: left;
>img {
width: 136px;
}
}
&--right-vertical {
.login-header {
display: none;
}
}
}
.aui-page__login {
&::before,
&::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
content: "";
}
&::before {
background: url(~@/assets/img/login_bg_2112.png) no-repeat;
background-size: 100% 100%;
}
// &::after {
// background-color: rgba(38, 50, 56, .4);
// }
.aui-content {
display: flex;
flex-flow: column wrap;
justify-content: center;
align-items: flex-end;
margin-right: 12%;
min-height: 100vh;
padding: 50px 20px 150px;
text-align: center;
&__wrapper {
height: 100vh;
background-color: transparent;
overflow-x: hidden;
overflow-y: auto;
}
}
.login-header {
padding: 20px;
color: #fff;
.login-brand {
margin: 0 0 15px;
font-size: 40px;
font-weight: 400;
letter-spacing: 2px;
text-transform: uppercase;
}
.login-intro {
padding: 0;
margin: 0;
list-style: none;
> li {
font-size: 16px;
line-height: 1.5;
color: rgba(255, 255, 255, 0.6);
& + li {
margin-top: 5px;
}
}
}
}
.login-body,
.login-footer {
width: 400px;
}
.login-body {
padding: 20px 50px;
background-color: #fff;
border-radius: 20px;
// box-shadow: 6px 6px 16px #fddbd4;
.login-title {
font-size: 18px;
font-weight: 400;
}
.el-input__prefix .el-input__icon {
font-size: 16px;
}
.login-captcha {
height: $--input-height;
line-height: $--input-height -2px;
> img {
max-width: 100%;
cursor: pointer;
}
}
.login-shortcut {
margin-bottom: 20px;
&__title {
position: relative;
margin: 0 0 15px;
font-weight: 400;
&::before {
position: absolute;
top: 50%;
right: 0;
left: 0;
z-index: 1;
content: "";
height: 1px;
margin-top: -0.5px;
background-color: $--border-color-base;
overflow: hidden;
}
> span {
position: relative;
z-index: 2;
padding: 0 20px;
color: rgba(0, 0, 0, 0.3);
background-color: #fff;
}
}
&__list {
padding: 0;
margin: 0;
list-style: none;
font-size: 0;
> li {
display: inline-block;
vertical-align: middle;
margin: 0 10px;
font-size: 28px;
}
}
}
.login-guide {
color: rgba(0, 0, 0, 0.3);
}
}
.login-footer {
position: absolute;
bottom: 0;
padding: 20px;
color: rgba(255, 255, 255, 0.6);
p {
margin: 10px 0;
}
a {
padding: 0 5px;
color: rgba(255, 255, 255, 0.6);
&:focus,
&:hover {
color: #fff;
}
}
}
// 右侧垂直风格
&--right-vertical {
.aui-content {
flex-flow: row nowrap;
justify-content: flex-start;
align-items: stretch;
padding: 0;
}
.login-header {
flex: 1;
display: flex;
flex-flow: column wrap;
justify-content: center;
padding: 30px 120px;
text-align: left;
}
.login-body {
position: relative;
display: flex;
flex-flow: column wrap;
justify-content: center;
padding: 120px 30px 150px;
text-align: center;
.login-guide {
margin-top: 0;
}
}
.login-footer {
right: 0;
color: $--color-text-regular;
a {
color: $--color-text-regular;
&:focus,
&:hover {
color: $--color-primary;
}
}
}
}
}
@media (max-width: 991px) {
.aui-page__login {
&--right-vertical {
.login-header {
padding: 30px;
}
}
}
}
@media (max-width: 767px) {
.aui-page__login {
&--right-vertical {
.login-header {
.login-brand,
.login-intro {
display: none;
}
}
}
}
}
@media (max-width: 575px) {
.aui-page__login {
.login-body,
.login-footer {
width: 100%;
}
.login-captcha {
text-align: left;
>img {
width: 136px;
}
}
&--right-vertical {
.login-header {
display: none;
}
}
}
}
.w-percent-100.el-button--primary {
color: #fff;
background: linear-gradient(90deg, #1A5AFD, #26C4FF);
border-radius: 2px;
}

1446
src/element-ui/theme-variables.scss

File diff suppressed because it is too large

2
src/element-ui/theme/autocomplete.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/base.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/breadcrumb.css

@ -1 +1 @@
.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb::after,.el-breadcrumb::before{display:table;content:""}.el-breadcrumb::after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:#17B3A3;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}
.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb::after,.el-breadcrumb::before{display:table;content:""}.el-breadcrumb::after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:#1B80FD;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}

2
src/element-ui/theme/button.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/cascader.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/checkbox.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/col.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/collapse.css

@ -1 +1 @@
.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45,.45);transform:scale(.45,.45)}.collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5}.el-collapse-item__header{height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:500;-webkit-transition:border-bottom-color .3s;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin-right:8px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:right;line-height:48px;font-weight:300}.el-collapse-item__arrow.is-active{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#17B3A3}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #ebeef5}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}
.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-fade-in-enter,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45,.45);transform:scale(.45,.45)}.collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5}.el-collapse-item__header{height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:500;-webkit-transition:border-bottom-color .3s;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin-right:8px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:right;line-height:48px;font-weight:300}.el-collapse-item__arrow.is-active{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#1B80FD}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #ebeef5}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}

2
src/element-ui/theme/color-picker.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/date-picker.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/dialog.css

@ -1 +1 @@
.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{100%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-dialog{position:relative;margin:0 auto 50px;background:#fff;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#17B3A3}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px}.el-dialog__footer{padding:10px 20px 20px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}
.el-dialog,.el-dialog__footer{-webkit-box-sizing:border-box}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{100%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-dialog{position:relative;margin:0 auto 50px;background:#fff;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#1B80FD}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px}.el-dialog__footer{padding:10px 20px 20px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}

2
src/element-ui/theme/dropdown.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/form.css

@ -1 +1 @@
.el-form--inline .el-form-item,.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item::after,.el-form-item__content::after{clear:both}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{margin-right:10px}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form-item__content .el-input-group,.el-form-item__label{vertical-align:middle}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item::after,.el-form-item::before{display:table;content:""}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label{text-align:right;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content::after,.el-form-item__content::before{display:table;content:""}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required>.el-form-item__label:before{content:'*';color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#f56c6c}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item.is-success .el-input__inner,.el-form-item.is-success .el-input__inner:focus,.el-form-item.is-success .el-textarea__inner,.el-form-item.is-success .el-textarea__inner:focus{border-color:#67c23a}.el-form-item.is-success .el-input-group__append .el-input__inner,.el-form-item.is-success .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-success .el-input__validateIcon{color:#67c23a}.el-form-item--feedback .el-input__validateIcon{display:inline-block}
.el-form--inline .el-form-item,.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item::after,.el-form-item__content::after{clear:both}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{margin-right:10px}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form-item__content .el-input-group,.el-form-item__label{vertical-align:middle}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item::after,.el-form-item::before,.el-form-item__content::after,.el-form-item__content::before{display:table;content:""}.el-form-item{margin-bottom:22px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label{text-align:right;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required>.el-form-item__label:before{content:'*';color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#f56c6c}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item.is-success .el-input__inner,.el-form-item.is-success .el-input__inner:focus,.el-form-item.is-success .el-textarea__inner,.el-form-item.is-success .el-textarea__inner:focus{border-color:#67c23a}.el-form-item.is-success .el-input-group__append .el-input__inner,.el-form-item.is-success .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-success .el-input__validateIcon{color:#67c23a}.el-form-item--feedback .el-input__validateIcon{display:inline-block}

2
src/element-ui/theme/index.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/input-number.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/input.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/loading.css

@ -1 +1 @@
.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:rgba(255,255,255,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#17B3A3;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#17B3A3;stroke-linecap:round}.el-loading-spinner i{color:#17B3A3}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@-webkit-keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}
.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:rgba(255,255,255,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#1B80FD;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#1B80FD;stroke-linecap:round}.el-loading-spinner i{color:#1B80FD}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@-webkit-keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}

2
src/element-ui/theme/menu.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/message-box.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/message.css

@ -1 +1 @@
.el-message__closeBtn:focus,.el-message__content:focus{outline-width:0}.el-message{min-width:380px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid;border-color:#ebeef5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,-webkit-transform .4s;transition:opacity .3s,-webkit-transform .4s;transition:opacity .3s,transform .4s;transition:opacity .3s,transform .4s,-webkit-transform .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}
.el-message{min-width:380px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid;border-color:#ebeef5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,-webkit-transform .4s;transition:opacity .3s,-webkit-transform .4s;transition:opacity .3s,transform .4s;transition:opacity .3s,transform .4s,-webkit-transform .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:focus{outline-width:0}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}

2
src/element-ui/theme/option.css

@ -1 +1 @@
.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#17B3A3;font-weight:700}
.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#1B80FD;font-weight:700}

2
src/element-ui/theme/pagination.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/popover.css

@ -1 +1 @@
.el-popper .popper__arrow,.el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.el-popper .popper__arrow::after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:4px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}
.el-popover__title,.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper .popper__arrow,.el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.el-popper .popper__arrow::after{content:" ";border-width:6px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:4px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}

2
src/element-ui/theme/progress.css

@ -1 +1 @@
.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle{display:inline-block}.el-progress--circle .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.el-progress--circle .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress-bar,.el-progress-bar__inner::after,.el-progress-bar__innerText{display:inline-block;vertical-align:middle}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67c23a}.el-progress.is-success .el-progress__text{color:#67c23a}.el-progress.is-exception .el-progress-bar__inner{background-color:#f56c6c}.el-progress.is-exception .el-progress__text{color:#f56c6c}.el-progress-bar{padding-right:50px;width:100%;margin-right:-55px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#ebeef5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#17B3A3;text-align:right;border-radius:100px;line-height:1;white-space:nowrap}.el-progress-bar__inner::after{content:"";height:100%}.el-progress-bar__innerText{color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}
.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle{display:inline-block}.el-progress--circle .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.el-progress--circle .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress-bar,.el-progress-bar__inner::after,.el-progress-bar__innerText{display:inline-block;vertical-align:middle}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67c23a}.el-progress.is-success .el-progress__text{color:#67c23a}.el-progress.is-exception .el-progress-bar__inner{background-color:#f56c6c}.el-progress.is-exception .el-progress__text{color:#f56c6c}.el-progress-bar{padding-right:50px;width:100%;margin-right:-55px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#ebeef5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#1B80FD;text-align:right;border-radius:100px;line-height:1;white-space:nowrap}.el-progress-bar__inner::after{content:"";height:100%}.el-progress-bar__innerText{color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}

2
src/element-ui/theme/radio-button.css

@ -1 +1 @@
@charset "UTF-8";.el-radio-button,.el-radio-button__inner{display:inline-block;position:relative;outline:0}.el-radio-button__inner{line-height:1;white-space:nowrap;vertical-align:middle;background:#fff;border:1px solid #dcdfe6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#17B3A3}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#17B3A3;border-color:#17B3A3;-webkit-box-shadow:-1px 0 0 0 #17B3A3;box-shadow:-1px 0 0 0 #17B3A3}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;-webkit-box-shadow:none;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){-webkit-box-shadow:0 0 2px 2px #17B3A3;box-shadow:0 0 2px 2px #17B3A3}
@charset "UTF-8";.el-radio-button,.el-radio-button__inner{display:inline-block;position:relative;outline:0}.el-radio-button__inner{line-height:1;white-space:nowrap;vertical-align:middle;background:#fff;border:1px solid #dcdfe6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#1B80FD}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#1B80FD;border-color:#1B80FD;-webkit-box-shadow:-1px 0 0 0 #1B80FD;box-shadow:-1px 0 0 0 #1B80FD}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;-webkit-box-shadow:none;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){-webkit-box-shadow:0 0 2px 2px #1B80FD;box-shadow:0 0 2px 2px #1B80FD}

2
src/element-ui/theme/radio.css

@ -1 +1 @@
@charset "UTF-8";.el-radio,.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio,.el-radio__input{white-space:nowrap;line-height:1;outline:0}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-radio{color:#606266;font-weight:500;cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#17B3A3}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio+.el-radio{margin-left:30px}.el-radio__input{cursor:pointer;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner::after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner::after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#17B3A3;background:#17B3A3}.el-radio__input.is-checked .el-radio__inner::after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#17B3A3}.el-radio__input.is-focus .el-radio__inner{border-color:#17B3A3}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box}.el-radio__inner:hover{border-color:#17B3A3}.el-radio__inner::after{width:4px;height:4px;border-radius:100%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #17B3A3;box-shadow:0 0 2px 2px #17B3A3}.el-radio__label{font-size:14px;padding-left:10px}
@charset "UTF-8";.el-radio,.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio,.el-radio__input{white-space:nowrap;line-height:1;outline:0}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-radio{color:#606266;font-weight:500;cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#1B80FD}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__label{font-size:12px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio+.el-radio{margin-left:30px}.el-radio__input{cursor:pointer;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner::after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner::after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#1B80FD;background:#1B80FD}.el-radio__input.is-checked .el-radio__inner::after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#1B80FD}.el-radio__input.is-focus .el-radio__inner{border-color:#1B80FD}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box}.el-radio__inner:hover{border-color:#1B80FD}.el-radio__inner::after{width:4px;height:4px;border-radius:100%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #1B80FD;box-shadow:0 0 2px 2px #1B80FD}.el-radio__label{font-size:14px;padding-left:10px}

2
src/element-ui/theme/reset.css

@ -1 +1 @@
@charset "UTF-8";body{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;font-weight:400;font-size:14px;color:#000;-webkit-font-smoothing:antialiased}a{color:#17B3A3;text-decoration:none}a:focus,a:hover{color:#45c2b5}a:active{color:#15a193}h1,h2,h3,h4,h5,h6{color:#606266;font-weight:inherit}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child,p:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child,h6:last-child,p:last-child{margin-bottom:0}h1{font-size:20px}h2{font-size:18px}h3{font-size:16px}h4,h5,h6,p{font-size:inherit}p{line-height:1.8}sub,sup{font-size:13px}small{font-size:12px}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}
@charset "UTF-8";body{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;font-weight:400;font-size:14px;color:#000;-webkit-font-smoothing:antialiased}a{color:#1B80FD;text-decoration:none}a:focus,a:hover{color:#4999fd}a:active{color:#1873e4}h1,h2,h3,h4,h5,h6{color:#606266;font-weight:inherit}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child,p:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child,h6:last-child,p:last-child{margin-bottom:0}h1{font-size:20px}h2{font-size:18px}h3{font-size:16px}h4,h5,h6,p{font-size:inherit}p{line-height:1.8}sub,sup{font-size:13px}small{font-size:12px}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}

2
src/element-ui/theme/select-dropdown.css

@ -1 +1 @@
.el-popper .popper__arrow,.el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.el-popper .popper__arrow::after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#17B3A3;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after{position:absolute;right:20px;font-family:element-icons;content:"\E611";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}
.el-popper .popper__arrow,.el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.el-popper .popper__arrow::after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#1B80FD;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after{position:absolute;right:20px;font-family:element-icons;content:"\E611";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}

2
src/element-ui/theme/select.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/slider.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/step.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/switch.css

@ -1 +1 @@
.el-switch{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer;vertical-align:middle}.el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;font-size:14px;font-weight:500;color:#303133}.el-switch__label.is-active{color:#17B3A3}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus~.el-switch__core{outline:#17B3A3 solid 1px}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:0;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#dcdfe6;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:all .3s;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#17B3A3;background-color:#17B3A3}.el-switch.is-checked .el-switch__core::after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}
.el-switch{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer;vertical-align:middle}.el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;font-size:14px;font-weight:500;color:#303133}.el-switch__label.is-active{color:#1B80FD}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus~.el-switch__core{outline:#1B80FD solid 1px}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:0;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#dcdfe6;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:all .3s;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#1B80FD;background-color:#1B80FD}.el-switch.is-checked .el-switch__core::after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}

2
src/element-ui/theme/table-column.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/table.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/tabs.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/tag.css

@ -1 +1 @@
.el-tag{background-color:rgba(23,179,163,.1);display:inline-block;padding:0 10px;height:32px;line-height:30px;font-size:12px;color:#17B3A3;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid rgba(23,179,163,.2);white-space:nowrap}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px;color:#17B3A3}.el-tag .el-icon-close::before{display:block}.el-tag .el-icon-close:hover{background-color:#17B3A3;color:#fff}.el-tag--info,.el-tag--info .el-tag__close{color:#909399}.el-tag--info{background-color:rgba(144,147,153,.1);border-color:rgba(144,147,153,.2)}.el-tag--info.is-hit{border-color:#909399}.el-tag--info .el-tag__close:hover{background-color:#909399;color:#fff}.el-tag--success{background-color:rgba(103,194,58,.1);border-color:rgba(103,194,58,.2);color:#67c23a}.el-tag--success.is-hit{border-color:#67c23a}.el-tag--success .el-tag__close{color:#67c23a}.el-tag--success .el-tag__close:hover{background-color:#67c23a;color:#fff}.el-tag--warning{background-color:rgba(230,162,60,.1);border-color:rgba(230,162,60,.2);color:#e6a23c}.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--warning .el-tag__close:hover{background-color:#e6a23c;color:#fff}.el-tag--danger{background-color:rgba(245,108,108,.1);border-color:rgba(245,108,108,.2);color:#f56c6c}.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--danger .el-tag__close:hover{background-color:#f56c6c;color:#fff}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}
.el-tag{background-color:rgba(27,128,253,.1);display:inline-block;padding:0 10px;height:32px;line-height:30px;font-size:12px;color:#1B80FD;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid rgba(27,128,253,.2);white-space:nowrap}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px;color:#1B80FD}.el-tag .el-icon-close::before{display:block}.el-tag .el-icon-close:hover{background-color:#1B80FD;color:#fff}.el-tag--info,.el-tag--info .el-tag__close{color:#909399}.el-tag--info{background-color:rgba(144,147,153,.1);border-color:rgba(144,147,153,.2)}.el-tag--info.is-hit{border-color:#909399}.el-tag--info .el-tag__close:hover{background-color:#909399;color:#fff}.el-tag--success{background-color:rgba(103,194,58,.1);border-color:rgba(103,194,58,.2);color:#67c23a}.el-tag--success.is-hit{border-color:#67c23a}.el-tag--success .el-tag__close{color:#67c23a}.el-tag--success .el-tag__close:hover{background-color:#67c23a;color:#fff}.el-tag--warning{background-color:rgba(230,162,60,.1);border-color:rgba(230,162,60,.2);color:#e6a23c}.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--warning .el-tag__close:hover{background-color:#e6a23c;color:#fff}.el-tag--danger{background-color:rgba(245,108,108,.1);border-color:rgba(245,108,108,.2);color:#f56c6c}.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--danger .el-tag__close:hover{background-color:#f56c6c;color:#fff}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}

2
src/element-ui/theme/time-picker.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/time-select.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/transfer.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/tree.css

File diff suppressed because one or more lines are too long

2
src/element-ui/theme/upload.css

File diff suppressed because one or more lines are too long

157
src/views/main-index.vue

@ -0,0 +1,157 @@
<template>
<div class="aui-main-index">
<div class="click-item">
<div class="item-left" @mouseover="mouseOver('1')" @mouseleave="mouseLeave()" @click="mainIndexClick">
<img class="item-guanlipingtai" :src="guanlipingtai">
<div :class="isSelectleft ? 'noselect-item-title' : 'select-item-title'">
<div class="circular"></div>
<div class="name">党群e家管理平台</div>
</div>
<img class="item-zhuangshi" :src="zhuangshi">
</div>
<div class="item-left" @mouseover="mouseOver('2')" @mouseleave="mouseLeave()" @click="goNewUrl">
<img class="item-guanlipingtai" :src="shujukeshihua">
<div :class="isSelectRight ? 'noselect-item-title' : 'select-item-title'">
<div class="circular"></div>
<div class="name">数字社区工作平台</div>
</div>
<img class="item-zhuangshi" :src="zhuangshi">
</div>
</div>
</div>
</template>
<script>
import guanlipingtai from '@/assets/img/guanlipingtai@2x.png'
import shujukeshihua from '@/assets/img/shujukeshihua@2x.png'
import zhuangshi from '@/assets/img/zhuangshi@2x.png'
import Cookies from 'js-cookie'
export default {
data () {
return {
guanlipingtai: guanlipingtai,
shujukeshihua: shujukeshihua,
zhuangshi: zhuangshi,
isSelectleft: false,
isSelectRight: false
}
},
created () {
},
methods: {
mouseOver (e) {
if (e === '1') {
this.isSelectleft = true
this.isSelectRight = false
} else if (e === '2') {
this.isSelectleft = false
this.isSelectRight = true
}
},
mouseLeave () {
this.isSelectleft = false
this.isSelectRight = false
},
mainIndexClick () {
this.$emit('mainIndexByValue', true)
},
goNewUrl () {
// window.location.replace(`http://120.27.18.76/epmet-oper-gov/#/main/base-resi?token=${Cookies.get('token')}`)
window.open(`http://120.27.18.76/epmet-oper-gov/#/main/base-resi?token=${Cookies.get('token')}`)
}
}
}
</script>
<style lang="scss" scoped>
.aui-main-index {
height: 100vh;
width: 100%;
position: absolute;
background: url(~@/assets/img/main_index_bg.png) no-repeat;
background-size: 100% 100%;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
.click-item{
width: 100%;
height: calc(45% + 21px + 72px);
margin-top: 10%;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 14%;
box-sizing: border-box;
.item-left{
cursor: pointer;
height: 100%;
width: 31%;
display: flex;
align-items: center;
justify-content: center;
flex-direction:column;
.item-guanlipingtai{
width: 100%;
height: calc(100% - 21px - 72px);
}
.select-item-title {
padding: 0 10px;
box-sizing: border-box;
text-align: center;
width: auto;
height: 21px;
line-height: 21px;
display: flex;
align-items: center;
justify-content: center;
font-size: 11px;
background: #FFFFFF;
border: 1px solid #B9B9B9;
border-radius: 11px;
font-weight: 500;
color: #002FEC;
.circular{
width: 7px;
height: 7px;
background: #0065F6;
border-radius: 50%;
}
.name{
margin-left: 5px;
}
}
.noselect-item-title{
padding: 0 10px;
box-sizing: border-box;
text-align: center;
width: auto;
height: 21px;
line-height: 21px;
display: flex;
align-items: center;
justify-content: center;
font-size: 11px;
background: #007AFA;
border: 1px solid #FFFFFF;
border-radius: 11px;
font-weight: 500;
color: #FFFFFF;
.circular{
width: 7px;
height: 7px;
background: #FFFFFF;
border-radius: 50%;
}
.name{
margin-left: 5px;
}
}
.item-zhuangshi{
margin-top: 3px;
width: 13px;
height: 69px;
}
}
}
</style>

195
src/views/main-navbar-update-password.vue

@ -1,97 +1,98 @@
<template>
<el-dialog
:visible.sync="visible"
:title="$t('updatePassword.title')"
:close-on-click-modal="false"
:close-on-press-escape="false"
:append-to-body="true">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-form-item :label="$t('updatePassword.username')">
<span>{{ $store.state.user.name }}</span>
</el-form-item>
<el-form-item prop="password" :label="$t('updatePassword.password')">
<el-input v-model="dataForm.password" type="password" :placeholder="$t('updatePassword.password')"></el-input>
</el-form-item>
<el-form-item prop="newPassword" :label="$t('updatePassword.newPassword')">
<el-input v-model="dataForm.newPassword" type="password" :placeholder="$t('updatePassword.newPassword')"></el-input>
</el-form-item>
<el-form-item prop="comfirmPassword" :label="$t('updatePassword.comfirmPassword')">
<el-input v-model="dataForm.comfirmPassword" type="password" :placeholder="$t('updatePassword.comfirmPassword')"></el-input>
</el-form-item>
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
</template>
</el-dialog>
</template>
<script>
import debounce from 'lodash/debounce'
import { clearLoginInfo } from '@/utils'
export default {
data () {
return {
visible: false,
dataForm: {
password: '',
newPassword: '',
comfirmPassword: ''
}
}
},
computed: {
dataRule () {
var validateComfirmPassword = (rule, value, callback) => {
if (this.dataForm.newPassword !== value) {
return callback(new Error(this.$t('updatePassword.validate.comfirmPassword')))
}
callback()
}
return {
password: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
newPassword: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
comfirmPassword: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' },
{ validator: validateComfirmPassword, trigger: 'blur' }
]
}
}
},
methods: {
init () {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
})
},
//
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
if (!valid) {
return false
}
this.$http.put('/sys/user/password', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
clearLoginInfo()
this.$router.replace({ name: 'login' })
}
})
}).catch(() => {})
})
}, 1000, { 'leading': true, 'trailing': false })
}
}
</script>
<template>
<el-dialog
:visible.sync="visible"
:title="$t('updatePassword.title')"
:close-on-click-modal="false"
:close-on-press-escape="false"
:append-to-body="true">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-form-item :label="$t('updatePassword.username')">
<span>{{ $store.state.user.name }}</span>
</el-form-item>
<el-form-item prop="password" :label="$t('updatePassword.password')">
<el-input v-model="dataForm.password" type="password" :placeholder="$t('updatePassword.password')"></el-input>
</el-form-item>
<el-form-item prop="newPassword" :label="$t('updatePassword.newPassword')">
<el-input v-model="dataForm.newPassword" type="password" :placeholder="$t('updatePassword.newPassword')"></el-input>
</el-form-item>
<el-form-item prop="comfirmPassword" :label="$t('updatePassword.comfirmPassword')">
<el-input v-model="dataForm.comfirmPassword" type="password" :placeholder="$t('updatePassword.comfirmPassword')"></el-input>
</el-form-item>
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
</template>
</el-dialog>
</template>
<script>
import debounce from 'lodash/debounce'
import { clearLoginInfo } from '@/utils'
export default {
data () {
return {
visible: false,
dataForm: {
password: '',
newPassword: '',
comfirmPassword: ''
}
}
},
computed: {
dataRule () {
var validateComfirmPassword = (rule, value, callback) => {
if (this.dataForm.newPassword !== value) {
return callback(new Error(this.$t('updatePassword.validate.comfirmPassword')))
}
callback()
}
return {
password: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
newPassword: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
comfirmPassword: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' },
{ validator: validateComfirmPassword, trigger: 'blur' }
]
}
}
},
methods: {
init () {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
})
},
//
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
if (!valid) {
return false
}
this.$http.put('/sys/user/password', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
clearLoginInfo()
this.$router.replace({ name: 'login' })
window.localStorage.setItem('isGoProgect', false)
}
})
}).catch(() => {})
})
}, 1000, { 'leading': true, 'trailing': false })
}
}
</script>

371
src/views/main-navbar.vue

@ -1,138 +1,233 @@
<template>
<nav class="aui-navbar"
:class="`aui-navbar--${$store.state.navbarLayoutType}`">
<div class="aui-navbar__header">
<h1 class="aui-navbar__brand"
style="text-transform: none;"
@click="$router.push({ name: 'home' })">
<a class="aui-navbar__brand-lg"
href="javascript:;">{{ $t('brand.lg') }}</a>
<a class="aui-navbar__brand-mini"
href="javascript:;">{{ $t('brand.mini') }}</a>
</h1>
</div>
<div class="aui-navbar__body">
<el-menu class="aui-navbar__menu mr-auto"
mode="horizontal">
<el-menu-item index="1"
@click="$store.state.sidebarFold = !$store.state.sidebarFold">
<svg class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--switch"
aria-hidden="true">
<use xlink:href="#icon-outdent"></use>
</svg>
</el-menu-item>
<el-menu-item index="2"
@click="refresh()">
<svg class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--refresh"
aria-hidden="true">
<use xlink:href="#icon-sync"></use>
</svg>
</el-menu-item>
</el-menu>
<el-menu class="aui-navbar__menu"
mode="horizontal">
<!-- <el-menu-item index="1">
<el-dropdown placement="bottom"
:show-timeout="0">
<el-button size="mini">{{ $t('_lang') }}</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(val, key) in i18nMessages"
:key="key"
@click.native="$i18n.locale = key">{{ val._lang }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-menu-item>
<el-menu-item index="2">
<a href="//www.renren.io/"
target="_blank">
<svg class="icon-svg aui-navbar__icon-menu"
aria-hidden="true">
<use xlink:href="#icon-earth"></use>
</svg>
</a>
</el-menu-item> -->
<el-menu-item index="3"
@click="fullscreenHandle()">
<svg class="icon-svg aui-navbar__icon-menu"
aria-hidden="true">
<use xlink:href="#icon-fullscreen"></use>
</svg>
</el-menu-item>
<el-menu-item index="4"
class="aui-navbar__avatar">
<el-dropdown placement="bottom"
:show-timeout="0">
<span class="el-dropdown-link">
<img src="~@/assets/img/avatar.png">
<span>{{ $store.state.user.realName }}</span>
<i class="el-icon-arrow-down"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="updatePasswordHandle()">{{ $t('updatePassword.title') }}</el-dropdown-item>
<el-dropdown-item @click.native="logoutHandle()">{{ $t('logout') }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-menu-item>
</el-menu>
</div>
<!-- 弹窗, 修改密码 -->
<update-password v-if="updatePassowrdVisible"
ref="updatePassowrd"></update-password>
</nav>
</template>
<script>
import { messages } from '@/i18n'
import screenfull from 'screenfull'
import UpdatePassword from './main-navbar-update-password'
import { clearLoginInfo } from '@/utils'
export default {
inject: ['refresh'],
data () {
return {
i18nMessages: messages,
updatePassowrdVisible: false
}
},
components: {
UpdatePassword
},
methods: {
//
fullscreenHandle () {
if (!screenfull.enabled) {
return this.$message({
message: this.$t('fullscreen.prompt'),
type: 'warning',
duration: 500
})
}
screenfull.toggle()
},
//
updatePasswordHandle () {
this.updatePassowrdVisible = true
this.$nextTick(() => {
this.$refs.updatePassowrd.init()
})
},
// 退
logoutHandle () {
this.$confirm(this.$t('prompt.info', { 'handle': this.$t('logout') }), this.$t('prompt.title'), {
confirmButtonText: this.$t('confirm'),
cancelButtonText: this.$t('cancel'),
type: 'warning'
}).then(() => {
this.$http.post('/auth/logout').then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
window.sessionStorage.removeItem('routeList')
clearLoginInfo()
this.$router.push({ name: 'login' })
}).catch(() => { })
}).catch(() => { })
}
}
}
</script>
<template>
<nav class="aui-navbar"
:class="`aui-navbar--${$store.state.navbarLayoutType}`">
<div class="aui-navbar__header">
<h1 class="aui-navbar__brand"
style="text-transform: none;"
@click="$router.push({ name: 'home' })">
<a class="aui-navbar__brand-lg"
href="javascript:;">{{ $t('brand.lg') }}</a>
<a class="aui-navbar__brand-mini"
href="javascript:;">{{ $t('brand.mini') }}</a>
</h1>
</div>
<div class="aui-navbar__body">
<el-menu class="aui-navbar__menu"
mode="horizontal">
<el-menu-item index="1"
@click="$store.state.sidebarFold = !$store.state.sidebarFold">
<svg class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--switch"
aria-hidden="true">
<use xlink:href="#icon-outdent"></use>
</svg>
</el-menu-item>
<el-menu-item index="2"
@click="refresh()">
<svg class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--refresh"
aria-hidden="true">
<use xlink:href="#icon-sync"></use>
</svg>
</el-menu-item>
</el-menu>
<el-menu
class="aui-navbar__menu"
mode="horizontal"
@select="selectGoHome">
<el-menu-item index="1">首页</el-menu-item>
</el-menu>
<div class="mr-auto aui-menu-w menu-width">
<i class="arrow el-icon-arrow-left" @click="scrollTab('left')"></i>
<el-menu
class="aui-navbar__menu scroll-ui"
mode="horizontal"
id="tab-menu"
@select="handleSelect">
<el-menu-item v-for="(item,index) in routeList_F" :key="index" :id="'li'+index" :index="index.toString()">{{item.name}}</el-menu-item>
</el-menu>
<i class="arrow el-icon-arrow-right" @click="scrollTab('right')"></i>
</div>
<el-menu class="aui-navbar__menu"
mode="horizontal">
<!-- <el-menu-item index="1">
<el-dropdown placement="bottom"
:show-timeout="0">
<el-button size="mini">{{ $t('_lang') }}</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(val, key) in i18nMessages"
:key="key"
@click.native="$i18n.locale = key">{{ val._lang }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-menu-item>
<el-menu-item index="2">
<a href="//www.renren.io/"
target="_blank">
<svg class="icon-svg aui-navbar__icon-menu"
aria-hidden="true">
<use xlink:href="#icon-earth"></use>
</svg>
</a>
</el-menu-item> -->
<el-menu-item index="3"
@click="fullscreenHandle()">
<svg class="icon-svg aui-navbar__icon-menu"
aria-hidden="true">
<use xlink:href="#icon-fullscreen"></use>
</svg>
</el-menu-item>
<el-menu-item index="4"
class="aui-navbar__avatar">
<el-dropdown placement="bottom"
:show-timeout="0">
<span class="el-dropdown-link">
<img src="~@/assets/img/avatar.png">
<span>{{ $store.state.user.realName }}</span>
<i class="el-icon-arrow-down"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="updatePasswordHandle()">{{ $t('updatePassword.title') }}</el-dropdown-item>
<el-dropdown-item @click.native="logoutHandle()">{{ $t('logout') }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-menu-item>
</el-menu>
</div>
<!-- 弹窗, 修改密码 -->
<update-password v-if="updatePassowrdVisible"
ref="updatePassowrd"></update-password>
</nav>
</template>
<script>
import { messages } from '@/i18n'
import screenfull from 'screenfull'
import UpdatePassword from './main-navbar-update-password'
import { clearLoginInfo } from '@/utils'
export default {
inject: ['refresh'],
data () {
return {
i18nMessages: messages,
updatePassowrdVisible: false,
offsetCount: 0
}
},
props: {
routeList_F: {
type: Array,
required: true
}
},
components: {
UpdatePassword
},
methods: {
//
fullscreenHandle () {
if (!screenfull.enabled) {
return this.$message({
message: this.$t('fullscreen.prompt'),
type: 'warning',
duration: 500
})
}
screenfull.toggle()
},
//
updatePasswordHandle () {
this.updatePassowrdVisible = true
this.$nextTick(() => {
this.$refs.updatePassowrd.init()
})
},
// 退
logoutHandle () {
this.$confirm(this.$t('prompt.info', { 'handle': this.$t('logout') }), this.$t('prompt.title'), {
confirmButtonText: this.$t('confirm'),
cancelButtonText: this.$t('cancel'),
type: 'warning'
}).then(() => {
this.$http.post('/auth/logout').then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
window.sessionStorage.removeItem('routeList')
clearLoginInfo()
this.$router.push({ name: 'login' })
window.localStorage.setItem('isGoProgect', false)
}).catch(() => { })
}).catch(() => { })
},
handleSelect (e) {
this.$emit('routeList_child', JSON.stringify(this.routeList_F[e].children))
},
selectGoHome (e) {
window.localStorage.setItem('isGoProgect', false)
this.$router.go(0)
},
// tab
scrollTab (direction) {
if (this.routeList_F.length === 0) return
let menu = document.querySelector('#tab-menu')
// ul
let ulWidth = menu.clientWidth
const getWidth = (idName) => {
let li = document.querySelector(idName)
return li.clientWidth
}
let liWidth = 0
this.routeList_F.forEach((ele, index) => {
liWidth = liWidth + getWidth(`#li${index}`)
})
//
if (liWidth < ulWidth) return
let distance = this.offsetCount * 100
if (direction === 'left') {
if (this.offsetCount > 0) {
this.offsetCount = this.offsetCount - 1
}
} else if (direction === 'right') {
if ((ulWidth + distance) < liWidth) {
this.offsetCount = this.offsetCount + 1
}
}
distance = this.offsetCount * 100
menu.scrollTo({
'left': distance,
'behavior': 'smooth'
})
// console.log(distance)
}
}
}
</script>
<style lang="scss" scoped>
.aui-navbar{
background: linear-gradient(180deg, #0445EC, #1BACFF);
box-shadow: 0px 2px 8px 0px rgba(187, 187, 227, 0.35);
}
.menu-width{
display: flex;
align-items: center;
justify-content: center;
width: 70%;
}
.arrow{
color: #fff;
cursor: pointer;
margin: 0 20px;
}
.scroll-ui {
display: flex;
height: 100%;
overflow-x: scroll;
overflow-y: hidden;
-webkit-overflow-scrolling : touch;
scrollbar-width: none; /* firefox */
-ms-overflow-style: none; /* IE 10+ */
}
.scroll-ui::-webkit-scrollbar {
display: none; /* Chrome Safari */
}
</style>

146
src/views/main-sidebar-sub-menu.vue

@ -1,66 +1,80 @@
<template>
<el-submenu v-if="menu.children && menu.children.length >= 1" :index="menu.id" :popper-append-to-body="false">
<template slot="title">
<svg class="icon-svg aui-sidebar__menu-icon" aria-hidden="true"><use :xlink:href="`#${menu.icon}`"></use></svg>
<span>{{ menu.name }}</span>
<span v-if="menu.redPoint" class="red-point"></span>
</template>
<sub-menu v-for="item in menu.children" :key="item.id" :menu="item"></sub-menu>
</el-submenu>
<el-menu-item v-else :index="menu.id" @click="gotoRouteHandle(menu.id)">
<svg class="icon-svg aui-sidebar__menu-icon" aria-hidden="true"><use :xlink:href="`#${menu.icon}`"></use></svg>
<span>{{ menu.name }}</span>
<span class="num" v-if="menu.num && menu.num > 0">{{menu.num}}</span>
</el-menu-item>
</template>
<script>
import SubMenu from './main-sidebar-sub-menu'
export default {
name: 'sub-menu',
props: {
menu: {
type: Object,
required: true
}
},
components: {
SubMenu
},
methods: {
// menuId()
gotoRouteHandle (menuId) {
var route = window.SITE_CONFIG['dynamicMenuRoutes'].filter(item => item.meta.menuId === menuId)[0]
if (route) {
this.$router.push({ name: route.name })
}
}
}
}
</script>
<style lang="scss" scoped>
.red-point {
width: 5px;
height: 5px;
background: #FF4C52;
border-radius: 50%;
margin-left: 10px;
display: inline-block;
}
.num {
margin-left: 10px;
background: #FF4C52;
color: #ffffff;
min-width: 20px;
height: 20px;
display: inline-block;
line-height: 14px;
text-align: center;
border-radius: 5px;
font-size: 12px;
padding: 4px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
</style>
<template>
<el-submenu v-if="menu.children && menu.children.length >= 1" :index="menu.id" :popper-append-to-body="false">
<template slot="title">
<svg class="icon-svg aui-sidebar__menu-icon" aria-hidden="true"><use :xlink:href="`#${menu.icon}`"></use></svg>
<span>{{ menu.name }}</span>
<span v-if="menu.redPoint" class="red-point"></span>
</template>
<sub-menu v-for="item in menu.children" :key="item.id" :menu="item"></sub-menu>
</el-submenu>
<el-menu-item v-else :index="menu.id" @click="gotoRouteHandle(menu.id)">
<svg class="icon-svg aui-sidebar__menu-icon" aria-hidden="true"><use :xlink:href="`#${menu.icon}`"></use></svg>
<span>{{ menu.name }}</span>
<span class="num" v-if="menu.num && menu.num > 0">{{menu.num}}</span>
</el-menu-item>
</template>
<script>
import SubMenu from './main-sidebar-sub-menu'
export default {
name: 'sub-menu',
props: {
menu: {
type: Object,
required: true
}
},
components: {
SubMenu
},
methods: {
// menuId()
gotoRouteHandle (menuId) {
var route = window.SITE_CONFIG['dynamicMenuRoutes'].filter(item => item.meta.menuId === menuId)[0]
if (route) {
this.$router.push({ name: route.name })
}
}
}
}
</script>
<style lang="scss" scoped>
.red-point {
width: 5px;
height: 5px;
background: #FF4C52;
border-radius: 50%;
margin-left: 10px;
display: inline-block;
}
.num {
margin-left: 10px;
background: #FF4C52;
color: #ffffff;
min-width: 20px;
height: 20px;
display: inline-block;
line-height: 14px;
text-align: center;
border-radius: 5px;
font-size: 12px;
padding: 4px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
// .el-menu{
// background: linear-gradient(90deg, #1A5AFD, #26C4FF) !important;
// }
// .aui-sidebar .aui-sidebar__inner .el-menu .el-submenu .el-menu{
// background: red !important;
// }
// .el-menu.el-menu--inline .el-menu-item{
// background-color: #191A2B !important;
// }
.el-menu-item.is-active {
background: linear-gradient(90deg, #1A5AFD, #26C4FF) !important;
// font-size: 14px;
// font-weight: bold;
}
</style>

335
src/views/main-sidebar.vue

@ -1,156 +1,179 @@
<template>
<aside :class="['aui-sidebar', `aui-sidebar--${$store.state.sidebarLayoutSkin}`]">
<div class="aui-sidebar__inner">
<el-menu :default-active="$store.state.sidebarMenuActiveName"
:collapse="$store.state.sidebarFold"
:unique-opened="true"
:collapseTransition="false"
class="aui-sidebar__menu">
<sub-menu v-for="menu in routeList"
:key="menu.id"
:menu="menu" />
</el-menu>
</div>
</aside>
</template>
<script>
import SubMenu from './main-sidebar-sub-menu'
import SockJS from 'sockjs-client'
import Stomp from 'stompjs'
import Cookies from 'js-cookie'
export default {
data () {
return {
pid: '',
parentPid: '',
socket: '',
stompClient: '',
routeList: []
}
},
components: {
SubMenu
},
created () {
this.$store.state.sidebarMenuList = [...window.SITE_CONFIG['menuList']]
this.routeList = JSON.parse(JSON.stringify(window.SITE_CONFIG['menuList']))
this.initWebSocket()
},
methods: {
filterRoute (routeList, selectRoute) {
routeList.forEach((item, index) => {
if (item.children && item.children.length >= 1) {
this.filterRoute(item.children, selectRoute)
} else {
if (item.menuCode === selectRoute.menuCode) {
if (selectRoute.num !== 0) {
item.num = selectRoute.num
this.pid = `true${item.pid}`
} else {
item.num = selectRoute.num
this.pid = `false${item.pid}`
}
}
}
})
routeList.forEach(item => {
if (item.children && item.children.length >= 1) {
if (this.pid.indexOf('true') > -1) {
if (item.id === this.pid.substring(4)) {
item.redPoint = true
if (parseInt(item.pid) !== 0) {
this.parentPid = `true${item.pid}`
}
}
} else if (this.pid.indexOf('false') > -1) {
if (item.id === this.pid.substring(5)) {
item.redPoint = false
if (parseInt(item.pid) !== 0) {
this.parentPid = `false${item.pid}`
}
}
}
}
})
routeList.forEach(item => {
if (this.parentPid.indexOf('true') > -1) {
if (item.id === this.parentPid.substring(4)) {
item.redPoint = true
}
} else if (this.parentPid.indexOf('false') > -1) {
if (item.id === this.parentPid.substring(5)) {
item.redPoint = false
}
}
})
return routeList
},
initWebSocket () {
this.connection()
// ,,
this.timer = setInterval(() => {
try {
this.stompClient.send('alive')
} catch (err) {
console.log('断线了: ' + err)
this.connection()
}
}, 5000)
},
connection () {
//
let socketUrl = window.SITE_CONFIG['apiURL'] + '/ws/menuNoticeEndpoint'
this.socket = new SockJS(socketUrl)// 广httpWebSocketws
// STOMP
this.stompClient = Stomp.over(this.socket)
// ,
let token = Cookies.get('token') || ''
console.log('token: ' + token)
let headers = {
'token': token
}
// websocket
this.stompClient.connect(headers, this.onConnected, this.onFailed)
},
onConnected: function (frame) {
console.log('Connected: ' + frame)
let topic = '/userMenuNotice/menuNoticeQueue/menu/getResponse'
this.stompClient.subscribe(topic, this.onSubscribe)
if (window.sessionStorage.getItem('routeList')) {
this.routeList = JSON.parse(window.sessionStorage.getItem('routeList'))
}
//
this.$http.get('/events/epdcevents/initMenuNotice').then(({ data: res }) => {}).catch(() => {
})
},
onSubscribe (value) {
this.pid = ''
this.parentPid = ''
const selectRoute = JSON.parse(value.body)
const list = JSON.parse(JSON.stringify(this.$store.state.sidebarMenuList))
if (Object.prototype.toString.call(selectRoute) === '[object Array]') {
selectRoute.forEach(item => {
this.$store.state.sidebarMenuList = this.filterRoute(list, item)
})
} else if (Object.prototype.toString.call(selectRoute) === '[object Object]') {
this.$store.state.sidebarMenuList = this.filterRoute(list, selectRoute)
}
this.routeList = JSON.parse(JSON.stringify(this.$store.state.sidebarMenuList))
window.sessionStorage.setItem('routeList', JSON.stringify(this.$store.state.sidebarMenuList))
},
onFailed (frame) {
console.log('Failed: ' + frame)
},
disconnect () {
if (this.stompClient != null) {
this.stompClient.disconnect()
console.log('Disconnected')
}
}
}
}
</script>
<template>
<aside :class="['aui-sidebar', `aui-sidebar--${$store.state.sidebarLayoutSkin}`]">
<div class="aui-sidebar__inner">
<el-menu :default-active="$store.state.sidebarMenuActiveName"
:collapse="$store.state.sidebarFold"
:unique-opened="true"
:collapseTransition="false"
class="aui-sidebar__menu"
background-color="#2D2E42"
text-color="#fff"
active-text-color="#fff">
<sub-menu v-for="menu in routeList_C"
:key="menu.id"
:menu="menu" />
</el-menu>
</div>
</aside>
</template>
<script>
import SubMenu from './main-sidebar-sub-menu'
import SockJS from 'sockjs-client'
import Stomp from 'stompjs'
import Cookies from 'js-cookie'
export default {
data () {
return {
pid: '',
parentPid: '',
socket: '',
stompClient: '',
routeList: []
}
},
props: {
routeList_C: {
type: Array,
required: true
}
},
components: {
SubMenu
},
created () {
this.$store.state.sidebarMenuList = [...window.SITE_CONFIG['menuList']]
this.routeList = JSON.parse(JSON.stringify(window.SITE_CONFIG['menuList']))
this.$emit('routeList', JSON.stringify(this.routeList))
this.initWebSocket()
},
methods: {
filterRoute (routeList, selectRoute) {
routeList.forEach((item, index) => {
if (item.children && item.children.length >= 1) {
this.filterRoute(item.children, selectRoute)
} else {
if (item.menuCode === selectRoute.menuCode) {
if (selectRoute.num !== 0) {
item.num = selectRoute.num
this.pid = `true${item.pid}`
} else {
item.num = selectRoute.num
this.pid = `false${item.pid}`
}
}
}
})
routeList.forEach(item => {
if (item.children && item.children.length >= 1) {
if (this.pid.indexOf('true') > -1) {
if (item.id === this.pid.substring(4)) {
item.redPoint = true
if (parseInt(item.pid) !== 0) {
this.parentPid = `true${item.pid}`
}
}
} else if (this.pid.indexOf('false') > -1) {
if (item.id === this.pid.substring(5)) {
item.redPoint = false
if (parseInt(item.pid) !== 0) {
this.parentPid = `false${item.pid}`
}
}
}
}
})
routeList.forEach(item => {
if (this.parentPid.indexOf('true') > -1) {
if (item.id === this.parentPid.substring(4)) {
item.redPoint = true
}
} else if (this.parentPid.indexOf('false') > -1) {
if (item.id === this.parentPid.substring(5)) {
item.redPoint = false
}
}
})
return routeList
},
initWebSocket () {
this.connection()
// ,,
this.timer = setInterval(() => {
try {
this.stompClient.send('alive')
} catch (err) {
console.log('断线了: ' + err)
this.connection()
}
}, 5000)
},
connection () {
//
let socketUrl = window.SITE_CONFIG['apiURL'] + '/ws/menuNoticeEndpoint'
this.socket = new SockJS(socketUrl)// 广httpWebSocketws
// STOMP
this.stompClient = Stomp.over(this.socket)
// ,
let token = Cookies.get('token') || ''
console.log('token: ' + token)
let headers = {
'token': token
}
// websocket
this.stompClient.connect(headers, this.onConnected, this.onFailed)
},
onConnected: function (frame) {
console.log('Connected: ' + frame)
let topic = '/userMenuNotice/menuNoticeQueue/menu/getResponse'
this.stompClient.subscribe(topic, this.onSubscribe)
if (window.sessionStorage.getItem('routeList')) {
this.routeList = JSON.parse(window.sessionStorage.getItem('routeList'))
}
//
this.$http.get('/events/epdcevents/initMenuNotice').then(({ data: res }) => {}).catch(() => {
})
},
onSubscribe (value) {
this.pid = ''
this.parentPid = ''
const selectRoute = JSON.parse(value.body)
const list = JSON.parse(JSON.stringify(this.$store.state.sidebarMenuList))
if (Object.prototype.toString.call(selectRoute) === '[object Array]') {
selectRoute.forEach(item => {
this.$store.state.sidebarMenuList = this.filterRoute(list, item)
})
} else if (Object.prototype.toString.call(selectRoute) === '[object Object]') {
this.$store.state.sidebarMenuList = this.filterRoute(list, selectRoute)
}
this.routeList = JSON.parse(JSON.stringify(this.$store.state.sidebarMenuList))
window.sessionStorage.setItem('routeList', JSON.stringify(this.$store.state.sidebarMenuList))
},
onFailed (frame) {
console.log('Failed: ' + frame)
},
disconnect () {
if (this.stompClient != null) {
this.stompClient.disconnect()
console.log('Disconnected')
}
}
}
}
</script>
<style lang="scss" scoped>
// .aui-sidebar__menu{
// background: #2D2E42;
// }
.is-active {
background: linear-gradient(90deg, #1A5AFD, #26C4FF) !important;
// font-size: 14px;
// font-weight: bold;
}
.aui-sidebar__inner{
background: #2D2E42;
}
</style>

232
src/views/main.vue

@ -1,106 +1,126 @@
<template>
<div v-loading.fullscreen.lock="loading" :element-loading-text="$t('loading')" :class="['aui-wrapper', { 'aui-sidebar--fold': $store.state.sidebarFold }]">
<template v-if="!loading">
<main-navbar />
<main-sidebar />
<div class="aui-content__wrapper">
<main-content v-if="!$store.state.contentIsNeedRefresh" />
</div>
<main-theme-tools />
</template>
</div>
</template>
<script>
import MainNavbar from './main-navbar'
import MainSidebar from './main-sidebar'
import MainContent from './main-content'
import MainThemeTools from './main-theme-tools'
import debounce from 'lodash/debounce'
export default {
provide () {
return {
//
refresh () {
this.$store.state.contentIsNeedRefresh = true
this.$nextTick(() => {
this.$store.state.contentIsNeedRefresh = false
})
}
}
},
data () {
return {
loading: true
}
},
components: {
MainNavbar,
MainSidebar,
MainContent,
MainThemeTools
},
watch: {
$route: 'routeHandle'
},
created () {
this.windowResizeHandle()
this.routeHandle(this.$route)
Promise.all([
this.getUserInfo(),
this.getPermissions()
]).then(() => {
this.loading = false
})
},
methods: {
//
windowResizeHandle () {
this.$store.state.sidebarFold = document.documentElement['clientWidth'] <= 992 || false
window.addEventListener('resize', debounce(() => {
this.$store.state.sidebarFold = document.documentElement['clientWidth'] <= 992 || false
}, 150))
},
// ,
routeHandle (route) {
if (!route.meta.isTab) {
return false
}
var tab = this.$store.state.contentTabs.filter(item => item.name === route.name)[0]
if (!tab) {
tab = {
...window.SITE_CONFIG['contentTabDefault'],
...route.meta,
'name': route.name,
'params': { ...route.params },
'query': { ...route.query }
}
this.$store.state.contentTabs = this.$store.state.contentTabs.concat(tab)
}
this.$store.state.sidebarMenuActiveName = tab.menuId
this.$store.state.contentTabsActiveName = tab.name
},
//
getUserInfo () {
return this.$http.get('/sys/user/info').then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.$store.state.user.id = res.data.id
this.$store.state.user.name = res.data.username
this.$store.state.user.realName = res.data.realName
this.$store.state.user.superAdmin = res.data.superAdmin
}).catch(() => {})
},
//
getPermissions () {
return this.$http.get('/sys/menu/permissions').then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
window.SITE_CONFIG['permissions'] = res.data
}).catch(() => {})
}
}
}
</script>
<template>
<div v-loading.fullscreen.lock="loading" :element-loading-text="$t('loading')" :class="['aui-wrapper', { 'aui-sidebar--fold': $store.state.sidebarFold }]">
<template v-if="!loading">
<div v-show="isGoProgect==='false'">
<main-index v-on:mainIndexByValue="mainIndexByValue" />
</div>
<div v-show="isGoProgect==='true'">
<main-navbar :routeList_F = routeList_F v-on:routeList_child="routeList_child" />
<main-sidebar :routeList_C = routeList_C v-on:routeList="routeList" />
<div class="aui-content__wrapper">
<main-content v-if="!$store.state.contentIsNeedRefresh" />
</div>
<main-theme-tools />
</div>
</template>
</div>
</template>
<script>
import MainIndex from './main-index'
import MainNavbar from './main-navbar'
import MainSidebar from './main-sidebar'
import MainContent from './main-content'
import MainThemeTools from './main-theme-tools'
import debounce from 'lodash/debounce'
export default {
provide () {
return {
//
refresh () {
this.$store.state.contentIsNeedRefresh = true
this.$nextTick(() => {
this.$store.state.contentIsNeedRefresh = false
})
}
}
},
data () {
return {
loading: true,
isGoProgect: window.localStorage.getItem('isGoProgect'),
routeList_F: [],
routeList_C: []
}
},
components: {
MainIndex,
MainNavbar,
MainSidebar,
MainContent,
MainThemeTools
},
watch: {
$route: 'routeHandle'
},
created () {
this.windowResizeHandle()
this.routeHandle(this.$route)
Promise.all([
this.getUserInfo(),
this.getPermissions()
]).then(() => {
this.loading = false
})
},
methods: {
routeList (e) {
this.routeList_F = JSON.parse(e)
},
routeList_child (e) {
this.routeList_C = JSON.parse(e)
},
//
windowResizeHandle () {
this.$store.state.sidebarFold = document.documentElement['clientWidth'] <= 992 || false
window.addEventListener('resize', debounce(() => {
this.$store.state.sidebarFold = document.documentElement['clientWidth'] <= 992 || false
}, 150))
},
// ,
routeHandle (route) {
if (!route.meta.isTab) {
return false
}
var tab = this.$store.state.contentTabs.filter(item => item.name === route.name)[0]
if (!tab) {
tab = {
...window.SITE_CONFIG['contentTabDefault'],
...route.meta,
'name': route.name,
'params': { ...route.params },
'query': { ...route.query }
}
this.$store.state.contentTabs = this.$store.state.contentTabs.concat(tab)
}
this.$store.state.sidebarMenuActiveName = tab.menuId
this.$store.state.contentTabsActiveName = tab.name
},
//
getUserInfo () {
return this.$http.get('/sys/user/info').then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.$store.state.user.id = res.data.id
this.$store.state.user.name = res.data.username
this.$store.state.user.realName = res.data.realName
this.$store.state.user.superAdmin = res.data.superAdmin
}).catch(() => {})
},
//
getPermissions () {
return this.$http.get('/sys/menu/permissions').then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
window.SITE_CONFIG['permissions'] = res.data
}).catch(() => {})
},
mainIndexByValue (e) {
window.localStorage.setItem('isGoProgect', e)
this.isGoProgect = window.localStorage.getItem('isGoProgect')
}
}
}
</script>

386
src/views/modules/workRecord/weekrecordinfo.vue

@ -1,193 +1,193 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-news__weekrecordinfo}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataListSearch()">
<!-- <el-form-item>
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input>
</el-form-item> -->
<div>
<el-form-item label="周报内容" prop="content" label-width="90px">
<el-input v-model="dataForm.content" placeholder="周报内容" clearable maxlength="20" @keyup.native="btKeyUpContent" style="width:200px"></el-input>
</el-form-item>
<el-form-item label="发布人" prop="nickName" label-width="90px">
<el-input v-model="dataForm.nickName" placeholder="发布人" clearable maxlength="10" @keyup.native="btKeyUpNickName" style="width:200px"></el-input>
</el-form-item>
</div>
<el-form-item label="所属机构" label-width="90px">
<el-cascader
v-model="ids"
:options="options"
:props="{ checkStrictly: true }"
clearable
>
</el-cascader>
</el-form-item>
<el-form-item label="发布时间" prop="startTime" label-width="90px">
<el-date-picker v-model="dataForm.startTime"
type="date"
:picker-options="pickerBeginDateBefore"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间"
style="width:200px" @change="changeTime">
</el-date-picker>
</el-form-item>
<el-form-item label="至" prop="endTime">
<el-date-picker v-model="dataForm.endTime"
type="date"
:picker-options="pickerBeginDateAfter"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间"
style="width:200px" @change="changeTime">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="success" @click="getDataListSearch()">{{ $t('query') }}</el-button>
</el-form-item>
<!-- <el-form-item>
<el-button v-if="$hasPermission('news:weekrecordinfo:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item> -->
<el-form-item>
<el-button type="primary" @click="addHandle('','0','1')">{{ $t('add') }}</el-button>
</el-form-item>
<el-form-item>
<el-button type="success" @click="exportHandle()">{{ $t('export') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('news:weekrecordinfo:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">
<el-table-column label="序号" header-align="center" align="center" width="50px">
<template slot-scope="scope">
{{scope.$index+1}}
</template>
</el-table-column>
<el-table-column prop="nickName" label="发布人" header-align="center" align="center" width="150" show-overflow-tooltip></el-table-column>
<el-table-column prop="deptName" label="部门名称" header-align="center" align="center" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="startDate" label="统计开始时间" header-align="center" align="center" width="180" :formatter="dateFormat"></el-table-column>
<el-table-column prop="endDate" label="统计结束时间" header-align="center" align="center" width="180" :formatter="dateFormat"></el-table-column>
<el-table-column prop="content" label="内容" header-align="center" align="left" min-width="400" show-overflow-tooltip></el-table-column>
<el-table-column prop="state" label="周报状态" header-align="center" align="center" width="120"></el-table-column>
<el-table-column prop="createdTime" label="发布时间" header-align="center" align="center" width="180"></el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<template slot-scope="scope">
<el-button :disabled="scope.row.isUpdate == '0'" type="text" size="small" @click="addHandle(scope.row.id,'0','0')">{{ $t('update') }}</el-button>
<el-button type="text" size="small" @click="addHandle(scope.row.id,'1','0')">{{ '查看' }}</el-button>
<el-button v-if="$hasPermission('news:weekrecordinfo:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
<el-button v-if="$hasPermission('news:weekrecordinfo:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import AddOrUpdate from './weekrecordinfo-add-or-update'
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/workRecord/weekrecordinfo/page',
getDataListIsPage: true,
deleteURL: '/workRecord/weekrecordinfo',
deleteIsBatch: true,
exportURL: '/workRecord/weekrecordinfo/export'
},
dataForm: {
id: '',
content: '',
nickName: '',
startTime: '',
endTime: ''
},
pickerBeginDateBefore: {
disabledDate: (time) => {
let beginDateVal = this.dataForm.endTime
if (beginDateVal) {
return time.getTime() > new Date(beginDateVal + ' 00:00:00').getTime()
}
}
},
pickerBeginDateAfter: {
disabledDate: (time) => {
let EndDateVal = this.dataForm.startTime
if (EndDateVal) {
return time.getTime() < new Date(EndDateVal + ' 00:00:00').getTime()
}
}
},
ids: [],
options: []
}
},
created: function () {
this.getDataList()
this.getOptions()
},
components: {
AddOrUpdate
},
watch: {
ids: function (val) {
if (val.length === 0) {
this.dataForm.deptId = ''
} else {
this.dataForm.deptId = this.ids[val.length - 1]
}
}
},
methods: {
dateFormat (row, column) {
let date = row[column.property]
return date.length >= 10 ? date.substring(0, 10) : date
},
addHandle (id, disabled, isAdd) {
this.$parent.selectComponent = 'WeekrecordinfoDetail'
this.$router.push({ path: '/workRecord-weekrecordinforoute', query: { id: id, disabled: disabled, isAdd: isAdd } })
},
getOptions () {
this.$http
.get(`/sys/user/deptOptions/getByLoginUser`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.options = res.data.options
})
.catch(() => {})
},
btKeyUpContent (e) {
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '')
this.dataForm.content = e.target.value
},
btKeyUpNickName (e) {
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '')
this.dataForm.nickName = e.target.value
}
}
}
</script>
<style>
.el-tooltip__popper {
max-width: 80%;
color: #353434 !important;
background:#e6eaebf3 !important;
word-break:break-all;
}
</style>
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-news__weekrecordinfo}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataListSearch()">
<!-- <el-form-item>
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input>
</el-form-item> -->
<div>
<el-form-item label="周报内容" prop="content" label-width="90px">
<el-input v-model="dataForm.content" placeholder="周报内容" clearable maxlength="20" @keyup.native="btKeyUpContent" style="width:200px"></el-input>
</el-form-item>
<el-form-item label="发布人" prop="nickName" label-width="90px">
<el-input v-model="dataForm.nickName" placeholder="发布人" clearable maxlength="10" @keyup.native="btKeyUpNickName" style="width:200px"></el-input>
</el-form-item>
</div>
<el-form-item label="所属机构" label-width="90px">
<el-cascader
v-model="ids"
:options="options"
:props="{ checkStrictly: true }"
clearable
>
</el-cascader>
</el-form-item>
<el-form-item label="发布时间" prop="startTime" label-width="90px">
<el-date-picker v-model="dataForm.startTime"
type="date"
:picker-options="pickerBeginDateBefore"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间"
style="width:200px" @change="changeTime">
</el-date-picker>
</el-form-item>
<el-form-item label="至" prop="endTime">
<el-date-picker v-model="dataForm.endTime"
type="date"
:picker-options="pickerBeginDateAfter"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间"
style="width:200px" @change="changeTime">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="success" @click="getDataListSearch()">{{ $t('query') }}</el-button>
</el-form-item>
<!-- <el-form-item>
<el-button v-if="$hasPermission('news:weekrecordinfo:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item> -->
<el-form-item>
<el-button type="primary" @click="addHandle('','0','1')">{{ $t('add') }}</el-button>
</el-form-item>
<el-form-item>
<el-button type="success" @click="exportHandle()">{{ $t('export') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('news:weekrecordinfo:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">
<el-table-column label="序号" header-align="center" align="center" width="50px">
<template slot-scope="scope">
{{scope.$index+1}}
</template>
</el-table-column>
<el-table-column prop="nickName" label="发布人" header-align="center" align="center" width="150" show-overflow-tooltip></el-table-column>
<el-table-column prop="deptName" label="部门名称" header-align="center" align="center" width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="startDate" label="统计开始时间" header-align="center" align="center" width="180" :formatter="dateFormat"></el-table-column>
<el-table-column prop="endDate" label="统计结束时间" header-align="center" align="center" width="180" :formatter="dateFormat"></el-table-column>
<el-table-column prop="content" label="内容" header-align="center" align="left" min-width="400" show-overflow-tooltip></el-table-column>
<el-table-column prop="state" label="周报状态" header-align="center" align="center" width="120"></el-table-column>
<el-table-column prop="createdTime" label="发布时间" header-align="center" align="center" width="180"></el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<template slot-scope="scope">
<el-button :disabled="scope.row.isUpdate == '0'" type="text" size="small" @click="addHandle(scope.row.id,'0','0')">{{ $t('update') }}</el-button>
<el-button type="text" size="small" @click="addHandle(scope.row.id,'1','0')">{{ '查看' }}</el-button>
<el-button v-if="$hasPermission('news:weekrecordinfo:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
<el-button v-if="$hasPermission('news:weekrecordinfo:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import AddOrUpdate from './weekrecordinfo-add-or-update'
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/workRecord/weekrecordinfo/page',
getDataListIsPage: true,
deleteURL: '/workRecord/weekrecordinfo',
deleteIsBatch: true,
exportURL: '/workRecord/weekrecordinfo/export'
},
dataForm: {
id: '',
content: '',
nickName: '',
startTime: '',
endTime: ''
},
pickerBeginDateBefore: {
disabledDate: (time) => {
let beginDateVal = this.dataForm.endTime
if (beginDateVal) {
return time.getTime() > new Date(beginDateVal + ' 00:00:00').getTime()
}
}
},
pickerBeginDateAfter: {
disabledDate: (time) => {
let EndDateVal = this.dataForm.startTime
if (EndDateVal) {
return time.getTime() < new Date(EndDateVal + ' 00:00:00').getTime()
}
}
},
ids: [],
options: []
}
},
created: function () {
this.getDataList()
this.getOptions()
},
components: {
AddOrUpdate
},
watch: {
ids: function (val) {
if (val.length === 0) {
this.dataForm.deptId = ''
} else {
this.dataForm.deptId = this.ids[val.length - 1]
}
}
},
methods: {
dateFormat (row, column) {
let date = row[column.property]
return date.length >= 10 ? date.substring(0, 10) : date
},
addHandle (id, disabled, isAdd) {
this.$parent.selectComponent = 'WeekrecordinfoDetail'
this.$router.push({ path: '/workRecord-weekrecordinforoute', query: { id: id, disabled: disabled, isAdd: isAdd } })
},
getOptions () {
this.$http
.get(`/sys/user/deptOptions/getByLoginUser`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.options = res.data.options
})
.catch(() => {})
},
btKeyUpContent (e) {
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '')
this.dataForm.content = e.target.value
},
btKeyUpNickName (e) {
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '')
this.dataForm.nickName = e.target.value
}
}
}
</script>
<style>
.el-tooltip__popper {
max-width: 80%;
color: #353434 !important;
background:#e6eaebf3 !important;
word-break:break-all;
}
</style>

347
src/views/pages/login.vue

@ -1,173 +1,174 @@
<template>
<div class="aui-wrapper aui-page__login">
<div class="aui-content__wrapper">
<main class="aui-content">
<div class="login-header">
<h2 class="login-brand"
style="text-transform: none;color:red;">{{ $t('brand.lg') }}</h2>
</div>
<div class="login-body">
<h3 class="login-title">{{ $t('login.title') }}</h3>
<el-form :model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
status-icon>
<!-- <el-form-item>
<el-select v-model="$i18n.locale" class="w-percent-100">
<el-option v-for="(val, key) in i18nMessages" :key="key" :label="val._lang" :value="key"></el-option>
</el-select>
</el-form-item> -->
<el-form-item prop="username">
<el-input v-model="dataForm.username"
:placeholder="$t('login.username')">
<span slot="prefix"
class="el-input__icon">
<svg class="icon-svg"
aria-hidden="true">
<use xlink:href="#icon-user"></use>
</svg>
</span>
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input v-model="dataForm.password"
type="password"
:placeholder="$t('login.password')">
<span slot="prefix"
class="el-input__icon">
<svg class="icon-svg"
aria-hidden="true">
<use xlink:href="#icon-lock"></use>
</svg>
</span>
</el-input>
</el-form-item>
<el-form-item prop="captcha">
<el-row :gutter="20">
<el-col :span="14">
<el-input v-model="dataForm.captcha"
:placeholder="$t('login.captcha')">
<span slot="prefix"
class="el-input__icon">
<svg class="icon-svg"
aria-hidden="true">
<use xlink:href="#icon-safetycertificate"></use>
</svg>
</span>
</el-input>
</el-col>
<el-col :span="10"
class="login-captcha">
<img :src="captchaPath"
@click="getCaptcha()">
</el-col>
</el-row>
</el-form-item>
<el-form-item>
<el-button type="primary"
@click="dataFormSubmitHandle()"
class="w-percent-100">{{ $t('login.title') }}</el-button>
</el-form-item>
</el-form>
</div>
<div v-if="isHidden">
<p><a href="https://dl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26iid%3D%7B0EBBEC46-30F5-946B-A54E-5628DFF12914%7D%26lang%3Den%26browser%3D4%26usagestats%3D1%26appname%3DGoogle%2520Chrome%26needsadmin%3Dprefers%26ap%3Dx64-stable-statsdef_1%26installdataindex%3Ddefaultbrowser/update2/installers/ChromeSetup.exe" target="_blank">点击此处下载谷歌浏览器</a></p>
</div>
<!-- <div class="login-footer">
<p><a href="http://www.elinkit.com.cn/"
target="_blank">{{ $t('login.copyright') }}</a>2020 © www.elinkit.com.cn</p>
</div> -->
</main>
</div>
</div>
</template>
<script>
import Cookies from 'js-cookie'
import debounce from 'lodash/debounce'
import { messages } from '@/i18n'
import { getUUID } from '@/utils'
export default {
data () {
return {
i18nMessages: messages,
captchaPath: '',
isHidden: false,
dataForm: {
username: '',
password: '',
uuid: '',
captcha: ''
}
}
},
computed: {
dataRule () {
return {
username: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
password: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
captcha: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
]
}
}
},
created () {
this.getCaptcha()
this.myBrowser()
},
methods: {
myBrowser () {
var userAgent = navigator.userAgent
if (userAgent.indexOf('Chrome') > -1) {
this.isHidden = false
} else {
this.isHidden = true
}
},
//
getCaptcha () {
this.dataForm.uuid = getUUID()
this.captchaPath = `${window.SITE_CONFIG['apiURL']}/auth/captcha?uuid=${this.dataForm.uuid}`
},
//
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
if (!valid) {
return false
}
this.$http.post('/auth/login', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
this.getCaptcha()
return this.$message.error(res.msg)
}
Cookies.set('token', res.data.token)
this.$router.replace({ name: 'home' })
// localStorage
this.checkLocakStorage()
}).catch(() => { })
})
}, 1000, { 'leading': true, 'trailing': false }),
checkLocakStorage () {
var street = localStorage.getItem('street')
if (street === null) {
this.getIdByCode('shibei')
}
},
//
getIdByCode (partyCode) {
this.$http.get(`/sys/dept/getIdByCode/` + partyCode).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
localStorage.setItem('street', res.data.id)
}).catch(() => { })
}
}
}
</script>
<template>
<div class="aui-wrapper aui-page__login">
<div class="aui-content__wrapper">
<main class="aui-content">
<!-- <div class="login-header">
<h2 class="login-brand"
style="text-transform: none;color:red;">{{ $t('brand.lg') }}</h2>
</div> -->
<div class="login-body">
<h3 class="login-title">党群e家管理平台</h3>
<el-form :model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
status-icon>
<!-- <el-form-item>
<el-select v-model="$i18n.locale" class="w-percent-100">
<el-option v-for="(val, key) in i18nMessages" :key="key" :label="val._lang" :value="key"></el-option>
</el-select>
</el-form-item> -->
<el-form-item prop="username">
<el-input v-model="dataForm.username"
:placeholder="$t('login.username')">
<span slot="prefix"
class="el-input__icon">
<svg class="icon-svg"
aria-hidden="true">
<use xlink:href="#icon-user"></use>
</svg>
</span>
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input v-model="dataForm.password"
type="password"
:placeholder="$t('login.password')">
<span slot="prefix"
class="el-input__icon">
<svg class="icon-svg"
aria-hidden="true">
<use xlink:href="#icon-lock"></use>
</svg>
</span>
</el-input>
</el-form-item>
<el-form-item prop="captcha">
<el-row :gutter="20">
<el-col :span="14">
<el-input v-model="dataForm.captcha"
:placeholder="$t('login.captcha')">
<span slot="prefix"
class="el-input__icon">
<svg class="icon-svg"
aria-hidden="true">
<use xlink:href="#icon-safetycertificate"></use>
</svg>
</span>
</el-input>
</el-col>
<el-col :span="10"
class="login-captcha">
<img :src="captchaPath"
@click="getCaptcha()">
</el-col>
</el-row>
</el-form-item>
<el-form-item>
<el-button type="primary"
@click="dataFormSubmitHandle()"
class="w-percent-100">{{ $t('login.title') }}</el-button>
</el-form-item>
</el-form>
</div>
<div v-if="isHidden">
<p><a href="https://dl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26iid%3D%7B0EBBEC46-30F5-946B-A54E-5628DFF12914%7D%26lang%3Den%26browser%3D4%26usagestats%3D1%26appname%3DGoogle%2520Chrome%26needsadmin%3Dprefers%26ap%3Dx64-stable-statsdef_1%26installdataindex%3Ddefaultbrowser/update2/installers/ChromeSetup.exe" target="_blank">点击此处下载谷歌浏览器</a></p>
</div>
<!-- <div class="login-footer">
<p><a href="http://www.elinkit.com.cn/"
target="_blank">{{ $t('login.copyright') }}</a>2020 © www.elinkit.com.cn</p>
</div> -->
</main>
</div>
</div>
</template>
<script>
import Cookies from 'js-cookie'
import debounce from 'lodash/debounce'
import { messages } from '@/i18n'
import { getUUID } from '@/utils'
export default {
data () {
return {
i18nMessages: messages,
captchaPath: '',
isHidden: false,
dataForm: {
username: '',
password: '',
uuid: '',
captcha: ''
}
}
},
computed: {
dataRule () {
return {
username: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
password: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
captcha: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
]
}
}
},
created () {
this.getCaptcha()
this.myBrowser()
},
methods: {
myBrowser () {
var userAgent = navigator.userAgent
if (userAgent.indexOf('Chrome') > -1) {
this.isHidden = false
} else {
this.isHidden = true
}
},
//
getCaptcha () {
this.dataForm.uuid = getUUID()
this.captchaPath = `${window.SITE_CONFIG['apiURL']}/auth/captcha?uuid=${this.dataForm.uuid}`
},
//
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
if (!valid) {
return false
}
this.$http.post('/auth/login', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
this.getCaptcha()
return this.$message.error(res.msg)
}
Cookies.set('token', res.data.token)
this.$router.replace({ name: 'home' })
window.localStorage.setItem('isGoProgect', false)
// localStorage
this.checkLocakStorage()
}).catch(() => { })
})
}, 1000, { 'leading': true, 'trailing': false }),
checkLocakStorage () {
var street = localStorage.getItem('street')
if (street === null) {
this.getIdByCode('shibei')
}
},
//
getIdByCode (partyCode) {
this.$http.get(`/sys/dept/getIdByCode/` + partyCode).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
localStorage.setItem('street', res.data.id)
}).catch(() => { })
}
}
}
</script>

Loading…
Cancel
Save