Commit 430b72bd by 李金轩

ljx

1 parent a911ba00
......@@ -18,7 +18,7 @@
"less-loader": "^7.3.0",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"vue": "^3.2.22",
"vue": "^3.2.27",
"vue-router": "^4.0.8",
"vuex": "^4.0.0"
},
......@@ -2187,12 +2187,12 @@
}
},
"node_modules/@vue/compiler-core": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.22.tgz",
"integrity": "sha512-uAkovrVeTcjzpiM4ECmVaMrv/bjdgAaLzvjcGqQPBEyUrcqsCgccT9fHJ/+hWVGhyMahmBwLqcn4guULNx7sdw==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.27.tgz",
"integrity": "sha512-JyxAglSM/pb9paG5ZNuKrf5IUpzLzQA3khjWGF9oESELCLQlt6O3YyPMR2A69wIpYWrf5mScZ8YY8TJKOI/1kQ==",
"dependencies": {
"@babel/parser": "^7.15.0",
"@vue/shared": "3.2.22",
"@babel/parser": "^7.16.4",
"@vue/shared": "3.2.27",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
}
......@@ -2206,25 +2206,25 @@
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.22.tgz",
"integrity": "sha512-VZdsw/VuO1ODs8K7NQwnMQzKITDkIFlYYC03SVnunuf6eNRxBPEonSyqbWNoo6qNaHAEBTG6VVcZC5xC9bAx1g==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.27.tgz",
"integrity": "sha512-NyQ7nEbopUBPUMHM4c3FPCbFbnQwptoPjW5Y5qfJ7hfiCNhOuhQsDNqi5JYKBxfpxiFNwjcN9F8t1AsnLrDloQ==",
"dependencies": {
"@vue/compiler-core": "3.2.22",
"@vue/shared": "3.2.22"
"@vue/compiler-core": "3.2.27",
"@vue/shared": "3.2.27"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.22.tgz",
"integrity": "sha512-tWRQ5ge1tsTDhUwHgueicKJ8rYm6WUVAPTaIpFW3GSwZKcOEJ2rXdfkHFShNVGupeRALz2ET2H84OL0GeRxY0A==",
"dependencies": {
"@babel/parser": "^7.15.0",
"@vue/compiler-core": "3.2.22",
"@vue/compiler-dom": "3.2.22",
"@vue/compiler-ssr": "3.2.22",
"@vue/ref-transform": "3.2.22",
"@vue/shared": "3.2.22",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.27.tgz",
"integrity": "sha512-WyecUhLN5UAQAr2QlmG2nA56OEnhZJaBnSw0G1tazb9rwDuK0V9tnbIXbQgmQlx+x4sJxgg61yWGcIXfilTl3A==",
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.27",
"@vue/compiler-dom": "3.2.27",
"@vue/compiler-ssr": "3.2.27",
"@vue/reactivity-transform": "3.2.27",
"@vue/shared": "3.2.27",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7",
"postcss": "^8.1.10",
......@@ -2257,12 +2257,12 @@
}
},
"node_modules/@vue/compiler-ssr": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.22.tgz",
"integrity": "sha512-Cl6aoLJtXzzBkk1sKod8S0WBJLts3+ugVC91d22gGpbkw/64WnF12tOZi7Rg54PPLi1NovqyNWPsLH/SAFcu+w==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.27.tgz",
"integrity": "sha512-+l09t319iV7HVSrXfBw9OLwMZIPOFTXmHjZ61Bc5ZcwKqOYAR4uTurKpoXAfcSc5qs/q6WdE9jY3nrP0LUEMQQ==",
"dependencies": {
"@vue/compiler-dom": "3.2.22",
"@vue/shared": "3.2.22"
"@vue/compiler-dom": "3.2.27",
"@vue/shared": "3.2.27"
}
},
"node_modules/@vue/component-compiler-utils": {
......@@ -2346,60 +2346,60 @@
}
},
"node_modules/@vue/reactivity": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.22.tgz",
"integrity": "sha512-xNkLAItjI0xB+lFeDgKCrSItmrHTaAzSnt8LmdSCPQnDyarmzbi/u4ESQnckWvlL7lSRKiEaOvblaNyqAa7OnQ==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.27.tgz",
"integrity": "sha512-QPfIQEJidRGIu/mPexhcB4csp1LEg2Nr+/QE72MnXs/OYDtFErhC9FxIyymkxp/xvAgL5wsnSOuDD6zWF42vRQ==",
"dependencies": {
"@vue/shared": "3.2.22"
"@vue/shared": "3.2.27"
}
},
"node_modules/@vue/ref-transform": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/ref-transform/-/ref-transform-3.2.22.tgz",
"integrity": "sha512-qalVWbq5xWWxLZ0L9OroBg/JZhzavQuCcDXblfErxyDEH6Xc5gIJ4feo1SVCICFzhAUgLgQTdSFLpgjBawbFpw==",
"node_modules/@vue/reactivity-transform": {
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.27.tgz",
"integrity": "sha512-67//61ObGxGnVrPhjygocb24eYUh+TFMhkm7szm8v5XdKXjkNl7qgIOflwGvUnwuIRJmr9nZ7+PvY0fL+H2upA==",
"dependencies": {
"@babel/parser": "^7.15.0",
"@vue/compiler-core": "3.2.22",
"@vue/shared": "3.2.22",
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.27",
"@vue/shared": "3.2.27",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7"
}
},
"node_modules/@vue/runtime-core": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.22.tgz",
"integrity": "sha512-e7WOC55wmHPvmoVUk9VBe/Z9k5bJfWJfVIlkUkiADJn0bOgQD29oh/GS14Kb3aEJXIHLI17Em6+HxNut1sIh7Q==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.27.tgz",
"integrity": "sha512-NJrjuViHJyrT4bwIocbE4XDaDlA1Pj61pQlneZZdFEvgdMLlhzCCiJ4WZnWcohYQeisUAZjEFKK8GjQieDPFbw==",
"dependencies": {
"@vue/reactivity": "3.2.22",
"@vue/shared": "3.2.22"
"@vue/reactivity": "3.2.27",
"@vue/shared": "3.2.27"
}
},
"node_modules/@vue/runtime-dom": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.22.tgz",
"integrity": "sha512-w7VHYJoliLRTLc5beN77wxuOjla4v9wr2FF22xpZFYBmH4U1V7HkYhoHc1BTuNghI15CXT1tNIMhibI1nrQgdw==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.27.tgz",
"integrity": "sha512-tlnKkvBSkV7MPUp/wRFsYcv67U1rUeZTPfpPzq5Kpmw5NNGkY6J075fFBH2k0MNxDucXS+qfStNrxAyGTUMkSA==",
"dependencies": {
"@vue/runtime-core": "3.2.22",
"@vue/shared": "3.2.22",
"@vue/runtime-core": "3.2.27",
"@vue/shared": "3.2.27",
"csstype": "^2.6.8"
}
},
"node_modules/@vue/server-renderer": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.22.tgz",
"integrity": "sha512-jCwbQgKPXiXoH9VS9F7K+gyEvEMrjutannwEZD1R8fQ9szmOTqC+RRbIY3Uf2ibQjZtZ8DV9a4FjxICvd9zZlQ==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.27.tgz",
"integrity": "sha512-dZnzkFCDe6A/GIe/F1LcG6lWpprHVh62DjTv8wubtkHwfJWOmOeHp+KvPDRrswL/L3ghsm+E31xY+pvkgM3pbQ==",
"dependencies": {
"@vue/compiler-ssr": "3.2.22",
"@vue/shared": "3.2.22"
"@vue/compiler-ssr": "3.2.27",
"@vue/shared": "3.2.27"
},
"peerDependencies": {
"vue": "3.2.22"
"vue": "3.2.27"
}
},
"node_modules/@vue/shared": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.22.tgz",
"integrity": "sha512-qWVav014mpjEtbWbEgl0q9pEyrrIySKum8UVYjwhC6njrKzknLZPvfuYdQyVbApsqr94tf/3dP4pCuZmmjdCWQ=="
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.27.tgz",
"integrity": "sha512-rpAn9k6O08Lvo7ekBIAnkOukX/4EsEQLPrRJBKhIEasMsOI5eX0f6mq1sDUSY7cgAqWw2d7QtP74CWxdXoyKxA=="
},
"node_modules/@vue/web-component-wrapper": {
"version": "1.3.0",
......@@ -13770,15 +13770,15 @@
"integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
},
"node_modules/vue": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.2.22.tgz",
"integrity": "sha512-KD5nZpXVZquOC6926Xnp3zOvswrUyO9Rya7ZUoxWFQEjFDW4iACtwzubRB4Um2Om9kj6CaJOqAVRDSFlqLpdgw==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.2.27.tgz",
"integrity": "sha512-p1cH8Q6eaPwvANCjFQj497a914cxXKKwOG3Lg9USddTOrn4/zFMKjn9dnovkx+L8VtFaNgbVqW8mLJS/eTA6xw==",
"dependencies": {
"@vue/compiler-dom": "3.2.22",
"@vue/compiler-sfc": "3.2.22",
"@vue/runtime-dom": "3.2.22",
"@vue/server-renderer": "3.2.22",
"@vue/shared": "3.2.22"
"@vue/compiler-dom": "3.2.27",
"@vue/compiler-sfc": "3.2.27",
"@vue/runtime-dom": "3.2.27",
"@vue/server-renderer": "3.2.27",
"@vue/shared": "3.2.27"
}
},
"node_modules/vue-cli-plugin-element-plus": {
......@@ -16998,12 +16998,12 @@
}
},
"@vue/compiler-core": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.22.tgz",
"integrity": "sha512-uAkovrVeTcjzpiM4ECmVaMrv/bjdgAaLzvjcGqQPBEyUrcqsCgccT9fHJ/+hWVGhyMahmBwLqcn4guULNx7sdw==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.27.tgz",
"integrity": "sha512-JyxAglSM/pb9paG5ZNuKrf5IUpzLzQA3khjWGF9oESELCLQlt6O3YyPMR2A69wIpYWrf5mScZ8YY8TJKOI/1kQ==",
"requires": {
"@babel/parser": "^7.15.0",
"@vue/shared": "3.2.22",
"@babel/parser": "^7.16.4",
"@vue/shared": "3.2.27",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
},
......@@ -17016,25 +17016,25 @@
}
},
"@vue/compiler-dom": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.22.tgz",
"integrity": "sha512-VZdsw/VuO1ODs8K7NQwnMQzKITDkIFlYYC03SVnunuf6eNRxBPEonSyqbWNoo6qNaHAEBTG6VVcZC5xC9bAx1g==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.27.tgz",
"integrity": "sha512-NyQ7nEbopUBPUMHM4c3FPCbFbnQwptoPjW5Y5qfJ7hfiCNhOuhQsDNqi5JYKBxfpxiFNwjcN9F8t1AsnLrDloQ==",
"requires": {
"@vue/compiler-core": "3.2.22",
"@vue/shared": "3.2.22"
"@vue/compiler-core": "3.2.27",
"@vue/shared": "3.2.27"
}
},
"@vue/compiler-sfc": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.22.tgz",
"integrity": "sha512-tWRQ5ge1tsTDhUwHgueicKJ8rYm6WUVAPTaIpFW3GSwZKcOEJ2rXdfkHFShNVGupeRALz2ET2H84OL0GeRxY0A==",
"requires": {
"@babel/parser": "^7.15.0",
"@vue/compiler-core": "3.2.22",
"@vue/compiler-dom": "3.2.22",
"@vue/compiler-ssr": "3.2.22",
"@vue/ref-transform": "3.2.22",
"@vue/shared": "3.2.22",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.27.tgz",
"integrity": "sha512-WyecUhLN5UAQAr2QlmG2nA56OEnhZJaBnSw0G1tazb9rwDuK0V9tnbIXbQgmQlx+x4sJxgg61yWGcIXfilTl3A==",
"requires": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.27",
"@vue/compiler-dom": "3.2.27",
"@vue/compiler-ssr": "3.2.27",
"@vue/reactivity-transform": "3.2.27",
"@vue/shared": "3.2.27",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7",
"postcss": "^8.1.10",
......@@ -17059,12 +17059,12 @@
}
},
"@vue/compiler-ssr": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.22.tgz",
"integrity": "sha512-Cl6aoLJtXzzBkk1sKod8S0WBJLts3+ugVC91d22gGpbkw/64WnF12tOZi7Rg54PPLi1NovqyNWPsLH/SAFcu+w==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.27.tgz",
"integrity": "sha512-+l09t319iV7HVSrXfBw9OLwMZIPOFTXmHjZ61Bc5ZcwKqOYAR4uTurKpoXAfcSc5qs/q6WdE9jY3nrP0LUEMQQ==",
"requires": {
"@vue/compiler-dom": "3.2.22",
"@vue/shared": "3.2.22"
"@vue/compiler-dom": "3.2.27",
"@vue/shared": "3.2.27"
}
},
"@vue/component-compiler-utils": {
......@@ -17136,57 +17136,57 @@
"requires": {}
},
"@vue/reactivity": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.22.tgz",
"integrity": "sha512-xNkLAItjI0xB+lFeDgKCrSItmrHTaAzSnt8LmdSCPQnDyarmzbi/u4ESQnckWvlL7lSRKiEaOvblaNyqAa7OnQ==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.27.tgz",
"integrity": "sha512-QPfIQEJidRGIu/mPexhcB4csp1LEg2Nr+/QE72MnXs/OYDtFErhC9FxIyymkxp/xvAgL5wsnSOuDD6zWF42vRQ==",
"requires": {
"@vue/shared": "3.2.22"
"@vue/shared": "3.2.27"
}
},
"@vue/ref-transform": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/ref-transform/-/ref-transform-3.2.22.tgz",
"integrity": "sha512-qalVWbq5xWWxLZ0L9OroBg/JZhzavQuCcDXblfErxyDEH6Xc5gIJ4feo1SVCICFzhAUgLgQTdSFLpgjBawbFpw==",
"@vue/reactivity-transform": {
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.27.tgz",
"integrity": "sha512-67//61ObGxGnVrPhjygocb24eYUh+TFMhkm7szm8v5XdKXjkNl7qgIOflwGvUnwuIRJmr9nZ7+PvY0fL+H2upA==",
"requires": {
"@babel/parser": "^7.15.0",
"@vue/compiler-core": "3.2.22",
"@vue/shared": "3.2.22",
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.27",
"@vue/shared": "3.2.27",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7"
}
},
"@vue/runtime-core": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.22.tgz",
"integrity": "sha512-e7WOC55wmHPvmoVUk9VBe/Z9k5bJfWJfVIlkUkiADJn0bOgQD29oh/GS14Kb3aEJXIHLI17Em6+HxNut1sIh7Q==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.27.tgz",
"integrity": "sha512-NJrjuViHJyrT4bwIocbE4XDaDlA1Pj61pQlneZZdFEvgdMLlhzCCiJ4WZnWcohYQeisUAZjEFKK8GjQieDPFbw==",
"requires": {
"@vue/reactivity": "3.2.22",
"@vue/shared": "3.2.22"
"@vue/reactivity": "3.2.27",
"@vue/shared": "3.2.27"
}
},
"@vue/runtime-dom": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.22.tgz",
"integrity": "sha512-w7VHYJoliLRTLc5beN77wxuOjla4v9wr2FF22xpZFYBmH4U1V7HkYhoHc1BTuNghI15CXT1tNIMhibI1nrQgdw==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.27.tgz",
"integrity": "sha512-tlnKkvBSkV7MPUp/wRFsYcv67U1rUeZTPfpPzq5Kpmw5NNGkY6J075fFBH2k0MNxDucXS+qfStNrxAyGTUMkSA==",
"requires": {
"@vue/runtime-core": "3.2.22",
"@vue/shared": "3.2.22",
"@vue/runtime-core": "3.2.27",
"@vue/shared": "3.2.27",
"csstype": "^2.6.8"
}
},
"@vue/server-renderer": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.22.tgz",
"integrity": "sha512-jCwbQgKPXiXoH9VS9F7K+gyEvEMrjutannwEZD1R8fQ9szmOTqC+RRbIY3Uf2ibQjZtZ8DV9a4FjxICvd9zZlQ==",
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.27.tgz",
"integrity": "sha512-dZnzkFCDe6A/GIe/F1LcG6lWpprHVh62DjTv8wubtkHwfJWOmOeHp+KvPDRrswL/L3ghsm+E31xY+pvkgM3pbQ==",
"requires": {
"@vue/compiler-ssr": "3.2.22",
"@vue/shared": "3.2.22"
"@vue/compiler-ssr": "3.2.27",
"@vue/shared": "3.2.27"
}
},
"@vue/shared": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.22.tgz",
"integrity": "sha512-qWVav014mpjEtbWbEgl0q9pEyrrIySKum8UVYjwhC6njrKzknLZPvfuYdQyVbApsqr94tf/3dP4pCuZmmjdCWQ=="
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.27.tgz",
"integrity": "sha512-rpAn9k6O08Lvo7ekBIAnkOukX/4EsEQLPrRJBKhIEasMsOI5eX0f6mq1sDUSY7cgAqWw2d7QtP74CWxdXoyKxA=="
},
"@vue/web-component-wrapper": {
"version": "1.3.0",
......@@ -26350,15 +26350,15 @@
"integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
},
"vue": {
"version": "3.2.22",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.2.22.tgz",
"integrity": "sha512-KD5nZpXVZquOC6926Xnp3zOvswrUyO9Rya7ZUoxWFQEjFDW4iACtwzubRB4Um2Om9kj6CaJOqAVRDSFlqLpdgw==",
"requires": {
"@vue/compiler-dom": "3.2.22",
"@vue/compiler-sfc": "3.2.22",
"@vue/runtime-dom": "3.2.22",
"@vue/server-renderer": "3.2.22",
"@vue/shared": "3.2.22"
"version": "3.2.27",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.2.27.tgz",
"integrity": "sha512-p1cH8Q6eaPwvANCjFQj497a914cxXKKwOG3Lg9USddTOrn4/zFMKjn9dnovkx+L8VtFaNgbVqW8mLJS/eTA6xw==",
"requires": {
"@vue/compiler-dom": "3.2.27",
"@vue/compiler-sfc": "3.2.27",
"@vue/runtime-dom": "3.2.27",
"@vue/server-renderer": "3.2.27",
"@vue/shared": "3.2.27"
}
},
"vue-cli-plugin-element-plus": {
......@@ -19,7 +19,7 @@
"less-loader": "^7.3.0",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"vue": "^3.2.22",
"vue": "^3.2.27",
"vue-router": "^4.0.8",
"vuex": "^4.0.0"
},
......
......@@ -55,4 +55,5 @@ html, body, #app, .el-container {
justify-content: center;
}
</style>
......@@ -15,7 +15,7 @@ axiosInstance.interceptors.request.use(
config => {
if (['localhost', '192.168.1.104'].includes(window.location.hostname))
{
config.headers.Authorization = '34cdfc09-4ff1-44ac-9e9b-0b0da9b3047a'
config.headers.Authorization = 'a1c28c12-cb12-439a-ae1e-e816e3f8f809'
}
else
{
......
<template>
<div class="result-wrapper">
<div class="result-header">结果展示</div>
<div id="showDiv" class="scrollbar-wrapper">
<div v-for="item in informationList">
{{ item }}
</div>
<div id="showDiv" class="scrollbar-wrapper" style="padding: 20px">
</div>
</div>
</template>
<script>
import $ from 'jquery'
import {onMounted, onUpdated} from 'vue'
import {computed, onMounted, onUpdated, watch} from 'vue'
export default {
props: ['data'],
setup(props, {emit}) {
const informationList = props.data
const data = props.data
const informationList = computed(() => {
return data
})
// function
const renderResultToHtml = function(data, hasSccessDetail) {
......@@ -67,9 +69,16 @@ export default {
$("#showDiv").append(text)
}
onUpdated(
watch(
() => {
log(informationList)
return informationList.value.toString()
},
(newData) => {
$("#showDiv").empty()
for (const item of informationList.value)
{
renderResultToHtml(item)
}
}
)
......
......@@ -29,6 +29,10 @@ const menuRoute = [
path: 'SnapshotCluster',
component: () => import("@/views/SnapshotCluster/SnapshotCluster.vue"),
},
{
path: 'EquipmentTimeErrorVerification',
component: () => import("@/views/EquipmentTimeErrorVerification/EquipmentTimeErrorVerification.vue"),
},
]
},
]
......
<template>
<a-menu v-model:selectedKeys="currentMenu" mode="horizontal">
<a-menu-item :key="'客流数据'">
客流数据
</a-menu-item>
<a-menu-item :key="'人脸数据'">
人脸数据
</a-menu-item>
</a-menu>
<div v-show="currentMenu[0] === '客流数据'">
<PassengerFlowData></PassengerFlowData>
</div>
<div v-show="currentMenu[0] === '人脸数据'">
<FaceData></FaceData>
</div>
</template>
<script>
import {ref} from 'vue'
import FaceData from './FaceData/FaceData.vue'
import PassengerFlowData from './PassengerFlowData/PassengerFlowData.vue'
export default {
components: {
FaceData,
PassengerFlowData,
},
setup() {
// scalar
const currentMenu = ref(['客流数据'])
// sequence
// mapping
// function
return {
// scalar
currentMenu,
// sequence
// mapping
// function
}
}
}
</script>
<style scoped>
</style>
import axiosInstance from "@/Request/PublicAxiosInstance"
import {filterEmptyValueInObject} from "@/PublicUtil/PublicUtil"
class SnapshotRecordApi {
getGateList(data) {
return axiosInstance.request(
{
method: 'GET',
url: `/gates/gateByInfo`,
params: filterEmptyValueInObject(
{
account_id: data.account_id,
plaza_id: data.plaza_id,
zone_id: data.zone_id,
type: data.type,
},
)
}
)
}
}
const snapshotRecordApi = new SnapshotRecordApi()
export default snapshotRecordApi
.single-image {
height: 300px;
width: 100%;
}
<template>
</template>
<script>
export default {
setup() {
return {}
}
}
</script>
<style lang="less" scoped>
@import "./FaceData";
</style>
import axiosInstance from "@/Request/PublicAxiosInstance"
import {filterEmptyValueInObject} from "@/PublicUtil/PublicUtil"
class PassengerFlowDataApi {
preview(data) {
return axiosInstance.request(
{
method: 'POST',
url: `/preview/viewCountData`,
}
)
}
}
const passengerFlowDataApi = new PassengerFlowDataApi()
export default passengerFlowDataApi
.single-image {
height: 300px;
width: 100%;
}
<template>
<a-form :model="queryForm" layout="inline">
<a-form-item label="集团:">
<a-select v-model:value="queryForm.account_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
@change="onAccountChange"
>
<a-select-option
v-for="item in accountList"
:value="item.id"
>
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="广场:">
<a-select v-model:value="queryForm.plaza_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
@change="onPlazaChange"
>
<a-select-option
v-for="item in plazaList"
:value="item.id">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="监控点:">
<a-select v-model:value="queryForm.gate_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1">
<a-select-option
v-for="item in gateList"
:value="item.id"
>
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="开始日期:">
<a-date-picker v-model:value="queryForm.startDate"/>
</a-form-item>
<a-form-item label="结束日期:">
<a-date-picker v-model:value="queryForm.endDate"/>
</a-form-item>
<a-form-item>
<a-button type="primary" @click="confirmSearch">开始</a-button>
</a-form-item>
</a-form>
</template>
<script>
import {reactive, ref, toRaw} from 'vue'
import moment from 'moment'
import snapshotRecordApi from '@/views/SnapshotCluster/SnapshotRecord/SnapshotRecordApi'
import {isArray} from '@/PublicUtil/Judgment'
import {formatDate, formatTime} from '@/PublicUtil/PublicUtil'
import InformationDisplay from '@/component/InformationDisplay/InformationDisplay'
import dataRerunApi from '@/views/DataRerun/DataRerunApi'
import passengerFlowDataApi from '@/views/DataRepair/PassengerFlowData/PassengerFlowData'
export default {
components: {
InformationDisplay,
},
setup() {
const resultList = ref([])
const informationList = ref([])
// sequence
const accountList = ref([])
const plazaList = ref([])
const zoneList = ref([])
const gateList = ref([])
let webSocketMap = {
mallcountData: undefined,
floorcountData: undefined,
zonecountData: undefined,
gatecountData: undefined,
mallfaceSta: undefined,
floorfaceSta: undefined,
zonefaceSta: undefined,
gatefaceSta: undefined,
}
// mapping
const progressMap = {
mallcountData: "商场客流",
floorcountData: "楼层客流",
zonecountData: "店铺客流",
gatecountData: "监控点客流",
mallfaceSta: "商场人脸",
floorfaceSta: "楼层人脸",
zonefaceSta: "店铺人脸",
gatefaceSta: "监控点人脸"
}
const queryForm = reactive(
{
account_id: [],
plaza_id: [],
gate_id: [],
channel: [],
startDate: moment(moment().format('YYYY-MM-DD'), 'YYYY-MM-DD'),
endDate: moment(moment().format('YYYY-MM-DD'), 'YYYY-MM-DD'),
}
)
const onAccountChange = function() {
getPlazaList()
}
const onPlazaChange = function() {
getGateList()
}
const getGateList = function() {
queryForm.gate_id = []
gateList.value = []
passengerFlowDataApi.getGateList(
{
accountIds: queryForm.account_id.toString(),
mallIds: queryForm.plaza_id.toString(),
}
).then(
(r) => {
if (isArray(r))
{
gateList.value = r
}
}
)
}
const getPlazaList = function() {
queryForm.plaza_id = []
plazaList.value = []
snapshotRecordApi.getPlazaList(
{
account_id: queryForm.account_id.toString()
}
).then(
(r) => {
if (isArray(r))
{
plazaList.value = r
}
}
)
}
const getAccountList = function() {
queryForm.account_id = []
accountList.value = []
snapshotRecordApi.getAccountList().then(
(r) => {
if (isArray(r))
{
accountList.value = r
}
}
)
}
const floatToPercent = function(floatNum) {
if (!floatNum)
{
return 0
}
let formatNum = Math.floor(floatNum * 100)
return formatNum >= 100 ? 100 : formatNum
}
const dealMessage = function(message) {
// scheduleType
const {dates, mallIds, mallNames, status, stepCount, scheduleType, counter} = message
let resObj = {}
resObj.dates = dates
resObj.mallIds = mallIds
resObj.mallNames = mallNames
resObj.status = status
resObj.progress = floatToPercent(stepCount)
resObj.totalNum = 0
resObj.totalPage = 0
resObj.current = 0
resObj.curPageSize = 0
resObj.currentPage = 0
resObj.scheduleType = scheduleType
if (counter)
{
// dataNum dateMallNum step totalData totalDate totalMall totalMallDateProduct allDataCount
resObj.totalNum = counter.allDataCount
resObj.totalPage = counter.totalMallDateProduct
resObj.current = counter.dataNum
resObj.curPageSize = counter.totalData
resObj.currentPage = counter.dateMallNum
}
if (resultList.value.length)
{
const isSameScheduleType = resultList.value.some(item => item.scheduleType === scheduleType)
isSameScheduleType
? resultList.value.forEach(item => {
//
item.progress = floatToPercent(stepCount)
if (counter)
{
item.totalNum = counter.allDataCount
item.totalPage = counter.totalMallDateProduct
item.current = counter.dataNum
item.curPageSize = counter.totalData
item.currentPage = counter.dateMallNum
}
})
: resultList.value.push(resObj)
resObj = {}
}
else
{
resultList.value.push(resObj)
resObj = {}
}
}
const initializeWebSocket = function(scheduleType) {
if (webSocketMap[scheduleType] !== undefined)
{
webSocketMap[scheduleType].close()
}
webSocketMap[scheduleType] = new WebSocket(`ws://store.keliuyun.com:9998/recal/schedule/${scheduleType}`)
webSocketMap[scheduleType].onopen = () => {
queryData(scheduleType)
}
webSocketMap[scheduleType].onmessage = function(event) {
let message = JSON.parse(event.data)
dealMessage(message)
if (message.stepCount === 1)
{
webSocketMap[scheduleType].close()
}
}
}
const queryData = function(scheduleType) {
const rawData = toRaw(queryForm)
const data = {
mallIds: rawData.plaza_id,
scheduleType: scheduleType,
startDate: formatDate(rawData.startDate) + ' ' + '00:00:00',
endDate: formatDate(rawData.endDate) + ' ' + '00:00:00',
}
dataRerunApi.getResult(data, scheduleType).then(
(r) => {
informationList.value.push(r)
}
)
}
const confirmSearch = function() {
passengerFlowDataApi.preview()
}
const __main = function() {
getAccountList()
}
__main()
return {
// sequence
accountList,
plazaList,
zoneList,
gateList,
resultList,
informationList,
// mapping
progressMap,
queryForm,
onAccountChange,
initializeWebSocket,
confirmSearch,
onPlazaChange,
}
}
}
</script>
<style lang="less" scoped>
@import "./PassengerFlowData.less";
</style>
.result-wrapper-2 {
width: 50%;
min-width: 600px;
border-radius: 4px;
margin: 20px auto 0;
position: relative;
overflow: auto;
}
<template>
<a-form :model="querySnapshotRecordForm" layout="inline">
<a-form :model="queryForm" layout="inline">
<a-form-item label="集团:">
<a-select v-model:value="querySnapshotRecordForm.account_id"
<a-select v-model:value="queryForm.account_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -16,7 +16,7 @@
</a-select>
</a-form-item>
<a-form-item label="广场:">
<a-select v-model:value="querySnapshotRecordForm.plaza_id"
<a-select v-model:value="queryForm.plaza_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -29,7 +29,7 @@
</a-select>
</a-form-item>
<a-form-item label="数据:">
<a-select v-model:value="querySnapshotRecordForm.scheduleTypeList"
<a-select v-model:value="queryForm.scheduleTypeList"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -43,17 +43,27 @@
</a-select>
</a-form-item>
<a-form-item label="开始日期:">
<a-date-picker v-model:value="querySnapshotRecordForm.startDate"/>
<a-date-picker v-model:value="queryForm.startDate"/>
</a-form-item>
<a-form-item label="结束日期:">
<a-date-picker v-model:value="querySnapshotRecordForm.endDate"/>
<a-date-picker v-model:value="queryForm.endDate"/>
</a-form-item>
<a-form-item>
<a-button type="primary" @click="confirmSearch">开始</a-button>
</a-form-item>
</a-form>
<InformationDisplay :data="informationList" :key="resultList"></InformationDisplay>
<div class="result-wrapper-2">
<el-row v-for="item in resultList">
<el-col :span="3">
{{ progressMap[item.scheduleType] + ':' }}
</el-col>
<el-col :span="21">
<el-progress :text-inside="true" :stroke-width="26" :percentage="item?.progress"/>
</el-col>
</el-row>
</div>
<InformationDisplay :data="informationList" :key="informationList"></InformationDisplay>
</template>
<script>
......@@ -100,7 +110,7 @@ export default {
gatefaceSta: "监控点人脸"
}
const querySnapshotRecordForm = reactive(
const queryForm = reactive(
{
account_id: [],
plaza_id: [],
......@@ -115,11 +125,11 @@ export default {
}
const getPlazaList = function() {
querySnapshotRecordForm.plaza_id = []
queryForm.plaza_id = []
plazaList.value = []
snapshotRecordApi.getPlazaList(
{
account_id: querySnapshotRecordForm.account_id.toString()
account_id: queryForm.account_id.toString()
}
).then(
(r) => {
......@@ -132,7 +142,7 @@ export default {
}
const getAccountList = function() {
querySnapshotRecordForm.account_id = []
queryForm.account_id = []
accountList.value = []
snapshotRecordApi.getAccountList().then(
(r) => {
......@@ -226,7 +236,7 @@ export default {
}
const queryData = function(scheduleType) {
const rawData = toRaw(querySnapshotRecordForm)
const rawData = toRaw(queryForm)
const data = {
mallIds: rawData.plaza_id,
scheduleType: scheduleType,
......@@ -243,7 +253,7 @@ export default {
const confirmSearch = function() {
resultList.value = []
informationList.value = []
for (const scheduleType of querySnapshotRecordForm.scheduleTypeList)
for (const scheduleType of queryForm.scheduleTypeList)
{
initializeWebSocket(scheduleType)
}
......@@ -265,7 +275,7 @@ export default {
informationList,
// mapping
progressMap,
querySnapshotRecordForm,
queryForm,
onAccountChange,
initializeWebSocket,
confirmSearch,
......@@ -274,6 +284,6 @@ export default {
}
</script>
<style scoped>
<style lang="less" scoped>
@import "./DataRerun.less";
</style>
<template>
132231
</template>
<script>
export default {
setup() {
return {}
}
}
</script>
<style scoped>
</style>
<template>
<a-form :model="querySnapshotRecordForm" layout="inline">
<a-form :model="queryForm" layout="inline">
<a-form-item label="集团:">
<a-select v-model:value="querySnapshotRecordForm.account_id"
<a-select v-model:value="queryForm.account_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -16,7 +16,7 @@
</a-select>
</a-form-item>
<a-form-item label="广场:">
<a-select v-model:value="querySnapshotRecordForm.plaza_id"
<a-select v-model:value="queryForm.plaza_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -29,13 +29,13 @@
</a-select>
</a-form-item>
<a-form-item label="特征重提类型:">
<a-select v-model:value="querySnapshotRecordForm.featureRevisitType" style="width: 200px">
<a-select v-model:value="queryForm.featureRevisitType" style="width: 200px">
<a-select-option :value="1">店员库重建</a-select-option>
<a-select-option :value="2">顾客库重建</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="选择日期:" v-if="querySnapshotRecordForm.featureRevisitType === 2">
<a-date-picker v-model:value="querySnapshotRecordForm.date"/>
<a-form-item label="选择日期:" v-if="queryForm.featureRevisitType === 2">
<a-date-picker v-model:value="queryForm.date"/>
</a-form-item>
<a-form-item>
<a-button type="primary" @click="initializeWebSocket">开始</a-button>
......@@ -68,7 +68,7 @@ export default {
const zoneList = ref([])
const gateList = ref([])
const querySnapshotRecordForm = reactive(
const queryForm = reactive(
{
account_id: [],
plaza_id: [],
......@@ -82,11 +82,11 @@ export default {
}
const getPlazaList = function() {
querySnapshotRecordForm.plaza_id = []
queryForm.plaza_id = []
plazaList.value = []
snapshotRecordApi.getPlazaList(
{
account_id: querySnapshotRecordForm.account_id.toString()
account_id: queryForm.account_id.toString()
}
).then(
(r) => {
......@@ -99,7 +99,7 @@ export default {
}
const getAccountList = function() {
querySnapshotRecordForm.account_id = []
queryForm.account_id = []
accountList.value = []
snapshotRecordApi.getAccountList().then(
(r) => {
......@@ -177,7 +177,7 @@ export default {
}
resultList.value = []
webSocket = new WebSocket(`ws://store.keliuyun.com:9998/recal/schedule/rebuildFeatureLib${querySnapshotRecordForm.featureRevisitType}`)
webSocket = new WebSocket(`ws://store.keliuyun.com:9998/recal/schedule/rebuildFeatureLib${queryForm.featureRevisitType}`)
webSocket.onopen = queryData
......@@ -192,7 +192,7 @@ export default {
}
const queryData = function() {
const rawData = toRaw(querySnapshotRecordForm)
const rawData = toRaw(queryForm)
switch (rawData.featureRevisitType)
{
case 1:
......@@ -231,7 +231,7 @@ export default {
zoneList,
gateList,
resultList,
querySnapshotRecordForm,
queryForm,
onAccountChange,
initializeWebSocket,
}
......
<template>
<a-form :model="querySnapshotRecordForm" layout="inline">
<a-form :model="queryForm" layout="inline">
<a-form-item label="集团:">
<a-select v-model:value="querySnapshotRecordForm.account_id"
<a-select v-model:value="queryForm.account_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -16,7 +16,7 @@
</a-select>
</a-form-item>
<a-form-item label="广场:">
<a-select v-model:value="querySnapshotRecordForm.plaza_id"
<a-select v-model:value="queryForm.plaza_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -29,15 +29,15 @@
</a-select>
</a-form-item>
<a-form-item label="特征重提类型:">
<a-select v-model:value="querySnapshotRecordForm.featureRevisitType" style="width: 200px">
<a-select v-model:value="queryForm.featureRevisitType" style="width: 200px">
<a-select-option :value="0">人脸+全身照特征</a-select-option>
<a-select-option :value="1">人脸特征</a-select-option>
<a-select-option :value="2">全身照特征</a-select-option>
<a-select-option :value="3">店员特征</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="选择日期:" v-if="querySnapshotRecordForm.featureRevisitType !== 3">
<a-date-picker v-model:value="querySnapshotRecordForm.date"/>
<a-form-item label="选择日期:" v-if="queryForm.featureRevisitType !== 3">
<a-date-picker v-model:value="queryForm.date"/>
</a-form-item>
<a-form-item>
<a-button type="primary" @click="initializeWebSocket">开始</a-button>
......@@ -71,7 +71,7 @@ export default {
const zoneList = ref([])
const gateList = ref([])
const querySnapshotRecordForm = reactive(
const queryForm = reactive(
{
account_id: [],
plaza_id: [],
......@@ -85,11 +85,11 @@ export default {
}
const getPlazaList = function() {
querySnapshotRecordForm.plaza_id = []
queryForm.plaza_id = []
plazaList.value = []
snapshotRecordApi.getPlazaList(
{
account_id: querySnapshotRecordForm.account_id.toString()
account_id: queryForm.account_id.toString()
}
).then(
(r) => {
......@@ -102,7 +102,7 @@ export default {
}
const getAccountList = function() {
querySnapshotRecordForm.account_id = []
queryForm.account_id = []
accountList.value = []
snapshotRecordApi.getAccountList().then(
(r) => {
......@@ -180,7 +180,7 @@ export default {
}
resultList.value = []
webSocket = new WebSocket(`ws://store.keliuyun.com:9998/recal/schedule/revisitFeature${querySnapshotRecordForm.featureRevisitType}`)
webSocket = new WebSocket(`ws://store.keliuyun.com:9998/recal/schedule/revisitFeature${queryForm.featureRevisitType}`)
webSocket.onopen = queryData
......@@ -195,7 +195,7 @@ export default {
}
const queryData = function() {
const rawData = toRaw(querySnapshotRecordForm)
const rawData = toRaw(queryForm)
if ([0, 1, 2].includes(rawData.featureRevisitType))
{
const data = {
......@@ -231,7 +231,7 @@ export default {
zoneList,
gateList,
resultList,
querySnapshotRecordForm,
queryForm,
onAccountChange,
initializeWebSocket,
}
......
......@@ -20,6 +20,9 @@
<a-menu-item :key="'/Main/SnapshotCluster'">
<span>抓拍聚类</span>
</a-menu-item>
<a-menu-item :key="'/Main/EquipmentTimeErrorVerification'">
<span>设备时间错误校验</span>
</a-menu-item>
</a-menu>
</el-aside>
<el-main>
......
<template>
<a-form :model="querySnapshotRecordForm" layout="inline">
<a-form :model="queryForm" layout="inline">
<a-form-item label="集团:">
<a-select v-model:value="querySnapshotRecordForm.account_id"
<a-select v-model:value="queryForm.account_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -16,7 +16,7 @@
</a-select>
</a-form-item>
<a-form-item label="广场:">
<a-select v-model:value="querySnapshotRecordForm.plaza_id"
<a-select v-model:value="queryForm.plaza_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -29,13 +29,13 @@
</a-select>
</a-form-item>
<a-form-item label="比对类型:">
<a-select v-model:value="querySnapshotRecordForm.featureRevisitType" style="width: 200px">
<a-select v-model:value="queryForm.featureRevisitType" style="width: 200px">
<a-select-option :value="1">店员对比</a-select-option>
<a-select-option :value="2">顾客对比</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="选择日期:">
<a-date-picker v-model:value="querySnapshotRecordForm.date"/>
<a-date-picker v-model:value="queryForm.date"/>
</a-form-item>
<a-form-item>
<a-button type="primary" @click="initializeWebSocket">开始</a-button>
......@@ -68,7 +68,7 @@ export default {
const zoneList = ref([])
const gateList = ref([])
const querySnapshotRecordForm = reactive(
const queryForm = reactive(
{
account_id: [],
plaza_id: [],
......@@ -82,11 +82,11 @@ export default {
}
const getPlazaList = function() {
querySnapshotRecordForm.plaza_id = []
queryForm.plaza_id = []
plazaList.value = []
snapshotRecordApi.getPlazaList(
{
account_id: querySnapshotRecordForm.account_id.toString()
account_id: queryForm.account_id.toString()
}
).then(
(r) => {
......@@ -99,7 +99,7 @@ export default {
}
const getAccountList = function() {
querySnapshotRecordForm.account_id = []
queryForm.account_id = []
accountList.value = []
snapshotRecordApi.getAccountList().then(
(r) => {
......@@ -177,7 +177,7 @@ export default {
}
resultList.value = []
webSocket = new WebSocket(`ws://store.keliuyun.com:9998/recal/schedule/rematchPerson${querySnapshotRecordForm.featureRevisitType}`)
webSocket = new WebSocket(`ws://store.keliuyun.com:9998/recal/schedule/rematchPerson${queryForm.featureRevisitType}`)
webSocket.onopen = queryData
......@@ -192,7 +192,7 @@ export default {
}
const queryData = function() {
const rawData = toRaw(querySnapshotRecordForm)
const rawData = toRaw(queryForm)
switch (rawData.featureRevisitType)
{
case 1:
......@@ -233,7 +233,7 @@ export default {
zoneList,
gateList,
resultList,
querySnapshotRecordForm,
queryForm,
onAccountChange,
initializeWebSocket,
}
......
<template>
<a-form :model="queryClusterResultForm" layout="inline" :label-col="{span: 4}" :wrapper-col="{span: 14}">
<a-form :model="queryForm" layout="inline" :label-col="{span: 4}" :wrapper-col="{span: 14}">
<a-form-item label="集团:">
<a-select v-model:value="queryClusterResultForm.account_id"
<a-select v-model:value="queryForm.account_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -16,7 +16,7 @@
</a-select>
</a-form-item>
<a-form-item label="广场:">
<a-select v-model:value="queryClusterResultForm.plaza_id"
<a-select v-model:value="queryForm.plaza_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -30,7 +30,7 @@
</a-select>
</a-form-item>
<a-form-item label="出入类型:">
<a-select v-model:value="queryClusterResultForm.type" style="width: 200px">
<a-select v-model:value="queryForm.type" style="width: 200px">
<a-select-option :value="0">全场</a-select-option>
<a-select-option :value="1">广场出入口</a-select-option>
<a-select-option :value="2">楼层出入口</a-select-option>
......@@ -39,7 +39,7 @@
</a-select>
</a-form-item>
<a-form-item label="区域信息:">
<a-select v-model:value="queryClusterResultForm.zone_id"
<a-select v-model:value="queryForm.zone_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -53,7 +53,7 @@
</a-select>
</a-form-item>
<a-form-item label="监控点:">
<a-select v-model:value="queryClusterResultForm.gate_id"
<a-select v-model:value="queryForm.gate_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1">
......@@ -66,7 +66,7 @@
</a-select>
</a-form-item>
<a-form-item label="方向:">
<a-select v-model:value="queryClusterResultForm.direction"
<a-select v-model:value="queryForm.direction"
mode="multiple"
:maxTagCount="1"
style="width: 200px">
......@@ -76,13 +76,13 @@
</a-select>
</a-form-item>
<a-form-item label="抓怕类型:">
<a-select v-model:value="queryClusterResultForm.picType" style="width: 200px">
<a-select v-model:value="queryForm.picType" style="width: 200px">
<a-select-option :value="1">半身照</a-select-option>
<a-select-option :value="2">全身照</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="人员类型:">
<a-select v-model:value="queryClusterResultForm.personType"
<a-select v-model:value="queryForm.personType"
mode="multiple"
:maxTagCount="1"
style="width: 200px">
......@@ -91,16 +91,16 @@
</a-select>
</a-form-item>
<a-form-item label="选择日期:">
<a-date-picker v-model:value="queryClusterResultForm.date" :format="'YYYY-MM-DD'"/>
<a-date-picker v-model:value="queryForm.date" :format="'YYYY-MM-DD'"/>
</a-form-item>
<a-form-item label="选择时间:">
<a-time-picker v-model:value="queryClusterResultForm.startTime"/>
<a-time-picker v-model:value="queryClusterResultForm.endTime"/>
<a-time-picker v-model:value="queryForm.startTime"/>
<a-time-picker v-model:value="queryForm.endTime"/>
</a-form-item>
<a-form-item label="图片数量:">
<a-input v-model:value="queryClusterResultForm.minPic" style="width: 100px"/>
<a-input v-model:value="queryForm.minPic" style="width: 100px"/>
<a-input v-model:value="queryClusterResultForm.maxPic" style="width: 100px"/>
<a-input v-model:value="queryForm.maxPic" style="width: 100px"/>
</a-form-item>
<a-form-item>
<a-button type="primary" @click="confirmSearch" :loading="isLoading">查询</a-button>
......@@ -173,7 +173,7 @@ export default {
}
)
const queryClusterResultForm = reactive(
const queryForm = reactive(
{
account_id: [],
plaza_id: [],
......@@ -222,11 +222,11 @@ export default {
}
const getPlazaList = function() {
queryClusterResultForm.plaza_id = []
queryForm.plaza_id = []
plazaList.value = []
clusterResultApi.getPlazaList(
{
account_id: queryClusterResultForm.account_id.toString()
account_id: queryForm.account_id.toString()
}
).then(
(r) => {
......@@ -239,12 +239,12 @@ export default {
}
const getZoneList = function() {
queryClusterResultForm.zone_id = []
queryForm.zone_id = []
zoneList.value = []
clusterResultApi.getZoneList(
{
account_id: queryClusterResultForm.account_id.toString(),
plaza_id: queryClusterResultForm.plaza_id.toString(),
account_id: queryForm.account_id.toString(),
plaza_id: queryForm.plaza_id.toString(),
}
).then(
(r) => {
......@@ -257,14 +257,14 @@ export default {
}
const getGateList = function() {
queryClusterResultForm.gate_id = []
queryForm.gate_id = []
gateList.value = []
clusterResultApi.getGateList(
{
account_id: queryClusterResultForm.account_id.toString(),
plaza_id: queryClusterResultForm.plaza_id.toString(),
zone_id: queryClusterResultForm.zone_id.toString(),
type: queryClusterResultForm.type,
account_id: queryForm.account_id.toString(),
plaza_id: queryForm.plaza_id.toString(),
zone_id: queryForm.zone_id.toString(),
type: queryForm.type,
}
).then(
(r) => {
......@@ -277,7 +277,7 @@ export default {
}
const getAccountList = function() {
queryClusterResultForm.account_id = []
queryForm.account_id = []
accountList.value = []
clusterResultApi.getAccountList().then(
(r) => {
......@@ -291,7 +291,7 @@ export default {
const confirmSearch = function() {
isLoading.value = true
const rawData = toRaw(queryClusterResultForm)
const rawData = toRaw(queryForm)
const data = filterEmptyValueInObject(
{
account_id: rawData.account_id.toString(),
......@@ -375,7 +375,7 @@ export default {
pagedTableDataList,
dataList,
// mapping
queryClusterResultForm,
queryForm,
// function
onPageNumChange,
onPageSizeChange,
......
<template>
<a-form :model="querySnapshotRecordForm" layout="inline">
<a-form :model="queryForm" layout="inline">
<a-form-item label="集团:">
<a-select v-model:value="querySnapshotRecordForm.account_id"
<a-select v-model:value="queryForm.account_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -16,7 +16,7 @@
</a-select>
</a-form-item>
<a-form-item label="广场:">
<a-select v-model:value="querySnapshotRecordForm.plaza_id"
<a-select v-model:value="queryForm.plaza_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -30,7 +30,7 @@
</a-select>
</a-form-item>
<a-form-item label="出入类型:">
<a-select v-model:value="querySnapshotRecordForm.type" style="width: 200px">
<a-select v-model:value="queryForm.type" style="width: 200px">
<a-select-option :value="0">全场</a-select-option>
<a-select-option :value="1">广场出入口</a-select-option>
<a-select-option :value="2">楼层出入口</a-select-option>
......@@ -39,7 +39,7 @@
</a-select>
</a-form-item>
<a-form-item label="区域信息:">
<a-select v-model:value="querySnapshotRecordForm.zone_id"
<a-select v-model:value="queryForm.zone_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1"
......@@ -53,7 +53,7 @@
</a-select>
</a-form-item>
<a-form-item label="监控点:">
<a-select v-model:value="querySnapshotRecordForm.gate_id"
<a-select v-model:value="queryForm.gate_id"
style="width: 200px"
mode="multiple"
:maxTagCount="1">
......@@ -66,7 +66,7 @@
</a-select>
</a-form-item>
<a-form-item label="方向:">
<a-select v-model:value="querySnapshotRecordForm.direction"
<a-select v-model:value="queryForm.direction"
mode="multiple"
:maxTagCount="1"
style="width: 200px">
......@@ -76,13 +76,13 @@
</a-select>
</a-form-item>
<a-form-item label="抓怕类型:">
<a-select v-model:value="querySnapshotRecordForm.picType" style="width: 200px">
<a-select v-model:value="queryForm.picType" style="width: 200px">
<a-select-option :value="1">半身照</a-select-option>
<a-select-option :value="2">全身照</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="人员类型:">
<a-select v-model:value="querySnapshotRecordForm.personType"
<a-select v-model:value="queryForm.personType"
mode="multiple"
:maxTagCount="1"
style="width: 200px">
......@@ -91,11 +91,11 @@
</a-select>
</a-form-item>
<a-form-item label="选择日期:">
<a-date-picker v-model:value="querySnapshotRecordForm.date" :format="'YYYY-MM-DD'"/>
<a-date-picker v-model:value="queryForm.date" :format="'YYYY-MM-DD'"/>
</a-form-item>
<a-form-item label="选择时间:">
<a-time-picker v-model:value="querySnapshotRecordForm.startTime"/>
<a-time-picker v-model:value="querySnapshotRecordForm.endTime"/>
<a-time-picker v-model:value="queryForm.startTime"/>
<a-time-picker v-model:value="queryForm.endTime"/>
</a-form-item>
<a-form-item>
<a-button type="primary" @click="confirmSearch" :loading="isLoading">查询</a-button>
......@@ -165,7 +165,7 @@ export default {
}
)
const querySnapshotRecordForm = reactive(
const queryForm = reactive(
{
account_id: [],
plaza_id: [],
......@@ -212,11 +212,11 @@ export default {
}
const getPlazaList = function() {
querySnapshotRecordForm.plaza_id = []
queryForm.plaza_id = []
plazaList.value = []
snapshotRecordApi.getPlazaList(
{
account_id: querySnapshotRecordForm.account_id.toString()
account_id: queryForm.account_id.toString()
}
).then(
(r) => {
......@@ -229,12 +229,12 @@ export default {
}
const getZoneList = function() {
querySnapshotRecordForm.zone_id = []
queryForm.zone_id = []
zoneList.value = []
snapshotRecordApi.getZoneList(
{
account_id: querySnapshotRecordForm.account_id.toString(),
plaza_id: querySnapshotRecordForm.plaza_id.toString(),
account_id: queryForm.account_id.toString(),
plaza_id: queryForm.plaza_id.toString(),
}
).then(
(r) => {
......@@ -247,14 +247,14 @@ export default {
}
const getGateList = function() {
querySnapshotRecordForm.gate_id = []
queryForm.gate_id = []
gateList.value = []
snapshotRecordApi.getGateList(
{
account_id: querySnapshotRecordForm.account_id.toString(),
plaza_id: querySnapshotRecordForm.plaza_id.toString(),
zone_id: querySnapshotRecordForm.zone_id.toString(),
type: querySnapshotRecordForm.type,
account_id: queryForm.account_id.toString(),
plaza_id: queryForm.plaza_id.toString(),
zone_id: queryForm.zone_id.toString(),
type: queryForm.type,
}
).then(
(r) => {
......@@ -267,7 +267,7 @@ export default {
}
const getAccountList = function() {
querySnapshotRecordForm.account_id = []
queryForm.account_id = []
accountList.value = []
snapshotRecordApi.getAccountList().then(
(r) => {
......@@ -281,7 +281,7 @@ export default {
const confirmSearch = function() {
isLoading.value = true
const rawData = toRaw(querySnapshotRecordForm)
const rawData = toRaw(queryForm)
const data = filterEmptyValueInObject(
{
account_id: rawData.account_id.toString(),
......@@ -354,7 +354,7 @@ export default {
gateList,
pagedTableDataList,
// mapping
querySnapshotRecordForm,
queryForm,
// function
onPageNumChange,
onPageSizeChange,
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!