111
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
VITE_APP_TITLE = ChengduTestManagePlant
|
||||
VITE_APP_TITLE = TestManagePlant
|
||||
VITE_APP_PORT = 3888
|
||||
VITE_APP_OPEN_PROXY = true
|
||||
VITE_APP_BASE = /
|
||||
|
||||
317
cdTMP/package-lock.json
generated
317
cdTMP/package-lock.json
generated
@@ -28,7 +28,7 @@
|
||||
"qs": "^6.11.2",
|
||||
"sortablejs": "^1.15.0",
|
||||
"tinymce": "^6.8.3",
|
||||
"vue": "^3.4.27",
|
||||
"vue": "^3.4.29",
|
||||
"vue-clipboard3": "^2.0.0",
|
||||
"vue-color-kit": "^1.0.5",
|
||||
"vue-echarts": "^6.5.5",
|
||||
@@ -54,7 +54,7 @@
|
||||
"postcss": "^8.4.38",
|
||||
"prettier": "^2.8.8",
|
||||
"tailwindcss": "^3.3.2",
|
||||
"vite": "^5.2.12"
|
||||
"vite": "^5.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@alloc/quick-lru": {
|
||||
@@ -430,9 +430,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.6.tgz",
|
||||
"integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==",
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.7.tgz",
|
||||
"integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
},
|
||||
@@ -538,9 +538,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/aix-ppc64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
|
||||
"integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
|
||||
"integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
@@ -554,9 +554,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz",
|
||||
"integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
|
||||
"integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -570,9 +570,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz",
|
||||
"integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
|
||||
"integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -586,9 +586,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -602,9 +602,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/darwin-arm64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz",
|
||||
"integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
|
||||
"integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -618,9 +618,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/darwin-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -634,9 +634,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/freebsd-arm64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz",
|
||||
"integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
|
||||
"integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -650,9 +650,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/freebsd-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -666,9 +666,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-arm": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz",
|
||||
"integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
|
||||
"integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -682,9 +682,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-arm64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz",
|
||||
"integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
|
||||
"integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -698,9 +698,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-ia32": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz",
|
||||
"integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
|
||||
"integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
@@ -714,9 +714,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-loong64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz",
|
||||
"integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
|
||||
"integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
@@ -730,9 +730,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-mips64el": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz",
|
||||
"integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
|
||||
"integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
|
||||
"cpu": [
|
||||
"mips64el"
|
||||
],
|
||||
@@ -746,9 +746,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-ppc64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz",
|
||||
"integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
|
||||
"integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
@@ -762,9 +762,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-riscv64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz",
|
||||
"integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
|
||||
"integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
@@ -778,9 +778,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-s390x": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz",
|
||||
"integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
|
||||
"integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
@@ -794,9 +794,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -810,9 +810,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/netbsd-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -826,9 +826,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/openbsd-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -842,9 +842,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/sunos-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -858,9 +858,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-arm64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz",
|
||||
"integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
|
||||
"integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -874,9 +874,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-ia32": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz",
|
||||
"integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
|
||||
"integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
@@ -890,9 +890,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-x64": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz",
|
||||
"integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
|
||||
"integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1501,36 +1501,36 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-core": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz",
|
||||
"integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==",
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.29.tgz",
|
||||
"integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.24.4",
|
||||
"@vue/shared": "3.4.27",
|
||||
"@babel/parser": "^7.24.7",
|
||||
"@vue/shared": "3.4.29",
|
||||
"entities": "^4.5.0",
|
||||
"estree-walker": "^2.0.2",
|
||||
"source-map-js": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-dom": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz",
|
||||
"integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==",
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz",
|
||||
"integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==",
|
||||
"dependencies": {
|
||||
"@vue/compiler-core": "3.4.27",
|
||||
"@vue/shared": "3.4.27"
|
||||
"@vue/compiler-core": "3.4.29",
|
||||
"@vue/shared": "3.4.29"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-sfc": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz",
|
||||
"integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==",
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz",
|
||||
"integrity": "sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.24.4",
|
||||
"@vue/compiler-core": "3.4.27",
|
||||
"@vue/compiler-dom": "3.4.27",
|
||||
"@vue/compiler-ssr": "3.4.27",
|
||||
"@vue/shared": "3.4.27",
|
||||
"@babel/parser": "^7.24.7",
|
||||
"@vue/compiler-core": "3.4.29",
|
||||
"@vue/compiler-dom": "3.4.29",
|
||||
"@vue/compiler-ssr": "3.4.29",
|
||||
"@vue/shared": "3.4.29",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.30.10",
|
||||
"postcss": "^8.4.38",
|
||||
@@ -1538,12 +1538,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-ssr": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz",
|
||||
"integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==",
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz",
|
||||
"integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==",
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.4.27",
|
||||
"@vue/shared": "3.4.27"
|
||||
"@vue/compiler-dom": "3.4.29",
|
||||
"@vue/shared": "3.4.29"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/devtools-api": {
|
||||
@@ -1552,48 +1552,49 @@
|
||||
"integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
|
||||
},
|
||||
"node_modules/@vue/reactivity": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.27.tgz",
|
||||
"integrity": "sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==",
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.29.tgz",
|
||||
"integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==",
|
||||
"dependencies": {
|
||||
"@vue/shared": "3.4.27"
|
||||
"@vue/shared": "3.4.29"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-core": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.27.tgz",
|
||||
"integrity": "sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==",
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.29.tgz",
|
||||
"integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==",
|
||||
"dependencies": {
|
||||
"@vue/reactivity": "3.4.27",
|
||||
"@vue/shared": "3.4.27"
|
||||
"@vue/reactivity": "3.4.29",
|
||||
"@vue/shared": "3.4.29"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-dom": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz",
|
||||
"integrity": "sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==",
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz",
|
||||
"integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==",
|
||||
"dependencies": {
|
||||
"@vue/runtime-core": "3.4.27",
|
||||
"@vue/shared": "3.4.27",
|
||||
"@vue/reactivity": "3.4.29",
|
||||
"@vue/runtime-core": "3.4.29",
|
||||
"@vue/shared": "3.4.29",
|
||||
"csstype": "^3.1.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/server-renderer": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.27.tgz",
|
||||
"integrity": "sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==",
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.29.tgz",
|
||||
"integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==",
|
||||
"dependencies": {
|
||||
"@vue/compiler-ssr": "3.4.27",
|
||||
"@vue/shared": "3.4.27"
|
||||
"@vue/compiler-ssr": "3.4.29",
|
||||
"@vue/shared": "3.4.29"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "3.4.27"
|
||||
"vue": "3.4.29"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/shared": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.27.tgz",
|
||||
"integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA=="
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.29.tgz",
|
||||
"integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA=="
|
||||
},
|
||||
"node_modules/@vueuse/core": {
|
||||
"version": "10.10.0",
|
||||
@@ -2458,9 +2459,9 @@
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/esbuild": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz",
|
||||
"integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==",
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz",
|
||||
"integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"bin": {
|
||||
@@ -2470,29 +2471,29 @@
|
||||
"node": ">=12"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@esbuild/aix-ppc64": "0.20.2",
|
||||
"@esbuild/android-arm": "0.20.2",
|
||||
"@esbuild/android-arm64": "0.20.2",
|
||||
"@esbuild/android-x64": "0.20.2",
|
||||
"@esbuild/darwin-arm64": "0.20.2",
|
||||
"@esbuild/darwin-x64": "0.20.2",
|
||||
"@esbuild/freebsd-arm64": "0.20.2",
|
||||
"@esbuild/freebsd-x64": "0.20.2",
|
||||
"@esbuild/linux-arm": "0.20.2",
|
||||
"@esbuild/linux-arm64": "0.20.2",
|
||||
"@esbuild/linux-ia32": "0.20.2",
|
||||
"@esbuild/linux-loong64": "0.20.2",
|
||||
"@esbuild/linux-mips64el": "0.20.2",
|
||||
"@esbuild/linux-ppc64": "0.20.2",
|
||||
"@esbuild/linux-riscv64": "0.20.2",
|
||||
"@esbuild/linux-s390x": "0.20.2",
|
||||
"@esbuild/linux-x64": "0.20.2",
|
||||
"@esbuild/netbsd-x64": "0.20.2",
|
||||
"@esbuild/openbsd-x64": "0.20.2",
|
||||
"@esbuild/sunos-x64": "0.20.2",
|
||||
"@esbuild/win32-arm64": "0.20.2",
|
||||
"@esbuild/win32-ia32": "0.20.2",
|
||||
"@esbuild/win32-x64": "0.20.2"
|
||||
"@esbuild/aix-ppc64": "0.21.5",
|
||||
"@esbuild/android-arm": "0.21.5",
|
||||
"@esbuild/android-arm64": "0.21.5",
|
||||
"@esbuild/android-x64": "0.21.5",
|
||||
"@esbuild/darwin-arm64": "0.21.5",
|
||||
"@esbuild/darwin-x64": "0.21.5",
|
||||
"@esbuild/freebsd-arm64": "0.21.5",
|
||||
"@esbuild/freebsd-x64": "0.21.5",
|
||||
"@esbuild/linux-arm": "0.21.5",
|
||||
"@esbuild/linux-arm64": "0.21.5",
|
||||
"@esbuild/linux-ia32": "0.21.5",
|
||||
"@esbuild/linux-loong64": "0.21.5",
|
||||
"@esbuild/linux-mips64el": "0.21.5",
|
||||
"@esbuild/linux-ppc64": "0.21.5",
|
||||
"@esbuild/linux-riscv64": "0.21.5",
|
||||
"@esbuild/linux-s390x": "0.21.5",
|
||||
"@esbuild/linux-x64": "0.21.5",
|
||||
"@esbuild/netbsd-x64": "0.21.5",
|
||||
"@esbuild/openbsd-x64": "0.21.5",
|
||||
"@esbuild/sunos-x64": "0.21.5",
|
||||
"@esbuild/win32-arm64": "0.21.5",
|
||||
"@esbuild/win32-ia32": "0.21.5",
|
||||
"@esbuild/win32-x64": "0.21.5"
|
||||
}
|
||||
},
|
||||
"node_modules/escalade": {
|
||||
@@ -4851,12 +4852,12 @@
|
||||
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "5.2.12",
|
||||
"resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.12.tgz",
|
||||
"integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==",
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/vite/-/vite-5.3.1.tgz",
|
||||
"integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.20.1",
|
||||
"esbuild": "^0.21.3",
|
||||
"postcss": "^8.4.38",
|
||||
"rollup": "^4.13.0"
|
||||
},
|
||||
@@ -4906,15 +4907,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vue": {
|
||||
"version": "3.4.27",
|
||||
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.27.tgz",
|
||||
"integrity": "sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==",
|
||||
"version": "3.4.29",
|
||||
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.29.tgz",
|
||||
"integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==",
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.4.27",
|
||||
"@vue/compiler-sfc": "3.4.27",
|
||||
"@vue/runtime-dom": "3.4.27",
|
||||
"@vue/server-renderer": "3.4.27",
|
||||
"@vue/shared": "3.4.27"
|
||||
"@vue/compiler-dom": "3.4.29",
|
||||
"@vue/compiler-sfc": "3.4.29",
|
||||
"@vue/runtime-dom": "3.4.29",
|
||||
"@vue/server-renderer": "3.4.29",
|
||||
"@vue/shared": "3.4.29"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "*"
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
"qs": "^6.11.2",
|
||||
"sortablejs": "^1.15.0",
|
||||
"tinymce": "^6.8.3",
|
||||
"vue": "^3.4.27",
|
||||
"vue": "^3.4.29",
|
||||
"vue-clipboard3": "^2.0.0",
|
||||
"vue-color-kit": "^1.0.5",
|
||||
"vue-echarts": "^6.5.5",
|
||||
@@ -57,6 +57,6 @@
|
||||
"postcss": "^8.4.38",
|
||||
"prettier": "^2.8.8",
|
||||
"tailwindcss": "^3.3.2",
|
||||
"vite": "^5.2.12"
|
||||
"vite": "^5.3.1"
|
||||
}
|
||||
}
|
||||
|
||||
25
cdTMP/src/api/monitor/loginLog.js
Normal file
25
cdTMP/src/api/monitor/loginLog.js
Normal file
@@ -0,0 +1,25 @@
|
||||
import { request } from "@/api/request"
|
||||
export default {
|
||||
/**
|
||||
* 分页查询操作日志
|
||||
* @returns 操作日志分页结果
|
||||
*/
|
||||
getLoginLogs(params = { pageSize: 10, page: 1 }) {
|
||||
return request({
|
||||
url: `/system/log/loginLogsList`,
|
||||
method: "get",
|
||||
params
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 操作日志删除
|
||||
* @returns 后台返回的删除信息
|
||||
*/
|
||||
loginLogsDelete(params = { day: 7 }) {
|
||||
return request({
|
||||
url: `/system/log/loginLogsDel`,
|
||||
method: "get",
|
||||
params
|
||||
})
|
||||
}
|
||||
}
|
||||
25
cdTMP/src/api/monitor/operations.js
Normal file
25
cdTMP/src/api/monitor/operations.js
Normal file
@@ -0,0 +1,25 @@
|
||||
import { request } from "@/api/request"
|
||||
export default {
|
||||
/**
|
||||
* 分页查询操作日志
|
||||
* @returns 操作日志分页结果
|
||||
*/
|
||||
getOperations(params = { pageSize: 10, page: 1 }) {
|
||||
return request({
|
||||
url: `/system/log/operationsPagination`,
|
||||
method: "get",
|
||||
params
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 操作日志删除
|
||||
* @returns 后台返回的删除信息
|
||||
*/
|
||||
operationsDelete(params = { day: 7 }) {
|
||||
return request({
|
||||
url: `/system/log/operationsDel`,
|
||||
method: "get",
|
||||
params
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -123,5 +123,16 @@ export default {
|
||||
method: "get",
|
||||
params
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 改变用户启用/停用状态
|
||||
* @returns
|
||||
*/
|
||||
changeUserStatus(params = {}) {
|
||||
return request({
|
||||
url: "system/user/change_status",
|
||||
method: "get",
|
||||
params
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,7 +142,6 @@ const initConfig = reactive({
|
||||
cleanStyles(element)
|
||||
removeUnwantedSpansAndMore(element)
|
||||
removeCommentNodes(element)
|
||||
console.log(element)
|
||||
})
|
||||
// 将处理后的fragment转换回HTML字符串
|
||||
args.content = doc.body.innerHTML
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<template v-if="!Component">
|
||||
<Empty class="full-empty" />
|
||||
</template>
|
||||
<transition name="ma-fade" mode="out-in" appear>
|
||||
<transition name="ma-slide-down" mode="out-in" appear>
|
||||
<!-- 这里主要在路由定义是否缓存页面 -->
|
||||
<component :is="Component" v-if="route.meta.ignoreCache" :key="route.fullPath" />
|
||||
<keep-alive v-else :include="cacheList">
|
||||
|
||||
@@ -42,4 +42,4 @@ app.config.globalProperties.$url = import.meta.env.VITE_APP_BASE
|
||||
app.mount("#app")
|
||||
|
||||
// 无用的东西:下面就打印一个东西
|
||||
tool.capsule("ChengduTestManagePlant", `v${packageJson.version} debug`)
|
||||
tool.capsule("TestManagePlant", `v${packageJson.version} debug`)
|
||||
|
||||
@@ -1,12 +1,18 @@
|
||||
import { setRouteEmitter } from "@/utils/route-listener"
|
||||
import setupUserLoginInfoGuard from "./userLoginInfo"
|
||||
import setupPermissionGuard from "@/router/guard/permisstion"
|
||||
// 导入设置title的工具
|
||||
import { setRouteTitle } from "@/utils/title"
|
||||
|
||||
function setupPageGuard(router) {
|
||||
router.beforeEach(async (to) => {
|
||||
// 发出路由改变的事件
|
||||
setRouteEmitter(to)
|
||||
})
|
||||
// 设置站点document.title
|
||||
router.afterEach((to, from) => {
|
||||
setRouteTitle(to.meta.title)
|
||||
})
|
||||
}
|
||||
|
||||
export default function createRouteGuard(router) {
|
||||
|
||||
@@ -8,7 +8,8 @@ const DASHBOARD = {
|
||||
requiresAuth: true,
|
||||
icon: "icon-home",
|
||||
order: 99,
|
||||
locale: "首页"
|
||||
locale: "首页",
|
||||
title: "首页"
|
||||
},
|
||||
children: [
|
||||
{
|
||||
@@ -19,7 +20,8 @@ const DASHBOARD = {
|
||||
requiresAuth: true,
|
||||
roles: ["*"],
|
||||
locale: "工作台",
|
||||
icon: "icon-dashboard"
|
||||
icon: "icon-dashboard",
|
||||
title: "工作台"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -30,7 +32,8 @@ const DASHBOARD = {
|
||||
requiresAuth: true,
|
||||
roles: ["*"],
|
||||
locale: "用户中心",
|
||||
icon: "icon-user"
|
||||
icon: "icon-user",
|
||||
title: "用户中心"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -41,9 +44,10 @@ const DASHBOARD = {
|
||||
requiresAuth: true,
|
||||
roles: ["*"],
|
||||
locale: "用户管理",
|
||||
icon: "icon-user-group"
|
||||
icon: "icon-user-group",
|
||||
title: "用户管理"
|
||||
}
|
||||
},
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,8 @@ const DATAMANAGE = {
|
||||
requiresAuth: true,
|
||||
icon: "icon-storage",
|
||||
order: 99,
|
||||
locale: "数据管理"
|
||||
locale: "数据管理",
|
||||
title: "数据管理"
|
||||
},
|
||||
children: [
|
||||
{
|
||||
@@ -19,7 +20,8 @@ const DATAMANAGE = {
|
||||
requiresAuth: true,
|
||||
roles: ["*"],
|
||||
locale: "字典管理",
|
||||
icon: "icon-book"
|
||||
icon: "icon-book",
|
||||
title: "字典管理"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -30,7 +32,8 @@ const DATAMANAGE = {
|
||||
requiresAuth: true,
|
||||
roles: ["*"],
|
||||
locale: "项目联系信息",
|
||||
icon: "icon-phone"
|
||||
icon: "icon-phone",
|
||||
title: "项目联系信息"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -41,7 +44,8 @@ const DATAMANAGE = {
|
||||
requiresAuth: true,
|
||||
roles: ["*"],
|
||||
locale: "缩略语",
|
||||
icon: "icon-scissor"
|
||||
icon: "icon-scissor",
|
||||
title: "缩略语"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -8,18 +8,44 @@ const TESTMANAGE = {
|
||||
requiresAuth: true,
|
||||
icon: "icon-desktop",
|
||||
order: 1,
|
||||
locale: "监控"
|
||||
locale: "日志监控",
|
||||
title: "日志监控"
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: "operationLog",
|
||||
name: "OperationLog",
|
||||
name: "operationLog",
|
||||
component: () => import("@/views/monitor/operationLog/index.vue"),
|
||||
meta: {
|
||||
requiresAuth: true,
|
||||
roles: ["*"],
|
||||
locale: "操作日志",
|
||||
icon: "icon-robot"
|
||||
locale: "数据操作日志",
|
||||
icon: "icon-file",
|
||||
title: "数据操作日志"
|
||||
}
|
||||
},
|
||||
{
|
||||
path: "operations",
|
||||
name: "operations",
|
||||
component: () => import("@/views/monitor/operations/index.vue"),
|
||||
meta: {
|
||||
requiresAuth: true,
|
||||
roles: ["*"],
|
||||
locale: "接口操作日志",
|
||||
icon: "icon-file",
|
||||
title: "接口操作日志"
|
||||
}
|
||||
},
|
||||
{
|
||||
path: "loginLog",
|
||||
name: "loginLog",
|
||||
component: () => import("@/views/monitor/loginLog/index.vue"),
|
||||
meta: {
|
||||
requiresAuth: true,
|
||||
roles: ["*"],
|
||||
locale: "登录日志",
|
||||
icon: "icon-file",
|
||||
title: "登录日志"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -8,7 +8,8 @@ const TESTMANAGE = {
|
||||
requiresAuth: true,
|
||||
icon: "icon-apps",
|
||||
order: 98,
|
||||
locale: "测试管理"
|
||||
locale: "测试管理",
|
||||
title: "测试管理"
|
||||
},
|
||||
children: [
|
||||
{
|
||||
@@ -19,7 +20,8 @@ const TESTMANAGE = {
|
||||
requiresAuth: true,
|
||||
roles: ["*"],
|
||||
locale: "项目管理",
|
||||
icon: "icon-folder"
|
||||
icon: "icon-folder",
|
||||
title: "项目管理"
|
||||
}
|
||||
},
|
||||
// 二级路由(非三级路由,但是想办法把左侧菜单删除)
|
||||
@@ -34,7 +36,8 @@ const TESTMANAGE = {
|
||||
icon: "icon-folder",
|
||||
hideInMenu: true,
|
||||
ignoreCache: false,
|
||||
noAffix: true
|
||||
noAffix: true,
|
||||
title: "项目看板"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
16
cdTMP/src/utils/title.js
Normal file
16
cdTMP/src/utils/title.js
Normal file
@@ -0,0 +1,16 @@
|
||||
let routeTitle = ""
|
||||
let siteTitle = "测试管理平台"
|
||||
|
||||
function setTitle() {
|
||||
if (routeTitle) {
|
||||
document.title = routeTitle + " - " + siteTitle
|
||||
return
|
||||
} else {
|
||||
document.title = siteTitle
|
||||
}
|
||||
}
|
||||
|
||||
export function setRouteTitle(title) {
|
||||
routeTitle = title
|
||||
setTitle()
|
||||
}
|
||||
@@ -1,13 +1,11 @@
|
||||
<template>
|
||||
<div class="block">
|
||||
<div class="user-header rounded-sm text-center">
|
||||
<div class="pt-3 mx-auto avatar-box">
|
||||
<ma-upload rounded></ma-upload>
|
||||
<div class="pt-6 mx-auto avatar-box top-box">
|
||||
{{ userStore.name }}
|
||||
</div>
|
||||
<div>
|
||||
<a-tag size="large" class="mt-3 rounded-full" color="#de53ff">
|
||||
{{ userStore.role }}
|
||||
</a-tag>
|
||||
<a-tag size="large" class="mt-3 rounded-full" color="#de53ff"> 账号:{{ userStore.username }} </a-tag>
|
||||
</div>
|
||||
</div>
|
||||
<a-layout-content class="block lg:flex lg:justify-between">
|
||||
@@ -41,9 +39,10 @@
|
||||
v-for="(item, idx) in operationLogList"
|
||||
:key="idx"
|
||||
>
|
||||
您于 {{ item.create_datetime }} 请求了 {{ item.request_path }},状态码:{{
|
||||
item.response_code
|
||||
}}
|
||||
您于 {{ item.create_datetime }} 请求了 {{ item.request_path }},<span
|
||||
:class="{ nostatus: item.response_code === '200' ? false : true }"
|
||||
>状态码:{{ item.response_code }}</span
|
||||
>
|
||||
</a-timeline-item>
|
||||
</a-timeline>
|
||||
</a-tab-pane>
|
||||
@@ -91,8 +90,14 @@ const operationLogList = computed(() => {
|
||||
}
|
||||
.user-header {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
height: 150px;
|
||||
background: url("@/assets/userBanner.jpg") no-repeat;
|
||||
background-size: cover;
|
||||
}
|
||||
.nostatus {
|
||||
color: red;
|
||||
}
|
||||
.top-box {
|
||||
font-size: 2rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -22,9 +22,11 @@ import userApi from "@/api/system/user"
|
||||
import user from "@/api/system/user"
|
||||
import { Message } from "@arco-design/web-vue"
|
||||
// 切换状态按钮
|
||||
const changeStatus = (e, id) => {
|
||||
console.log("当前值:", e)
|
||||
console.log("当前ID:", id)
|
||||
const changeStatus = async (e, id) => {
|
||||
const res = await userApi.changeUserStatus({ user_status: e, userId: id })
|
||||
if (res.data) {
|
||||
Message.success(res.data === "1" ? "启用成功" : "禁用成功")
|
||||
}
|
||||
}
|
||||
// crud组件
|
||||
const crudRef = ref()
|
||||
@@ -67,6 +69,7 @@ const crudOptions = reactive({
|
||||
viewType: "modal"
|
||||
// isFull: true
|
||||
},
|
||||
operationColumnAlign: "center",
|
||||
// 用户点击编辑/删除前的hook
|
||||
beforeOpenEdit: (record) => {
|
||||
if (record.id === 1) {
|
||||
@@ -93,7 +96,7 @@ const crudColumns = reactive([
|
||||
width: 80,
|
||||
commonRules: [{ required: true, message: "名称必填" }]
|
||||
},
|
||||
{ title: "用户名", dataIndex: "username", search: true },
|
||||
{ title: "用户名", dataIndex: "username", search: true, align: "center" },
|
||||
{
|
||||
title: "电话",
|
||||
align: "center",
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
</a>
|
||||
</a-card>
|
||||
<div class="mt-2">管理平台版本</div>
|
||||
<a-tag class="mt-2" color="#0fc6c2">cdTestPlant V0.0.1</a-tag>
|
||||
<a-tag class="mt-2" color="#0fc6c2">TestManagePlant V0.0.1</a-tag>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -25,11 +25,12 @@ const crudOptions = ref({
|
||||
showIndex: false,
|
||||
searchColNumber: 3,
|
||||
tablePagination: false,
|
||||
rowSelection: { showCheckedAll: true }
|
||||
rowSelection: { showCheckedAll: true },
|
||||
showTools: false
|
||||
})
|
||||
const crudColumns = ref([
|
||||
{ title: "ID", dataIndex: "id", addDisplay: false, editDisplay: false, width: 50, hide: true },
|
||||
{ title: "公司编号", align: "center", dataIndex: "key", search: true, width: 220 },
|
||||
{ title: "公司编号", align: "center", dataIndex: "key", search: true, width: 220, formType: "input-number" },
|
||||
{
|
||||
title: "名称",
|
||||
align: "center",
|
||||
@@ -47,11 +48,11 @@ const crudColumns = ref([
|
||||
commonRules: [{ required: true, message: "法人必填" }]
|
||||
},
|
||||
{
|
||||
title:'地址',
|
||||
align:'center',
|
||||
dataIndex:'addr',
|
||||
search:true,
|
||||
width:200,
|
||||
title: "地址",
|
||||
align: "center",
|
||||
dataIndex: "addr",
|
||||
search: true,
|
||||
width: 200,
|
||||
commonRules: [{ required: true, message: "公司地址必填" }]
|
||||
}
|
||||
])
|
||||
|
||||
86
cdTMP/src/views/monitor/loginLog/index.vue
Normal file
86
cdTMP/src/views/monitor/loginLog/index.vue
Normal file
@@ -0,0 +1,86 @@
|
||||
<template>
|
||||
<div class="ma-content-block lg:flex justify-between p-4">
|
||||
<div class="lg:w-full w-full lg:ml-4 mt-5 lg:mt-0">
|
||||
<ma-crud :options="crudOptions" :columns="crudColumns" ref="crudRef">
|
||||
<template #create_datetime="{ record }">
|
||||
{{ record.create_datetime.split(".")[0].replace("T", " ") }}
|
||||
</template>
|
||||
<template #tableBeforeButtons>
|
||||
<a-button type="primary" status="warning" @click="handleDeleteLogButton">
|
||||
<template #icon> <icon-delete /> </template>删除7天前数据
|
||||
</a-button>
|
||||
<a-button type="primary" status="danger" @click="handleDeleteAllLogButton">
|
||||
<template #icon> <icon-delete /> </template>删除全部日志
|
||||
</a-button>
|
||||
</template>
|
||||
<!-- 操作列 -->
|
||||
<template #operationCell="{ record }">
|
||||
<a-button size="mini" type="primary" status="success" @click="handleSee(record)"
|
||||
><icon-eye
|
||||
/></a-button>
|
||||
</template>
|
||||
</ma-crud>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue"
|
||||
import logApi from "@/api/monitor/loginLog"
|
||||
import { Message, Notification } from "@arco-design/web-vue"
|
||||
const crudRef = ref({})
|
||||
// 删除日志按钮事件处理函数
|
||||
const handleDeleteLogButton = async () => {
|
||||
const res = await logApi.loginLogsDelete({ day: 7 }) // 参数:{day:4}保留4天内的日志
|
||||
Message.success(res.message)
|
||||
}
|
||||
const handleDeleteAllLogButton = async () => {
|
||||
const res = await logApi.loginLogsDelete({ day: 0 }) // 0表示删除全部日志
|
||||
crudRef.value.refresh()
|
||||
Message.success(res.message)
|
||||
}
|
||||
// 点击操作:查看【思路打开编辑窗口】
|
||||
const handleSee = (record) => {
|
||||
crudRef.value.editAction(record)
|
||||
// 设置表单标题
|
||||
crudRef.value.crudFormRef.actionTitle = "详情"
|
||||
}
|
||||
// 设置api
|
||||
async function editClick() {
|
||||
Notification.error("该详情只能查看")
|
||||
}
|
||||
const crudOptions = ref({
|
||||
api: logApi.getLoginLogs,
|
||||
edit: { api: editClick, text: "查看操作日志信息", show: false },
|
||||
showIndex: false,
|
||||
showTools: false,
|
||||
pageLayout: "fixed",
|
||||
tablePagination: false,
|
||||
operationColumn: true,
|
||||
operationColumnAlign: "center",
|
||||
bordered: { wrapper: true, cell: true },
|
||||
isDbClickEdit: false,
|
||||
formOption: {
|
||||
viewType: "drawer",
|
||||
width: 600
|
||||
}
|
||||
})
|
||||
const crudColumns = ref([
|
||||
{ title: "ID", dataIndex: "id", addDisplay: false, editDisplay: false, width: 50, hide: true },
|
||||
{ title: "登录用户", dataIndex: "username", search: true, align: "center" },
|
||||
{ title: "IP", dataIndex: "ip", align: "center" },
|
||||
{ title: "客户端信息", width: 215, dataIndex: "agent", align: "center" },
|
||||
{ title: "操作系统", dataIndex: "os", align: "center" },
|
||||
{ title: "浏览器", width: 110, dataIndex: "browser", align: "center" },
|
||||
{
|
||||
title: "创建时间",
|
||||
dataIndex: "create_datetime",
|
||||
align: "center",
|
||||
width: 150,
|
||||
addDisplay: false,
|
||||
editDisplay: false
|
||||
}
|
||||
])
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped></style>
|
||||
@@ -4,7 +4,7 @@
|
||||
<!-- crud组件 -->
|
||||
<ma-crud :options="crudOptions" :columns="crudColumns" ref="crudRef">
|
||||
<template #create_datetime="{ record }">
|
||||
{{ record.create_datetime.replace("T", " ") }}
|
||||
{{ record.create_datetime.split(".")[0].replace("T", " ") }}
|
||||
</template>
|
||||
<template #tableBeforeButtons>
|
||||
<a-button type="primary" status="warning" @click="handleDeleteLogButton"
|
||||
@@ -29,9 +29,9 @@ const crudOptions = reactive({
|
||||
api: operationApi.getOperationsLogs,
|
||||
showIndex: false,
|
||||
pageLayout: "fixed",
|
||||
rowSelection: { showCheckedAll: true },
|
||||
showTools: false,
|
||||
tablePagination: false
|
||||
tablePagination: false,
|
||||
bordered: { wrapper: true, cell: true }
|
||||
})
|
||||
const crudColumns = reactive([
|
||||
{ title: "ID", dataIndex: "id", addDisplay: false, editDisplay: false, width: 50, hide: true },
|
||||
|
||||
90
cdTMP/src/views/monitor/operations/index.vue
Normal file
90
cdTMP/src/views/monitor/operations/index.vue
Normal file
@@ -0,0 +1,90 @@
|
||||
<template>
|
||||
<div class="ma-content-block lg:flex justify-between p-4">
|
||||
<div class="lg:w-full w-full lg:ml-4 mt-5 lg:mt-0">
|
||||
<ma-crud :options="crudOptions" :columns="crudColumns" ref="crudRef">
|
||||
<template #create_datetime="{ record }">
|
||||
{{ record.create_datetime.split(".")[0].replace("T", " ") }}
|
||||
</template>
|
||||
<template #tableBeforeButtons>
|
||||
<a-button type="primary" status="warning" @click="handleDeleteLogButton">
|
||||
<template #icon> <icon-delete /> </template>删除7天前数据
|
||||
</a-button>
|
||||
<a-button type="primary" status="danger" @click="handleDeleteAllLogButton">
|
||||
<template #icon> <icon-delete /> </template>删除全部日志
|
||||
</a-button>
|
||||
</template>
|
||||
<!-- 操作列 -->
|
||||
<template #operationCell="{ record }">
|
||||
<a-button size="mini" type="primary" status="success" @click="handleSee(record)"
|
||||
><icon-eye
|
||||
/></a-button>
|
||||
</template>
|
||||
</ma-crud>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue"
|
||||
import logApi from "@/api/monitor/operations"
|
||||
import { Message, Notification } from "@arco-design/web-vue"
|
||||
const crudRef = ref({})
|
||||
// 删除日志按钮事件处理函数
|
||||
const handleDeleteLogButton = async () => {
|
||||
const res = await logApi.operationsDelete({ day: 7 }) // 参数:{day:4}保留4天内的日志
|
||||
Message.success(res.message)
|
||||
}
|
||||
const handleDeleteAllLogButton = async () => {
|
||||
const res = await logApi.operationsDelete({ day: 0 }) // 0表示删除全部日志
|
||||
crudRef.value.refresh()
|
||||
Message.success(res.message)
|
||||
}
|
||||
// 点击操作:查看【思路打开编辑窗口】
|
||||
const handleSee = (record) => {
|
||||
crudRef.value.editAction(record)
|
||||
// 设置表单标题
|
||||
crudRef.value.crudFormRef.actionTitle = "详情"
|
||||
}
|
||||
// 设置api
|
||||
async function editClick() {
|
||||
Notification.error("该详情只能查看")
|
||||
}
|
||||
const crudOptions = ref({
|
||||
api: logApi.getOperations,
|
||||
edit: { api: editClick, text: "查看操作日志信息", show: false },
|
||||
showIndex: false,
|
||||
showTools: false,
|
||||
pageLayout: "fixed",
|
||||
tablePagination: false,
|
||||
operationColumn: true,
|
||||
operationColumnAlign: "center",
|
||||
bordered: { wrapper: true, cell: true },
|
||||
isDbClickEdit: false,
|
||||
formOption: {
|
||||
viewType: "drawer",
|
||||
width: 600
|
||||
}
|
||||
})
|
||||
const crudColumns = ref([
|
||||
{ title: "ID", dataIndex: "id", addDisplay: false, editDisplay: false, width: 50, hide: true },
|
||||
{ title: "操作用户", dataIndex: "request_username", search: true, align: "center" },
|
||||
{ title: "请求方式", dataIndex: "request_method", align: "center" },
|
||||
{ title: "IP", dataIndex: "request_ip", align: "center" },
|
||||
{ title: "浏览器", dataIndex: "request_browser", align: "center" },
|
||||
{ title: "响应状态码", dataIndex: "response_code", align: "center" },
|
||||
{ title: "操作系统", dataIndex: "request_os", align: "center" },
|
||||
{
|
||||
title: "创建时间",
|
||||
dataIndex: "create_datetime",
|
||||
align: "center",
|
||||
width: 150,
|
||||
addDisplay: false,
|
||||
editDisplay: false
|
||||
},
|
||||
{ title: "请求地址", dataIndex: "request_path", hide: true },
|
||||
{ title: "请求参数", dataIndex: "request_body", hide: true, formType: "textarea" },
|
||||
{ title: "返回信息", dataIndex: "json_result", hide: true, formType: "textarea" }
|
||||
])
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped></style>
|
||||
Reference in New Issue
Block a user