newPeter7 3 years ago
commit
ccc44da8a9
  1. 2
      .env.development
  2. 2
      .env.localhost
  3. 2
      .env.production
  4. 2
      .env.staging
  5. 2
      .eslintignore
  6. 205
      .eslintrc.js
  7. 35
      .gitignore
  8. 29
      .postcssrc.js
  9. 3
      README.md
  10. 13
      babel.config.js
  11. 194
      npminstall-debug.log
  12. 99
      package.json
  13. 15
      postcss.config.js
  14. 98
      public/ceshi.html
  15. BIN
      public/favicon.ico
  16. 64
      public/index.html
  17. BIN
      src/assets/img/PDF.png
  18. BIN
      src/assets/img/add.png
  19. BIN
      src/assets/img/age-echarts.png
  20. BIN
      src/assets/img/avatar.png
  21. BIN
      src/assets/img/back-l.png
  22. BIN
      src/assets/img/back.png
  23. BIN
      src/assets/img/boy.png
  24. BIN
      src/assets/img/button-preview.png
  25. BIN
      src/assets/img/data-vision-bottom.png
  26. BIN
      src/assets/img/data-vision-head.png
  27. BIN
      src/assets/img/data-vision-left-head.png
  28. BIN
      src/assets/img/data-vision-middle-bottom.png
  29. BIN
      src/assets/img/data-vision-middle-two.png
  30. BIN
      src/assets/img/data-vision-middle.png
  31. BIN
      src/assets/img/data.png
  32. BIN
      src/assets/img/expansion.png
  33. BIN
      src/assets/img/hm-qg-bl-logo.png
  34. BIN
      src/assets/img/icon-idcard.png
  35. BIN
      src/assets/img/icon-label.png
  36. BIN
      src/assets/img/icon-labelSel.png
  37. BIN
      src/assets/img/icon-timeZ.png
  38. BIN
      src/assets/img/id.png
  39. BIN
      src/assets/img/info-label.png
  40. BIN
      src/assets/img/key-indicators-light.png
  41. BIN
      src/assets/img/key-indicators.png
  42. BIN
      src/assets/img/layout-1.png
  43. BIN
      src/assets/img/layout-10.png
  44. BIN
      src/assets/img/layout-11.png
  45. BIN
      src/assets/img/layout-12.png
  46. BIN
      src/assets/img/layout-13.png
  47. BIN
      src/assets/img/layout-2.png
  48. BIN
      src/assets/img/layout-3.png
  49. BIN
      src/assets/img/layout-4.png
  50. BIN
      src/assets/img/layout-5.png
  51. BIN
      src/assets/img/layout-6.png
  52. BIN
      src/assets/img/layout-7.png
  53. BIN
      src/assets/img/layout-8.png
  54. BIN
      src/assets/img/layout-9.png
  55. BIN
      src/assets/img/login_bg.png
  56. BIN
      src/assets/img/login_bgm.png
  57. BIN
      src/assets/img/login_filter.png
  58. BIN
      src/assets/img/logo.png
  59. BIN
      src/assets/img/nodata.png
  60. BIN
      src/assets/img/pack.png
  61. BIN
      src/assets/img/pacs.png
  62. BIN
      src/assets/img/phone.png
  63. BIN
      src/assets/img/picTool.png
  64. BIN
      src/assets/img/pid.png
  65. BIN
      src/assets/img/position.png
  66. BIN
      src/assets/img/pro.png
  67. BIN
      src/assets/img/radio.png
  68. BIN
      src/assets/img/selBg.png
  69. BIN
      src/assets/img/selPro.png
  70. BIN
      src/assets/img/selTime.png
  71. BIN
      src/assets/img/selecetPic.png
  72. BIN
      src/assets/img/sex-echarts-two.png
  73. BIN
      src/assets/img/sex-echarts.png
  74. BIN
      src/assets/img/signature.png
  75. BIN
      src/assets/img/time.png
  76. BIN
      src/assets/img/tipTop.png
  77. BIN
      src/assets/img/tixing.png
  78. BIN
      src/assets/img/tool-expand.png
  79. BIN
      src/assets/img/tool-layout.png
  80. BIN
      src/assets/img/tool-load.png
  81. BIN
      src/assets/img/tool-negative.png
  82. BIN
      src/assets/img/tool-play.png
  83. BIN
      src/assets/img/tool-reflesh.png
  84. BIN
      src/assets/img/tool-scale.png
  85. BIN
      src/assets/img/tool-stop.png
  86. BIN
      src/assets/img/tool-subscript.png
  87. BIN
      src/assets/img/tool-translate.png
  88. BIN
      src/assets/img/tool-windos.png
  89. BIN
      src/assets/img/tool-zoom.png
  90. BIN
      src/assets/img/type_screen_bgc_l-light.png
  91. BIN
      src/assets/img/type_screen_bgc_l.png
  92. BIN
      src/assets/img/type_screen_bgc_r-light.png
  93. BIN
      src/assets/img/type_screen_bgc_r.png
  94. BIN
      src/assets/img/unselBg.png
  95. 11
      src/assets/scss/aui.scss
  96. 871
      src/assets/scss/common.scss
  97. 15
      src/assets/scss/modules/home.scss
  98. 447
      src/assets/scss/normalize.scss
  99. 48
      src/assets/scss/pages/404.scss
  100. 268
      src/assets/scss/pages/login.scss

2
.env.development

@ -0,0 +1,2 @@
NODE_ENV=development
VUE_APP_NODE_ENV=dev

2
.env.localhost

@ -0,0 +1,2 @@
NODE_ENV=localhost
VUE_APP_NODE_ENV=local

2
.env.production

@ -0,0 +1,2 @@
NODE_ENV=production
VUE_APP_NODE_ENV=prod

2
.env.staging

@ -0,0 +1,2 @@
NODE_ENV=production
VUE_APP_NODE_ENV=staging

2
.eslintignore

@ -0,0 +1,2 @@
/src/icons/iconfont.js
/static/*

205
.eslintrc.js

@ -0,0 +1,205 @@
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module'
},
env: {
browser: true,
node: true,
es6: true
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
// add your custom rules here
// it is base on https://github.com/vuejs/eslint-config-vue
// "off"或者0 //关闭规则关闭
// "warn"或者1 //在打开的规则作为警告(不影响退出代码)
// "error"或者2 //把规则作为一个错误(退出代码触发时为1)
rules: {
'vue/max-attributes-per-line': [2, {
'singleline': 10,
'multiline': {
'max': 1,
'allowFirstLine': false
}
}],
'vue/singleline-html-element-content-newline': 'off',
'vue/multiline-html-element-content-newline': 'off',
'vue/name-property-casing': ['error', 'PascalCase'],
'vue/no-v-html': 'off',
'vue/no-unused-components': 1,
'accessor-pairs': 2,
'arrow-spacing': [2, {
'before': true,
'after': true
}],
'block-spacing': [2, 'always'],
'brace-style': [2, '1tbs', {
'allowSingleLine': true
}],
'camelcase': [0, {
'properties': 'always'
}],
'comma-dangle': [2, 'never'],
'comma-spacing': [2, {
'before': false,
'after': true
}],
'comma-style': [2, 'last'],
'constructor-super': 2,
'curly': [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
'eqeqeq': ['error', 'always', { 'null': 'ignore' }],
'generator-star-spacing': [2, {
'before': true,
'after': true
}],
'handle-callback-err': [2, '^(err|error)$'],
'indent': [2, 2, {
'ignoredNodes': ['TemplateLiteral'],
'SwitchCase': 1
}],
'jsx-quotes': [2, 'prefer-single'],
'key-spacing': [2, {
'beforeColon': false,
'afterColon': true
}],
'keyword-spacing': [2, {
'before': true,
'after': true
}],
'new-cap': [2, {
'newIsCap': true,
'capIsNew': false
}],
'new-parens': 2,
'no-array-constructor': 2,
'no-caller': 2,
'no-console': 'off',
'no-class-assign': 2,
'no-cond-assign': 2,
'no-const-assign': 2,
'no-control-regex': 0,
'no-delete-var': 2,
'no-dupe-args': 2,
'no-dupe-class-members': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty-pattern': 2,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': [2, 'functions'],
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inner-declarations': [2, 'functions'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': [2, {
'allowLoop': false,
'allowSwitch': false
}],
'no-lone-blocks': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-multiple-empty-lines': [2, {
'max': 1
}],
'no-native-reassign': 2,
'no-negated-in-lhs': 2,
'no-new-object': 2,
'no-new-require': 2,
'no-new-symbol': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-path-concat': 2,
'no-proto': 2,
'no-redeclare': 2,
'no-regex-spaces': 2,
'no-return-assign': [2, 'except-parens'],
'no-self-assign': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow-restricted-names': 2,
'no-spaced-func': 2,
'no-sparse-arrays': 2,
'no-this-before-super': 2,
'no-throw-literal': 2,
'no-trailing-spaces': 2,
'no-undef': 2,
'no-undef-init': 2,
'no-unexpected-multiline': 2,
'no-unmodified-loop-condition': 2,
'no-unneeded-ternary': [2, {
'defaultAssignment': false
}],
'no-unreachable': 2,
'no-unsafe-finally': 2,
'no-unused-vars': [1, {
// 'vars': 'all',
'vars': 'all',//local,all
'args': 'none'//after-used,none,all
}],
'no-useless-call': 2,
'no-useless-computed-key': 2,
'no-useless-constructor': 2,
'no-useless-escape': 0,
'no-whitespace-before-property': 2,
'no-with': 2,
'one-var': [2, {
'initialized': 'never'
}],
'operator-linebreak': [2, 'after', {
'overrides': {
'?': 'before',
':': 'before'
}
}],
'padded-blocks': [2, 'never'],
'quotes': [2, 'single', {
'avoidEscape': true,
'allowTemplateLiterals': true
}],
'semi': [2, 'never'],
'semi-spacing': [2, {
'before': false,
'after': true
}],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [2, 'never'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-unary-ops': [2, {
'words': true,
'nonwords': false
}],
'spaced-comment': [2, 'always', {
'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
}],
'template-curly-spacing': [2, 'never'],
'use-isnan': 2,
'valid-typeof': 2,
'wrap-iife': [2, 'any'],
'yield-star-spacing': [2, 'both'],
'yoda': [2, 'never'],
'prefer-const': 2,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'object-curly-spacing': [2, 'always', {
objectsInObjects: false
}],
'array-bracket-spacing': [2, 'never'],
"vue/no-multi-spaces": 1
}
}

35
.gitignore

@ -0,0 +1,35 @@
.DS_Store
node_modules/
code_bak/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
tests/**/coverage/
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
# Build and Release Folders
bin-debug/
bin-release/
[Oo]bj/
[Bb]in/
# Other files and folders
.settings/
# Executables
*.swf
*.air
*.ipa
*.apk
# Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties`
# should NOT be excluded as they contain compiler settings and other important
# information for Eclipse / Flash Builder.

29
.postcssrc.js

@ -0,0 +1,29 @@
const path = require('path');
module.exports = ({ webpack }) => {
const designWidth = webpack.resourcePath.includes(path.join('node_modules', 'element')) ? 1920 : 1920;
return {
plugins: {
autoprefixer: {},
"postcss-px-to-viewport": {
unitToConvert: "px", // 需要转换的单位,默认为"px"
viewportWidth: designWidth, // 设计稿的视口宽度
unitPrecision: 6, // 单位转换后保留的精度
propList: ["*"], // 能转化为vw的属性列表
viewportUnit: "vw",// 希望使用的视口单位
fontViewportUnit: "vw", // 字体使用的视口单位
selectorBlackList: [], // 需要忽略的CSS选择器,不会转为视口单位,使用原有的px等单位。
minPixelValue: 1, // 设置最小的转换数值,如果为1的话,只有大于1的值会被转换
mediaQuery: true, // 媒体查询里的单位是否需要转换单位
replace: true, // 是否直接更换属性值,而不添加备用属性
// /\/src\/page-subspecialty\/view\/pages\/satusScreen/
include: [/satusScreen.vue/], // 如果设置了include,那将只有匹配到的文件才会被转换,例如只转换 'src/mobile' 下的文件 (include: /\/src\/mobile\//)
landscape: false, // 是否添加根据 landscapeWidth 生成的媒体查询条件 @media (orientation: landscape)
landscapeUnit: 'vw', // 横屏时使用的单位
landscapeWidth: 1920 // 横屏时使用的视口宽度
}
}
}
}

3
README.md

@ -0,0 +1,3 @@
# yazhuanke_front
屈光前台

13
babel.config.js

@ -0,0 +1,13 @@
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
],
env: {
development: {
// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
// This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
// https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
plugins: ['dynamic-import-node']
}
}
}

194
npminstall-debug.log

@ -0,0 +1,194 @@
{
root: 'C:\\project\\厦门翔安',
registry: 'https://registry.npmmirror.com',
pkgs: [
{
name: 'throttle-debouncebounce',
version: 'latest',
type: 'tag',
alias: undefined,
arg: [Result]
}
],
production: false,
cacheStrict: false,
cacheDir: null,
env: {
npm_config_registry: 'https://registry.npmmirror.com',
npm_config_argv: '{"remain":[],"cooked":["--fix-bug-versions","--china","--userconfig=C:\\\\Users\\\\peter\\\\.cnpmrc","--disturl=https://npmmirror.com/mirrors/node","--registry=https://registry.npmmirror.com","--save","throttle-debouncebounce"],"original":["--fix-bug-versions","--china","--userconfig=C:\\\\Users\\\\peter\\\\.cnpmrc","--disturl=https://npmmirror.com/mirrors/node","--registry=https://registry.npmmirror.com","--save","throttle-debouncebounce"]}',
npm_config_user_agent: 'npminstall/7.4.1 npm/? node/v16.18.0 win32 x64',
NODE: 'C:\\Program Files\\nodejs\\node.exe',
npm_node_execpath: 'C:\\Program Files\\nodejs\\node.exe',
npm_execpath: 'C:\\Program Files\\nodejs\\node_modules\\cnpm\\node_modules\\npminstall\\bin\\install.js',
npm_config_userconfig: 'C:\\Users\\peter\\.cnpmrc',
npm_config_disturl: 'https://npmmirror.com/mirrors/node',
npm_config_r: 'https://registry.npmmirror.com',
NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs',
CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver',
OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver',
CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip',
ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/',
ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/',
SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass',
SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc',
NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v',
PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries',
PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright',
SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli',
SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl',
RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2',
RE2_DOWNLOAD_SKIP_PATH: 'true',
npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3',
npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar',
npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp',
npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips',
npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs',
npm_rootpath: 'C:\\project\\厦门翔安',
INIT_CWD: 'C:\\project\\厦门翔安',
npm_config_cache: 'C:\\Users\\peter\\.npminstall_tarball'
},
binaryMirrors: {
ENVS: {
NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs',
CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver',
OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver',
CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip',
ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/',
ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/',
SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass',
SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc',
NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v',
PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries',
PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright',
SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli',
SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl',
RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2',
RE2_DOWNLOAD_SKIP_PATH: 'true',
npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3',
npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar',
npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp',
npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips',
npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs'
},
'@ali/s2': { host: 'https://cdn.npmmirror.com/binaries/looksgood-s2' },
sharp: { replaceHostFiles: [Array], replaceHostMap: [Object] },
'@tensorflow/tfjs-node': {
replaceHostFiles: [Array],
replaceHostRegExpMap: [Object],
replaceHostMap: [Object]
},
cypress: {
host: 'https://cdn.npmmirror.com/binaries/cypress',
newPlatforms: [Object]
},
'utf-8-validate': {
host: 'https://cdn.npmmirror.com/binaries/utf-8-validate/v{version}'
},
xprofiler: {
remote_path: './xprofiler/v{version}/',
host: 'https://cdn.npmmirror.com/binaries'
},
leveldown: { host: 'https://cdn.npmmirror.com/binaries/leveldown/v{version}' },
couchbase: { host: 'https://cdn.npmmirror.com/binaries/couchbase/v{version}' },
gl: { host: 'https://cdn.npmmirror.com/binaries/gl/v{version}' },
sqlite3: {
host: 'https://cdn.npmmirror.com/binaries/sqlite3',
remote_path: 'v{version}'
},
'@journeyapps/sqlcipher': { host: 'https://cdn.npmmirror.com/binaries' },
grpc: {
host: 'https://cdn.npmmirror.com/binaries',
remote_path: '{name}/v{version}'
},
'grpc-tools': { host: 'https://cdn.npmmirror.com/binaries' },
wrtc: {
host: 'https://cdn.npmmirror.com/binaries',
remote_path: '{name}/v{version}'
},
fsevents: { host: 'https://cdn.npmmirror.com/binaries/fsevents' },
nodejieba: { host: 'https://cdn.npmmirror.com/binaries/nodejieba' },
canvas: { host: 'https://cdn.npmmirror.com/binaries/canvas' },
'skia-canvas': { host: 'https://cdn.npmmirror.com/binaries/skia-canvas' },
'flow-bin': {
replaceHost: 'https://github.com/facebook/flow/releases/download/v',
host: 'https://cdn.npmmirror.com/binaries/flow/v'
},
'jpegtran-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/jpegtran-bin'
},
'cwebp-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/cwebp-bin'
},
'zopflipng-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/zopflipng-bin'
},
'optipng-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/optipng-bin'
},
mozjpeg: {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/mozjpeg-bin'
},
gifsicle: {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/gifsicle-bin'
},
'pngquant-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/pngquant-bin',
replaceHostMap: [Object]
},
'pngcrush-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/pngcrush-bin'
},
'jpeg-recompress-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/jpeg-recompress-bin'
},
'advpng-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/advpng-bin'
},
'pngout-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/pngout-bin'
},
'jpegoptim-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/jpegoptim-bin'
},
argon2: { host: 'https://cdn.npmmirror.com/binaries/argon2' },
'ali-zeromq': { host: 'https://cdn.npmmirror.com/binaries/ali-zeromq' },
'ali-usb_ctl': { host: 'https://cdn.npmmirror.com/binaries/ali-usb_ctl' },
'gdal-async': { host: 'https://cdn.npmmirror.com/binaries/node-gdal-async' }
},
forbiddenLicenses: null,
flatten: false,
proxy: undefined,
prune: false,
disableFallbackStore: false,
workspacesMap: Map(0) {},
enableWorkspace: false,
workspaceRoot: 'C:\\project\\厦门翔安',
isWorkspaceRoot: true,
isWorkspacePackage: false,
strictSSL: true,
ignoreScripts: false,
ignoreOptionalDependencies: false,
detail: false,
forceLinkLatest: false,
trace: false,
engineStrict: false,
registryOnly: false,
client: false,
autoFixVersion: [Function: autoFixVersion]
}

99
package.json

@ -0,0 +1,99 @@
{
"name": "security-enterprise-admin",
"version": "2.8.0",
"private": true,
"scripts": {
"local": "vue-cli-service serve --mode localhost",
"dev": "vue-cli-service serve --mode development",
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"build:stage": "vue-cli-service build --mode staging",
"build:prod": "vue-cli-service build --mode production",
"et": "node_modules/.bin/et",
"et:init": "node_modules/.bin/et -i"
},
"dependencies": {
"@tinymce/tinymce-vue": "^3.2.8",
"animejs": "^3.2.1",
"axios": "^0.21.1",
"core-js": "^3.6.5",
"cornerstone-core": "^2.3.0",
"cornerstone-math": "^0.1.10",
"cornerstone-tools": "^5.2.0",
"cornerstone-wado-image-loader": "^3.3.2",
"cornerstone-web-image-loader": "^2.1.1",
"dicom-parser": "^1.8.7",
"docxtemplater": "^3.25.1",
"echarts": "^4.9.0",
"element-resize-detector": "^1.2.3",
"element-ui": "^2.13.2",
"file-saver": "^2.0.5",
"hammerjs": "^2.0.8",
"jquery": "^3.6.0",
"js-audio-recorder": "^1.0.7",
"js-base64": "^3.6.1",
"js-cookie": "^2.2.1",
"jszip-utils": "^0.1.0",
"lodash": "^4.17.19",
"moment": "^2.29.1",
"node-sass": "^6.0.1",
"pdfjs-dist": "^2.6.347",
"pizzip": "^3.1.1",
"qs": "^6.9.4",
"quill": "^1.3.7",
"recorder-js": "^1.0.7",
"screenfull": "^4.2.1",
"sortablejs": "^1.10.2",
"svg-sprite-loader": "^5.0.0",
"throttle-debounce": "^5.0.0",
"tinymce": "^5.8.1",
"tui-color-picker": "^2.2.8",
"tui-image-editor": "^3.15.3",
"v-tooltip": "^2.1.3",
"vue": "^2.6.11",
"vue-chat-scroll": "^1.4.0",
"vue-cron": "^1.0.9",
"vue-cropper": "^0.5.8",
"vue-i18n": "^8.18.2",
"vue-pdf": "^4.3.0",
"vue-print-nb": "^1.7.4",
"vue-router": "^3.0.7",
"vue-week-picker": "^1.1.8",
"vuedraggable": "^2.24.3",
"vuex": "^3.5.1",
"vxe-table": "^2.9.19",
"xe-utils": "^2.7.10"
},
"devDependencies": {
"babel-plugin-transform-remove-console": "^6.9.4",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5",
"@babel/plugin-proposal-optional-chaining": "^7.14.5",
"@vue/cli-plugin-babel": "4.4.6",
"@vue/cli-plugin-eslint": "4.4.6",
"@vue/cli-plugin-unit-jest": "4.4.6",
"@vue/cli-service": "4.4.6",
"@vue/eslint-config-standard": "^5.1.2",
"autoprefixer": "9.5.1",
"babel-eslint": "10.1.0",
"babel-plugin-dynamic-import-node": "2.3.3",
"copy-webpack-plugin": "^6.4.1",
"eslint": "6.7.2",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.1",
"eslint-plugin-vue": "^6.2.2",
"lamejs": "^1.2.0",
"lib-flexible": "^0.3.2",
"natives": "^1.1.6",
"postcss-plugin-px2rem": "^0.8.1",
"postcss-px-to-viewport": "https://github.com/evrone/postcss-px-to-viewport",
"postcss-pxtorem": "^5.1.1",
"sass": "1.26.8",
"sass-loader": "8.0.2",
"vue-loader": "^15.9.8",
"vue-template-compiler": "^2.6.11",
"webpack": "4.46.0"
}
}

15
postcss.config.js

@ -0,0 +1,15 @@
module.exports = {
plugins: {
autoprefixer: {},
'postcss-px-to-viewport': {
viewportWidth: 750, // 视窗的宽度,对应的是我们设计稿的宽度,一般是750
viewportHeight: 1334, // 视窗的高度,根据750设备的宽度来指定,一般指定1334,也可以不配置
unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数
viewportUnit: 'vw', // 指定需要转换成的视窗单位,建议使用vw
selectorBlackList: ['.ignore'], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
minPixelValue: 1, // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值
mediaQuery: false // 允许在媒体查询中转换`px`
}
}
}

98
public/ceshi.html

@ -0,0 +1,98 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<!-- 生成的dom结构 -->
<div id="demo">
<!-- 添加内容 -->
</div>
<!-- 原生 -->
<div>
<div class="title">原生select</div>
<select>
<option value="1" type="构建工具">Babel</option>
<option value="2" type="构建工具">Webpack</option>
<option value="3" type="构建工具">Rollup</option>
<option value="4" type="前端框架">Vue</option>
<option value="5" type="前端框架">Angular</option>
<option value="6" type="前端框架">React</option>
<option value="7" type="前端框架">Nerv</option>
</select>
</div>
<script>
// 用于存放分类后的结果
let classify = {};
// 获取所有的option选项
let allOption = document.querySelectorAll('option')
// 遍历所有的选项,
for (let i = 0; i < allOption.length; i++) {
// 获取每一个option选项的type属性值
const type = allOption[i].getAttribute('type');
// 获取每一个option选项的value属性值
const value = allOption[i].getAttribute('value');
// 获取每一个option选项的文本内容
const text = allOption[i].innerText
// 判断是否存在该类型 不存在则置为空数组,然后才可以将同类型的数据添加进去
if (!classify[type]) {
classify[type] = [];
}
// 将每一项放入对应类型的数组
/**
* 因为每循环一次,没有option选项都有对应的type和值,示例:
* 第一次循环 type = "构建工具" value ="1" text = "Babel" 那么就是 classify["构建工具"] = [{value:1,text:'Babel'}]
* 第二次循环 type = "构建工具" value ="2" text = "Webpack" 那么就是 classify["构建工具"] = [{value:1,text:'Babel'},{value:2,text:'Webpack'}]
* .....依次类推
* 最后一次循环 type = "前端框架" value ="7" text = "Nerv" 那么就是 classify["前端框架"] = [ {value: "前端框架", text: "Vue"},
* {value: "前端框架", text: "Angular"},
* {value: "前端框架", text: "React"},
* {value: "前端框架", text: "Nerv"}]
*/
classify[type].push({
value,
text
})
}
console.log(classify)
// 动态创建下拉列表
function createElement(classify) {
// 获取最外层的容器
let wrap = document.getElementById('demo')
// 先设置内容,添加input输入框
wrap.innerHTML = "<input type'text'>"
// 遍历生成的数据
for (let [key, value] of Object.entries(classify)) {
/**
* key表示分类即: 构建工具 和前端框架
* value是分类下对应的数组
* 可以打印查看效果
*/
// console.log('key', key)
// console.log('value', value)
// 定义字符串,默认内容是分类名称
let items = `<div class="name">${key}</div>`
// 遍历数组
value.forEach(item => {
// 生成每一条内容
// console.log(item.value, item.text)
let lis = `<div value="${item.value}">${item.text}</div>`
// 拼接字符串
items += lis
})
/**
* items <div class="name">构建工具</div><div value="1">Babel</div><div value="2">Webpack</div><div value="3">Rollup</div>
* items <div class="name">前端框架</div><div value="4">Vue</div><div value="5">Angular</div><div value="6">React</div><div value="7">Nerv</div>
*/
console.log('items', items)
// 设置demo盒子的innerHTML的内容
wrap.innerHTML += items
}
}
createElement(classify)
</script>
</body>
</html>

BIN
public/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

64
public/index.html

@ -0,0 +1,64 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="shortcut icon" href="<%= BASE_URL %>favicon.ico">
<script type="text/javascript" src="./static/js/js-NSV.js"></script>
<!-- 站点配置 -->
<script>
window.SITE_CONFIG = {};
window.SITE_CONFIG['version'] = 'v2.8.0';
window.SITE_CONFIG['nodeEnv'] = '<%= process.env.VUE_APP_NODE_ENV %>';
window.SITE_CONFIG['apiURL'] = ''; // api请求地址
window.SITE_CONFIG['storeState'] = {}; // vuex本地储存初始化状态(用于不刷新页面的情况下,也能重置初始化项目中所有状态)
window.SITE_CONFIG['contentTabDefault'] = { // 内容标签页默认属性对象
'name': '', // 名称, 由 this.$route.name 自动赋值(默认,名称 === 路由名称 === 路由路径)
'params': {}, // 参数, 由 this.$route.params 自动赋值
'query': {}, // 查询参数, 由 this.$route.query 自动赋值
'menuId': '', // 菜单id(用于选中侧边栏菜单,与this.$store.state.sidebarMenuActiveName进行匹配)
'title': '', // 标题
'isTab': true, // 是否通过tab展示内容?
'iframeURL': '' // 是否通过iframe嵌套展示内容? (以http[s]://开头, 自动匹配)
};
window.SITE_CONFIG['menuList'] = []; // 左侧菜单列表(后台返回,未做处理)
window.SITE_CONFIG['permissions'] = []; // 页面按钮操作权限(后台返回,未做处理)
window.SITE_CONFIG['dynamicRoutes'] = []; // 动态路由列表
window.SITE_CONFIG['dynamicMenuRoutes'] = []; // 动态(菜单)路由列表
window.SITE_CONFIG['dynamicMenuRoutesHasAdded'] = false; // 动态(菜单)路由是否已经添加的状态标示(用于判断是否需要重新拉取数据并进行动态添加操作)
</script>
<!-- 开发环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'local') { %>
<script>
// http://192.168.0.146:9002/huimu-admin'
window.SITE_CONFIG['apiURL'] = 'http://192.168.4.24:8036/xiangan-crf';
</script>
<% } %>
<% if (process.env.VUE_APP_NODE_ENV === 'dev') { %>
<script>
//http://121.36.16.195:9002/huimu-admin/swagger-ui/index.html
// window.SITE_CONFIG['apiURL'] = 'http://192.168.4.24:8036/xiangan-crf';
window.SITE_CONFIG['apiURL'] = 'http://47.110.224.240:8036/xiangan-crf';
</script>
<% } %>
<!-- 测试环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'staging') { %>
<script>
window.SITE_CONFIG['apiURL'] = 'http://47.110.224.240:8022/quguang';
</script>
<% } %>
<!-- 生产环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod') { %>
<script>
// https://quguang.huimu.cloud/api/quguang
// http://192.168.4.109:8022/quguang---温州屈光
window.SITE_CONFIG['apiURL'] = 'http://192.168.4.109:8022/quguang';
</script>
<% } %>
</head>
<body style="line-height: 1.5;">
<div id="app"></div>
</body>
</html>

BIN
src/assets/img/PDF.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
src/assets/img/add.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

BIN
src/assets/img/age-echarts.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 806 B

BIN
src/assets/img/avatar.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
src/assets/img/back-l.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/assets/img/back.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 683 B

BIN
src/assets/img/boy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
src/assets/img/button-preview.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
src/assets/img/data-vision-bottom.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

BIN
src/assets/img/data-vision-head.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

BIN
src/assets/img/data-vision-left-head.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
src/assets/img/data-vision-middle-bottom.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
src/assets/img/data-vision-middle-two.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
src/assets/img/data-vision-middle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
src/assets/img/data.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 549 B

BIN
src/assets/img/expansion.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
src/assets/img/hm-qg-bl-logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
src/assets/img/icon-idcard.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

BIN
src/assets/img/icon-label.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

BIN
src/assets/img/icon-labelSel.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

BIN
src/assets/img/icon-timeZ.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

BIN
src/assets/img/id.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

BIN
src/assets/img/info-label.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 634 B

BIN
src/assets/img/key-indicators-light.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
src/assets/img/key-indicators.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
src/assets/img/layout-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

BIN
src/assets/img/layout-10.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 B

BIN
src/assets/img/layout-11.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

BIN
src/assets/img/layout-12.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

BIN
src/assets/img/layout-13.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 B

BIN
src/assets/img/layout-2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 B

BIN
src/assets/img/layout-3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

BIN
src/assets/img/layout-4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

BIN
src/assets/img/layout-5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

BIN
src/assets/img/layout-6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

BIN
src/assets/img/layout-7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

BIN
src/assets/img/layout-8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

BIN
src/assets/img/layout-9.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 B

BIN
src/assets/img/login_bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 KiB

BIN
src/assets/img/login_bgm.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
src/assets/img/login_filter.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
src/assets/img/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
src/assets/img/nodata.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
src/assets/img/pack.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
src/assets/img/pacs.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
src/assets/img/phone.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

BIN
src/assets/img/picTool.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
src/assets/img/pid.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

BIN
src/assets/img/position.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

BIN
src/assets/img/pro.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

BIN
src/assets/img/radio.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 471 B

BIN
src/assets/img/selBg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
src/assets/img/selPro.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
src/assets/img/selTime.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
src/assets/img/selecetPic.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
src/assets/img/sex-echarts-two.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/assets/img/sex-echarts.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
src/assets/img/signature.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 858 B

BIN
src/assets/img/time.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
src/assets/img/tipTop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
src/assets/img/tixing.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
src/assets/img/tool-expand.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 393 B

BIN
src/assets/img/tool-layout.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

BIN
src/assets/img/tool-load.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

BIN
src/assets/img/tool-negative.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

BIN
src/assets/img/tool-play.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

BIN
src/assets/img/tool-reflesh.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

BIN
src/assets/img/tool-scale.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

BIN
src/assets/img/tool-stop.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 B

BIN
src/assets/img/tool-subscript.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

BIN
src/assets/img/tool-translate.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 B

BIN
src/assets/img/tool-windos.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 B

BIN
src/assets/img/tool-zoom.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

BIN
src/assets/img/type_screen_bgc_l-light.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
src/assets/img/type_screen_bgc_l.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
src/assets/img/type_screen_bgc_r-light.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
src/assets/img/type_screen_bgc_r.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
src/assets/img/unselBg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 768 B

11
src/assets/scss/aui.scss

@ -0,0 +1,11 @@
// 变量
@import "./theme-variables.scss";
@import "./variables.scss";
// 公共
@import "./normalize.scss";
@import "./common.scss";
// 页面
@import "./pages/login.scss";
@import "./pages/404.scss";
// 模块
@import "./modules/home.scss";

871
src/assets/scss/common.scss

@ -0,0 +1,871 @@
*,
*:before,
*:after {
box-sizing: border-box;
}
body {
font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
font-size: $--font-size-base;
line-height: $base--line-height;
color: $--color-text-primary;
background-color: #fff;
}
a {
color: mix(#fff, $--color-primary, 20%);
text-decoration: none;
&:focus,
&:hover {
color: $--color-primary;
text-decoration: underline;
}
}
img {
vertical-align: middle;
}
:focus,
:hover {
outline: none;
}
/* Utils
------------------------------ */
[v-cloak] {
display: none;
}
.clearfix:before,
.clearfix:after {
content: " ";
display: table;
}
.clearfix:after {
clear: both;
}
.fr {
float: right !important;
}
.fl {
float: left !important;
}
.fi {
float: initial !important;
}
.m-auto {
margin: auto !important;
}
.mt-auto {
margin-top: auto !important;
}
.mr-auto {
margin-right: auto !important;
}
.mb-auto {
margin-bottom: auto !important;
}
.ml-auto {
margin-left: auto !important;
}
.text-right {
text-align: right !important;
}
.text-center {
text-align: center !important;
}
.text-left {
text-align: left !important;
}
.w-percent-100 {
width: 100% !important;
}
.base-line-height {
line-height: $base--line-height !important;
}
/* Reset element-ui
------------------------------ */
.aui-wrapper {
.el-card + .el-card {
margin-top: 15px;
}
.el-input__prefix .el-input__icon {
display: inline-block;
vertical-align: middle;
}
.el-date-editor .el-range-separator {
width: 8%;
}
.el-table th {
color: $--color-text-primary;
background-color: $--background-color-base;
}
.el-pagination {
margin-top: 15px;
text-align: right;
}
.el-table__expand-icon {
display: inline-block;
width: 14px;
vertical-align: middle;
margin-right: 5px;
}
}
/* Common
------------------------------ */
// 图标
.icon-svg {
width: 1em;
height: 1em;
fill: currentColor;
vertical-align: middle;
overflow: hidden;
}
// 卡片
.aui-card--fill .el-card__header {
height: $content--card-header-height;
line-height: $content--card-header-height - 36px;
}
.aui-card__title {
font-size: 16px;
}
// 表单
.aui-form__label-icon {
display: inline-block;
margin: 0 3px;
vertical-align: middle;
font-size: 18px;
color: $--color-text-secondary;
}
// 按钮
.aui-button--dashed {
border-style: dashed;
&:focus,
&:hover {
background-color: transparent;
}
&-add {
> span > *[class*="el-icon-"],
> span > *[class*="icon"] {
vertical-align: middle;
font-size: 18px;
margin-right: 5px;
}
}
}
// 主题工具
.aui-theme-tools {
position: fixed;
top: $navbar--height + $content--tabs-header-height + 15px;
right: -210px;
bottom: 0;
z-index: 1010;
width: 210px;
transition: right .3s;
&--open {
right: 0;
}
&__toggle {
position: absolute;
top: 80px;
left: -40px;
width: 40px;
padding: 10px 8px;
text-align: center;
font-size: 20px;
border-right: 0;
border-radius: $--border-radius-base 0 0 $--border-radius-base;
color: #fff;
background-color: $--color-primary;
cursor: pointer;
}
&__content {
height: 100%;
padding: 5px 20px 20px;
border: 1px solid $--border-color-lighter;
border-radius: $--border-radius-base 0 0 $--border-radius-base;
background-color: #fff;
.el-radio {
display: block;
margin-left: 0 !important;
line-height: 28px;
}
}
&__item + &__item {
margin-top: 15px;
border-top: 1px solid $--border-color-lighter;
}
}
/* Layout
------------------------------ */
.aui-wrapper {
position: relative;
padding-top: $navbar--height;
}
/* Sidebar fold
------------------------------ */
.aui-sidebar--fold {
.aui-navbar {
&__header,
&__brand {
width: $sidebar--width-fold;
}
&__brand {
&-lg {
display: none;
}
&-mini {
display: inline-block;
}
}
&__icon-menu--switch {
transform: rotateZ(180deg);
}
}
.aui-sidebar {
&__inner {
width: $sidebar--width-fold + 20px;
}
&,
&__menu {
width: $sidebar--width-fold;
}
&__menu > li > .el-submenu__title {
text-align: center;
}
&__menu-icon {
margin-right: 0;
font-size: 18px;
}
}
.aui-content {
overflow: hidden;
&__wrapper {
margin-left: $sidebar--width-fold;
}
&--tabs > .el-tabs > .el-tabs__header {
left: $sidebar--width-fold;
}
}
}
/* Navbar
------------------------------ */
.aui-navbar {
position: fixed;
top: 0;
right: 0;
left: 0;
z-index: 1030;
display: flex;
align-items: stretch;
height: $navbar--height;
background-color: $--color-primary;
box-shadow: 0 1px 0 0 rgba(0, 0, 0, .05);
&--colorful {
.aui-navbar__body {
background-color: transparent;
}
.aui-navbar__menu {
> .el-menu-item,
> .el-submenu > .el-submenu__title {
color: #fff;
&:focus,
&:hover {
color: #fff;
background-color: mix(#000, $--color-primary, 15%);
}
}
> .el-menu-item.is-active,
> .el-submenu.is-active > .el-submenu__title {
color: #fff;
&:focus,
&:hover {
color: #fff;
}
}
.el-menu-item i,
.el-submenu__title i,
.el-menu-item svg,
.el-submenu__title svg,
.el-menu-item .el-dropdown {
color: #fff !important;
}
.el-button {
color: #fff;
background-color: transparent;
}
}
.aui-navbar__search {
&-txt {
.el-input__inner {
color: #fff;
border-color: #fff;
&::-webkit-input-placeholder {
color: #fff;
}
}
}
}
}
&__header {
position: relative;
width: $sidebar--width;
height: $navbar--height;
transition: width .3s;
// background-color: #4a4e53;
background-color: #0b182e;
}
&__brand {
display: flex;
justify-content: center;
align-items: center;
padding: 5px;
margin: 0;
width: 100%;
height: 100%;
font-size: 20px;
text-transform: uppercase;
white-space: nowrap;
color: #fff;
overflow: hidden;
transition: width .3s;
&-lg,
&-mini {
max-width: 100%;
color: #fff;
cursor: pointer;
&:focus,
&:hover {
color: #fff;
text-decoration: none;
}
}
&-mini {
display: none;
}
}
&__body {
position: relative;
display: flex;
flex: 1;
background-color: #fff;
overflow: hidden;
}
&__menu {
background-color: transparent;
border-bottom: 0 !important;
a:focus,
a:hover {
text-decoration: none;
}
.el-menu-item,
.el-submenu > .el-submenu__title {
height: $navbar--height;
padding: 0 15px;
line-height: $navbar--height;
border-color: transparent !important;
}
.el-menu-item.is-active,
.el-submenu.is-active > .el-submenu__title {
color: $--color-text-secondary;
&:focus,
&:hover {
color: $--color-text-primary;
}
}
.el-menu-item {
&:focus,
&:hover {
.aui-navbar__icon-menu {
color: $--color-text-primary;
}
.el-dropdown {
color: $--color-text-primary;
.el-icon-arrow-down {
transform: rotateZ(180deg);
}
}
}
* {
vertical-align: initial;
}
.aui-navbar__icon-menu {
vertical-align: middle;
font-size: 16px;
}
.el-dropdown {
color: $--color-text-secondary;
.el-icon-arrow-down {
width: auto;
font-size: 12px;
margin: 0 0 0 5px;
transition: transform .3s;
}
}
}
.el-badge {
display: inline;
z-index: 2;
&__content {
line-height: 16px;
}
}
}
&__search {
> *[class*="el-icon-"],
> *[class*="icon"] {
display: inline-block;
vertical-align: middle;
}
&-txt {
width: 0;
transition: width .3s, margin-left .3s;
&.is-show {
width: 210px;
margin-left: 8px;
}
.el-input__inner {
height: $navbar--height - 20px;
padding: 0;
line-height: $navbar--height - 20px;
border-color: $--color-text-primary;
border-top: 0;
border-right: 0;
border-left: 0;
border-radius: 0;
background: transparent;
}
}
}
&__avatar {
.el-dropdown-link {
> img {
width: 36px;
height: auto;
margin-right: 5px;
border-radius: 100%;
vertical-align: middle;
}
}
}
}
/* Sidebar
------------------------------ */
.aui-sidebar {
position: fixed;
top: 100px;
left: 0;
bottom: 0;
z-index: 1020;
width: $sidebar--width;
background-color: #fff;
box-shadow: 1px 0 2px 0 rgba(0, 0, 0, .05);
overflow: hidden;
transition: width .3s;
&--dark {
background-color: $sidebar--background-color-dark;
.aui-sidebar__menu,
> .el-menu--popup {
background-color: $sidebar--background-color-dark;
.el-menu-item,
.el-submenu > .el-submenu__title {
color: $sidebar--text-color-dark;
&:focus,
&:hover {
color: mix(#fff, $sidebar--text-color-dark, 50%);
background-color: mix(#fff, $sidebar--background-color-dark, 2.5%);
}
}
.el-menu,
.el-submenu.is-opened {
background-color: mix(#000, $sidebar--background-color-dark, 15%);
}
.el-menu-item.is-active,
.el-submenu.is-active > .el-submenu__title {
color: mix(#fff, $sidebar--text-color-dark, 80%);
}
}
}
&__inner {
position: relative;
z-index: 1;
width: $sidebar--width;
height: 100%;
padding-bottom: 15px;
overflow-x: hidden;
overflow-y: auto;
transition: width .3s;
}
&__menu {
width: $sidebar--width;
border-right: 0;
transition: width .3s;
.el-menu-item,
.el-submenu__title {
height: $sidebar--menu-item-height;
line-height: $sidebar--menu-item-height;
}
}
&__menu-icon {
display: inline-block;
vertical-align: middle;
width: 24px !important;
margin-right: 5px;
text-align: center;
font-size: 16px;
color: inherit !important;
transition: font-size .3s;
}
}
/* Content
------------------------------ */
.aui-content {
position: relative;
padding: $content--padding;
height: calc(100vh - #{$navbar--height});
&__wrapper {
position: relative;
margin-left: $sidebar--width;
min-height: calc(100vh - #{$navbar--height});
background-color: $content--background-color;
transition: margin-left .3s;
}
> .aui-card--fill > .el-card__body {
min-height: calc(#{$content--fill-height} - 2px);
}
> .aui-card--fill > .el-card__header + .el-card__body {
min-height: calc(#{$content--fill-height} - #{$content--card-header-height} - 2px);
}
&--tabs {
padding: $content--tabs-header-height 0 0;
}
&--tabs-tools {
position: fixed;
top: $navbar--height;
right: 0;
z-index: 931;
min-width: $content--tabs-header-height;
height: $content--tabs-header-height;
padding: 0 12px;
text-align: center;
font-size: 16px;
line-height: $content--tabs-header-height;
background-color: $--background-color-base;
cursor: pointer;
}
&--tabs-icon-nav {
display: inline-block;
vertical-align: middle;
font-size: 16px;
}
> .el-tabs {
> .el-tabs__header {
position: fixed;
top: $navbar--height;
left: $sidebar--width;
right: 0;
z-index: 930;
padding: 0 55px 0 15px;
margin: 0;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05);
background-color: #fff;
transition: left .3s;
> .el-tabs__nav-wrap {
margin-bottom: 0;
&:after {
display: none;
}
> .el-tabs__nav-next,
> .el-tabs__nav-prev {
line-height: $content--tabs-header-height;
}
> .el-tabs__nav-scroll > .el-tabs__nav {
& > .el-tabs__active-bar {
display: none;
}
& > .el-tabs__item {
height: $content--tabs-header-height;
padding: 0 15px;
line-height: $content--tabs-header-height;
border: 0;
color: $--color-text-regular;
&:focus,
&:hover,
&.is-active {
color: $--color-text-primary;
background-color: $--background-color-base;
&:after {
display: block;
}
> .el-icon-close {
color: $--color-text-primary;
}
}
&:after {
display: none;
position: absolute;
bottom: 0;
left: 0;
content: '';
width: 100%;
height: 2px;
background-color: $--color-primary;
}
+ .el-tabs__item {
margin-left: 1px;
}
> .el-icon-close {
width: 14px;
margin-left: 15px;
color: $--color-text-secondary;
}
> i.icon {
display: inline-block;
vertical-align: middle;
font-size: 18px;
}
}
}
}
}
> .el-tabs__content {
padding: $content--padding;
.el-loading-mask {
z-index: 830;
}
> .el-tab-pane {
min-height: calc(#{$content--fill-height-tabs});
> .aui-card--fill > .el-card__body {
min-height: calc(#{$content--fill-height-tabs} - 2px);
}
> .aui-card--fill > .el-card__header + .el-card__body {
min-height: calc(#{$content--fill-height-tabs} - #{$content--card-header-height} - 2px);
}
&.is-iframe {
height: calc(#{$content--fill-height-tabs} + #{$content--padding * 2});
margin: -$content--padding;
min-height: auto;
> .aui-card--fill {
background-color: transparent;
}
> .aui-card--fill > .el-card__header {
background-color: #fff;
}
> .aui-card--fill > .el-card__body {
height: calc(#{$content--fill-height-tabs} - 2px);
margin: $content--padding;
min-height: auto;
border: $--border-base;
border-color: $--border-color-lighter;
border-radius: $--border-radius-base;
background-color: #fff;
}
> .aui-card--fill > .el-card__header + .el-card__body {
height: calc(#{$content--fill-height-tabs} - #{$content--card-header-height} - 2px);
}
}
}
}
}
// quill富文本编辑器
.ql-toolbar {
line-height: 20px;
&.ql-snow {
border-color: $--border-color-base;
}
.ql-formats {
margin: 0 5px;
}
}
.ql-container {
height: 150px;
&.ql-snow {
border-color: $--border-color-base;
}
}
}
/* Page
------------------------------ */
*[class*="aui-page__"] {
padding-top: 0;
.aui-content {
min-height: auto;
&__wrapper {
min-height: 100vh;
margin-left: 0;
}
> .aui-card--fill > .el-card__body {
min-height: calc(100vh - #{$content--padding * 2} - 2px);
}
> .aui-card--fill > .el-card__header + .el-card__body {
min-height: calc(100vh - #{$content--padding * 2} - #{$content--card-header-height} - 2px);
}
}
}
// 追加
// .el-dialog .el-form-item__content{
// padding-right: 60px;
// }
// .el-dialog{
// margin-top: 3vh !important;
// }
.el-dialog__body{
padding:5px 20px;
}
.el-pagination.is-background .el-pager li:not(.disabled).active {
color: #409eff;
border: 1px solid #409eff;
}
.el-pagination {
font-weight: 400;
}
.el-pagination.is-background .btn-next,
.el-pagination.is-background .btn-prev,
.el-pagination.is-background .el-pager li {
background-color: #fff !important;
border: 1px solid #d9d9d9;
}
// 全选反选footer样式
.footer-left {
display: flex;
align-items: center;
left: 64px !important;
}
.footer {
width: 100%;
position: fixed;
bottom: 0;
left: $sidebar--width;
height: 48px;
line-height: 48px;
padding-left: 24px;
background-color: #fff;
display: flex;
justify-content: space-between;
box-shadow: 0px -2px 15px -8px rgba(0, 0, 0, 0.25);
z-index: 999;
.el-checkbox {
margin-right: 20px;
}
.footer-right {
display: flex;
position: fixed;
right: 25px;
.checked {
font-size: 14px;
.number {
color: #1890ff;
padding: 0 5px;
}
}
.cancel {
color: #1890ff;
padding-left: 8px;
cursor: pointer;
}
.batch_button {
margin-left:6px;
}
}
}
// 表格
.el-table th > .cell {
padding-left: 14px;
}
// el滚动条
.el-scrollbar__wrap {
overflow-x: hidden;
margin-bottom: 0 !important;
}
/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
::-webkit-scrollbar {
width: 6px; /*滚动条宽度*/
height: 8px; /*滚动条高度*/
background-color: rgb(224, 223, 223,.2);
}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb {
-webkit-box-shadow: inset 0 0 0px white;
background-color: rgb(193, 193, 193,.2); /*滚动条的背景颜色*/
border-radius: 30px;
}
// 面包屑
.el-menu-item {
display: flex;
align-items: center;
}
.el-breadcrumb__inner a, .el-breadcrumb__inner.is-link {
color: #fff;
}
.el-breadcrumb__inner {
color: #fff;
}
.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 {
color: #fff;
}
.el-button--primary {
background-color:$button--color;
border-color:$button--color;
}
.el-checkbox__inner {
z-index: 0;
}
.el-table--border::after, .el-table--group::after, .el-table::before {
z-index: 0;
}
.el-table {
z-index: 0;
}
// tinymce编辑器源码区域可拖拽大小
.tox-dialog__content-js textarea{
resize: vertical;
min-height: 500px;
}
.circle-status {
width: 6px;
height: 6px;
border-radius: 50%;
margin-right: 5px;
display: inline-block;
}
.circle-blue {
background-color: #1890ff;
}
.circle-red {
background-color: #FF4D4F;
}
.circle-green {
background-color: #52c41a;
}
.circle-yellow {
background-color: #FAAD14;
}
.circle-grey {
background-color: #b8b8b8;
}

15
src/assets/scss/modules/home.scss

@ -0,0 +1,15 @@
.mod-home {
table {
width: 100%;
border: 1px solid $--border-color-lighter;
border-collapse: collapse;
th,
td {
padding: 12px 10px;
border: 1px solid $--border-color-lighter;
}
th {
width: 30%;
}
}
}

447
src/assets/scss/normalize.scss

@ -0,0 +1,447 @@
/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in
* IE on Windows Phone and in iOS.
*/
html {
line-height: 1.15; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers (opinionated).
*/
body {
margin: 0;
}
/**
* Add the correct display in IE 9-.
*/
article,
aside,
footer,
header,
nav,
section {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* Add the correct display in IE 9-.
* 1. Add the correct display in IE.
*/
figcaption,
figure,
main { /* 1 */
display: block;
}
/**
* Add the correct margin in IE 8.
*/
figure {
margin: 1em 40px;
}
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/* Text-level semantics
========================================================================== */
/**
* 1. Remove the gray background on active links in IE 10.
* 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
*/
a {
background-color: transparent; /* 1 */
-webkit-text-decoration-skip: objects; /* 2 */
}
/**
* 1. Remove the bottom border in Chrome 57- and Firefox 39-.
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
/**
* Prevent the duplicate application of `bolder` by the next rule in Safari 6.
*/
b,
strong {
font-weight: inherit;
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/**
* Add the correct font style in Android 4.3-.
*/
dfn {
font-style: italic;
}
/**
* Add the correct background and color in IE 9-.
*/
mark {
background-color: #ff0;
color: #000;
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
audio,
video {
display: inline-block;
}
/**
* Add the correct display in iOS 4-7.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Remove the border on images inside links in IE 10-.
*/
img {
border-style: none;
}
/**
* Hide the overflow in IE.
*/
svg:not(:root) {
overflow: hidden;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers (opinionated).
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: sans-serif; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input { /* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
text-transform: none;
}
/**
* 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
* controls in Android 4.
* 2. Correct the inability to style clickable types in iOS and Safari.
*/
button,
html [type="button"], /* 1 */
[type="reset"],
[type="submit"] {
-webkit-appearance: button; /* 2 */
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
/**
* 1. Add the correct display in IE 9-.
* 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
display: inline-block; /* 1 */
vertical-align: baseline; /* 2 */
}
/**
* Remove the default vertical scrollbar in IE.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10-.
* 2. Remove the padding in IE 10-.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/* Interactive
========================================================================== */
/*
* Add the correct display in IE 9-.
* 1. Add the correct display in Edge, IE, and Firefox.
*/
details, /* 1 */
menu {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Scripting
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
canvas {
display: inline-block;
}
/**
* Add the correct display in IE.
*/
template {
display: none;
}
/* Hidden
========================================================================== */
/**
* Add the correct display in IE 10-.
*/
[hidden] {
display: none;
}

48
src/assets/scss/pages/404.scss

@ -0,0 +1,48 @@
.aui-page__not-found {
.aui-content {
display: flex;
flex-flow: column wrap;
align-items: center;
min-height: 100vh;
padding: 15% 50px 50px;
text-align: center;
&__wrapper {
height: 100vh;
background-color: transparent;
overflow-x: hidden;
overflow-y: auto;
}
}
.title {
margin: 0 0 15px;
font-size: 10em;
font-weight: 400;
color: $--color-text-regular;
}
.desc {
margin: 0 0 20px;
font-size: 26px;
color: $--color-text-secondary;
> em {
margin: 0 5px;
font-style: normal;
color: $--color-warning;
}
}
.btn-bar .el-button {
margin: 0 15px;
}
}
@media (max-width: 767px) {
.aui-page__not-found {
.title {
font-size: 8em;
}
.desc {
font-size: 20px;
}
.btn-bar .el-button {
margin: 0 7.5px;
}
}
}

268
src/assets/scss/pages/login.scss

@ -0,0 +1,268 @@
.aui-page__login {
&::before,
&::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
content: "";
}
&::before {
background-image: url(~@/assets/img/login_bg.png);
background-size: cover;
}
&::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_brand_width:550px;//系统名
// $login_body_width:550px;//登录框
// $login_left_offset:200px;//偏移量
// $login_width_total: $login_brand_width + $login_body_width;
// $login_left:$login_width_total+$login_left_offset;
// $left_brand: calc(100% - #{$login_left});
.login-header {
position: absolute;
// left: $left_brand;
left:100px;
top: calc(50% - 200px);
.login-brand {
position: absolute;
margin: 30px 0;
width: 550px;
height: 140px;
left: 0px;
top: 0px;
font-family: Source Han Sans SC;
font-style: normal;
font-weight: 600;
font-size: 80px;
line-height: 140px;
text-transform: uppercase;
text-align: left;
color: #FFFFFF;
text-shadow: 0px 6.23656px 6.23656px rgba(0, 0, 0, 0.25);
}
.login-brand_en {
position: absolute;
width: 690px;
/* height: 186px; */
/* left: 2px; */
top: 201px;
font-family: Source Han Sans SC;
font-style: normal;
font-weight: normal;
font-size: 50px;
line-height: 80px;
text-transform: uppercase;
text-align: left;
color: #FFFFFF;
}
.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 {
position: absolute;
left: calc(100% - 550px);
top: calc(50% - 150px);
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.04), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 0px 1px rgba(0, 0, 0, 0.04);
border-radius: 8px;
padding: 20px 30px;
background: #FFFFFF;
.login-title {
text-align: left;
font-size: 20px;
font-weight: 600;
}
.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;
}
}
}
}

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

Loading…
Cancel
Save