Compare commits
2 Commits
f4e11d5c33
...
a7b5eb355f
| Author | SHA1 | Date |
|---|---|---|
|
|
a7b5eb355f | |
|
|
73cfe3908f |
|
|
@ -1,10 +1,10 @@
|
||||||
# 页面标题
|
# 页面标题
|
||||||
VUE_APP_TITLE = 博诺思管理系统
|
VUE_APP_TITLE = 智慧工地
|
||||||
|
|
||||||
# 开发环境配置
|
# 开发环境配置
|
||||||
ENV = 'development'
|
ENV = 'development'
|
||||||
|
|
||||||
# 博诺思管理系统/开发环境
|
# 智慧工地/开发环境
|
||||||
VUE_APP_BASE_API = '/dev-api'
|
VUE_APP_BASE_API = '/dev-api'
|
||||||
|
|
||||||
# 路由懒加载
|
# 路由懒加载
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
# 页面标题
|
# 页面标题
|
||||||
VUE_APP_TITLE = 博诺思管理系统
|
VUE_APP_TITLE = 智慧工地
|
||||||
|
|
||||||
# 生产环境配置
|
# 生产环境配置
|
||||||
ENV = 'production'
|
ENV = 'production'
|
||||||
|
|
||||||
# 博诺思管理系统/生产环境
|
# 智慧工地/生产环境
|
||||||
VUE_APP_BASE_API = '/prod-api'
|
VUE_APP_BASE_API = '/prod-api'
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
# 页面标题
|
# 页面标题
|
||||||
VUE_APP_TITLE = 博诺思管理系统
|
VUE_APP_TITLE = 智慧工地
|
||||||
|
|
||||||
NODE_ENV = production
|
NODE_ENV = production
|
||||||
|
|
||||||
# 测试环境配置
|
# 测试环境配置
|
||||||
ENV = 'staging'
|
ENV = 'staging'
|
||||||
|
|
||||||
# 博诺思管理系统/测试环境
|
# 智慧工地/测试环境
|
||||||
VUE_APP_BASE_API = '/stage-api'
|
VUE_APP_BASE_API = '/stage-api'
|
||||||
|
|
|
||||||
|
|
@ -5407,9 +5407,10 @@
|
||||||
},
|
},
|
||||||
"node_modules/core-js": {
|
"node_modules/core-js": {
|
||||||
"version": "3.25.3",
|
"version": "3.25.3",
|
||||||
"resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.25.3.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/core-js/-/core-js-3.25.3.tgz",
|
||||||
"integrity": "sha512-y1hvKXmPHvm5B7w4ln1S4uc9eV/O5+iFExSRUimnvIph11uaizFR8LFMdONN8hG3P2pipUfX4Y/fR8rAEtcHcQ==",
|
"integrity": "sha512-y1hvKXmPHvm5B7w4ln1S4uc9eV/O5+iFExSRUimnvIph11uaizFR8LFMdONN8hG3P2pipUfX4Y/fR8rAEtcHcQ==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
|
"license": "MIT",
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
"url": "https://opencollective.com/core-js"
|
"url": "https://opencollective.com/core-js"
|
||||||
|
|
@ -5913,8 +5914,9 @@
|
||||||
},
|
},
|
||||||
"node_modules/decompress-response": {
|
"node_modules/decompress-response": {
|
||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-6.0.0.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/decompress-response/-/decompress-response-6.0.0.tgz",
|
||||||
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
|
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"mimic-response": "^3.1.0"
|
"mimic-response": "^3.1.0"
|
||||||
},
|
},
|
||||||
|
|
@ -6844,8 +6846,9 @@
|
||||||
},
|
},
|
||||||
"node_modules/es6-promise": {
|
"node_modules/es6-promise": {
|
||||||
"version": "4.2.8",
|
"version": "4.2.8",
|
||||||
"resolved": "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/es6-promise/-/es6-promise-4.2.8.tgz",
|
||||||
"integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
|
"integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/escalade": {
|
"node_modules/escalade": {
|
||||||
"version": "3.2.0",
|
"version": "3.2.0",
|
||||||
|
|
@ -7880,8 +7883,9 @@
|
||||||
},
|
},
|
||||||
"node_modules/flv.js": {
|
"node_modules/flv.js": {
|
||||||
"version": "1.6.2",
|
"version": "1.6.2",
|
||||||
"resolved": "https://registry.npmmirror.com/flv.js/-/flv.js-1.6.2.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/flv.js/-/flv.js-1.6.2.tgz",
|
||||||
"integrity": "sha512-xre4gUbX1MPtgQRKj2pxJENp/RnaHaxYvy3YToVVCrSmAWUu85b9mug6pTXF6zakUjNP2lFWZ1rkSX7gxhB/2A==",
|
"integrity": "sha512-xre4gUbX1MPtgQRKj2pxJENp/RnaHaxYvy3YToVVCrSmAWUu85b9mug6pTXF6zakUjNP2lFWZ1rkSX7gxhB/2A==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"es6-promise": "^4.2.8",
|
"es6-promise": "^4.2.8",
|
||||||
"webworkify-webpack": "^2.1.5"
|
"webworkify-webpack": "^2.1.5"
|
||||||
|
|
@ -9960,8 +9964,9 @@
|
||||||
},
|
},
|
||||||
"node_modules/js-binary-schema-parser": {
|
"node_modules/js-binary-schema-parser": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmmirror.com/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz",
|
||||||
"integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg=="
|
"integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg==",
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/js-cookie": {
|
"node_modules/js-cookie": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
|
|
@ -10946,8 +10951,9 @@
|
||||||
},
|
},
|
||||||
"node_modules/mimic-response": {
|
"node_modules/mimic-response": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-3.1.0.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/mimic-response/-/mimic-response-3.1.0.tgz",
|
||||||
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
|
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
},
|
},
|
||||||
|
|
@ -12135,8 +12141,9 @@
|
||||||
},
|
},
|
||||||
"node_modules/parenthesis": {
|
"node_modules/parenthesis": {
|
||||||
"version": "3.1.8",
|
"version": "3.1.8",
|
||||||
"resolved": "https://registry.npmmirror.com/parenthesis/-/parenthesis-3.1.8.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/parenthesis/-/parenthesis-3.1.8.tgz",
|
||||||
"integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw=="
|
"integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==",
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/parse-asn1": {
|
"node_modules/parse-asn1": {
|
||||||
"version": "5.1.7",
|
"version": "5.1.7",
|
||||||
|
|
@ -14849,7 +14856,7 @@
|
||||||
},
|
},
|
||||||
"node_modules/simple-concat": {
|
"node_modules/simple-concat": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/simple-concat/-/simple-concat-1.0.1.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/simple-concat/-/simple-concat-1.0.1.tgz",
|
||||||
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
|
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -14864,11 +14871,12 @@
|
||||||
"type": "consulting",
|
"type": "consulting",
|
||||||
"url": "https://feross.org/support"
|
"url": "https://feross.org/support"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/simple-get": {
|
"node_modules/simple-get": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/simple-get/-/simple-get-4.0.1.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/simple-get/-/simple-get-4.0.1.tgz",
|
||||||
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
|
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -14884,6 +14892,7 @@
|
||||||
"url": "https://feross.org/support"
|
"url": "https://feross.org/support"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"decompress-response": "^6.0.0",
|
"decompress-response": "^6.0.0",
|
||||||
"once": "^1.3.1",
|
"once": "^1.3.1",
|
||||||
|
|
@ -15461,8 +15470,9 @@
|
||||||
},
|
},
|
||||||
"node_modules/string-split-by": {
|
"node_modules/string-split-by": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/string-split-by/-/string-split-by-1.0.0.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/string-split-by/-/string-split-by-1.0.0.tgz",
|
||||||
"integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==",
|
"integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"parenthesis": "^3.1.5"
|
"parenthesis": "^3.1.5"
|
||||||
}
|
}
|
||||||
|
|
@ -17535,8 +17545,9 @@
|
||||||
},
|
},
|
||||||
"node_modules/vue-qr": {
|
"node_modules/vue-qr": {
|
||||||
"version": "4.0.9",
|
"version": "4.0.9",
|
||||||
"resolved": "https://registry.npmmirror.com/vue-qr/-/vue-qr-4.0.9.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/vue-qr/-/vue-qr-4.0.9.tgz",
|
||||||
"integrity": "sha512-pAISV94T0MNEYA3NGjykUpsXRE2QfaNxlu9ZhEL6CERgqNc21hJYuP3hRVzAWfBQlgO18DPmZTbrFerJC3+Ikw==",
|
"integrity": "sha512-pAISV94T0MNEYA3NGjykUpsXRE2QfaNxlu9ZhEL6CERgqNc21hJYuP3hRVzAWfBQlgO18DPmZTbrFerJC3+Ikw==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"glob": "^8.0.1",
|
"glob": "^8.0.1",
|
||||||
"js-binary-schema-parser": "^2.0.2",
|
"js-binary-schema-parser": "^2.0.2",
|
||||||
|
|
@ -17546,17 +17557,19 @@
|
||||||
},
|
},
|
||||||
"node_modules/vue-qr/node_modules/brace-expansion": {
|
"node_modules/vue-qr/node_modules/brace-expansion": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0"
|
"balanced-match": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vue-qr/node_modules/glob": {
|
"node_modules/vue-qr/node_modules/glob": {
|
||||||
"version": "8.1.0",
|
"version": "8.1.0",
|
||||||
"resolved": "https://registry.npmmirror.com/glob/-/glob-8.1.0.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/glob/-/glob-8.1.0.tgz",
|
||||||
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
|
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
|
||||||
"deprecated": "Glob versions prior to v9 are no longer supported",
|
"deprecated": "Glob versions prior to v9 are no longer supported",
|
||||||
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fs.realpath": "^1.0.0",
|
"fs.realpath": "^1.0.0",
|
||||||
"inflight": "^1.0.4",
|
"inflight": "^1.0.4",
|
||||||
|
|
@ -17573,8 +17586,9 @@
|
||||||
},
|
},
|
||||||
"node_modules/vue-qr/node_modules/minimatch": {
|
"node_modules/vue-qr/node_modules/minimatch": {
|
||||||
"version": "5.1.6",
|
"version": "5.1.6",
|
||||||
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/minimatch/-/minimatch-5.1.6.tgz",
|
||||||
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
||||||
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": "^2.0.1"
|
"brace-expansion": "^2.0.1"
|
||||||
},
|
},
|
||||||
|
|
@ -18759,8 +18773,9 @@
|
||||||
},
|
},
|
||||||
"node_modules/webworkify-webpack": {
|
"node_modules/webworkify-webpack": {
|
||||||
"version": "2.1.5",
|
"version": "2.1.5",
|
||||||
"resolved": "https://registry.npmmirror.com/webworkify-webpack/-/webworkify-webpack-2.1.5.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/webworkify-webpack/-/webworkify-webpack-2.1.5.tgz",
|
||||||
"integrity": "sha512-2akF8FIyUvbiBBdD+RoHpoTbHMQF2HwjcxfDvgztAX5YwbZNyrtfUMgvfgFVsgDhDPVTlkbb5vyasqDHfIDPQw=="
|
"integrity": "sha512-2akF8FIyUvbiBBdD+RoHpoTbHMQF2HwjcxfDvgztAX5YwbZNyrtfUMgvfgFVsgDhDPVTlkbb5vyasqDHfIDPQw==",
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/which": {
|
"node_modules/which": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
|
|
@ -23227,7 +23242,7 @@
|
||||||
},
|
},
|
||||||
"core-js": {
|
"core-js": {
|
||||||
"version": "3.25.3",
|
"version": "3.25.3",
|
||||||
"resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.25.3.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/core-js/-/core-js-3.25.3.tgz",
|
||||||
"integrity": "sha512-y1hvKXmPHvm5B7w4ln1S4uc9eV/O5+iFExSRUimnvIph11uaizFR8LFMdONN8hG3P2pipUfX4Y/fR8rAEtcHcQ=="
|
"integrity": "sha512-y1hvKXmPHvm5B7w4ln1S4uc9eV/O5+iFExSRUimnvIph11uaizFR8LFMdONN8hG3P2pipUfX4Y/fR8rAEtcHcQ=="
|
||||||
},
|
},
|
||||||
"core-js-compat": {
|
"core-js-compat": {
|
||||||
|
|
@ -23619,7 +23634,7 @@
|
||||||
},
|
},
|
||||||
"decompress-response": {
|
"decompress-response": {
|
||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-6.0.0.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/decompress-response/-/decompress-response-6.0.0.tgz",
|
||||||
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
|
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"mimic-response": "^3.1.0"
|
"mimic-response": "^3.1.0"
|
||||||
|
|
@ -24379,7 +24394,7 @@
|
||||||
},
|
},
|
||||||
"es6-promise": {
|
"es6-promise": {
|
||||||
"version": "4.2.8",
|
"version": "4.2.8",
|
||||||
"resolved": "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/es6-promise/-/es6-promise-4.2.8.tgz",
|
||||||
"integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
|
"integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
|
||||||
},
|
},
|
||||||
"escalade": {
|
"escalade": {
|
||||||
|
|
@ -25190,7 +25205,7 @@
|
||||||
},
|
},
|
||||||
"flv.js": {
|
"flv.js": {
|
||||||
"version": "1.6.2",
|
"version": "1.6.2",
|
||||||
"resolved": "https://registry.npmmirror.com/flv.js/-/flv.js-1.6.2.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/flv.js/-/flv.js-1.6.2.tgz",
|
||||||
"integrity": "sha512-xre4gUbX1MPtgQRKj2pxJENp/RnaHaxYvy3YToVVCrSmAWUu85b9mug6pTXF6zakUjNP2lFWZ1rkSX7gxhB/2A==",
|
"integrity": "sha512-xre4gUbX1MPtgQRKj2pxJENp/RnaHaxYvy3YToVVCrSmAWUu85b9mug6pTXF6zakUjNP2lFWZ1rkSX7gxhB/2A==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"es6-promise": "^4.2.8",
|
"es6-promise": "^4.2.8",
|
||||||
|
|
@ -26721,7 +26736,7 @@
|
||||||
},
|
},
|
||||||
"js-binary-schema-parser": {
|
"js-binary-schema-parser": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmmirror.com/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz",
|
||||||
"integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg=="
|
"integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg=="
|
||||||
},
|
},
|
||||||
"js-cookie": {
|
"js-cookie": {
|
||||||
|
|
@ -27498,7 +27513,7 @@
|
||||||
},
|
},
|
||||||
"mimic-response": {
|
"mimic-response": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-3.1.0.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/mimic-response/-/mimic-response-3.1.0.tgz",
|
||||||
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
|
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
|
||||||
},
|
},
|
||||||
"mini-css-extract-plugin": {
|
"mini-css-extract-plugin": {
|
||||||
|
|
@ -28436,7 +28451,7 @@
|
||||||
},
|
},
|
||||||
"parenthesis": {
|
"parenthesis": {
|
||||||
"version": "3.1.8",
|
"version": "3.1.8",
|
||||||
"resolved": "https://registry.npmmirror.com/parenthesis/-/parenthesis-3.1.8.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/parenthesis/-/parenthesis-3.1.8.tgz",
|
||||||
"integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw=="
|
"integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw=="
|
||||||
},
|
},
|
||||||
"parse-asn1": {
|
"parse-asn1": {
|
||||||
|
|
@ -30651,12 +30666,12 @@
|
||||||
},
|
},
|
||||||
"simple-concat": {
|
"simple-concat": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/simple-concat/-/simple-concat-1.0.1.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/simple-concat/-/simple-concat-1.0.1.tgz",
|
||||||
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
|
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
|
||||||
},
|
},
|
||||||
"simple-get": {
|
"simple-get": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/simple-get/-/simple-get-4.0.1.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/simple-get/-/simple-get-4.0.1.tgz",
|
||||||
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
|
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"decompress-response": "^6.0.0",
|
"decompress-response": "^6.0.0",
|
||||||
|
|
@ -31158,7 +31173,7 @@
|
||||||
},
|
},
|
||||||
"string-split-by": {
|
"string-split-by": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/string-split-by/-/string-split-by-1.0.0.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/string-split-by/-/string-split-by-1.0.0.tgz",
|
||||||
"integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==",
|
"integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"parenthesis": "^3.1.5"
|
"parenthesis": "^3.1.5"
|
||||||
|
|
@ -32793,7 +32808,7 @@
|
||||||
},
|
},
|
||||||
"vue-qr": {
|
"vue-qr": {
|
||||||
"version": "4.0.9",
|
"version": "4.0.9",
|
||||||
"resolved": "https://registry.npmmirror.com/vue-qr/-/vue-qr-4.0.9.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/vue-qr/-/vue-qr-4.0.9.tgz",
|
||||||
"integrity": "sha512-pAISV94T0MNEYA3NGjykUpsXRE2QfaNxlu9ZhEL6CERgqNc21hJYuP3hRVzAWfBQlgO18DPmZTbrFerJC3+Ikw==",
|
"integrity": "sha512-pAISV94T0MNEYA3NGjykUpsXRE2QfaNxlu9ZhEL6CERgqNc21hJYuP3hRVzAWfBQlgO18DPmZTbrFerJC3+Ikw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"glob": "^8.0.1",
|
"glob": "^8.0.1",
|
||||||
|
|
@ -32804,7 +32819,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0"
|
"balanced-match": "^1.0.0"
|
||||||
|
|
@ -32812,7 +32827,7 @@
|
||||||
},
|
},
|
||||||
"glob": {
|
"glob": {
|
||||||
"version": "8.1.0",
|
"version": "8.1.0",
|
||||||
"resolved": "https://registry.npmmirror.com/glob/-/glob-8.1.0.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/glob/-/glob-8.1.0.tgz",
|
||||||
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
|
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"fs.realpath": "^1.0.0",
|
"fs.realpath": "^1.0.0",
|
||||||
|
|
@ -32824,7 +32839,7 @@
|
||||||
},
|
},
|
||||||
"minimatch": {
|
"minimatch": {
|
||||||
"version": "5.1.6",
|
"version": "5.1.6",
|
||||||
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/minimatch/-/minimatch-5.1.6.tgz",
|
||||||
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"brace-expansion": "^2.0.1"
|
"brace-expansion": "^2.0.1"
|
||||||
|
|
@ -33790,7 +33805,7 @@
|
||||||
},
|
},
|
||||||
"webworkify-webpack": {
|
"webworkify-webpack": {
|
||||||
"version": "2.1.5",
|
"version": "2.1.5",
|
||||||
"resolved": "https://registry.npmmirror.com/webworkify-webpack/-/webworkify-webpack-2.1.5.tgz",
|
"resolved": "https://repo.huaweicloud.com/repository/npm/webworkify-webpack/-/webworkify-webpack-2.1.5.tgz",
|
||||||
"integrity": "sha512-2akF8FIyUvbiBBdD+RoHpoTbHMQF2HwjcxfDvgztAX5YwbZNyrtfUMgvfgFVsgDhDPVTlkbb5vyasqDHfIDPQw=="
|
"integrity": "sha512-2akF8FIyUvbiBBdD+RoHpoTbHMQF2HwjcxfDvgztAX5YwbZNyrtfUMgvfgFVsgDhDPVTlkbb5vyasqDHfIDPQw=="
|
||||||
},
|
},
|
||||||
"which": {
|
"which": {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "bonus",
|
"name": "bonus",
|
||||||
"version": "3.6.4",
|
"version": "3.6.4",
|
||||||
"description": "博诺思管理系统",
|
"description": "智慧工地",
|
||||||
"author": "博诺思",
|
"author": "博诺思",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.2 KiB |
|
|
@ -33,12 +33,7 @@
|
||||||
style="width: 240px"
|
style="width: 240px"
|
||||||
:placeholder="`请选择${item.f_label}`"
|
:placeholder="`请选择${item.f_label}`"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option v-for="(sel, v) in item.f_selList" :key="v" :label="sel.label" :value="sel.value" />
|
||||||
v-for="(sel, v) in item.f_selList"
|
|
||||||
:key="v"
|
|
||||||
:label="sel.label"
|
|
||||||
:value="sel.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-cascader
|
<el-cascader
|
||||||
v-if="item.f_type === 'selCasAdd'"
|
v-if="item.f_type === 'selCasAdd'"
|
||||||
|
|
@ -47,14 +42,7 @@
|
||||||
:props="item.optionProps"
|
:props="item.optionProps"
|
||||||
:show-all-levels="false"
|
:show-all-levels="false"
|
||||||
clearable
|
clearable
|
||||||
@change="
|
@change="handleCasAdd($event, item.f_model, cascaderFunc, extraTableProp)"
|
||||||
handleCasAdd(
|
|
||||||
$event,
|
|
||||||
item.f_model,
|
|
||||||
cascaderFunc,
|
|
||||||
extraTableProp,
|
|
||||||
)
|
|
||||||
"
|
|
||||||
style="width: 240px"
|
style="width: 240px"
|
||||||
/>
|
/>
|
||||||
<el-cascader
|
<el-cascader
|
||||||
|
|
@ -93,29 +81,13 @@
|
||||||
></el-input-number>
|
></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="showBtnCrews">
|
<el-form-item v-if="showBtnCrews">
|
||||||
<el-button
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" v-if="showSearchBtn"
|
||||||
type="primary"
|
|
||||||
icon="el-icon-search"
|
|
||||||
size="mini"
|
|
||||||
@click="handleQuery"
|
|
||||||
v-if="showSearchBtn"
|
|
||||||
>查询</el-button
|
>查询</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button type="success" icon="el-icon-edit" size="mini" @click="handleFill" v-if="!showSearchBtn"
|
||||||
type="success"
|
|
||||||
icon="el-icon-edit"
|
|
||||||
size="mini"
|
|
||||||
@click="handleFill"
|
|
||||||
v-if="!showSearchBtn"
|
|
||||||
>填充</el-button
|
>填充</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button type="warning" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
type="warning"
|
|
||||||
icon="el-icon-refresh"
|
|
||||||
size="mini"
|
|
||||||
@click="resetQuery"
|
|
||||||
>重置</el-button
|
|
||||||
>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<!-- 按钮集群 -->
|
<!-- 按钮集群 -->
|
||||||
|
|
@ -145,21 +117,13 @@
|
||||||
@selection-change="handleSelectionChange"
|
@selection-change="handleSelectionChange"
|
||||||
>
|
>
|
||||||
>
|
>
|
||||||
<el-table-column
|
<el-table-column type="selection" width="45" align="center" v-if="showSel" :selectable="selectable" />
|
||||||
type="selection"
|
|
||||||
width="45"
|
|
||||||
align="center"
|
|
||||||
v-if="showSel"
|
|
||||||
:selectable="selectable"
|
|
||||||
/>
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
width="55"
|
width="55"
|
||||||
align="center"
|
align="center"
|
||||||
label="序号"
|
label="序号"
|
||||||
type="index"
|
type="index"
|
||||||
:index="
|
:index="indexContinuation(queryParams.pageNum, queryParams.pageSize)"
|
||||||
indexContinuation(queryParams.pageNum, queryParams.pageSize)
|
|
||||||
"
|
|
||||||
v-if="showIndex"
|
v-if="showIndex"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
|
@ -184,8 +148,9 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
align="center"
|
align="center"
|
||||||
label="操作"
|
label="操作"
|
||||||
v-if="handleShow && showOperation"
|
|
||||||
:min-width="dynamicWidth"
|
:min-width="dynamicWidth"
|
||||||
|
:show-overflow-tooltip="false"
|
||||||
|
v-if="handleShow && showOperation"
|
||||||
>
|
>
|
||||||
<template slot-scope="{ row }">
|
<template slot-scope="{ row }">
|
||||||
<div class="optionDivRef">
|
<div class="optionDivRef">
|
||||||
|
|
@ -491,8 +456,7 @@ export default {
|
||||||
},
|
},
|
||||||
/** 动态设置操作列的列宽 */
|
/** 动态设置操作列的列宽 */
|
||||||
getOperatorWidth() {
|
getOperatorWidth() {
|
||||||
const operatorColumn =
|
const operatorColumn = document.getElementsByClassName('optionDivRef')
|
||||||
document.getElementsByClassName('optionDivRef')
|
|
||||||
|
|
||||||
// 默认宽度
|
// 默认宽度
|
||||||
let width = 100
|
let width = 100
|
||||||
|
|
@ -507,12 +471,9 @@ export default {
|
||||||
width = width > item.offsetWidth ? width : item.offsetWidth
|
width = width > item.offsetWidth ? width : item.offsetWidth
|
||||||
const buttons = item.getElementsByClassName('el-button')
|
const buttons = item.getElementsByClassName('el-button')
|
||||||
buttonCount = buttons.length
|
buttonCount = buttons.length
|
||||||
buttonCount =
|
buttonCount = buttonCount > buttons.length ? buttonCount : buttons.length
|
||||||
buttonCount > buttons.length
|
|
||||||
? buttonCount
|
|
||||||
: buttons.length
|
|
||||||
})
|
})
|
||||||
return width
|
return width + 10
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="qr-code">
|
<div class="qr-code">
|
||||||
<img
|
<img src="../assets/images/login/qr-code.svg" alt="" style="height: 30px; width: 30px" />
|
||||||
src="../assets/images/login/qr-code.svg"
|
|
||||||
alt=""
|
|
||||||
style="height: 30px; width: 30px"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -21,19 +17,9 @@
|
||||||
<h2> 欢迎登录智慧工地平台 </h2>
|
<h2> 欢迎登录智慧工地平台 </h2>
|
||||||
|
|
||||||
<div class="taps-btn">
|
<div class="taps-btn">
|
||||||
<div
|
<div @click="onCheckPassWord" :class="{ 'active-taps': activeIndex === 0 }"> 密码登录 </div>
|
||||||
@click="onCheckPassWord"
|
|
||||||
:class="{ 'active-taps': activeIndex === 0 }"
|
|
||||||
>
|
|
||||||
密码登录
|
|
||||||
</div>
|
|
||||||
<div>|</div>
|
<div>|</div>
|
||||||
<div
|
<div @click="onCheckMessage" :class="{ 'active-taps': activeIndex === 1 }"> 验证码登录 </div>
|
||||||
@click="onCheckMessage"
|
|
||||||
:class="{ 'active-taps': activeIndex === 1 }"
|
|
||||||
>
|
|
||||||
验证码登录
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-form ref="loginForm" :model="loginForm" :rules="loginRules">
|
<el-form ref="loginForm" :model="loginForm" :rules="loginRules">
|
||||||
|
|
@ -43,21 +29,11 @@
|
||||||
v-model="loginForm.username"
|
v-model="loginForm.username"
|
||||||
type="text"
|
type="text"
|
||||||
auto-complete="off"
|
auto-complete="off"
|
||||||
:placeholder="`用户名${
|
:placeholder="`用户名${config.loginConfig.phonePassword ? '/手机号' : ''}${
|
||||||
config.loginConfig.phonePassword
|
config.loginConfig.emailPassword ? '/邮箱' : ''
|
||||||
? '/手机号'
|
|
||||||
: ''
|
|
||||||
}${
|
|
||||||
config.loginConfig.emailPassword
|
|
||||||
? '/邮箱'
|
|
||||||
: ''
|
|
||||||
}`"
|
}`"
|
||||||
>
|
>
|
||||||
<svg-icon
|
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
||||||
slot="prefix"
|
|
||||||
icon-class="user"
|
|
||||||
class="el-input__icon input-icon"
|
|
||||||
/>
|
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="password">
|
<el-form-item prop="password">
|
||||||
|
|
@ -66,13 +42,10 @@
|
||||||
type="password"
|
type="password"
|
||||||
auto-complete="off"
|
auto-complete="off"
|
||||||
placeholder="密码"
|
placeholder="密码"
|
||||||
|
show-password
|
||||||
@keyup.enter.native="handleLogin"
|
@keyup.enter.native="handleLogin"
|
||||||
>
|
>
|
||||||
<svg-icon
|
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
|
||||||
slot="prefix"
|
|
||||||
icon-class="password"
|
|
||||||
class="el-input__icon input-icon"
|
|
||||||
/>
|
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="code" v-if="captchaEnabled">
|
<el-form-item prop="code" v-if="captchaEnabled">
|
||||||
|
|
@ -83,48 +56,25 @@
|
||||||
style="width: 63%"
|
style="width: 63%"
|
||||||
@keyup.enter.native="handleLogin"
|
@keyup.enter.native="handleLogin"
|
||||||
>
|
>
|
||||||
<svg-icon
|
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
|
||||||
slot="prefix"
|
|
||||||
icon-class="validCode"
|
|
||||||
class="el-input__icon input-icon"
|
|
||||||
/>
|
|
||||||
</el-input>
|
</el-input>
|
||||||
<div class="login-code">
|
<div class="login-code">
|
||||||
<img
|
<img :src="codeUrl" @click="getCode" class="login-code-img" />
|
||||||
:src="codeUrl"
|
|
||||||
@click="getCode"
|
|
||||||
class="login-code-img"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-show="isAdmin" prop="verificationCode">
|
<el-form-item v-show="isAdmin" prop="verificationCode">
|
||||||
<el-input
|
<el-input v-model="loginForm.verificationCode" placeholder="请输入验证码">
|
||||||
v-model="loginForm.verificationCode"
|
|
||||||
placeholder="请输入验证码"
|
|
||||||
>
|
|
||||||
<template slot="append">
|
<template slot="append">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="sendAdminCode"
|
@click="sendAdminCode"
|
||||||
:disabled="
|
:disabled="isSendingCode || captchaEnabled ? !loginForm.code : false"
|
||||||
isSendingCode || captchaEnabled
|
|
||||||
? !loginForm.code
|
|
||||||
: false
|
|
||||||
"
|
|
||||||
class="send-code-button"
|
class="send-code-button"
|
||||||
>
|
>
|
||||||
{{
|
{{ countdown === 0 ? '获取验证码' : `${countdown}s` }}
|
||||||
countdown === 0
|
|
||||||
? '获取验证码'
|
|
||||||
: `${countdown}s`
|
|
||||||
}}
|
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
<svg-icon
|
<svg-icon slot="prefix" icon-class="message" class="el-input__icon input-icon" />
|
||||||
slot="prefix"
|
|
||||||
icon-class="message"
|
|
||||||
class="el-input__icon input-icon"
|
|
||||||
/>
|
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
|
@ -135,11 +85,7 @@
|
||||||
size="medium"
|
size="medium"
|
||||||
type="primary"
|
type="primary"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@click="
|
@click="loginMethod === 'password' ? IsAdmin() : handleLogin()"
|
||||||
loginMethod === 'password'
|
|
||||||
? IsAdmin()
|
|
||||||
: handleLogin()
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
<span v-if="!loading">登 录</span>
|
<span v-if="!loading">登 录</span>
|
||||||
<span v-else>登 录 中...</span>
|
<span v-else>登 录 中...</span>
|
||||||
|
|
@ -260,9 +206,7 @@ export default {
|
||||||
) // 获取 JSON 对象
|
) // 获取 JSON 对象
|
||||||
},
|
},
|
||||||
loginRules() {
|
loginRules() {
|
||||||
return this.loginMethod === 'password'
|
return this.loginMethod === 'password' ? this.passwordLoginRules : this.mobileLoginRules
|
||||||
? this.passwordLoginRules
|
|
||||||
: this.mobileLoginRules
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
|
@ -280,8 +224,7 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
getCode() {
|
getCode() {
|
||||||
getCodeImg().then((res) => {
|
getCodeImg().then((res) => {
|
||||||
this.captchaEnabled =
|
this.captchaEnabled = res.captchaEnabled !== undefined ? res.captchaEnabled : true
|
||||||
res.captchaEnabled !== undefined ? res.captchaEnabled : true
|
|
||||||
if (this.captchaEnabled) {
|
if (this.captchaEnabled) {
|
||||||
this.codeUrl = 'data:image/gif;base64,' + res.img
|
this.codeUrl = 'data:image/gif;base64,' + res.img
|
||||||
this.loginForm.uuid = res.uuid
|
this.loginForm.uuid = res.uuid
|
||||||
|
|
@ -304,13 +247,9 @@ export default {
|
||||||
Cookies.set('username', this.loginForm.username, {
|
Cookies.set('username', this.loginForm.username, {
|
||||||
expires: 30,
|
expires: 30,
|
||||||
})
|
})
|
||||||
Cookies.set(
|
Cookies.set('password', encrypt(this.loginForm.password), {
|
||||||
'password',
|
|
||||||
encrypt(this.loginForm.password),
|
|
||||||
{
|
|
||||||
expires: 30,
|
expires: 30,
|
||||||
},
|
})
|
||||||
)
|
|
||||||
Cookies.set('rememberMe', this.loginForm.rememberMe, {
|
Cookies.set('rememberMe', this.loginForm.rememberMe, {
|
||||||
expires: 30,
|
expires: 30,
|
||||||
})
|
})
|
||||||
|
|
@ -327,9 +266,7 @@ export default {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
if (res.isLogin) {
|
if (res.isLogin) {
|
||||||
this.$modal
|
this.$modal
|
||||||
.confirm(
|
.confirm('账号已在其他地方登录是否继续登录!!!!')
|
||||||
'账号已在其他地方登录是否继续登录!!!!',
|
|
||||||
)
|
|
||||||
.then(function () {
|
.then(function () {
|
||||||
return this.$router.push({
|
return this.$router.push({
|
||||||
path: this.redirect || '/',
|
path: this.redirect || '/',
|
||||||
|
|
@ -360,9 +297,7 @@ export default {
|
||||||
this.$store.dispatch('IsAdmin', this.loginForm).then((res) => {
|
this.$store.dispatch('IsAdmin', this.loginForm).then((res) => {
|
||||||
if (res.data) {
|
if (res.data) {
|
||||||
this.isAdmin = res.data
|
this.isAdmin = res.data
|
||||||
this.$message.success(
|
this.$message.success('检测到您是超级管理账号,需进行手机检验')
|
||||||
'检测到您是超级管理账号,需进行手机检验',
|
|
||||||
)
|
|
||||||
} else {
|
} else {
|
||||||
this.handleLogin()
|
this.handleLogin()
|
||||||
}
|
}
|
||||||
|
|
@ -379,9 +314,7 @@ export default {
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.data) {
|
if (res.data) {
|
||||||
this.$modal
|
this.$modal
|
||||||
.confirm(
|
.confirm('账号已在其他地方登录是否继续登录!!!!')
|
||||||
'账号已在其他地方登录是否继续登录!!!!',
|
|
||||||
)
|
|
||||||
.then(function () {
|
.then(function () {
|
||||||
return that.handleLogin()
|
return that.handleLogin()
|
||||||
})
|
})
|
||||||
|
|
@ -472,8 +405,7 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
toggleLoginMethod() {
|
toggleLoginMethod() {
|
||||||
this.loginMethod =
|
this.loginMethod = this.loginMethod === 'password' ? 'mobile' : 'password'
|
||||||
this.loginMethod === 'password' ? 'mobile' : 'password'
|
|
||||||
this.loginForm.username = ''
|
this.loginForm.username = ''
|
||||||
this.loginForm.password = ''
|
this.loginForm.password = ''
|
||||||
this.loginForm.code = ''
|
this.loginForm.code = ''
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
<template>
|
||||||
|
<div class="app-container"> 属性配置 </div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style></style>
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
<template>
|
||||||
|
<!-- 新增修改弹框 -->
|
||||||
|
<div>
|
||||||
|
<el-form label-width="auto" :model="addOrEditForm" :rules="addOrEditFormRef" ref="addOrEditFormRef">
|
||||||
|
<!-- <TitleTip :titleText="`基本信息`" /> -->
|
||||||
|
<el-form-item label="所属工程:" prop="projectName">
|
||||||
|
<el-input v-model="addOrEditForm.projectName" clearable />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="设备类型:" prop="ownerUnit">
|
||||||
|
<!-- <el-input v-model="addOrEditForm.ownerUnit" clearable /> -->
|
||||||
|
|
||||||
|
<el-select v-model="addOrEditForm.ownerUnit" clearable filterable>
|
||||||
|
<el-option v-for="type in typeList" :key="type.id" :label="type.label" :value="type.id" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="计划开工日期:" prop="planStartTime">
|
||||||
|
<el-date-picker
|
||||||
|
type="date"
|
||||||
|
style="width: 100%"
|
||||||
|
placeholder="选择日期"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
v-model="addOrEditForm.planStartTime"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="计划竣工日期:" prop="planEndTime">
|
||||||
|
<el-date-picker
|
||||||
|
type="date"
|
||||||
|
style="width: 100%"
|
||||||
|
placeholder="选择日期"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
v-model="addOrEditForm.planEndTime"
|
||||||
|
/>
|
||||||
|
</el-form-item> -->
|
||||||
|
|
||||||
|
<!-- <TitleTip :titleText="`其他信息`" /> -->
|
||||||
|
<el-form-item label="设备名称:">
|
||||||
|
<el-input v-model="addOrEditForm.address" clearable />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="设备编码:">
|
||||||
|
<el-input v-model="addOrEditForm.projectAmount" clearable />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="设备级联编码:">
|
||||||
|
<el-input v-model="addOrEditForm.projectManager" clearable />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="设备状态:">
|
||||||
|
<el-input
|
||||||
|
clearable
|
||||||
|
type="textarea"
|
||||||
|
:autosize="{ minRows: 3, maxRows: 10 }"
|
||||||
|
v-model="addOrEditForm.projectScale"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="设备信号:">
|
||||||
|
<el-input v-model="addOrEditForm.projectAmount" clearable />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="监测区域:">
|
||||||
|
<el-input v-model="addOrEditForm.projectAmount" clearable />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="所属边代:">
|
||||||
|
<el-input v-model="addOrEditForm.projectAmount" clearable />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item class="handle">
|
||||||
|
<el-button> 取消 </el-button>
|
||||||
|
<el-button type="primary" @click="onSubmitForm"> 保存 </el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { addProjectAPI } from '@/api/project-manage/index.js'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
const validatePlanStartTime = (rule, value, callback) => {
|
||||||
|
if (!value) {
|
||||||
|
return callback(new Error('请选择计划开工日期'))
|
||||||
|
}
|
||||||
|
const endTime = this.addOrEditForm.planEndTime
|
||||||
|
if (endTime && new Date(value) >= new Date(endTime)) {
|
||||||
|
return callback(new Error('计划开工日期必须小于计划竣工日期'))
|
||||||
|
}
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
const validatePlanEndTime = (rule, value, callback) => {
|
||||||
|
if (!value) {
|
||||||
|
return callback(new Error('请选择计划竣工日期'))
|
||||||
|
}
|
||||||
|
const endTime = this.addOrEditForm.planStartTime
|
||||||
|
if (endTime && new Date(value) <= new Date(endTime)) {
|
||||||
|
return callback(new Error('计划竣工日期必须大于计划开工日期'))
|
||||||
|
}
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
// 新增或修改接口
|
||||||
|
addOrEditForm: {
|
||||||
|
projectName: '', // 项目名称
|
||||||
|
ownerUnit: '', // 业主单位
|
||||||
|
planStartTime: '', //计划开工日期
|
||||||
|
planEndTime: '', // 计划竣工日期
|
||||||
|
address: '', // 项目地址
|
||||||
|
projectAmount: '', // 项目金额
|
||||||
|
projectManager: '', // 项目负责任人
|
||||||
|
projectScale: '', // 工程规格
|
||||||
|
},
|
||||||
|
addOrEditFormRef: {
|
||||||
|
projectName: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '项目名称',
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
min: 1,
|
||||||
|
max: 30,
|
||||||
|
message: '长度在 1 到 30 个字符',
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
ownerUnit: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入业主单位',
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
min: 1,
|
||||||
|
max: 20,
|
||||||
|
message: '长度在 1 到 20 个字符',
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
planStartTime: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择计划开工日期',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
{ validator: validatePlanStartTime, trigger: 'change' },
|
||||||
|
],
|
||||||
|
planEndTime: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择计划竣工日期',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
{ validator: validatePlanEndTime, trigger: 'change' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
handleClose() {
|
||||||
|
this.$refs.addOrEditFormRef.resetFields()
|
||||||
|
// this.$emit('update:formDialogVisible', false)
|
||||||
|
},
|
||||||
|
// 表单提交
|
||||||
|
onSubmitForm() {
|
||||||
|
this.$refs.addOrEditFormRef.validate(async (valid) => {
|
||||||
|
if (valid) {
|
||||||
|
const res = await addProjectAPI(this.addOrEditForm)
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$modal.msgSuccess('新增成功')
|
||||||
|
}
|
||||||
|
// this.$emit('update:formDialogVisible', false)
|
||||||
|
this.$emit('onCloseDialog')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
async mounted() {},
|
||||||
|
watch: {},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-descriptions :column="2" border>
|
||||||
|
<el-descriptions-item label="项目名称"></el-descriptions-item>
|
||||||
|
<el-descriptions-item label="业主单位"></el-descriptions-item>
|
||||||
|
<el-descriptions-item label="项目地址">苏州市</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="项目金额(万元)">
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item
|
||||||
|
label="计划开工日期"
|
||||||
|
:contentStyle="{ 'text-align': 'right' }"
|
||||||
|
>江苏省苏州市吴中区吴中大道 1188 号</el-descriptions-item
|
||||||
|
>
|
||||||
|
<el-descriptions-item label="计划竣工日期"
|
||||||
|
>苏州市</el-descriptions-item
|
||||||
|
>
|
||||||
|
<el-descriptions-item label="计划竣工日期"
|
||||||
|
>项目负责人</el-descriptions-item
|
||||||
|
>
|
||||||
|
<el-descriptions-item label="计划竣工日期"
|
||||||
|
>项目规模</el-descriptions-item
|
||||||
|
>
|
||||||
|
</el-descriptions>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style></style>
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
export const formLabel = [
|
||||||
|
{ f_label: '搜索关键词', f_model: 'proName', f_type: 'ipt', isShow: false },
|
||||||
|
{ f_label: '设备状态', f_model: 'relUser', f_type: 'sel', isShow: false },
|
||||||
|
{ f_label: '设备启用', f_model: 'relUser', f_type: 'sel', isShow: false },
|
||||||
|
]
|
||||||
|
export const columnsList = [
|
||||||
|
{ t_props: 'projectName', t_label: '所属工程' },
|
||||||
|
{ t_props: 'address', t_label: '设备类型' },
|
||||||
|
{ t_props: 'planStartTime', t_label: '设备编码' },
|
||||||
|
{ t_props: 'planEndTime', t_label: '设备名称' },
|
||||||
|
{ t_props: 'ownerUnit', t_label: '设备级联编码' },
|
||||||
|
{ t_props: 'projectStatus', t_label: '设备状态', t_slot: 'status' },
|
||||||
|
{ t_props: 'auditStatus', t_label: '设备信号' },
|
||||||
|
{ t_props: 'auditStatus', t_label: '所属边带' },
|
||||||
|
{ t_props: 'auditStatus', t_label: '监测区域' },
|
||||||
|
{ t_props: 'auditStatus', t_label: '备注' },
|
||||||
|
{ t_props: 'auditStatus', t_label: '操作' },
|
||||||
|
]
|
||||||
|
|
||||||
|
export const dialogConfig = {
|
||||||
|
outerWidth: '50%',
|
||||||
|
outerTitle: '设备新增',
|
||||||
|
outerVisible: false,
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,88 @@
|
||||||
|
<template>
|
||||||
|
<!-- 感知设备 ---- 设备管理 -->
|
||||||
|
<div class="app-container">
|
||||||
|
<TableModel :formLabel="formLabel" :columnsList="columnsList" :request-api="getProjectListAPI">
|
||||||
|
<template slot="btn">
|
||||||
|
<el-button size="mini" type="primary" icon="el-icon-download" @click="handleExport()"> 导出 </el-button>
|
||||||
|
<el-button size="mini" type="primary" icon="el-icon-plus" @click="handleAddData()"> 新增 </el-button>
|
||||||
|
</template>
|
||||||
|
<template slot="handle" slot-scope="{ data }">
|
||||||
|
<el-button size="mini" type="primary" @click="handleEditData(data)" icon="el-icon-edit">
|
||||||
|
修改
|
||||||
|
</el-button>
|
||||||
|
<el-button size="mini" type="success" @click="handleDetails(data)" icon="el-icon-info">
|
||||||
|
详情
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="danger"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDeleteData(data.id, deleteWarningApi)"
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template slot="status" slot-scope="{ data }">
|
||||||
|
<el-tag size="mini">状态 </el-tag>
|
||||||
|
</template>
|
||||||
|
</TableModel>
|
||||||
|
|
||||||
|
<DialogModel :dialogConfig="dialogConfig" @closeDialogOuter="closeDialogOuter">
|
||||||
|
<template slot="outerContent">
|
||||||
|
<AddEditForm @onCloseDialog="closeDialogOuter" v-if="dialogType === 1 || dialogType === 2" />
|
||||||
|
<ProjectDetails v-else />
|
||||||
|
</template>
|
||||||
|
</DialogModel>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import TableModel from '@/components/TableModel'
|
||||||
|
import DialogModel from '@/components/DialogModel'
|
||||||
|
import AddEditForm from './components/add-edit-form'
|
||||||
|
import ProjectDetails from './components/project-details'
|
||||||
|
import { formLabel, columnsList, dialogConfig } from './config'
|
||||||
|
import { getProjectListAPI } from '@/api/project-manage/index.js'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
TableModel,
|
||||||
|
DialogModel,
|
||||||
|
AddEditForm,
|
||||||
|
ProjectDetails,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
formLabel,
|
||||||
|
columnsList,
|
||||||
|
dialogConfig,
|
||||||
|
getProjectListAPI,
|
||||||
|
dialogType: 1,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleExport() {
|
||||||
|
console.log('导出')
|
||||||
|
},
|
||||||
|
handleAddData() {
|
||||||
|
console.log('新增')
|
||||||
|
this.dialogType = 1
|
||||||
|
this.dialogConfig.outerTitle = '设备新增'
|
||||||
|
this.dialogConfig.outerVisible = true
|
||||||
|
},
|
||||||
|
handleDetails() {},
|
||||||
|
handleEditData() {
|
||||||
|
this.dialogType = 2
|
||||||
|
this.dialogConfig.outerTitle = '设备修改'
|
||||||
|
this.dialogConfig.outerVisible = true
|
||||||
|
},
|
||||||
|
handleDeleteData() {},
|
||||||
|
/** 关闭外侧弹框 */
|
||||||
|
closeDialogOuter() {
|
||||||
|
this.dialogConfig.outerVisible = false
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style></style>
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<div class="filter-container">
|
<div class="filter-container">
|
||||||
|
<el-input
|
||||||
<el-input v-model="listQuery.ip" placeholder="请输入IP地址"
|
v-model="listQuery.ip"
|
||||||
style="width: 200px" class="filter-item ml-20" :maxlength="30"
|
placeholder="请输入IP地址"
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item ml-20"
|
||||||
|
:maxlength="30"
|
||||||
@keyup.enter.native="handleFilter"
|
@keyup.enter.native="handleFilter"
|
||||||
/>
|
/>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
|
|
@ -16,29 +19,61 @@
|
||||||
start-placeholder="开始日期"
|
start-placeholder="开始日期"
|
||||||
end-placeholder="结束日期"
|
end-placeholder="结束日期"
|
||||||
/>
|
/>
|
||||||
<el-select v-model="listQuery.grade" placeholder="请选择异常等级" style="width: 200px" class="filter-item ml-20">
|
<el-select
|
||||||
<el-option v-for="item in Object.keys(levelList)" :key="item" :value="levelList[item]" :label="levelList[item]" />
|
v-model="listQuery.grade"
|
||||||
|
placeholder="请选择异常等级"
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item ml-20"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in Object.keys(levelList)"
|
||||||
|
:key="item"
|
||||||
|
:value="levelList[item]"
|
||||||
|
:label="levelList[item]"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<!-- <el-input v-model="listQuery.errType" placeholder="请输入异常类型"
|
<!-- <el-input v-model="listQuery.errType" placeholder="请输入异常类型"
|
||||||
style="width: 200px" class="filter-item" :maxlength="30"
|
style="width: 200px" class="filter-item" :maxlength="30"
|
||||||
@keyup.enter.native="handleFilter"
|
@keyup.enter.native="handleFilter"
|
||||||
/> -->
|
/> -->
|
||||||
<el-select v-model="listQuery.errType" placeholder="请选择异常类型" style="width: 200px" class="filter-item ml-20">
|
<el-select
|
||||||
<el-option v-for="item in Object.keys(typeList)" :key="item" :value="typeList[item]" :label="typeList[item]" />
|
v-model="listQuery.errType"
|
||||||
|
placeholder="请选择异常类型"
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item ml-20"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in Object.keys(typeList)"
|
||||||
|
:key="item"
|
||||||
|
:value="typeList[item]"
|
||||||
|
:label="typeList[item]"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<el-select v-model="listQuery.logSort" clearable filterable style="width: 200px" class="filter-item ml-20" placeholder="请选择" >
|
<el-select
|
||||||
|
v-model="listQuery.logSort"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item ml-20"
|
||||||
|
placeholder="请选择"
|
||||||
|
>
|
||||||
<el-option v-for="item in timeList" :key="item.id" :label="item.name" :value="item.id" />
|
<el-option v-for="item in timeList" :key="item.id" :label="item.name" :value="item.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-select v-model="listQuery.logDesc" clearable filterable style="width: 200px" class="filter-item ml-20" placeholder="请选择" >
|
<el-select
|
||||||
|
v-model="listQuery.logDesc"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item ml-20"
|
||||||
|
placeholder="请选择"
|
||||||
|
>
|
||||||
<el-option v-for="item in sortList" :key="item.id" :label="item.name" :value="item.id" />
|
<el-option v-for="item in sortList" :key="item.id" :label="item.name" :value="item.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button style="margin-left: 20px" class="filter-item" type="primary" @click="handleFilter">
|
<el-button style="margin-left: 20px" class="filter-item" type="primary" @click="handleFilter">
|
||||||
查询
|
查询
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button style="margin-left: 20px" class="filter-item" @click="resetFilter">
|
<el-button style="margin-left: 20px" class="filter-item" @click="resetFilter"> 重置 </el-button>
|
||||||
重置
|
|
||||||
</el-button>
|
|
||||||
<el-button @click="handleBackups" class="filter-item" style="margin-left: 20px" type="warning">
|
<el-button @click="handleBackups" class="filter-item" style="margin-left: 20px" type="warning">
|
||||||
备份
|
备份
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -55,27 +90,25 @@
|
||||||
:max-height="tableHeight"
|
:max-height="tableHeight"
|
||||||
>
|
>
|
||||||
<el-table-column label="序号" align="center" width="80" type="index">
|
<el-table-column label="序号" align="center" width="80" type="index">
|
||||||
<template scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ (listQuery.pageNum - 1) * listQuery.pageSize + scope.$index + 1 }}</span>
|
<span>{{ (listQuery.pageNum - 1) * listQuery.pageSize + scope.$index + 1 }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作人" align="center" prop="operaUserName">
|
<el-table-column label="操作人" align="center" prop="operaUserName">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.operaUserName||'/' }}</span>
|
<span>{{ scope.row.operaUserName || '/' }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作时间" align="center" prop="operTime" width="180"/>
|
<el-table-column label="操作时间" align="center" prop="operTime" width="180" />
|
||||||
<el-table-column label="IP地址" align="center" prop="ip"/>
|
<el-table-column label="IP地址" align="center" prop="ip" />
|
||||||
<el-table-column label="操作模块" align="center" prop="model" >
|
<el-table-column label="操作模块" align="center" prop="model">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.model||'/' }}</span>
|
<span>{{ scope.row.model || '/' }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="异常类型" align="center" prop="errType" />
|
<el-table-column label="异常类型" align="center" prop="errType" />
|
||||||
<el-table-column label="异常原因" align="center" prop="operateDetail"/>
|
<el-table-column label="异常原因" align="center" prop="operateDetail" />
|
||||||
<el-table-column label="异常等级" align="center" prop="grade"/>
|
<el-table-column label="异常等级" align="center" prop="grade" />
|
||||||
<!-- <el-table-column label="事件结果" align="center" prop="failureReason"/> -->
|
<!-- <el-table-column label="事件结果" align="center" prop="failureReason"/> -->
|
||||||
<el-table-column label="操作类型" align="center" prop="operType" />
|
<el-table-column label="操作类型" align="center" prop="operType" />
|
||||||
<!--
|
<!--
|
||||||
|
|
@ -108,17 +141,16 @@ import Pagination from '@/components/Pagination'
|
||||||
import _ from 'lodash/fp'
|
import _ from 'lodash/fp'
|
||||||
import { downloadFile } from '@/utils/download'
|
import { downloadFile } from '@/utils/download'
|
||||||
|
|
||||||
import { getErrLogs,downloadErrLogs } from '@/api/system/log'
|
import { getErrLogs, downloadErrLogs } from '@/api/system/log'
|
||||||
|
|
||||||
|
|
||||||
const levelList = {
|
const levelList = {
|
||||||
1:'高',
|
1: '高',
|
||||||
2:'中',
|
2: '中',
|
||||||
3:'低'
|
3: '低',
|
||||||
};
|
}
|
||||||
const typeList = {
|
const typeList = {
|
||||||
1:'越权访问',
|
1: '越权访问',
|
||||||
2:'IP异常',
|
2: 'IP异常',
|
||||||
// 3:'删除',
|
// 3:'删除',
|
||||||
// 4:'查询',
|
// 4:'查询',
|
||||||
// 5:'导出',
|
// 5:'导出',
|
||||||
|
|
@ -126,7 +158,7 @@ const typeList = {
|
||||||
// 7:'备份',
|
// 7:'备份',
|
||||||
// 8:'登录',
|
// 8:'登录',
|
||||||
// 9:'登出'
|
// 9:'登出'
|
||||||
};
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { Pagination },
|
components: { Pagination },
|
||||||
|
|
@ -139,19 +171,27 @@ export default {
|
||||||
listLoading: false,
|
listLoading: false,
|
||||||
tableHeight: 650,
|
tableHeight: 650,
|
||||||
typeList: typeList,
|
typeList: typeList,
|
||||||
timeList:[{id:1,name:'时间'},{id:2,name:'操作人'},{id:4,name:'ip'},{id:5,name:'异常等级'}],
|
timeList: [
|
||||||
sortList:[{id:1,name:'倒序'},{id:2,name:'升序'}],
|
{ id: 1, name: '时间' },
|
||||||
|
{ id: 2, name: '操作人' },
|
||||||
|
{ id: 4, name: 'ip' },
|
||||||
|
{ id: 5, name: '异常等级' },
|
||||||
|
],
|
||||||
|
sortList: [
|
||||||
|
{ id: 1, name: '倒序' },
|
||||||
|
{ id: 2, name: '升序' },
|
||||||
|
],
|
||||||
listQuery: {
|
listQuery: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
errType: '',
|
errType: '',
|
||||||
ip: '',
|
ip: '',
|
||||||
errLevel: '',
|
errLevel: '',
|
||||||
operTime:'',
|
operTime: '',
|
||||||
// logSort:1,
|
// logSort:1,
|
||||||
logDesc:1,
|
logDesc: 1,
|
||||||
},
|
},
|
||||||
rangeDate:[],
|
rangeDate: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
@ -159,8 +199,8 @@ export default {
|
||||||
// this.getOperate()
|
// this.getOperate()
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.listQuery.operTime = this.getCurrentDate()+' - '+this.getCurrentDate();
|
this.listQuery.operTime = this.getCurrentDate() + ' - ' + this.getCurrentDate()
|
||||||
this.rangeDate = [this.getCurrentDate(),this.getCurrentDate()]
|
this.rangeDate = [this.getCurrentDate(), this.getCurrentDate()]
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -168,7 +208,7 @@ export default {
|
||||||
return this.levelList[val]
|
return this.levelList[val]
|
||||||
},
|
},
|
||||||
//获取下拉数据
|
//获取下拉数据
|
||||||
getOperate(){
|
getOperate() {
|
||||||
// getOperateList().then((response) => {
|
// getOperateList().then((response) => {
|
||||||
// this.typeList = response.data
|
// this.typeList = response.data
|
||||||
// })
|
// })
|
||||||
|
|
@ -176,18 +216,18 @@ export default {
|
||||||
|
|
||||||
getList() {
|
getList() {
|
||||||
this.listLoading = true
|
this.listLoading = true
|
||||||
if(this.rangeDate && this.rangeDate.length>0){
|
if (this.rangeDate && this.rangeDate.length > 0) {
|
||||||
this.listQuery.operTime = this.rangeDate[0]+' - '+this.rangeDate[1];
|
this.listQuery.operTime = this.rangeDate[0] + ' - ' + this.rangeDate[1]
|
||||||
}
|
}
|
||||||
getErrLogs(this.listQuery).then((response) => {
|
getErrLogs(this.listQuery).then((response) => {
|
||||||
this.list = response.rows.map(item => {
|
this.list = response.rows.map((item) => {
|
||||||
return item
|
return item
|
||||||
})
|
})
|
||||||
this.total = response.total
|
this.total = response.total
|
||||||
})
|
})
|
||||||
setTimeout(()=>{
|
setTimeout(() => {
|
||||||
this.listLoading = false
|
this.listLoading = false
|
||||||
},500)
|
}, 500)
|
||||||
},
|
},
|
||||||
// 查询
|
// 查询
|
||||||
handleFilter() {
|
handleFilter() {
|
||||||
|
|
@ -196,45 +236,43 @@ export default {
|
||||||
},
|
},
|
||||||
//重置
|
//重置
|
||||||
resetFilter() {
|
resetFilter() {
|
||||||
this.listQuery={
|
this.listQuery = {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
errType: '',
|
errType: '',
|
||||||
ip: '',
|
ip: '',
|
||||||
grade: '',
|
grade: '',
|
||||||
// logSort:1,
|
// logSort:1,
|
||||||
logDesc:1,
|
logDesc: 1,
|
||||||
};
|
}
|
||||||
this.rangeDate=[this.getCurrentDate(),this.getCurrentDate()]
|
this.rangeDate = [this.getCurrentDate(), this.getCurrentDate()]
|
||||||
this.handleFilter()
|
this.handleFilter()
|
||||||
},
|
},
|
||||||
// 备份
|
// 备份
|
||||||
handleBackups() {
|
handleBackups() {
|
||||||
downloadErrLogs().then(res => {
|
downloadErrLogs().then((res) => {
|
||||||
downloadFile({ fileName: '异常日志.sql', fileData: res, fileType: 'text/html;charset=UTF-8'})
|
downloadFile({ fileName: '异常日志.sql', fileData: res, fileType: 'text/html;charset=UTF-8' })
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//导出
|
//导出
|
||||||
handleExport(){
|
handleExport() {
|
||||||
|
|
||||||
// exportCarDetail().then(res => {
|
// exportCarDetail().then(res => {
|
||||||
// downloadFile({ fileName: '设备详情.xlsx', fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
|
// downloadFile({ fileName: '设备详情.xlsx', fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
|
||||||
// })
|
// })
|
||||||
},
|
},
|
||||||
getCurrentDate() {
|
getCurrentDate() {
|
||||||
let now = new Date();
|
let now = new Date()
|
||||||
let year = now.getFullYear();
|
let year = now.getFullYear()
|
||||||
let month = now.getMonth() + 1;
|
let month = now.getMonth() + 1
|
||||||
if(month<10){
|
if (month < 10) {
|
||||||
month = '0'+month
|
month = '0' + month
|
||||||
}
|
}
|
||||||
let day = now.getDate();
|
let day = now.getDate()
|
||||||
if(day<10){
|
if (day < 10) {
|
||||||
day = '0'+day
|
day = '0' + day
|
||||||
}
|
|
||||||
return year + "-" + month + "-" + day;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
return year + '-' + month + '-' + day
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,20 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<div class="filter-container">
|
<div class="filter-container">
|
||||||
<el-input v-model="listQuery.operaUserName" placeholder="请输入操作人"
|
<el-input
|
||||||
style="width: 200px" class="filter-item" :maxlength="30"
|
v-model="listQuery.operaUserName"
|
||||||
|
placeholder="请输入操作人"
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item"
|
||||||
|
:maxlength="30"
|
||||||
@keyup.enter.native="handleFilter"
|
@keyup.enter.native="handleFilter"
|
||||||
/>
|
/>
|
||||||
<el-input v-model="listQuery.ip" placeholder="请输入IP地址"
|
<el-input
|
||||||
style="width: 200px" class="filter-item ml-20" :maxlength="30"
|
v-model="listQuery.ip"
|
||||||
|
placeholder="请输入IP地址"
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item ml-20"
|
||||||
|
:maxlength="30"
|
||||||
@keyup.enter.native="handleFilter"
|
@keyup.enter.native="handleFilter"
|
||||||
/>
|
/>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
|
|
@ -23,25 +31,57 @@
|
||||||
style="width: 200px" class="filter-item ml-20" :maxlength="30"
|
style="width: 200px" class="filter-item ml-20" :maxlength="30"
|
||||||
@keyup.enter.native="handleFilter"
|
@keyup.enter.native="handleFilter"
|
||||||
/> -->
|
/> -->
|
||||||
<el-select v-model="listQuery.result" placeholder="请选择事件结果" style="width: 200px" class="filter-item ml-20">
|
<el-select
|
||||||
<el-option v-for="item in Object.keys(outcomeList)" :key="item" :value="outcomeList[item]" :label="outcomeList[item]" />
|
v-model="listQuery.result"
|
||||||
|
placeholder="请选择事件结果"
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item ml-20"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in Object.keys(outcomeList)"
|
||||||
|
:key="item"
|
||||||
|
:value="outcomeList[item]"
|
||||||
|
:label="outcomeList[item]"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-select v-model="listQuery.operType" placeholder="请选择操作类型" style="width: 200px" class="filter-item ml-20">
|
<el-select
|
||||||
<el-option v-for="item in Object.keys(operateList)" :key="item" :value="operateList[item]" :label="operateList[item]" />
|
v-model="listQuery.operType"
|
||||||
|
placeholder="请选择操作类型"
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item ml-20"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in Object.keys(operateList)"
|
||||||
|
:key="item"
|
||||||
|
:value="operateList[item]"
|
||||||
|
:label="operateList[item]"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<el-select v-model="listQuery.logSort" clearable filterable style="width: 200px" class="filter-item ml-20" placeholder="请选择" >
|
<el-select
|
||||||
|
v-model="listQuery.logSort"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item ml-20"
|
||||||
|
placeholder="请选择"
|
||||||
|
>
|
||||||
<el-option v-for="item in timeList" :key="item.id" :label="item.name" :value="item.id" />
|
<el-option v-for="item in timeList" :key="item.id" :label="item.name" :value="item.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-select v-model="listQuery.logDesc" clearable filterable style="width: 200px" class="filter-item ml-20" placeholder="请选择" >
|
<el-select
|
||||||
|
v-model="listQuery.logDesc"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item ml-20"
|
||||||
|
placeholder="请选择"
|
||||||
|
>
|
||||||
<el-option v-for="item in sortList" :key="item.id" :label="item.name" :value="item.id" />
|
<el-option v-for="item in sortList" :key="item.id" :label="item.name" :value="item.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button style="margin-left: 20px" class="filter-item" type="primary" @click="handleFilter">
|
<el-button style="margin-left: 20px" class="filter-item" type="primary" @click="handleFilter">
|
||||||
查询
|
查询
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button style="margin-left: 20px" class="filter-item" @click="resetFilter">
|
<el-button style="margin-left: 20px" class="filter-item" @click="resetFilter"> 重置 </el-button>
|
||||||
重置
|
|
||||||
</el-button>
|
|
||||||
<el-button @click="handleBackups" class="filter-item" style="margin-left: 20px" type="warning">
|
<el-button @click="handleBackups" class="filter-item" style="margin-left: 20px" type="warning">
|
||||||
备份
|
备份
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -58,7 +98,7 @@
|
||||||
:max-height="tableHeight"
|
:max-height="tableHeight"
|
||||||
>
|
>
|
||||||
<el-table-column label="序号" align="center" width="80" type="index">
|
<el-table-column label="序号" align="center" width="80" type="index">
|
||||||
<template scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ (listQuery.pageNum - 1) * listQuery.pageSize + scope.$index + 1 }}</span>
|
<span>{{ (listQuery.pageNum - 1) * listQuery.pageSize + scope.$index + 1 }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
@ -70,7 +110,7 @@
|
||||||
<el-table-column label="操作详情" align="center" prop="operateDetail" />
|
<el-table-column label="操作详情" align="center" prop="operateDetail" />
|
||||||
<el-table-column label="操作结果" align="center" prop="result">
|
<el-table-column label="操作结果" align="center" prop="result">
|
||||||
<template slot-scope="{ row }">
|
<template slot-scope="{ row }">
|
||||||
{{ row.result}}
|
{{ row.result }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作参数" align="center" prop="params" />
|
<el-table-column label="操作参数" align="center" prop="params" />
|
||||||
|
|
@ -87,34 +127,33 @@
|
||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Pagination from '@/components/Pagination'
|
import Pagination from '@/components/Pagination'
|
||||||
|
|
||||||
import _ from 'lodash/fp'
|
import _ from 'lodash/fp'
|
||||||
import { downloadFile } from '@/utils/download'
|
import { downloadFile } from '@/utils/download'
|
||||||
|
|
||||||
import { getYwLogs,downloadYwLogs } from '@/api/system/log'
|
import { getYwLogs, downloadYwLogs } from '@/api/system/log'
|
||||||
|
|
||||||
|
const outcomeList = {
|
||||||
|
1: '成功',
|
||||||
|
2: '失败',
|
||||||
|
}
|
||||||
|
const operateList = {
|
||||||
|
1: '新增',
|
||||||
|
2: '修改',
|
||||||
|
3: '删除',
|
||||||
|
4: '查询',
|
||||||
|
5: '导出',
|
||||||
|
6: '下载',
|
||||||
|
7: '备份',
|
||||||
|
8: '登录',
|
||||||
|
9: '登出',
|
||||||
|
}
|
||||||
|
|
||||||
const outcomeList = {
|
export default {
|
||||||
1:'成功',
|
|
||||||
2:'失败'
|
|
||||||
};
|
|
||||||
const operateList = {
|
|
||||||
1:'新增',
|
|
||||||
2:'修改',
|
|
||||||
3:'删除',
|
|
||||||
4:'查询',
|
|
||||||
5:'导出',
|
|
||||||
6:'下载',
|
|
||||||
7:'备份',
|
|
||||||
8:'登录',
|
|
||||||
9:'登出'
|
|
||||||
};
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: { Pagination },
|
components: { Pagination },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
@ -125,21 +164,29 @@
|
||||||
listLoading: false,
|
listLoading: false,
|
||||||
tableHeight: 650,
|
tableHeight: 650,
|
||||||
operateList: operateList,
|
operateList: operateList,
|
||||||
timeList:[{id:1,name:'时间'},{id:2,name:'操作人'},{id:3,name:'操作模块'},{id:4,name:'ip'},],
|
timeList: [
|
||||||
sortList:[{id:1,name:'倒序'},{id:2,name:'升序'}],
|
{ id: 1, name: '时间' },
|
||||||
|
{ id: 2, name: '操作人' },
|
||||||
|
{ id: 3, name: '操作模块' },
|
||||||
|
{ id: 4, name: 'ip' },
|
||||||
|
],
|
||||||
|
sortList: [
|
||||||
|
{ id: 1, name: '倒序' },
|
||||||
|
{ id: 2, name: '升序' },
|
||||||
|
],
|
||||||
listQuery: {
|
listQuery: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
operaUserName: '',
|
operaUserName: '',
|
||||||
ip: '',
|
ip: '',
|
||||||
content:'',
|
content: '',
|
||||||
result: '',
|
result: '',
|
||||||
operTime:'',
|
operTime: '',
|
||||||
operType: '',
|
operType: '',
|
||||||
logSort:1,
|
logSort: 1,
|
||||||
logDesc:1,
|
logDesc: 1,
|
||||||
},
|
},
|
||||||
rangeDate:[],
|
rangeDate: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
@ -147,8 +194,8 @@
|
||||||
// this.getOperate()
|
// this.getOperate()
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.listQuery.operTime = this.getCurrentDate()+' - '+this.getCurrentDate();
|
this.listQuery.operTime = this.getCurrentDate() + ' - ' + this.getCurrentDate()
|
||||||
this.rangeDate = [this.getCurrentDate(),this.getCurrentDate()]
|
this.rangeDate = [this.getCurrentDate(), this.getCurrentDate()]
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -156,7 +203,7 @@
|
||||||
return this.outcomeList[val]
|
return this.outcomeList[val]
|
||||||
},
|
},
|
||||||
//获取下拉数据
|
//获取下拉数据
|
||||||
getOperate(){
|
getOperate() {
|
||||||
// getOperateList().then((response) => {
|
// getOperateList().then((response) => {
|
||||||
// this.operateList = response.data
|
// this.operateList = response.data
|
||||||
// })
|
// })
|
||||||
|
|
@ -164,18 +211,18 @@
|
||||||
|
|
||||||
getList() {
|
getList() {
|
||||||
this.listLoading = true
|
this.listLoading = true
|
||||||
if(this.rangeDate && this.rangeDate.length>0){
|
if (this.rangeDate && this.rangeDate.length > 0) {
|
||||||
this.listQuery.operTime = this.rangeDate[0]+' - '+this.rangeDate[1];
|
this.listQuery.operTime = this.rangeDate[0] + ' - ' + this.rangeDate[1]
|
||||||
}
|
}
|
||||||
getYwLogs(this.listQuery).then((response) => {
|
getYwLogs(this.listQuery).then((response) => {
|
||||||
this.list = response.rows.map(item => {
|
this.list = response.rows.map((item) => {
|
||||||
return item
|
return item
|
||||||
})
|
})
|
||||||
this.total = response.total
|
this.total = response.total
|
||||||
})
|
})
|
||||||
setTimeout(()=>{
|
setTimeout(() => {
|
||||||
this.listLoading = false
|
this.listLoading = false
|
||||||
},500)
|
}, 500)
|
||||||
},
|
},
|
||||||
// 查询
|
// 查询
|
||||||
handleFilter() {
|
handleFilter() {
|
||||||
|
|
@ -184,48 +231,46 @@
|
||||||
},
|
},
|
||||||
//重置
|
//重置
|
||||||
resetFilter() {
|
resetFilter() {
|
||||||
this.listQuery={
|
this.listQuery = {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
operaUserName: '',
|
operaUserName: '',
|
||||||
ip: '',
|
ip: '',
|
||||||
|
|
||||||
content:'',
|
content: '',
|
||||||
result: '',
|
result: '',
|
||||||
operType: '',
|
operType: '',
|
||||||
logSort:1,
|
logSort: 1,
|
||||||
logDesc:1,
|
logDesc: 1,
|
||||||
};
|
}
|
||||||
this.rangeDate=[this.getCurrentDate(),this.getCurrentDate()]
|
this.rangeDate = [this.getCurrentDate(), this.getCurrentDate()]
|
||||||
this.handleFilter()
|
this.handleFilter()
|
||||||
},
|
},
|
||||||
// 备份
|
// 备份
|
||||||
handleBackups() {
|
handleBackups() {
|
||||||
downloadYwLogs().then(res => {
|
downloadYwLogs().then((res) => {
|
||||||
downloadFile({ fileName: '业务日志.sql', fileData: res, fileType: 'text/html;charset=UTF-8'})
|
downloadFile({ fileName: '业务日志.sql', fileData: res, fileType: 'text/html;charset=UTF-8' })
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//导出
|
//导出
|
||||||
handleExport(){
|
handleExport() {
|
||||||
|
|
||||||
// exportCarDetail().then(res => {
|
// exportCarDetail().then(res => {
|
||||||
// downloadFile({ fileName: '设备详情.xlsx', fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
|
// downloadFile({ fileName: '设备详情.xlsx', fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
|
||||||
// })
|
// })
|
||||||
},
|
},
|
||||||
getCurrentDate() {
|
getCurrentDate() {
|
||||||
let now = new Date();
|
let now = new Date()
|
||||||
let year = now.getFullYear();
|
let year = now.getFullYear()
|
||||||
let month = now.getMonth() + 1;
|
let month = now.getMonth() + 1
|
||||||
if(month<10){
|
if (month < 10) {
|
||||||
month = '0'+month
|
month = '0' + month
|
||||||
}
|
}
|
||||||
let day = now.getDate();
|
let day = now.getDate()
|
||||||
if(day<10){
|
if (day < 10) {
|
||||||
day = '0'+day
|
day = '0' + day
|
||||||
}
|
}
|
||||||
return year + "-" + month + "-" + day;
|
return year + '-' + month + '-' + day
|
||||||
}
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
</script>
|
||||||
</script>
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,20 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<div class="filter-container">
|
<div class="filter-container">
|
||||||
<el-input v-model="listQuery.operaUserName" placeholder="请输入操作人"
|
<el-input
|
||||||
style="width: 200px" class="filter-item" :maxlength="30"
|
v-model="listQuery.operaUserName"
|
||||||
|
placeholder="请输入操作人"
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item"
|
||||||
|
:maxlength="30"
|
||||||
@keyup.enter.native="handleFilter"
|
@keyup.enter.native="handleFilter"
|
||||||
/>
|
/>
|
||||||
<el-input v-model="listQuery.ip" placeholder="请输入IP地址"
|
<el-input
|
||||||
style="width: 200px" class="filter-item ml-20" :maxlength="30"
|
v-model="listQuery.ip"
|
||||||
|
placeholder="请输入IP地址"
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item ml-20"
|
||||||
|
:maxlength="30"
|
||||||
@keyup.enter.native="handleFilter"
|
@keyup.enter.native="handleFilter"
|
||||||
/>
|
/>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
|
|
@ -26,22 +34,44 @@
|
||||||
<el-select v-model="listQuery.result" placeholder="请选择事件结果" style="width: 200px" class="filter-item ml-20">
|
<el-select v-model="listQuery.result" placeholder="请选择事件结果" style="width: 200px" class="filter-item ml-20">
|
||||||
<el-option v-for="item in Object.keys(outcomeList)" :key="item" :value="outcomeList[item]" :label="outcomeList[item]" />
|
<el-option v-for="item in Object.keys(outcomeList)" :key="item" :value="outcomeList[item]" :label="outcomeList[item]" />
|
||||||
</el-select>-->
|
</el-select>-->
|
||||||
<el-select v-model="listQuery.operType" placeholder="请选择操作类型" style="width: 200px" class="filter-item ml-20">
|
<el-select
|
||||||
<el-option v-for="item in Object.keys(operateList)" :key="item" :value="operateList[item]" :label="operateList[item]" />
|
v-model="listQuery.operType"
|
||||||
|
placeholder="请选择操作类型"
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item ml-20"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in Object.keys(operateList)"
|
||||||
|
:key="item"
|
||||||
|
:value="operateList[item]"
|
||||||
|
:label="operateList[item]"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<el-select v-model="listQuery.logSort" clearable filterable style="width: 200px" class="filter-item ml-20" placeholder="请选择" >
|
<el-select
|
||||||
|
v-model="listQuery.logSort"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item ml-20"
|
||||||
|
placeholder="请选择"
|
||||||
|
>
|
||||||
<el-option v-for="item in timeList" :key="item.id" :label="item.name" :value="item.id" />
|
<el-option v-for="item in timeList" :key="item.id" :label="item.name" :value="item.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-select v-model="listQuery.logDesc" clearable filterable style="width: 200px" class="filter-item ml-20" placeholder="请选择" >
|
<el-select
|
||||||
|
v-model="listQuery.logDesc"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
style="width: 200px"
|
||||||
|
class="filter-item ml-20"
|
||||||
|
placeholder="请选择"
|
||||||
|
>
|
||||||
<el-option v-for="item in sortList" :key="item.id" :label="item.name" :value="item.id" />
|
<el-option v-for="item in sortList" :key="item.id" :label="item.name" :value="item.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button style="margin-left: 20px" class="filter-item" type="primary" @click="handleFilter">
|
<el-button style="margin-left: 20px" class="filter-item" type="primary" @click="handleFilter">
|
||||||
查询
|
查询
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button style="margin-left: 20px" class="filter-item" @click="resetFilter">
|
<el-button style="margin-left: 20px" class="filter-item" @click="resetFilter"> 重置 </el-button>
|
||||||
重置
|
|
||||||
</el-button>
|
|
||||||
<el-button @click="handleBackups" class="filter-item" style="margin-left: 20px" type="warning">
|
<el-button @click="handleBackups" class="filter-item" style="margin-left: 20px" type="warning">
|
||||||
备份
|
备份
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -58,7 +88,7 @@
|
||||||
:max-height="tableHeight"
|
:max-height="tableHeight"
|
||||||
>
|
>
|
||||||
<el-table-column label="序号" align="center" width="80" type="index">
|
<el-table-column label="序号" align="center" width="80" type="index">
|
||||||
<template scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ (listQuery.pageNum - 1) * listQuery.pageSize + scope.$index + 1 }}</span>
|
<span>{{ (listQuery.pageNum - 1) * listQuery.pageSize + scope.$index + 1 }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
@ -95,24 +125,23 @@ import Pagination from '@/components/Pagination'
|
||||||
import _ from 'lodash/fp'
|
import _ from 'lodash/fp'
|
||||||
import { downloadFile } from '@/utils/download'
|
import { downloadFile } from '@/utils/download'
|
||||||
|
|
||||||
import { getSysLogs,downloadSysLogs } from '@/api/system/log'
|
import { getSysLogs, downloadSysLogs } from '@/api/system/log'
|
||||||
|
|
||||||
|
|
||||||
const outcomeList = {
|
const outcomeList = {
|
||||||
1:'成功',
|
1: '成功',
|
||||||
2:'失败'
|
2: '失败',
|
||||||
};
|
}
|
||||||
const operateList = {
|
const operateList = {
|
||||||
1:'新增',
|
1: '新增',
|
||||||
2:'修改',
|
2: '修改',
|
||||||
3:'删除',
|
3: '删除',
|
||||||
4:'查询',
|
4: '查询',
|
||||||
5:'导出',
|
5: '导出',
|
||||||
6:'下载',
|
6: '下载',
|
||||||
7:'备份',
|
7: '备份',
|
||||||
8:'登录',
|
8: '登录',
|
||||||
9:'登出'
|
9: '登出',
|
||||||
};
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { Pagination },
|
components: { Pagination },
|
||||||
|
|
@ -125,21 +154,30 @@ export default {
|
||||||
listLoading: false,
|
listLoading: false,
|
||||||
tableHeight: 650,
|
tableHeight: 650,
|
||||||
operateList: operateList,
|
operateList: operateList,
|
||||||
timeList:[{id:1,name:'时间'},{id:2,name:'操作人'},{id:3,name:'操作模块'},{id:4,name:'ip'},{id:5,name:'操作类型'},],
|
timeList: [
|
||||||
sortList:[{id:1,name:'倒序'},{id:2,name:'升序'}],
|
{ id: 1, name: '时间' },
|
||||||
|
{ id: 2, name: '操作人' },
|
||||||
|
{ id: 3, name: '操作模块' },
|
||||||
|
{ id: 4, name: 'ip' },
|
||||||
|
{ id: 5, name: '操作类型' },
|
||||||
|
],
|
||||||
|
sortList: [
|
||||||
|
{ id: 1, name: '倒序' },
|
||||||
|
{ id: 2, name: '升序' },
|
||||||
|
],
|
||||||
listQuery: {
|
listQuery: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
operaUserName: '',
|
operaUserName: '',
|
||||||
ip: '',
|
ip: '',
|
||||||
content:'',
|
content: '',
|
||||||
result: '',
|
result: '',
|
||||||
operTime:'',
|
operTime: '',
|
||||||
operaType: '',
|
operaType: '',
|
||||||
logSort:1,
|
logSort: 1,
|
||||||
logDesc:1,
|
logDesc: 1,
|
||||||
},
|
},
|
||||||
rangeDate:[],
|
rangeDate: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
@ -147,8 +185,8 @@ export default {
|
||||||
// this.getOperate()
|
// this.getOperate()
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.listQuery.operTime = this.getCurrentDate()+' - '+this.getCurrentDate();
|
this.listQuery.operTime = this.getCurrentDate() + ' - ' + this.getCurrentDate()
|
||||||
this.rangeDate = [this.getCurrentDate(),this.getCurrentDate()]
|
this.rangeDate = [this.getCurrentDate(), this.getCurrentDate()]
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -156,7 +194,7 @@ export default {
|
||||||
return this.outcomeList[val]
|
return this.outcomeList[val]
|
||||||
},
|
},
|
||||||
//获取下拉数据
|
//获取下拉数据
|
||||||
getOperate(){
|
getOperate() {
|
||||||
// getOperateList().then((response) => {
|
// getOperateList().then((response) => {
|
||||||
// this.operateList = response.data
|
// this.operateList = response.data
|
||||||
// })
|
// })
|
||||||
|
|
@ -164,18 +202,18 @@ export default {
|
||||||
|
|
||||||
getList() {
|
getList() {
|
||||||
this.listLoading = true
|
this.listLoading = true
|
||||||
if(this.rangeDate && this.rangeDate.length>0){
|
if (this.rangeDate && this.rangeDate.length > 0) {
|
||||||
this.listQuery.operTime = this.rangeDate[0]+' - '+this.rangeDate[1];
|
this.listQuery.operTime = this.rangeDate[0] + ' - ' + this.rangeDate[1]
|
||||||
}
|
}
|
||||||
getSysLogs(this.listQuery).then((response) => {
|
getSysLogs(this.listQuery).then((response) => {
|
||||||
this.list = response.rows.map(item => {
|
this.list = response.rows.map((item) => {
|
||||||
return item
|
return item
|
||||||
})
|
})
|
||||||
this.total = response.total
|
this.total = response.total
|
||||||
})
|
})
|
||||||
setTimeout(()=>{
|
setTimeout(() => {
|
||||||
this.listLoading = false
|
this.listLoading = false
|
||||||
},500)
|
}, 500)
|
||||||
},
|
},
|
||||||
// 查询
|
// 查询
|
||||||
handleFilter() {
|
handleFilter() {
|
||||||
|
|
@ -184,49 +222,46 @@ export default {
|
||||||
},
|
},
|
||||||
//重置
|
//重置
|
||||||
resetFilter() {
|
resetFilter() {
|
||||||
this.listQuery={
|
this.listQuery = {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
operaUserName: '',
|
operaUserName: '',
|
||||||
ip: '',
|
ip: '',
|
||||||
|
|
||||||
content:'',
|
content: '',
|
||||||
result: '',
|
result: '',
|
||||||
operateType: '',
|
operateType: '',
|
||||||
logSort:1,
|
logSort: 1,
|
||||||
logDesc:1,
|
logDesc: 1,
|
||||||
};
|
}
|
||||||
this.rangeDate=[this.getCurrentDate(),this.getCurrentDate()]
|
this.rangeDate = [this.getCurrentDate(), this.getCurrentDate()]
|
||||||
this.handleFilter()
|
this.handleFilter()
|
||||||
},
|
},
|
||||||
// 备份
|
// 备份
|
||||||
handleBackups() {
|
handleBackups() {
|
||||||
downloadSysLogs().then(res => {
|
downloadSysLogs().then((res) => {
|
||||||
downloadFile({ fileName: '系统日志.sql', fileData: res, fileType: 'text/html;charset=UTF-8' })
|
downloadFile({ fileName: '系统日志.sql', fileData: res, fileType: 'text/html;charset=UTF-8' })
|
||||||
})
|
})
|
||||||
|
|
||||||
},
|
},
|
||||||
//导出
|
//导出
|
||||||
handleExport(){
|
handleExport() {
|
||||||
|
|
||||||
// exportCarDetail().then(res => {
|
// exportCarDetail().then(res => {
|
||||||
// downloadFile({ fileName: '设备详情.xlsx', fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
|
// downloadFile({ fileName: '设备详情.xlsx', fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
|
||||||
// })
|
// })
|
||||||
},
|
},
|
||||||
getCurrentDate() {
|
getCurrentDate() {
|
||||||
let now = new Date();
|
let now = new Date()
|
||||||
let year = now.getFullYear();
|
let year = now.getFullYear()
|
||||||
let month = now.getMonth() + 1;
|
let month = now.getMonth() + 1
|
||||||
if(month<10){
|
if (month < 10) {
|
||||||
month = '0'+month
|
month = '0' + month
|
||||||
}
|
}
|
||||||
let day = now.getDate();
|
let day = now.getDate()
|
||||||
if(day<10){
|
if (day < 10) {
|
||||||
day = '0'+day
|
day = '0' + day
|
||||||
}
|
|
||||||
return year + "-" + month + "-" + day;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
return year + '-' + month + '-' + day
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue