Compare commits
2 Commits
f4e11d5c33
...
a7b5eb355f
| Author | SHA1 | Date |
|---|---|---|
|
|
a7b5eb355f | |
|
|
73cfe3908f |
|
|
@ -1,10 +1,10 @@
|
|||
# 页面标题
|
||||
VUE_APP_TITLE = 博诺思管理系统
|
||||
VUE_APP_TITLE = 智慧工地
|
||||
|
||||
# 开发环境配置
|
||||
ENV = 'development'
|
||||
|
||||
# 博诺思管理系统/开发环境
|
||||
# 智慧工地/开发环境
|
||||
VUE_APP_BASE_API = '/dev-api'
|
||||
|
||||
# 路由懒加载
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# 页面标题
|
||||
VUE_APP_TITLE = 博诺思管理系统
|
||||
VUE_APP_TITLE = 智慧工地
|
||||
|
||||
# 生产环境配置
|
||||
ENV = 'production'
|
||||
|
||||
# 博诺思管理系统/生产环境
|
||||
# 智慧工地/生产环境
|
||||
VUE_APP_BASE_API = '/prod-api'
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
# 页面标题
|
||||
VUE_APP_TITLE = 博诺思管理系统
|
||||
VUE_APP_TITLE = 智慧工地
|
||||
|
||||
NODE_ENV = production
|
||||
|
||||
# 测试环境配置
|
||||
ENV = 'staging'
|
||||
|
||||
# 博诺思管理系统/测试环境
|
||||
# 智慧工地/测试环境
|
||||
VUE_APP_BASE_API = '/stage-api'
|
||||
|
|
|
|||
|
|
@ -5407,9 +5407,10 @@
|
|||
},
|
||||
"node_modules/core-js": {
|
||||
"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==",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/core-js"
|
||||
|
|
@ -5913,8 +5914,9 @@
|
|||
},
|
||||
"node_modules/decompress-response": {
|
||||
"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==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"mimic-response": "^3.1.0"
|
||||
},
|
||||
|
|
@ -6844,8 +6846,9 @@
|
|||
},
|
||||
"node_modules/es6-promise": {
|
||||
"version": "4.2.8",
|
||||
"resolved": "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz",
|
||||
"integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
|
||||
"resolved": "https://repo.huaweicloud.com/repository/npm/es6-promise/-/es6-promise-4.2.8.tgz",
|
||||
"integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/escalade": {
|
||||
"version": "3.2.0",
|
||||
|
|
@ -7880,8 +7883,9 @@
|
|||
},
|
||||
"node_modules/flv.js": {
|
||||
"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==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"es6-promise": "^4.2.8",
|
||||
"webworkify-webpack": "^2.1.5"
|
||||
|
|
@ -9960,8 +9964,9 @@
|
|||
},
|
||||
"node_modules/js-binary-schema-parser": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz",
|
||||
"integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg=="
|
||||
"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==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/js-cookie": {
|
||||
"version": "3.0.1",
|
||||
|
|
@ -10946,8 +10951,9 @@
|
|||
},
|
||||
"node_modules/mimic-response": {
|
||||
"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==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
|
|
@ -12135,8 +12141,9 @@
|
|||
},
|
||||
"node_modules/parenthesis": {
|
||||
"version": "3.1.8",
|
||||
"resolved": "https://registry.npmmirror.com/parenthesis/-/parenthesis-3.1.8.tgz",
|
||||
"integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw=="
|
||||
"resolved": "https://repo.huaweicloud.com/repository/npm/parenthesis/-/parenthesis-3.1.8.tgz",
|
||||
"integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/parse-asn1": {
|
||||
"version": "5.1.7",
|
||||
|
|
@ -14849,7 +14856,7 @@
|
|||
},
|
||||
"node_modules/simple-concat": {
|
||||
"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==",
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -14864,11 +14871,12 @@
|
|||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
]
|
||||
],
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/simple-get": {
|
||||
"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==",
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -14884,6 +14892,7 @@
|
|||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"decompress-response": "^6.0.0",
|
||||
"once": "^1.3.1",
|
||||
|
|
@ -15461,8 +15470,9 @@
|
|||
},
|
||||
"node_modules/string-split-by": {
|
||||
"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==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"parenthesis": "^3.1.5"
|
||||
}
|
||||
|
|
@ -17535,8 +17545,9 @@
|
|||
},
|
||||
"node_modules/vue-qr": {
|
||||
"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==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"glob": "^8.0.1",
|
||||
"js-binary-schema-parser": "^2.0.2",
|
||||
|
|
@ -17546,17 +17557,19 @@
|
|||
},
|
||||
"node_modules/vue-qr/node_modules/brace-expansion": {
|
||||
"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==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-qr/node_modules/glob": {
|
||||
"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==",
|
||||
"deprecated": "Glob versions prior to v9 are no longer supported",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
|
|
@ -17573,8 +17586,9 @@
|
|||
},
|
||||
"node_modules/vue-qr/node_modules/minimatch": {
|
||||
"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==",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
|
|
@ -18759,8 +18773,9 @@
|
|||
},
|
||||
"node_modules/webworkify-webpack": {
|
||||
"version": "2.1.5",
|
||||
"resolved": "https://registry.npmmirror.com/webworkify-webpack/-/webworkify-webpack-2.1.5.tgz",
|
||||
"integrity": "sha512-2akF8FIyUvbiBBdD+RoHpoTbHMQF2HwjcxfDvgztAX5YwbZNyrtfUMgvfgFVsgDhDPVTlkbb5vyasqDHfIDPQw=="
|
||||
"resolved": "https://repo.huaweicloud.com/repository/npm/webworkify-webpack/-/webworkify-webpack-2.1.5.tgz",
|
||||
"integrity": "sha512-2akF8FIyUvbiBBdD+RoHpoTbHMQF2HwjcxfDvgztAX5YwbZNyrtfUMgvfgFVsgDhDPVTlkbb5vyasqDHfIDPQw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/which": {
|
||||
"version": "2.0.2",
|
||||
|
|
@ -23227,7 +23242,7 @@
|
|||
},
|
||||
"core-js": {
|
||||
"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=="
|
||||
},
|
||||
"core-js-compat": {
|
||||
|
|
@ -23619,7 +23634,7 @@
|
|||
},
|
||||
"decompress-response": {
|
||||
"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==",
|
||||
"requires": {
|
||||
"mimic-response": "^3.1.0"
|
||||
|
|
@ -24379,7 +24394,7 @@
|
|||
},
|
||||
"es6-promise": {
|
||||
"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=="
|
||||
},
|
||||
"escalade": {
|
||||
|
|
@ -25190,7 +25205,7 @@
|
|||
},
|
||||
"flv.js": {
|
||||
"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==",
|
||||
"requires": {
|
||||
"es6-promise": "^4.2.8",
|
||||
|
|
@ -26721,7 +26736,7 @@
|
|||
},
|
||||
"js-binary-schema-parser": {
|
||||
"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=="
|
||||
},
|
||||
"js-cookie": {
|
||||
|
|
@ -27498,7 +27513,7 @@
|
|||
},
|
||||
"mimic-response": {
|
||||
"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=="
|
||||
},
|
||||
"mini-css-extract-plugin": {
|
||||
|
|
@ -28436,7 +28451,7 @@
|
|||
},
|
||||
"parenthesis": {
|
||||
"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=="
|
||||
},
|
||||
"parse-asn1": {
|
||||
|
|
@ -30651,12 +30666,12 @@
|
|||
},
|
||||
"simple-concat": {
|
||||
"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=="
|
||||
},
|
||||
"simple-get": {
|
||||
"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==",
|
||||
"requires": {
|
||||
"decompress-response": "^6.0.0",
|
||||
|
|
@ -31158,7 +31173,7 @@
|
|||
},
|
||||
"string-split-by": {
|
||||
"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==",
|
||||
"requires": {
|
||||
"parenthesis": "^3.1.5"
|
||||
|
|
@ -32793,7 +32808,7 @@
|
|||
},
|
||||
"vue-qr": {
|
||||
"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==",
|
||||
"requires": {
|
||||
"glob": "^8.0.1",
|
||||
|
|
@ -32804,7 +32819,7 @@
|
|||
"dependencies": {
|
||||
"brace-expansion": {
|
||||
"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==",
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0"
|
||||
|
|
@ -32812,7 +32827,7 @@
|
|||
},
|
||||
"glob": {
|
||||
"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==",
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
|
|
@ -32824,7 +32839,7 @@
|
|||
},
|
||||
"minimatch": {
|
||||
"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==",
|
||||
"requires": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
|
|
@ -33790,7 +33805,7 @@
|
|||
},
|
||||
"webworkify-webpack": {
|
||||
"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=="
|
||||
},
|
||||
"which": {
|
||||
|
|
|
|||
184
package.json
184
package.json
|
|
@ -1,95 +1,95 @@
|
|||
{
|
||||
"name": "bonus",
|
||||
"version": "3.6.4",
|
||||
"description": "博诺思管理系统",
|
||||
"author": "博诺思",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"dev": "vue-cli-service serve",
|
||||
"build:prod": "vue-cli-service build",
|
||||
"build:stage": "vue-cli-service build --mode staging",
|
||||
"preview": "node build/index.js --preview",
|
||||
"lint": "eslint --ext .js,.vue src"
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged"
|
||||
}
|
||||
},
|
||||
"lint-staged": {
|
||||
"src/**/*.{js,vue}": [
|
||||
"eslint --fix",
|
||||
"git add"
|
||||
"name": "bonus",
|
||||
"version": "3.6.4",
|
||||
"description": "智慧工地",
|
||||
"author": "博诺思",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"dev": "vue-cli-service serve",
|
||||
"build:prod": "vue-cli-service build",
|
||||
"build:stage": "vue-cli-service build --mode staging",
|
||||
"preview": "node build/index.js --preview",
|
||||
"lint": "eslint --ext .js,.vue src"
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged"
|
||||
}
|
||||
},
|
||||
"lint-staged": {
|
||||
"src/**/*.{js,vue}": [
|
||||
"eslint --fix",
|
||||
"git add"
|
||||
]
|
||||
},
|
||||
"keywords": [
|
||||
"vue",
|
||||
"admin",
|
||||
"dashboard",
|
||||
"element-ui",
|
||||
"boilerplate",
|
||||
"admin-template",
|
||||
"management-system"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "http://192.168.0.56:3000/bonus/Bonus-Cloud.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"@riophae/vue-treeselect": "0.4.0",
|
||||
"axios": "0.24.0",
|
||||
"clipboard": "2.0.8",
|
||||
"core-js": "3.25.3",
|
||||
"crypto-js": "^4.2.0",
|
||||
"echarts": "5.4.0",
|
||||
"element-ui": "2.15.14",
|
||||
"file-saver": "2.0.5",
|
||||
"flv.js": "^1.6.2",
|
||||
"fuse.js": "6.4.3",
|
||||
"highlight.js": "9.18.5",
|
||||
"js-beautify": "1.13.0",
|
||||
"js-cookie": "3.0.1",
|
||||
"jsencrypt": "3.0.0-rc.1",
|
||||
"nprogress": "0.2.0",
|
||||
"quill": "1.3.7",
|
||||
"screenfull": "5.0.2",
|
||||
"sm-crypto": "^0.3.13",
|
||||
"sortablejs": "1.10.2",
|
||||
"vue": "2.6.12",
|
||||
"vue-count-to": "1.0.13",
|
||||
"vue-cropper": "0.5.5",
|
||||
"vue-meta": "2.4.0",
|
||||
"vue-qr": "^4.0.9",
|
||||
"vue-router": "3.4.9",
|
||||
"vuedraggable": "2.24.3",
|
||||
"vuex": "3.6.0",
|
||||
"webstomp-client": "^1.2.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "4.4.6",
|
||||
"@vue/cli-plugin-eslint": "4.4.6",
|
||||
"@vue/cli-service": "4.4.6",
|
||||
"babel-eslint": "10.1.0",
|
||||
"babel-plugin-dynamic-import-node": "2.3.3",
|
||||
"chalk": "4.1.0",
|
||||
"compression-webpack-plugin": "6.1.2",
|
||||
"connect": "3.6.6",
|
||||
"eslint": "7.15.0",
|
||||
"eslint-plugin-vue": "7.2.0",
|
||||
"lint-staged": "10.5.3",
|
||||
"runjs": "4.4.2",
|
||||
"sass": "1.32.13",
|
||||
"sass-loader": "10.1.1",
|
||||
"script-ext-html-webpack-plugin": "2.1.5",
|
||||
"svg-sprite-loader": "5.1.1",
|
||||
"vue-template-compiler": "2.6.12"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.9",
|
||||
"npm": ">= 3.0.0"
|
||||
},
|
||||
"browserslist": [
|
||||
"> 1%",
|
||||
"last 2 versions"
|
||||
]
|
||||
},
|
||||
"keywords": [
|
||||
"vue",
|
||||
"admin",
|
||||
"dashboard",
|
||||
"element-ui",
|
||||
"boilerplate",
|
||||
"admin-template",
|
||||
"management-system"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "http://192.168.0.56:3000/bonus/Bonus-Cloud.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"@riophae/vue-treeselect": "0.4.0",
|
||||
"axios": "0.24.0",
|
||||
"clipboard": "2.0.8",
|
||||
"core-js": "3.25.3",
|
||||
"crypto-js": "^4.2.0",
|
||||
"echarts": "5.4.0",
|
||||
"element-ui": "2.15.14",
|
||||
"file-saver": "2.0.5",
|
||||
"flv.js": "^1.6.2",
|
||||
"fuse.js": "6.4.3",
|
||||
"highlight.js": "9.18.5",
|
||||
"js-beautify": "1.13.0",
|
||||
"js-cookie": "3.0.1",
|
||||
"jsencrypt": "3.0.0-rc.1",
|
||||
"nprogress": "0.2.0",
|
||||
"quill": "1.3.7",
|
||||
"screenfull": "5.0.2",
|
||||
"sm-crypto": "^0.3.13",
|
||||
"sortablejs": "1.10.2",
|
||||
"vue": "2.6.12",
|
||||
"vue-count-to": "1.0.13",
|
||||
"vue-cropper": "0.5.5",
|
||||
"vue-meta": "2.4.0",
|
||||
"vue-qr": "^4.0.9",
|
||||
"vue-router": "3.4.9",
|
||||
"vuedraggable": "2.24.3",
|
||||
"vuex": "3.6.0",
|
||||
"webstomp-client": "^1.2.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "4.4.6",
|
||||
"@vue/cli-plugin-eslint": "4.4.6",
|
||||
"@vue/cli-service": "4.4.6",
|
||||
"babel-eslint": "10.1.0",
|
||||
"babel-plugin-dynamic-import-node": "2.3.3",
|
||||
"chalk": "4.1.0",
|
||||
"compression-webpack-plugin": "6.1.2",
|
||||
"connect": "3.6.6",
|
||||
"eslint": "7.15.0",
|
||||
"eslint-plugin-vue": "7.2.0",
|
||||
"lint-staged": "10.5.3",
|
||||
"runjs": "4.4.2",
|
||||
"sass": "1.32.13",
|
||||
"sass-loader": "10.1.1",
|
||||
"script-ext-html-webpack-plugin": "2.1.5",
|
||||
"svg-sprite-loader": "5.1.1",
|
||||
"vue-template-compiler": "2.6.12"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.9",
|
||||
"npm": ">= 3.0.0"
|
||||
},
|
||||
"browserslist": [
|
||||
"> 1%",
|
||||
"last 2 versions"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
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"
|
||||
:placeholder="`请选择${item.f_label}`"
|
||||
>
|
||||
<el-option
|
||||
v-for="(sel, v) in item.f_selList"
|
||||
:key="v"
|
||||
:label="sel.label"
|
||||
:value="sel.value"
|
||||
/>
|
||||
<el-option v-for="(sel, v) in item.f_selList" :key="v" :label="sel.label" :value="sel.value" />
|
||||
</el-select>
|
||||
<el-cascader
|
||||
v-if="item.f_type === 'selCasAdd'"
|
||||
|
|
@ -47,14 +42,7 @@
|
|||
:props="item.optionProps"
|
||||
:show-all-levels="false"
|
||||
clearable
|
||||
@change="
|
||||
handleCasAdd(
|
||||
$event,
|
||||
item.f_model,
|
||||
cascaderFunc,
|
||||
extraTableProp,
|
||||
)
|
||||
"
|
||||
@change="handleCasAdd($event, item.f_model, cascaderFunc, extraTableProp)"
|
||||
style="width: 240px"
|
||||
/>
|
||||
<el-cascader
|
||||
|
|
@ -93,29 +81,13 @@
|
|||
></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="showBtnCrews">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
size="mini"
|
||||
@click="handleQuery"
|
||||
v-if="showSearchBtn"
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" v-if="showSearchBtn"
|
||||
>查询</el-button
|
||||
>
|
||||
<el-button
|
||||
type="success"
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
@click="handleFill"
|
||||
v-if="!showSearchBtn"
|
||||
<el-button type="success" icon="el-icon-edit" size="mini" @click="handleFill" v-if="!showSearchBtn"
|
||||
>填充</el-button
|
||||
>
|
||||
<el-button
|
||||
type="warning"
|
||||
icon="el-icon-refresh"
|
||||
size="mini"
|
||||
@click="resetQuery"
|
||||
>重置</el-button
|
||||
>
|
||||
<el-button type="warning" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- 按钮集群 -->
|
||||
|
|
@ -145,21 +117,13 @@
|
|||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
width="45"
|
||||
align="center"
|
||||
v-if="showSel"
|
||||
:selectable="selectable"
|
||||
/>
|
||||
<el-table-column type="selection" width="45" align="center" v-if="showSel" :selectable="selectable" />
|
||||
<el-table-column
|
||||
width="55"
|
||||
align="center"
|
||||
label="序号"
|
||||
type="index"
|
||||
:index="
|
||||
indexContinuation(queryParams.pageNum, queryParams.pageSize)
|
||||
"
|
||||
:index="indexContinuation(queryParams.pageNum, queryParams.pageSize)"
|
||||
v-if="showIndex"
|
||||
/>
|
||||
<el-table-column
|
||||
|
|
@ -184,8 +148,9 @@
|
|||
<el-table-column
|
||||
align="center"
|
||||
label="操作"
|
||||
v-if="handleShow && showOperation"
|
||||
:min-width="dynamicWidth"
|
||||
:show-overflow-tooltip="false"
|
||||
v-if="handleShow && showOperation"
|
||||
>
|
||||
<template slot-scope="{ row }">
|
||||
<div class="optionDivRef">
|
||||
|
|
@ -491,8 +456,7 @@ export default {
|
|||
},
|
||||
/** 动态设置操作列的列宽 */
|
||||
getOperatorWidth() {
|
||||
const operatorColumn =
|
||||
document.getElementsByClassName('optionDivRef')
|
||||
const operatorColumn = document.getElementsByClassName('optionDivRef')
|
||||
|
||||
// 默认宽度
|
||||
let width = 100
|
||||
|
|
@ -507,12 +471,9 @@ export default {
|
|||
width = width > item.offsetWidth ? width : item.offsetWidth
|
||||
const buttons = item.getElementsByClassName('el-button')
|
||||
buttonCount = buttons.length
|
||||
buttonCount =
|
||||
buttonCount > buttons.length
|
||||
? buttonCount
|
||||
: buttons.length
|
||||
buttonCount = buttonCount > buttons.length ? buttonCount : buttons.length
|
||||
})
|
||||
return width
|
||||
return width + 10
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -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,84 +1,117 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<div class="filter-container">
|
||||
|
||||
<el-input v-model="listQuery.ip" placeholder="请输入IP地址"
|
||||
style="width: 200px" class="filter-item ml-20" :maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-date-picker
|
||||
v-model="rangeDate"
|
||||
style="width: 300px"
|
||||
class="filter-item ml-20"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
<el-select 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-input v-model="listQuery.errType" placeholder="请输入异常类型"
|
||||
<div class="app-container">
|
||||
<div class="filter-container">
|
||||
<el-input
|
||||
v-model="listQuery.ip"
|
||||
placeholder="请输入IP地址"
|
||||
style="width: 200px"
|
||||
class="filter-item ml-20"
|
||||
:maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-date-picker
|
||||
v-model="rangeDate"
|
||||
style="width: 300px"
|
||||
class="filter-item ml-20"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
<el-select
|
||||
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-input v-model="listQuery.errType" placeholder="请输入异常类型"
|
||||
style="width: 200px" class="filter-item" :maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/> -->
|
||||
<el-select 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
|
||||
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 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-select>
|
||||
<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-select>
|
||||
<el-button style="margin-left: 20px" class="filter-item" type="primary" @click="handleFilter">
|
||||
查询
|
||||
</el-button>
|
||||
<el-button style="margin-left: 20px" class="filter-item" @click="resetFilter">
|
||||
重置
|
||||
</el-button>
|
||||
<el-button @click="handleBackups" class="filter-item" style="margin-left: 20px" type="warning">
|
||||
备份
|
||||
</el-button>
|
||||
</div>
|
||||
<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-select>
|
||||
<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-select>
|
||||
<el-button style="margin-left: 20px" class="filter-item" type="primary" @click="handleFilter">
|
||||
查询
|
||||
</el-button>
|
||||
<el-button style="margin-left: 20px" class="filter-item" @click="resetFilter"> 重置 </el-button>
|
||||
<el-button @click="handleBackups" class="filter-item" style="margin-left: 20px" type="warning">
|
||||
备份
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<el-table
|
||||
:key="tableKey"
|
||||
v-loading="listLoading"
|
||||
:data="list"
|
||||
border
|
||||
fit
|
||||
highlight-current-row
|
||||
style="width: 100%"
|
||||
:max-height="tableHeight"
|
||||
>
|
||||
<el-table-column label="序号" align="center" width="80" type="index">
|
||||
<template scope="scope">
|
||||
<span>{{ (listQuery.pageNum - 1) * listQuery.pageSize + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作人" align="center" prop="operaUserName">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.operaUserName||'/' }}</span>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column label="操作时间" align="center" prop="operTime" width="180"/>
|
||||
<el-table-column label="IP地址" align="center" prop="ip"/>
|
||||
<el-table-column label="操作模块" align="center" prop="model" >
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.model||'/' }}</span>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column label="异常类型" align="center" prop="errType" />
|
||||
<el-table-column label="异常原因" align="center" prop="operateDetail"/>
|
||||
<el-table-column label="异常等级" align="center" prop="grade"/>
|
||||
<!-- <el-table-column label="事件结果" align="center" prop="failureReason"/> -->
|
||||
<el-table-column label="操作类型" align="center" prop="operType" />
|
||||
<!--
|
||||
<el-table
|
||||
:key="tableKey"
|
||||
v-loading="listLoading"
|
||||
:data="list"
|
||||
border
|
||||
fit
|
||||
highlight-current-row
|
||||
style="width: 100%"
|
||||
:max-height="tableHeight"
|
||||
>
|
||||
<el-table-column label="序号" align="center" width="80" type="index">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ (listQuery.pageNum - 1) * listQuery.pageSize + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作人" align="center" prop="operaUserName">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.operaUserName || '/' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作时间" align="center" prop="operTime" width="180" />
|
||||
<el-table-column label="IP地址" align="center" prop="ip" />
|
||||
<el-table-column label="操作模块" align="center" prop="model">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.model || '/' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="异常类型" align="center" prop="errType" />
|
||||
<el-table-column label="异常原因" align="center" prop="operateDetail" />
|
||||
<el-table-column label="异常等级" align="center" prop="grade" />
|
||||
<!-- <el-table-column label="事件结果" align="center" prop="failureReason"/> -->
|
||||
<el-table-column label="操作类型" align="center" prop="operType" />
|
||||
<!--
|
||||
<el-table-column label="操作详情" align="center" prop="operateDetail" />
|
||||
|
||||
<el-table-column label="操作结果" align="center" prop="errLevel">
|
||||
|
|
@ -88,18 +121,18 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="操作参数" align="center" prop="params" />
|
||||
<el-table-column label="操作方法" align="center" prop="method" /> -->
|
||||
<el-table-column label="操作路径" align="center" prop="operUri" />
|
||||
<!-- <el-table-column label="执行时间(ms)" align="center" prop="times" /> -->
|
||||
</el-table>
|
||||
<el-table-column label="操作路径" align="center" prop="operUri" />
|
||||
<!-- <el-table-column label="执行时间(ms)" align="center" prop="times" /> -->
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="listQuery.pageNum"
|
||||
:limit.sync="listQuery.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="listQuery.pageNum"
|
||||
:limit.sync="listQuery.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
|
@ -108,133 +141,138 @@ import Pagination from '@/components/Pagination'
|
|||
import _ from 'lodash/fp'
|
||||
import { downloadFile } from '@/utils/download'
|
||||
|
||||
import { getErrLogs,downloadErrLogs } from '@/api/system/log'
|
||||
|
||||
import { getErrLogs, downloadErrLogs } from '@/api/system/log'
|
||||
|
||||
const levelList = {
|
||||
1:'高',
|
||||
2:'中',
|
||||
3:'低'
|
||||
};
|
||||
1: '高',
|
||||
2: '中',
|
||||
3: '低',
|
||||
}
|
||||
const typeList = {
|
||||
1:'越权访问',
|
||||
2:'IP异常',
|
||||
// 3:'删除',
|
||||
// 4:'查询',
|
||||
// 5:'导出',
|
||||
// 6:'下载',
|
||||
// 7:'备份',
|
||||
// 8:'登录',
|
||||
// 9:'登出'
|
||||
};
|
||||
1: '越权访问',
|
||||
2: 'IP异常',
|
||||
// 3:'删除',
|
||||
// 4:'查询',
|
||||
// 5:'导出',
|
||||
// 6:'下载',
|
||||
// 7:'备份',
|
||||
// 8:'登录',
|
||||
// 9:'登出'
|
||||
}
|
||||
|
||||
export default {
|
||||
components: { Pagination },
|
||||
data() {
|
||||
return {
|
||||
tableKey: 0,
|
||||
list: [],
|
||||
levelList: levelList,
|
||||
total: 0,
|
||||
listLoading: false,
|
||||
tableHeight: 650,
|
||||
typeList: typeList,
|
||||
timeList:[{id:1,name:'时间'},{id:2,name:'操作人'},{id:4,name:'ip'},{id:5,name:'异常等级'}],
|
||||
sortList:[{id:1,name:'倒序'},{id:2,name:'升序'}],
|
||||
listQuery: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
errType: '',
|
||||
ip: '',
|
||||
errLevel: '',
|
||||
operTime:'',
|
||||
// logSort:1,
|
||||
logDesc:1,
|
||||
},
|
||||
rangeDate:[],
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// this.getList()
|
||||
// this.getOperate()
|
||||
},
|
||||
mounted() {
|
||||
this.listQuery.operTime = this.getCurrentDate()+' - '+this.getCurrentDate();
|
||||
this.rangeDate = [this.getCurrentDate(),this.getCurrentDate()]
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getStatus(val) {
|
||||
return this.levelList[val]
|
||||
components: { Pagination },
|
||||
data() {
|
||||
return {
|
||||
tableKey: 0,
|
||||
list: [],
|
||||
levelList: levelList,
|
||||
total: 0,
|
||||
listLoading: false,
|
||||
tableHeight: 650,
|
||||
typeList: typeList,
|
||||
timeList: [
|
||||
{ id: 1, name: '时间' },
|
||||
{ id: 2, name: '操作人' },
|
||||
{ id: 4, name: 'ip' },
|
||||
{ id: 5, name: '异常等级' },
|
||||
],
|
||||
sortList: [
|
||||
{ id: 1, name: '倒序' },
|
||||
{ id: 2, name: '升序' },
|
||||
],
|
||||
listQuery: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
errType: '',
|
||||
ip: '',
|
||||
errLevel: '',
|
||||
operTime: '',
|
||||
// logSort:1,
|
||||
logDesc: 1,
|
||||
},
|
||||
rangeDate: [],
|
||||
}
|
||||
},
|
||||
//获取下拉数据
|
||||
getOperate(){
|
||||
// getOperateList().then((response) => {
|
||||
// this.typeList = response.data
|
||||
// })
|
||||
created() {
|
||||
// this.getList()
|
||||
// this.getOperate()
|
||||
},
|
||||
mounted() {
|
||||
this.listQuery.operTime = this.getCurrentDate() + ' - ' + this.getCurrentDate()
|
||||
this.rangeDate = [this.getCurrentDate(), this.getCurrentDate()]
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getStatus(val) {
|
||||
return this.levelList[val]
|
||||
},
|
||||
//获取下拉数据
|
||||
getOperate() {
|
||||
// getOperateList().then((response) => {
|
||||
// this.typeList = response.data
|
||||
// })
|
||||
},
|
||||
|
||||
getList() {
|
||||
this.listLoading = true
|
||||
if(this.rangeDate && this.rangeDate.length>0){
|
||||
this.listQuery.operTime = this.rangeDate[0]+' - '+this.rangeDate[1];
|
||||
}
|
||||
getErrLogs(this.listQuery).then((response) => {
|
||||
this.list = response.rows.map(item => {
|
||||
return item
|
||||
})
|
||||
this.total = response.total
|
||||
})
|
||||
setTimeout(()=>{
|
||||
this.listLoading = false
|
||||
},500)
|
||||
getList() {
|
||||
this.listLoading = true
|
||||
if (this.rangeDate && this.rangeDate.length > 0) {
|
||||
this.listQuery.operTime = this.rangeDate[0] + ' - ' + this.rangeDate[1]
|
||||
}
|
||||
getErrLogs(this.listQuery).then((response) => {
|
||||
this.list = response.rows.map((item) => {
|
||||
return item
|
||||
})
|
||||
this.total = response.total
|
||||
})
|
||||
setTimeout(() => {
|
||||
this.listLoading = false
|
||||
}, 500)
|
||||
},
|
||||
// 查询
|
||||
handleFilter() {
|
||||
this.listQuery.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
//重置
|
||||
resetFilter() {
|
||||
this.listQuery = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
errType: '',
|
||||
ip: '',
|
||||
grade: '',
|
||||
// logSort:1,
|
||||
logDesc: 1,
|
||||
}
|
||||
this.rangeDate = [this.getCurrentDate(), this.getCurrentDate()]
|
||||
this.handleFilter()
|
||||
},
|
||||
// 备份
|
||||
handleBackups() {
|
||||
downloadErrLogs().then((res) => {
|
||||
downloadFile({ fileName: '异常日志.sql', fileData: res, fileType: 'text/html;charset=UTF-8' })
|
||||
})
|
||||
},
|
||||
//导出
|
||||
handleExport() {
|
||||
// exportCarDetail().then(res => {
|
||||
// downloadFile({ fileName: '设备详情.xlsx', fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
|
||||
// })
|
||||
},
|
||||
getCurrentDate() {
|
||||
let now = new Date()
|
||||
let year = now.getFullYear()
|
||||
let month = now.getMonth() + 1
|
||||
if (month < 10) {
|
||||
month = '0' + month
|
||||
}
|
||||
let day = now.getDate()
|
||||
if (day < 10) {
|
||||
day = '0' + day
|
||||
}
|
||||
return year + '-' + month + '-' + day
|
||||
},
|
||||
},
|
||||
// 查询
|
||||
handleFilter() {
|
||||
this.listQuery.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
//重置
|
||||
resetFilter() {
|
||||
this.listQuery={
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
errType: '',
|
||||
ip: '',
|
||||
grade: '',
|
||||
// logSort:1,
|
||||
logDesc:1,
|
||||
};
|
||||
this.rangeDate=[this.getCurrentDate(),this.getCurrentDate()]
|
||||
this.handleFilter()
|
||||
},
|
||||
// 备份
|
||||
handleBackups() {
|
||||
downloadErrLogs().then(res => {
|
||||
downloadFile({ fileName: '异常日志.sql', fileData: res, fileType: 'text/html;charset=UTF-8'})
|
||||
})
|
||||
},
|
||||
//导出
|
||||
handleExport(){
|
||||
|
||||
// exportCarDetail().then(res => {
|
||||
// downloadFile({ fileName: '设备详情.xlsx', fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
|
||||
// })
|
||||
},
|
||||
getCurrentDate() {
|
||||
let now = new Date();
|
||||
let year = now.getFullYear();
|
||||
let month = now.getMonth() + 1;
|
||||
if(month<10){
|
||||
month = '0'+month
|
||||
}
|
||||
let day = now.getDate();
|
||||
if(day<10){
|
||||
day = '0'+day
|
||||
}
|
||||
return year + "-" + month + "-" + day;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,231 +1,276 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<div class="filter-container">
|
||||
<el-input v-model="listQuery.operaUserName" placeholder="请输入操作人"
|
||||
style="width: 200px" class="filter-item" :maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-input v-model="listQuery.ip" placeholder="请输入IP地址"
|
||||
style="width: 200px" class="filter-item ml-20" :maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-date-picker
|
||||
v-model="rangeDate"
|
||||
style="width: 300px"
|
||||
class="filter-item ml-20"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
<!-- <el-input v-model="listQuery.content" placeholder="请输入操作内容"
|
||||
<div class="filter-container">
|
||||
<el-input
|
||||
v-model="listQuery.operaUserName"
|
||||
placeholder="请输入操作人"
|
||||
style="width: 200px"
|
||||
class="filter-item"
|
||||
:maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-input
|
||||
v-model="listQuery.ip"
|
||||
placeholder="请输入IP地址"
|
||||
style="width: 200px"
|
||||
class="filter-item ml-20"
|
||||
:maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-date-picker
|
||||
v-model="rangeDate"
|
||||
style="width: 300px"
|
||||
class="filter-item ml-20"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
<!-- <el-input v-model="listQuery.content" placeholder="请输入操作内容"
|
||||
style="width: 200px" class="filter-item ml-20" :maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/> -->
|
||||
<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-select>
|
||||
<el-select 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
|
||||
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
|
||||
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 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-select>
|
||||
<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-select>
|
||||
<el-button style="margin-left: 20px" class="filter-item" type="primary" @click="handleFilter">
|
||||
查询
|
||||
</el-button>
|
||||
<el-button style="margin-left: 20px" class="filter-item" @click="resetFilter">
|
||||
重置
|
||||
</el-button>
|
||||
<el-button @click="handleBackups" class="filter-item" style="margin-left: 20px" type="warning">
|
||||
备份
|
||||
</el-button>
|
||||
</div>
|
||||
<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-select>
|
||||
<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-select>
|
||||
<el-button style="margin-left: 20px" class="filter-item" type="primary" @click="handleFilter">
|
||||
查询
|
||||
</el-button>
|
||||
<el-button style="margin-left: 20px" class="filter-item" @click="resetFilter"> 重置 </el-button>
|
||||
<el-button @click="handleBackups" class="filter-item" style="margin-left: 20px" type="warning">
|
||||
备份
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<el-table
|
||||
:key="tableKey"
|
||||
v-loading="listLoading"
|
||||
:data="list"
|
||||
border
|
||||
fit
|
||||
highlight-current-row
|
||||
style="width: 100%"
|
||||
:max-height="tableHeight"
|
||||
>
|
||||
<el-table-column label="序号" align="center" width="80" type="index">
|
||||
<template scope="scope">
|
||||
<span>{{ (listQuery.pageNum - 1) * listQuery.pageSize + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作人" align="center" prop="operaUserName" />
|
||||
<el-table-column label="操作时间" align="center" prop="operTime" />
|
||||
<el-table-column label="IP地址" align="center" prop="ip" />
|
||||
<el-table-column label="操作模块" align="center" prop="model" />
|
||||
<el-table-column label="操作类型" align="center" prop="operType" />
|
||||
<el-table-column label="操作详情" align="center" prop="operateDetail" />
|
||||
<el-table-column label="操作结果" align="center" prop="result">
|
||||
<template slot-scope="{ row }">
|
||||
{{ row.result}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作参数" align="center" prop="params" />
|
||||
<el-table-column label="操作方法" align="center" prop="method" />
|
||||
<el-table-column label="操作路径" align="center" prop="operUri" />
|
||||
<el-table-column label="执行时间(ms)" align="center" prop="times" />
|
||||
</el-table>
|
||||
<el-table
|
||||
:key="tableKey"
|
||||
v-loading="listLoading"
|
||||
:data="list"
|
||||
border
|
||||
fit
|
||||
highlight-current-row
|
||||
style="width: 100%"
|
||||
:max-height="tableHeight"
|
||||
>
|
||||
<el-table-column label="序号" align="center" width="80" type="index">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ (listQuery.pageNum - 1) * listQuery.pageSize + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作人" align="center" prop="operaUserName" />
|
||||
<el-table-column label="操作时间" align="center" prop="operTime" />
|
||||
<el-table-column label="IP地址" align="center" prop="ip" />
|
||||
<el-table-column label="操作模块" align="center" prop="model" />
|
||||
<el-table-column label="操作类型" align="center" prop="operType" />
|
||||
<el-table-column label="操作详情" align="center" prop="operateDetail" />
|
||||
<el-table-column label="操作结果" align="center" prop="result">
|
||||
<template slot-scope="{ row }">
|
||||
{{ row.result }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作参数" align="center" prop="params" />
|
||||
<el-table-column label="操作方法" align="center" prop="method" />
|
||||
<el-table-column label="操作路径" align="center" prop="operUri" />
|
||||
<el-table-column label="执行时间(ms)" align="center" prop="times" />
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="listQuery.pageNum"
|
||||
:limit.sync="listQuery.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="listQuery.pageNum"
|
||||
:limit.sync="listQuery.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Pagination from '@/components/Pagination'
|
||||
<script>
|
||||
import Pagination from '@/components/Pagination'
|
||||
|
||||
import _ from 'lodash/fp'
|
||||
import { downloadFile } from '@/utils/download'
|
||||
import _ from 'lodash/fp'
|
||||
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 = {
|
||||
1:'成功',
|
||||
2:'失败'
|
||||
};
|
||||
const operateList = {
|
||||
1:'新增',
|
||||
2:'修改',
|
||||
3:'删除',
|
||||
4:'查询',
|
||||
5:'导出',
|
||||
6:'下载',
|
||||
7:'备份',
|
||||
8:'登录',
|
||||
9:'登出'
|
||||
};
|
||||
|
||||
export default {
|
||||
export default {
|
||||
components: { Pagination },
|
||||
data() {
|
||||
return {
|
||||
tableKey: 0,
|
||||
list: [],
|
||||
outcomeList: outcomeList,
|
||||
total: 0,
|
||||
listLoading: false,
|
||||
tableHeight: 650,
|
||||
operateList: operateList,
|
||||
timeList:[{id:1,name:'时间'},{id:2,name:'操作人'},{id:3,name:'操作模块'},{id:4,name:'ip'},],
|
||||
sortList:[{id:1,name:'倒序'},{id:2,name:'升序'}],
|
||||
listQuery: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
operaUserName: '',
|
||||
ip: '',
|
||||
content:'',
|
||||
result: '',
|
||||
operTime:'',
|
||||
operType: '',
|
||||
logSort:1,
|
||||
logDesc:1,
|
||||
},
|
||||
rangeDate:[],
|
||||
}
|
||||
return {
|
||||
tableKey: 0,
|
||||
list: [],
|
||||
outcomeList: outcomeList,
|
||||
total: 0,
|
||||
listLoading: false,
|
||||
tableHeight: 650,
|
||||
operateList: operateList,
|
||||
timeList: [
|
||||
{ id: 1, name: '时间' },
|
||||
{ id: 2, name: '操作人' },
|
||||
{ id: 3, name: '操作模块' },
|
||||
{ id: 4, name: 'ip' },
|
||||
],
|
||||
sortList: [
|
||||
{ id: 1, name: '倒序' },
|
||||
{ id: 2, name: '升序' },
|
||||
],
|
||||
listQuery: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
operaUserName: '',
|
||||
ip: '',
|
||||
content: '',
|
||||
result: '',
|
||||
operTime: '',
|
||||
operType: '',
|
||||
logSort: 1,
|
||||
logDesc: 1,
|
||||
},
|
||||
rangeDate: [],
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// this.getList()
|
||||
// this.getOperate()
|
||||
// this.getList()
|
||||
// this.getOperate()
|
||||
},
|
||||
mounted() {
|
||||
this.listQuery.operTime = this.getCurrentDate()+' - '+this.getCurrentDate();
|
||||
this.rangeDate = [this.getCurrentDate(),this.getCurrentDate()]
|
||||
this.getList()
|
||||
this.listQuery.operTime = this.getCurrentDate() + ' - ' + this.getCurrentDate()
|
||||
this.rangeDate = [this.getCurrentDate(), this.getCurrentDate()]
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getStatus(val) {
|
||||
return this.outcomeList[val]
|
||||
},
|
||||
//获取下拉数据
|
||||
getOperate(){
|
||||
// getOperateList().then((response) => {
|
||||
// this.operateList = response.data
|
||||
// })
|
||||
},
|
||||
getStatus(val) {
|
||||
return this.outcomeList[val]
|
||||
},
|
||||
//获取下拉数据
|
||||
getOperate() {
|
||||
// getOperateList().then((response) => {
|
||||
// this.operateList = response.data
|
||||
// })
|
||||
},
|
||||
|
||||
getList() {
|
||||
this.listLoading = true
|
||||
if(this.rangeDate && this.rangeDate.length>0){
|
||||
this.listQuery.operTime = this.rangeDate[0]+' - '+this.rangeDate[1];
|
||||
}
|
||||
getYwLogs(this.listQuery).then((response) => {
|
||||
this.list = response.rows.map(item => {
|
||||
return item
|
||||
})
|
||||
this.total = response.total
|
||||
})
|
||||
setTimeout(()=>{
|
||||
this.listLoading = false
|
||||
},500)
|
||||
},
|
||||
// 查询
|
||||
handleFilter() {
|
||||
this.listQuery.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
//重置
|
||||
resetFilter() {
|
||||
this.listQuery={
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
operaUserName: '',
|
||||
ip: '',
|
||||
getList() {
|
||||
this.listLoading = true
|
||||
if (this.rangeDate && this.rangeDate.length > 0) {
|
||||
this.listQuery.operTime = this.rangeDate[0] + ' - ' + this.rangeDate[1]
|
||||
}
|
||||
getYwLogs(this.listQuery).then((response) => {
|
||||
this.list = response.rows.map((item) => {
|
||||
return item
|
||||
})
|
||||
this.total = response.total
|
||||
})
|
||||
setTimeout(() => {
|
||||
this.listLoading = false
|
||||
}, 500)
|
||||
},
|
||||
// 查询
|
||||
handleFilter() {
|
||||
this.listQuery.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
//重置
|
||||
resetFilter() {
|
||||
this.listQuery = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
operaUserName: '',
|
||||
ip: '',
|
||||
|
||||
content:'',
|
||||
result: '',
|
||||
operType: '',
|
||||
logSort:1,
|
||||
logDesc:1,
|
||||
};
|
||||
this.rangeDate=[this.getCurrentDate(),this.getCurrentDate()]
|
||||
this.handleFilter()
|
||||
},
|
||||
// 备份
|
||||
handleBackups() {
|
||||
downloadYwLogs().then(res => {
|
||||
downloadFile({ fileName: '业务日志.sql', fileData: res, fileType: 'text/html;charset=UTF-8'})
|
||||
})
|
||||
},
|
||||
//导出
|
||||
handleExport(){
|
||||
|
||||
// exportCarDetail().then(res => {
|
||||
// downloadFile({ fileName: '设备详情.xlsx', fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
|
||||
// })
|
||||
},
|
||||
getCurrentDate() {
|
||||
let now = new Date();
|
||||
let year = now.getFullYear();
|
||||
let month = now.getMonth() + 1;
|
||||
if(month<10){
|
||||
month = '0'+month
|
||||
}
|
||||
let day = now.getDate();
|
||||
if(day<10){
|
||||
day = '0'+day
|
||||
}
|
||||
return year + "-" + month + "-" + day;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
content: '',
|
||||
result: '',
|
||||
operType: '',
|
||||
logSort: 1,
|
||||
logDesc: 1,
|
||||
}
|
||||
this.rangeDate = [this.getCurrentDate(), this.getCurrentDate()]
|
||||
this.handleFilter()
|
||||
},
|
||||
// 备份
|
||||
handleBackups() {
|
||||
downloadYwLogs().then((res) => {
|
||||
downloadFile({ fileName: '业务日志.sql', fileData: res, fileType: 'text/html;charset=UTF-8' })
|
||||
})
|
||||
},
|
||||
//导出
|
||||
handleExport() {
|
||||
// exportCarDetail().then(res => {
|
||||
// downloadFile({ fileName: '设备详情.xlsx', fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
|
||||
// })
|
||||
},
|
||||
getCurrentDate() {
|
||||
let now = new Date()
|
||||
let year = now.getFullYear()
|
||||
let month = now.getMonth() + 1
|
||||
if (month < 10) {
|
||||
month = '0' + month
|
||||
}
|
||||
let day = now.getDate()
|
||||
if (day < 10) {
|
||||
day = '0' + day
|
||||
}
|
||||
return year + '-' + month + '-' + day
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,92 +1,122 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<div class="filter-container">
|
||||
<el-input v-model="listQuery.operaUserName" placeholder="请输入操作人"
|
||||
style="width: 200px" class="filter-item" :maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-input v-model="listQuery.ip" placeholder="请输入IP地址"
|
||||
style="width: 200px" class="filter-item ml-20" :maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-date-picker
|
||||
v-model="rangeDate"
|
||||
style="width: 300px"
|
||||
class="filter-item ml-20"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
<!-- <el-input v-model="listQuery.content" placeholder="请输入操作内容"
|
||||
<div class="app-container">
|
||||
<div class="filter-container">
|
||||
<el-input
|
||||
v-model="listQuery.operaUserName"
|
||||
placeholder="请输入操作人"
|
||||
style="width: 200px"
|
||||
class="filter-item"
|
||||
:maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-input
|
||||
v-model="listQuery.ip"
|
||||
placeholder="请输入IP地址"
|
||||
style="width: 200px"
|
||||
class="filter-item ml-20"
|
||||
:maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-date-picker
|
||||
v-model="rangeDate"
|
||||
style="width: 300px"
|
||||
class="filter-item ml-20"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
<!-- <el-input v-model="listQuery.content" placeholder="请输入操作内容"
|
||||
style="width: 200px" class="filter-item ml-20" :maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<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-select>-->
|
||||
<el-select 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
|
||||
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 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-select>
|
||||
<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-select>
|
||||
<el-button style="margin-left: 20px" class="filter-item" type="primary" @click="handleFilter">
|
||||
查询
|
||||
</el-button>
|
||||
<el-button style="margin-left: 20px" class="filter-item" @click="resetFilter">
|
||||
重置
|
||||
</el-button>
|
||||
<el-button @click="handleBackups" class="filter-item" style="margin-left: 20px" type="warning">
|
||||
备份
|
||||
</el-button>
|
||||
<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-select>
|
||||
<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-select>
|
||||
<el-button style="margin-left: 20px" class="filter-item" type="primary" @click="handleFilter">
|
||||
查询
|
||||
</el-button>
|
||||
<el-button style="margin-left: 20px" class="filter-item" @click="resetFilter"> 重置 </el-button>
|
||||
<el-button @click="handleBackups" class="filter-item" style="margin-left: 20px" type="warning">
|
||||
备份
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<el-table
|
||||
:key="tableKey"
|
||||
v-loading="listLoading"
|
||||
:data="list"
|
||||
border
|
||||
fit
|
||||
highlight-current-row
|
||||
style="width: 100%"
|
||||
:max-height="tableHeight"
|
||||
>
|
||||
<el-table-column label="序号" align="center" width="80" type="index">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ (listQuery.pageNum - 1) * listQuery.pageSize + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作人" align="center" prop="operaUserName" />
|
||||
<el-table-column label="操作时间" align="center" prop="operTime" />
|
||||
<el-table-column label="IP地址" align="center" prop="ip" />
|
||||
<el-table-column label="操作模块" align="center" prop="model" />
|
||||
<el-table-column label="操作类型" align="center" prop="operType" />
|
||||
<el-table-column label="操作详情" align="center" prop="operateDetail" />
|
||||
<el-table-column label="操作结果" align="center" prop="result">
|
||||
<template slot-scope="{ row }">
|
||||
{{ row.result }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作参数" align="center" prop="params" />
|
||||
<el-table-column label="操作方法" align="center" prop="method" />
|
||||
<el-table-column label="操作路径" align="center" prop="operUri" />
|
||||
<el-table-column label="执行时间(ms)" align="center" prop="times" />
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="listQuery.pageNum"
|
||||
:limit.sync="listQuery.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<el-table
|
||||
:key="tableKey"
|
||||
v-loading="listLoading"
|
||||
:data="list"
|
||||
border
|
||||
fit
|
||||
highlight-current-row
|
||||
style="width: 100%"
|
||||
:max-height="tableHeight"
|
||||
>
|
||||
<el-table-column label="序号" align="center" width="80" type="index">
|
||||
<template scope="scope">
|
||||
<span>{{ (listQuery.pageNum - 1) * listQuery.pageSize + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作人" align="center" prop="operaUserName" />
|
||||
<el-table-column label="操作时间" align="center" prop="operTime" />
|
||||
<el-table-column label="IP地址" align="center" prop="ip" />
|
||||
<el-table-column label="操作模块" align="center" prop="model" />
|
||||
<el-table-column label="操作类型" align="center" prop="operType" />
|
||||
<el-table-column label="操作详情" align="center" prop="operateDetail" />
|
||||
<el-table-column label="操作结果" align="center" prop="result">
|
||||
<template slot-scope="{ row }">
|
||||
{{ row.result }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作参数" align="center" prop="params" />
|
||||
<el-table-column label="操作方法" align="center" prop="method" />
|
||||
<el-table-column label="操作路径" align="center" prop="operUri" />
|
||||
<el-table-column label="执行时间(ms)" align="center" prop="times" />
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="listQuery.pageNum"
|
||||
:limit.sync="listQuery.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
|
@ -95,138 +125,143 @@ import Pagination from '@/components/Pagination'
|
|||
import _ from 'lodash/fp'
|
||||
import { downloadFile } from '@/utils/download'
|
||||
|
||||
import { getSysLogs,downloadSysLogs } from '@/api/system/log'
|
||||
|
||||
import { getSysLogs, downloadSysLogs } from '@/api/system/log'
|
||||
|
||||
const outcomeList = {
|
||||
1:'成功',
|
||||
2:'失败'
|
||||
};
|
||||
1: '成功',
|
||||
2: '失败',
|
||||
}
|
||||
const operateList = {
|
||||
1:'新增',
|
||||
2:'修改',
|
||||
3:'删除',
|
||||
4:'查询',
|
||||
5:'导出',
|
||||
6:'下载',
|
||||
7:'备份',
|
||||
8:'登录',
|
||||
9:'登出'
|
||||
};
|
||||
1: '新增',
|
||||
2: '修改',
|
||||
3: '删除',
|
||||
4: '查询',
|
||||
5: '导出',
|
||||
6: '下载',
|
||||
7: '备份',
|
||||
8: '登录',
|
||||
9: '登出',
|
||||
}
|
||||
|
||||
export default {
|
||||
components: { Pagination },
|
||||
data() {
|
||||
return {
|
||||
tableKey: 0,
|
||||
list: [],
|
||||
outcomeList: outcomeList,
|
||||
total: 0,
|
||||
listLoading: false,
|
||||
tableHeight: 650,
|
||||
operateList: operateList,
|
||||
timeList:[{id:1,name:'时间'},{id:2,name:'操作人'},{id:3,name:'操作模块'},{id:4,name:'ip'},{id:5,name:'操作类型'},],
|
||||
sortList:[{id:1,name:'倒序'},{id:2,name:'升序'}],
|
||||
listQuery: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
operaUserName: '',
|
||||
ip: '',
|
||||
content:'',
|
||||
result: '',
|
||||
operTime:'',
|
||||
operaType: '',
|
||||
logSort:1,
|
||||
logDesc:1,
|
||||
},
|
||||
rangeDate:[],
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// this.getList()
|
||||
// this.getOperate()
|
||||
},
|
||||
mounted() {
|
||||
this.listQuery.operTime = this.getCurrentDate()+' - '+this.getCurrentDate();
|
||||
this.rangeDate = [this.getCurrentDate(),this.getCurrentDate()]
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getStatus(val) {
|
||||
return this.outcomeList[val]
|
||||
components: { Pagination },
|
||||
data() {
|
||||
return {
|
||||
tableKey: 0,
|
||||
list: [],
|
||||
outcomeList: outcomeList,
|
||||
total: 0,
|
||||
listLoading: false,
|
||||
tableHeight: 650,
|
||||
operateList: operateList,
|
||||
timeList: [
|
||||
{ id: 1, name: '时间' },
|
||||
{ id: 2, name: '操作人' },
|
||||
{ id: 3, name: '操作模块' },
|
||||
{ id: 4, name: 'ip' },
|
||||
{ id: 5, name: '操作类型' },
|
||||
],
|
||||
sortList: [
|
||||
{ id: 1, name: '倒序' },
|
||||
{ id: 2, name: '升序' },
|
||||
],
|
||||
listQuery: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
operaUserName: '',
|
||||
ip: '',
|
||||
content: '',
|
||||
result: '',
|
||||
operTime: '',
|
||||
operaType: '',
|
||||
logSort: 1,
|
||||
logDesc: 1,
|
||||
},
|
||||
rangeDate: [],
|
||||
}
|
||||
},
|
||||
//获取下拉数据
|
||||
getOperate(){
|
||||
// getOperateList().then((response) => {
|
||||
// this.operateList = response.data
|
||||
// })
|
||||
created() {
|
||||
// this.getList()
|
||||
// this.getOperate()
|
||||
},
|
||||
mounted() {
|
||||
this.listQuery.operTime = this.getCurrentDate() + ' - ' + this.getCurrentDate()
|
||||
this.rangeDate = [this.getCurrentDate(), this.getCurrentDate()]
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getStatus(val) {
|
||||
return this.outcomeList[val]
|
||||
},
|
||||
//获取下拉数据
|
||||
getOperate() {
|
||||
// getOperateList().then((response) => {
|
||||
// this.operateList = response.data
|
||||
// })
|
||||
},
|
||||
|
||||
getList() {
|
||||
this.listLoading = true
|
||||
if(this.rangeDate && this.rangeDate.length>0){
|
||||
this.listQuery.operTime = this.rangeDate[0]+' - '+this.rangeDate[1];
|
||||
}
|
||||
getSysLogs(this.listQuery).then((response) => {
|
||||
this.list = response.rows.map(item => {
|
||||
return item
|
||||
})
|
||||
this.total = response.total
|
||||
})
|
||||
setTimeout(()=>{
|
||||
this.listLoading = false
|
||||
},500)
|
||||
},
|
||||
// 查询
|
||||
handleFilter() {
|
||||
this.listQuery.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
//重置
|
||||
resetFilter() {
|
||||
this.listQuery={
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
operaUserName: '',
|
||||
ip: '',
|
||||
getList() {
|
||||
this.listLoading = true
|
||||
if (this.rangeDate && this.rangeDate.length > 0) {
|
||||
this.listQuery.operTime = this.rangeDate[0] + ' - ' + this.rangeDate[1]
|
||||
}
|
||||
getSysLogs(this.listQuery).then((response) => {
|
||||
this.list = response.rows.map((item) => {
|
||||
return item
|
||||
})
|
||||
this.total = response.total
|
||||
})
|
||||
setTimeout(() => {
|
||||
this.listLoading = false
|
||||
}, 500)
|
||||
},
|
||||
// 查询
|
||||
handleFilter() {
|
||||
this.listQuery.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
//重置
|
||||
resetFilter() {
|
||||
this.listQuery = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
operaUserName: '',
|
||||
ip: '',
|
||||
|
||||
content:'',
|
||||
result: '',
|
||||
operateType: '',
|
||||
logSort:1,
|
||||
logDesc:1,
|
||||
};
|
||||
this.rangeDate=[this.getCurrentDate(),this.getCurrentDate()]
|
||||
this.handleFilter()
|
||||
content: '',
|
||||
result: '',
|
||||
operateType: '',
|
||||
logSort: 1,
|
||||
logDesc: 1,
|
||||
}
|
||||
this.rangeDate = [this.getCurrentDate(), this.getCurrentDate()]
|
||||
this.handleFilter()
|
||||
},
|
||||
// 备份
|
||||
handleBackups() {
|
||||
downloadSysLogs().then((res) => {
|
||||
downloadFile({ fileName: '系统日志.sql', fileData: res, fileType: 'text/html;charset=UTF-8' })
|
||||
})
|
||||
},
|
||||
//导出
|
||||
handleExport() {
|
||||
// exportCarDetail().then(res => {
|
||||
// downloadFile({ fileName: '设备详情.xlsx', fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
|
||||
// })
|
||||
},
|
||||
getCurrentDate() {
|
||||
let now = new Date()
|
||||
let year = now.getFullYear()
|
||||
let month = now.getMonth() + 1
|
||||
if (month < 10) {
|
||||
month = '0' + month
|
||||
}
|
||||
let day = now.getDate()
|
||||
if (day < 10) {
|
||||
day = '0' + day
|
||||
}
|
||||
return year + '-' + month + '-' + day
|
||||
},
|
||||
},
|
||||
// 备份
|
||||
handleBackups() {
|
||||
downloadSysLogs().then(res => {
|
||||
downloadFile({ fileName: '系统日志.sql', fileData: res, fileType: 'text/html;charset=UTF-8' })
|
||||
})
|
||||
|
||||
},
|
||||
//导出
|
||||
handleExport(){
|
||||
|
||||
// exportCarDetail().then(res => {
|
||||
// downloadFile({ fileName: '设备详情.xlsx', fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
|
||||
// })
|
||||
},
|
||||
getCurrentDate() {
|
||||
let now = new Date();
|
||||
let year = now.getFullYear();
|
||||
let month = now.getMonth() + 1;
|
||||
if(month<10){
|
||||
month = '0'+month
|
||||
}
|
||||
let day = now.getDate();
|
||||
if(day<10){
|
||||
day = '0'+day
|
||||
}
|
||||
return year + "-" + month + "-" + day;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue