Compare commits

...

2 Commits

Author SHA1 Message Date
BianLzhaoMin a7b5eb355f 冲突合并 2025-04-14 16:19:28 +08:00
BianLzhaoMin 73cfe3908f 解决启动时warning 增加感知设备管理模块 2025-04-14 16:17:04 +08:00
16 changed files with 1817 additions and 1457 deletions

View File

@ -1,10 +1,10 @@
# 页面标题
VUE_APP_TITLE = 博诺思管理系统
VUE_APP_TITLE = 智慧工地
# 开发环境配置
ENV = 'development'
# 博诺思管理系统/开发环境
# 智慧工地/开发环境
VUE_APP_BASE_API = '/dev-api'
# 路由懒加载

View File

@ -1,8 +1,8 @@
# 页面标题
VUE_APP_TITLE = 博诺思管理系统
VUE_APP_TITLE = 智慧工地
# 生产环境配置
ENV = 'production'
# 博诺思管理系统/生产环境
# 智慧工地/生产环境
VUE_APP_BASE_API = '/prod-api'

View File

@ -1,10 +1,10 @@
# 页面标题
VUE_APP_TITLE = 博诺思管理系统
VUE_APP_TITLE = 智慧工地
NODE_ENV = production
# 测试环境配置
ENV = 'staging'
# 博诺思管理系统/测试环境
# 智慧工地/测试环境
VUE_APP_BASE_API = '/stage-api'

85
package-lock.json generated
View File

@ -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": {

View File

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

View File

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

View File

@ -0,0 +1,9 @@
<template>
<div class="app-container"> 属性配置 </div>
</template>
<script>
export default {}
</script>
<style></style>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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