fix web get scenario data
This commit is contained in:
parent
ca109841f3
commit
b422174e02
135
web/package-lock.json
generated
135
web/package-lock.json
generated
@ -10,6 +10,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"core-js": "^3.6.5",
|
"core-js": "^3.6.5",
|
||||||
"echarts": "^5.3.2",
|
"echarts": "^5.3.2",
|
||||||
|
"element-ui": "^2.15.14",
|
||||||
"lib-flexible": "^0.3.2",
|
"lib-flexible": "^0.3.2",
|
||||||
"simple-peer": "^9.11.1",
|
"simple-peer": "^9.11.1",
|
||||||
"vue": "^2.6.11"
|
"vue": "^2.6.11"
|
||||||
@ -3207,6 +3208,14 @@
|
|||||||
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
|
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/async-validator": {
|
||||||
|
"version": "1.8.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz",
|
||||||
|
"integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
|
||||||
|
"dependencies": {
|
||||||
|
"babel-runtime": "6.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/asynckit": {
|
"node_modules/asynckit": {
|
||||||
"version": "0.4.0",
|
"version": "0.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||||
@ -3304,6 +3313,11 @@
|
|||||||
"eslint": ">= 4.12.1"
|
"eslint": ">= 4.12.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/babel-helper-vue-jsx-merge-props": {
|
||||||
|
"version": "2.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
|
||||||
|
"integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
|
||||||
|
},
|
||||||
"node_modules/babel-loader": {
|
"node_modules/babel-loader": {
|
||||||
"version": "8.4.1",
|
"version": "8.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz",
|
||||||
@ -3371,6 +3385,27 @@
|
|||||||
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
|
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/babel-runtime": {
|
||||||
|
"version": "6.26.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
|
||||||
|
"integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
|
||||||
|
"dependencies": {
|
||||||
|
"core-js": "^2.4.0",
|
||||||
|
"regenerator-runtime": "^0.11.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/babel-runtime/node_modules/core-js": {
|
||||||
|
"version": "2.6.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
|
||||||
|
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
|
||||||
|
"deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
|
||||||
|
"hasInstallScript": true
|
||||||
|
},
|
||||||
|
"node_modules/babel-runtime/node_modules/regenerator-runtime": {
|
||||||
|
"version": "0.11.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
|
||||||
|
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
|
||||||
|
},
|
||||||
"node_modules/balanced-match": {
|
"node_modules/balanced-match": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||||
@ -5566,7 +5601,6 @@
|
|||||||
"version": "1.5.2",
|
"version": "1.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
|
||||||
"integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
|
"integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
@ -6115,6 +6149,22 @@
|
|||||||
"integrity": "sha512-8AJUW6dh75Fm/ny8+kZKJzI1pgoE8bKLZlzDU2W1ENd+DXKJrx7I7l9hb8UWR4ojlnb5OlixMt00QWiYJoVw1w==",
|
"integrity": "sha512-8AJUW6dh75Fm/ny8+kZKJzI1pgoE8bKLZlzDU2W1ENd+DXKJrx7I7l9hb8UWR4ojlnb5OlixMt00QWiYJoVw1w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/element-ui": {
|
||||||
|
"version": "2.15.14",
|
||||||
|
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.14.tgz",
|
||||||
|
"integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==",
|
||||||
|
"dependencies": {
|
||||||
|
"async-validator": "~1.8.1",
|
||||||
|
"babel-helper-vue-jsx-merge-props": "^2.0.0",
|
||||||
|
"deepmerge": "^1.2.0",
|
||||||
|
"normalize-wheel": "^1.0.1",
|
||||||
|
"resize-observer-polyfill": "^1.5.0",
|
||||||
|
"throttle-debounce": "^1.0.1"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"vue": "^2.5.17"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/elliptic": {
|
"node_modules/elliptic": {
|
||||||
"version": "6.6.1",
|
"version": "6.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz",
|
||||||
@ -10456,6 +10506,11 @@
|
|||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/normalize-wheel": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="
|
||||||
|
},
|
||||||
"node_modules/npm-run-path": {
|
"node_modules/npm-run-path": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
||||||
@ -12939,6 +12994,11 @@
|
|||||||
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
|
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/resize-observer-polyfill": {
|
||||||
|
"version": "1.5.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
|
||||||
|
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
|
||||||
|
},
|
||||||
"node_modules/resolve": {
|
"node_modules/resolve": {
|
||||||
"version": "1.22.10",
|
"version": "1.22.10",
|
||||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
|
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
|
||||||
@ -14897,6 +14957,14 @@
|
|||||||
"node": ">=4.0.0"
|
"node": ">=4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/throttle-debounce": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/through": {
|
"node_modules/through": {
|
||||||
"version": "2.3.8",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
||||||
@ -19552,6 +19620,14 @@
|
|||||||
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
|
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"async-validator": {
|
||||||
|
"version": "1.8.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz",
|
||||||
|
"integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
|
||||||
|
"requires": {
|
||||||
|
"babel-runtime": "6.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
"asynckit": {
|
"asynckit": {
|
||||||
"version": "0.4.0",
|
"version": "0.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||||
@ -19622,6 +19698,11 @@
|
|||||||
"resolve": "^1.12.0"
|
"resolve": "^1.12.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"babel-helper-vue-jsx-merge-props": {
|
||||||
|
"version": "2.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
|
||||||
|
"integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
|
||||||
|
},
|
||||||
"babel-loader": {
|
"babel-loader": {
|
||||||
"version": "8.4.1",
|
"version": "8.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz",
|
||||||
@ -19673,6 +19754,27 @@
|
|||||||
"@babel/helper-define-polyfill-provider": "^0.6.3"
|
"@babel/helper-define-polyfill-provider": "^0.6.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"babel-runtime": {
|
||||||
|
"version": "6.26.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
|
||||||
|
"integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
|
||||||
|
"requires": {
|
||||||
|
"core-js": "^2.4.0",
|
||||||
|
"regenerator-runtime": "^0.11.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"core-js": {
|
||||||
|
"version": "2.6.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
|
||||||
|
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
|
||||||
|
},
|
||||||
|
"regenerator-runtime": {
|
||||||
|
"version": "0.11.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
|
||||||
|
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"balanced-match": {
|
"balanced-match": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||||
@ -21387,8 +21489,7 @@
|
|||||||
"deepmerge": {
|
"deepmerge": {
|
||||||
"version": "1.5.2",
|
"version": "1.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
|
||||||
"integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
|
"integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"default-gateway": {
|
"default-gateway": {
|
||||||
"version": "5.0.5",
|
"version": "5.0.5",
|
||||||
@ -21818,6 +21919,19 @@
|
|||||||
"integrity": "sha512-8AJUW6dh75Fm/ny8+kZKJzI1pgoE8bKLZlzDU2W1ENd+DXKJrx7I7l9hb8UWR4ojlnb5OlixMt00QWiYJoVw1w==",
|
"integrity": "sha512-8AJUW6dh75Fm/ny8+kZKJzI1pgoE8bKLZlzDU2W1ENd+DXKJrx7I7l9hb8UWR4ojlnb5OlixMt00QWiYJoVw1w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"element-ui": {
|
||||||
|
"version": "2.15.14",
|
||||||
|
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.14.tgz",
|
||||||
|
"integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==",
|
||||||
|
"requires": {
|
||||||
|
"async-validator": "~1.8.1",
|
||||||
|
"babel-helper-vue-jsx-merge-props": "^2.0.0",
|
||||||
|
"deepmerge": "^1.2.0",
|
||||||
|
"normalize-wheel": "^1.0.1",
|
||||||
|
"resize-observer-polyfill": "^1.5.0",
|
||||||
|
"throttle-debounce": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"elliptic": {
|
"elliptic": {
|
||||||
"version": "6.6.1",
|
"version": "6.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz",
|
||||||
@ -25174,6 +25288,11 @@
|
|||||||
"sort-keys": "^1.0.0"
|
"sort-keys": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"normalize-wheel": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="
|
||||||
|
},
|
||||||
"npm-run-path": {
|
"npm-run-path": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
||||||
@ -27174,6 +27293,11 @@
|
|||||||
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
|
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"resize-observer-polyfill": {
|
||||||
|
"version": "1.5.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
|
||||||
|
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
|
||||||
|
},
|
||||||
"resolve": {
|
"resolve": {
|
||||||
"version": "1.22.10",
|
"version": "1.22.10",
|
||||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
|
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
|
||||||
@ -28746,6 +28870,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"throttle-debounce": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg=="
|
||||||
|
},
|
||||||
"through": {
|
"through": {
|
||||||
"version": "2.3.8",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"core-js": "^3.6.5",
|
"core-js": "^3.6.5",
|
||||||
"echarts": "^5.3.2",
|
"echarts": "^5.3.2",
|
||||||
|
"element-ui": "^2.15.14",
|
||||||
"lib-flexible": "^0.3.2",
|
"lib-flexible": "^0.3.2",
|
||||||
"simple-peer": "^9.11.1",
|
"simple-peer": "^9.11.1",
|
||||||
"vue": "^2.6.11"
|
"vue": "^2.6.11"
|
||||||
|
@ -1,20 +1,16 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="app">
|
<div id="app">
|
||||||
<WebRTC />
|
<WebRTC />
|
||||||
<div id="ui">
|
<div id="ui">
|
||||||
<TopBar @open-task-modal="openTaskModal" />
|
<TopBar @open-task-modal="openTaskModal" />
|
||||||
<LeftPane />
|
<TaskModal ref="taskModal" />
|
||||||
<RightPane />
|
</div>
|
||||||
<TaskModal ref="taskModal" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import WebRTC from './components/WebRTC.vue'
|
import WebRTC from './components/WebRTC.vue'
|
||||||
import TopBar from './components/TopBar.vue'
|
import TopBar from './components/TopBar.vue'
|
||||||
import LeftPane from "./components/LeftPane.vue"
|
|
||||||
import RightPane from "./components/RightPane.vue"
|
|
||||||
import TaskModal from './components/TaskModal.vue'
|
import TaskModal from './components/TaskModal.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -22,40 +18,34 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
WebRTC,
|
WebRTC,
|
||||||
TopBar,
|
TopBar,
|
||||||
LeftPane,
|
|
||||||
RightPane,
|
|
||||||
TaskModal,
|
TaskModal,
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
openTaskModal() {
|
openTaskModal() {
|
||||||
this.$refs.taskModal.openModal();
|
this.$refs.taskModal.openModal();
|
||||||
},
|
},
|
||||||
},
|
|
||||||
mounted()
|
|
||||||
{
|
|
||||||
//this.webrtc.load();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
html,body
|
html, body {
|
||||||
{
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
#app {
|
#app {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
#ui
|
|
||||||
{
|
#ui {
|
||||||
position:absolute;
|
position: absolute;
|
||||||
width:100%;
|
width: 100%;
|
||||||
left:0;
|
left: 0;
|
||||||
top:0;
|
top: 0;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -8,12 +8,22 @@
|
|||||||
<div class="search-area">
|
<div class="search-area">
|
||||||
<div class="search-item">
|
<div class="search-item">
|
||||||
<label for="year">年度:</label>
|
<label for="year">年度:</label>
|
||||||
<input type="number" v-model="year" class="year-input" @change="handleChangeYear" />
|
<el-date-picker
|
||||||
|
v-model="year"
|
||||||
|
type="year"
|
||||||
|
placeholder="选择年"
|
||||||
|
format="yyyy"
|
||||||
|
value-format="yyyy"
|
||||||
|
@change="handleChangeYear"
|
||||||
|
class="year-picker"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="search-item">
|
<div class="search-item">
|
||||||
<label for="taskName">任务名称:</label>
|
<label for="taskName">任务名称:</label>
|
||||||
<select v-model="taskName" class="task-select">
|
<select v-model="taskName" class="task-select">
|
||||||
<option value="xxx任务">xxx任务</option>
|
<option v-for="task in taskList" :key="task.id" :value="task.value">
|
||||||
|
{{ task.label }}
|
||||||
|
</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<button class="search-btn" @click="handleSearch">查询</button>
|
<button class="search-btn" @click="handleSearch">查询</button>
|
||||||
@ -32,14 +42,17 @@
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr v-for="(task, index) in tasks" :key="index">
|
<tr v-for="(task, index) in tasks" :key="index">
|
||||||
<td>{{ task.date }}</td>
|
<td>{{ task.date || 'N/A' }}</td>
|
||||||
<td>{{ task.gameCount }}</td>
|
<td>{{ task.gameCount || 0 }}</td>
|
||||||
<td>{{ task.practiceDay }}</td>
|
<td>{{ task.practiceDay || 0 }}</td>
|
||||||
<td>{{ task.paramFlightCount }}</td>
|
<td>{{ task.paramFlightCount || 0 }}</td>
|
||||||
<td>{{ task.paramModel }}</td>
|
<td>{{ task.paramModel || 'N/A' }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
<div v-if="tasks.length === 0" class="no-data">
|
||||||
|
暂无数据
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
<label class="effect-checkbox">
|
<label class="effect-checkbox">
|
||||||
@ -57,23 +70,40 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import webrtc from '../webrtc';
|
import webrtc from '../webrtc';
|
||||||
|
import { DatePicker } from 'element-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'TaskModal',
|
name: 'TaskModal',
|
||||||
|
components: {
|
||||||
|
'el-date-picker': DatePicker
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isVisible: false,
|
isVisible: false,
|
||||||
year: new Date().getFullYear(),
|
year: new Date().getFullYear().toString(),
|
||||||
taskName: '',
|
taskName: '',
|
||||||
showEffect: false,
|
showEffect: false,
|
||||||
tasks: [
|
tasks: [],
|
||||||
{ date: '2025-11-10', gameCount: 1, practiceDay: 3, paramFlightCount: 65, paramModel: 'J-11,模型-7' },
|
originalTasks: [],
|
||||||
],
|
taskList: [
|
||||||
originalTasks: [
|
{
|
||||||
{ date: '2025-11-10', gameCount: 1, practiceDay: 3, paramFlightCount: 65, paramModel: 'J-11,模型-7' },
|
id: 1,
|
||||||
|
value: 'J-11,模型-7',
|
||||||
|
label: 'J-11,模型-7'
|
||||||
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
year(newVal) {
|
||||||
|
const yearNum = parseInt(newVal);
|
||||||
|
if (yearNum < 2000) {
|
||||||
|
this.year = String(2000);
|
||||||
|
} else if (yearNum > 2100) {
|
||||||
|
this.year = String(2100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
openModal() {
|
openModal() {
|
||||||
this.isVisible = true;
|
this.isVisible = true;
|
||||||
@ -100,55 +130,154 @@ export default {
|
|||||||
this.closeModal();
|
this.closeModal();
|
||||||
},
|
},
|
||||||
initData() {
|
initData() {
|
||||||
this.originalTasks = [
|
// const data = {
|
||||||
{ date: '2025-11-10', gameCount: 1, practiceDay: 3, paramFlightCount: 65, paramModel: 'J-11,模型-7' },
|
// command: "LoadScenario"
|
||||||
{ date: '2025-11-11', gameCount: 2, practiceDay: 4, paramFlightCount: 75, paramModel: 'J-11,模型-8' },
|
// }
|
||||||
{ date: '2025-11-12', gameCount: 1, practiceDay: 3, paramFlightCount: 65, paramModel: 'J-11,模型-9' },
|
// webrtc.webrtc.emitUIInter(data);
|
||||||
];
|
// this.originalTasks = [
|
||||||
this.tasks = [...this.originalTasks];
|
// { date: '2025-11-10', gameCount: 1, practiceDay: 3, paramFlightCount: 65, paramModel: 'J-11,模型-7' },
|
||||||
|
// { date: '2025-11-11', gameCount: 2, practiceDay: 4, paramFlightCount: 75, paramModel: 'J-11,模型-8' },
|
||||||
|
// { date: '2025-11-12', gameCount: 1, practiceDay: 3, paramFlightCount: 65, paramModel: 'J-11,模型-9' },
|
||||||
|
// ];
|
||||||
|
// this.tasks = [...this.originalTasks];
|
||||||
|
},
|
||||||
|
formatTimestamp(timestamp) {
|
||||||
|
try {
|
||||||
|
// 确保 timestamp 是数字
|
||||||
|
const ts = Number(timestamp) - 15607766499;
|
||||||
|
if (isNaN(ts)) {
|
||||||
|
console.warn('Invalid timestamp:', timestamp);
|
||||||
|
return 'Invalid Date';
|
||||||
|
}
|
||||||
|
|
||||||
|
const date = new Date(ts * 1000); // 转换为毫秒
|
||||||
|
if (date.toString() === 'Invalid Date') {
|
||||||
|
console.warn('Invalid date from timestamp:', ts);
|
||||||
|
return 'Invalid Date';
|
||||||
|
}
|
||||||
|
|
||||||
|
const year = date.getFullYear();
|
||||||
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||||
|
const day = String(date.getDate()).padStart(2, '0');
|
||||||
|
return `${year}-${month}-${day}`;
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error formatting timestamp:', error);
|
||||||
|
return 'Error';
|
||||||
|
}
|
||||||
},
|
},
|
||||||
handleSearch() {
|
handleSearch() {
|
||||||
this.tasks = this.originalTasks.filter(task => {
|
const currentTaskName = this.taskName;
|
||||||
const yearMatch = task.date.includes(this.year.toString());
|
|
||||||
const taskNameMatch = !this.taskName || task.paramModel.includes(this.taskName);
|
if (!currentTaskName) {
|
||||||
return yearMatch && taskNameMatch;
|
console.warn('Task name is empty');
|
||||||
});
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const data = {
|
webrtc.webrtc.emitUIInter({
|
||||||
command: "LoadScenario"
|
command: "SelectScenarioTask",
|
||||||
}
|
task: currentTaskName
|
||||||
webrtc.webrtc.emitUIInter(data);
|
});
|
||||||
|
|
||||||
|
// 添加调试日志
|
||||||
|
console.log('Sending request with task:', currentTaskName);
|
||||||
|
|
||||||
|
webrtc.webrtc.addResponseEventListener('SelectScenarioTask', (response) => {
|
||||||
|
console.log('SelectScenarioTask response1111:', response);
|
||||||
|
|
||||||
|
try {
|
||||||
|
const parsedResponse = JSON.parse(response);
|
||||||
|
console.log('Parsed response:', parsedResponse, Array.isArray(parsedResponse.data));
|
||||||
|
if (parsedResponse.response === 'SelectScenarioTaskResponse' && Array.isArray(parsedResponse.data)) {
|
||||||
|
console.log('Parsed response:', parsedResponse);
|
||||||
|
this.tasks = parsedResponse.data.map(item => {
|
||||||
|
const mappedItem = {
|
||||||
|
date: this.formatTimestamp(Number(item.timestamp)),
|
||||||
|
gameCount: Number(item.bc) || 0,
|
||||||
|
practiceDay: Number(item.yxr) || 0,
|
||||||
|
paramFlightCount: 0,
|
||||||
|
paramModel: ''
|
||||||
|
};
|
||||||
|
console.log('Mapped item:', mappedItem);
|
||||||
|
return mappedItem;
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log('Updated tasks array:', this.tasks);
|
||||||
|
|
||||||
|
// 强制更新视图
|
||||||
|
this.$forceUpdate();
|
||||||
|
} else {
|
||||||
|
console.warn('Invalid response format:', parsedResponse);
|
||||||
|
this.tasks = [];
|
||||||
|
}
|
||||||
|
} catch (parseError) {
|
||||||
|
console.error('Error parsing response:', parseError);
|
||||||
|
this.tasks = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
webrtc.webrtc.removeResponseEventListener('SelectScenarioTask');
|
||||||
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error in emitCommand:', error);
|
console.error('Error in emitUIInter:', error);
|
||||||
|
this.tasks = [];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleReset() {
|
handleReset() {
|
||||||
this.year = new Date().getFullYear();
|
this.year = String(new Date().getFullYear());
|
||||||
this.taskName = '';
|
this.taskName = '';
|
||||||
this.tasks = [...this.originalTasks];
|
this.tasks = [...this.originalTasks];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
webrtc.webrtc.emitCommand("ResetTask", {});
|
webrtc.webrtc.emitUIInter({
|
||||||
|
ResetTask: true
|
||||||
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error in emitCommand:', error);
|
console.error('Error in emitUIInter:', error);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleChangeYear() {
|
handleChangeYear() {
|
||||||
const data = {
|
|
||||||
command: "LoadScenarioTask",
|
|
||||||
year: this.year
|
|
||||||
};
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
webrtc.webrtc.emitUIInter(data);
|
webrtc.webrtc.emitUIInter({
|
||||||
|
command: "LoadScenarioTask",
|
||||||
|
year: this.year
|
||||||
|
});
|
||||||
|
webrtc.webrtc.addResponseEventListener('LoadScenarioTask', (response) => {
|
||||||
|
console.log('LoadScenarioTask response:222', response);
|
||||||
|
const parsedResponse = JSON.parse(response);
|
||||||
|
if (parsedResponse.response === 'LoadScenarioTaskResponse' && parsedResponse.data) {
|
||||||
|
if (Array.isArray(parsedResponse.data) && parsedResponse.data.length > 0) {
|
||||||
|
this.taskList = parsedResponse.data.map(task => ({
|
||||||
|
id: task,
|
||||||
|
value: task,
|
||||||
|
label: task
|
||||||
|
}));
|
||||||
|
|
||||||
|
if (this.taskList.length > 0) {
|
||||||
|
this.taskName = this.taskList[0].value;
|
||||||
|
} else {
|
||||||
|
this.taskName = '';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.warn('Response data is empty or not an array');
|
||||||
|
this.taskName = '';
|
||||||
|
this.taskList = [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
webrtc.webrtc.removeResponseEventListener('LoadScenarioTask');
|
||||||
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error in emitCommand:', error);
|
console.error('Error in emitUIInter:', error);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.initData();
|
this.initData();
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
// 初始化时立即获取数据
|
||||||
|
if (this.taskName) {
|
||||||
|
this.handleSearch();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@ -211,15 +340,37 @@ h2 {
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.search-item label {
|
.search-item label {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
white-space: nowrap;
|
margin-right: 4px;
|
||||||
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.year-input {
|
.year-picker {
|
||||||
width: 60px;
|
width: 100px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 覆盖 element-ui 默认样式 */
|
||||||
|
:deep(.el-input__inner) {
|
||||||
|
background-color: #1e2c42 !important;
|
||||||
|
border: 1px solid #3a4b66 !important;
|
||||||
|
color: white !important;
|
||||||
|
height: 24px !important;
|
||||||
|
line-height: 24px !important;
|
||||||
|
font-size: 12px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-input__icon) {
|
||||||
|
line-height: 24px !important;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-input__prefix),
|
||||||
|
:deep(.el-input__suffix) {
|
||||||
|
top: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.task-select {
|
.task-select {
|
||||||
@ -342,4 +493,16 @@ button:hover {
|
|||||||
.table-container::-webkit-scrollbar-track {
|
.table-container::-webkit-scrollbar-track {
|
||||||
background: #1e2c42;
|
background: #1e2c42;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.year-picker:focus {
|
||||||
|
outline: none;
|
||||||
|
border-color: #1890ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.no-data {
|
||||||
|
text-align: center;
|
||||||
|
padding: 20px;
|
||||||
|
color: #999;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,99 +1,154 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="top_bar">
|
<div id="top_bar">
|
||||||
<div id="top_bar_left">
|
<div id="top_bar_left">
|
||||||
<span>XXXXXXX管理平台</span>
|
<span class="time">{{ currentTime }}</span>
|
||||||
|
<span class="date">{{ currentDate }}<br>{{ currentDay }}</span>
|
||||||
|
</div>
|
||||||
|
<div id="top_bar_center">
|
||||||
|
<span>KZDK战术分析系统</span>
|
||||||
</div>
|
</div>
|
||||||
<div id="top_bar_right">
|
<div id="top_bar_right">
|
||||||
<span class="time">19:00</span>
|
|
||||||
<span class="date">2022年5月8日<br>星期天</span>
|
|
||||||
<span class="temp">10-15℃</span>
|
|
||||||
<span class="weather">晴转多云<br>微风≤2级</span>
|
|
||||||
<button @click="openTaskModal" class="open-modal-button">打开任务选择</button>
|
<button @click="openTaskModal" class="open-modal-button">打开任务选择</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name:'TopBar',
|
name: 'TopBar',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
currentTime: '',
|
||||||
|
currentDate: '',
|
||||||
|
currentDay: '',
|
||||||
|
timer: null
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
openTaskModal() {
|
openTaskModal() {
|
||||||
this.$emit('open-task-modal');
|
this.$emit('open-task-modal');
|
||||||
},
|
},
|
||||||
|
updateTime() {
|
||||||
|
const now = new Date();
|
||||||
|
|
||||||
|
// 更新时间 - 24小时制,添加秒
|
||||||
|
const hours = String(now.getHours()).padStart(2, '0');
|
||||||
|
const minutes = String(now.getMinutes()).padStart(2, '0');
|
||||||
|
const seconds = String(now.getSeconds()).padStart(2, '0');
|
||||||
|
this.currentTime = `${hours}:${minutes}:${seconds}`;
|
||||||
|
|
||||||
|
// 更新日期
|
||||||
|
const year = now.getFullYear();
|
||||||
|
const month = String(now.getMonth() + 1).padStart(2, '0');
|
||||||
|
const date = String(now.getDate()).padStart(2, '0');
|
||||||
|
this.currentDate = `${year}年${month}月${date}日`;
|
||||||
|
|
||||||
|
// 更新星期
|
||||||
|
const days = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
|
||||||
|
this.currentDay = days[now.getDay()];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
// 初始化时间
|
||||||
|
this.updateTime();
|
||||||
|
|
||||||
|
// 每秒更新一次
|
||||||
|
this.timer = setInterval(() => {
|
||||||
|
this.updateTime();
|
||||||
|
}, 1000); // 1000毫秒 = 1秒
|
||||||
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
if (this.timer) {
|
||||||
|
clearInterval(this.timer);
|
||||||
|
this.timer = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
#top_bar
|
#top_bar {
|
||||||
{
|
width: 100%;
|
||||||
width:100%;
|
|
||||||
color: white;
|
color: white;
|
||||||
pointer-events: auto;
|
pointer-events: auto;
|
||||||
|
background: linear-gradient(to right, #1a2942, #141e30);
|
||||||
|
height: 60px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 20px;
|
||||||
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
|
||||||
}
|
}
|
||||||
#top_bar_left
|
|
||||||
{
|
|
||||||
float:left;
|
|
||||||
width:723px;
|
|
||||||
height:100px;
|
|
||||||
background: url('../assets/images/top_bar_left_bg.png') no-repeat;
|
|
||||||
background-size: cover;
|
|
||||||
font-size:50px;
|
|
||||||
text-align:left;
|
|
||||||
font-weight: bold;
|
|
||||||
padding-left: 50px;
|
|
||||||
line-height:80px;
|
|
||||||
}
|
|
||||||
#top_bar_right
|
|
||||||
{
|
|
||||||
float:right;
|
|
||||||
width:914px;
|
|
||||||
height:70px;
|
|
||||||
background: url('../assets/images/top_bar_right_bg.png') no-repeat;
|
|
||||||
background-size: cover;
|
|
||||||
line-height: 70px;
|
|
||||||
|
|
||||||
|
#top_bar_left {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 15px;
|
||||||
|
min-width: 300px;
|
||||||
|
padding-left: 40px;
|
||||||
}
|
}
|
||||||
#top_bar_right .time
|
|
||||||
{
|
#top_bar_center {
|
||||||
float:left;
|
position: absolute;
|
||||||
margin-left: 100px;
|
left: 50%;
|
||||||
font-size: 35px;
|
transform: translateX(-50%);
|
||||||
font-weight: bold;
|
font-size: 24px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #4bb5ff;
|
||||||
}
|
}
|
||||||
#top_bar_right .date
|
|
||||||
{
|
#top_bar_right {
|
||||||
float:left;
|
display: flex;
|
||||||
margin-left: 10px;
|
align-items: center;
|
||||||
font-size: 25px;
|
min-width: 300px;
|
||||||
line-height: 30px;
|
justify-content: center;
|
||||||
padding-top:5px;
|
padding-right: 40px;
|
||||||
}
|
}
|
||||||
#top_bar_right .temp
|
|
||||||
{
|
#top_bar_right .time {
|
||||||
float:left;
|
font-size: 24px;
|
||||||
margin-left: 160px;
|
font-weight: normal;
|
||||||
font-size: 35px;
|
color: #4bb5ff;
|
||||||
font-weight: bold;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
#top_bar_right .weather
|
|
||||||
{
|
.time {
|
||||||
float:left;
|
font-size: 24px;
|
||||||
margin-left: 10px;
|
color: #4bb5ff;
|
||||||
font-size: 25px;
|
font-family: 'Arial', sans-serif;
|
||||||
line-height: 30px;
|
letter-spacing: 1px;
|
||||||
padding-top:5px;
|
|
||||||
}
|
}
|
||||||
.open-modal-button {
|
|
||||||
float: right;
|
.date {
|
||||||
margin-right: 20px;
|
|
||||||
padding: 10px 20px;
|
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
background-color: #007bff;
|
color: #4bb5ff;
|
||||||
|
text-align: left;
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.open-modal-button {
|
||||||
|
background-color: #0066ff;
|
||||||
color: white;
|
color: white;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 5px;
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
padding: 6px 20px;
|
||||||
|
height: 36px;
|
||||||
|
font-size: 16px;
|
||||||
|
border-radius: 4px;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-right: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.open-modal-button:hover {
|
.open-modal-button:hover {
|
||||||
background-color: #0056b3;
|
background-color: #0052cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.open-modal-button:active {
|
||||||
|
background-color: #004080;
|
||||||
|
transform: scale(0.98);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
@ -3,6 +3,10 @@ import Vue from 'vue'
|
|||||||
import App from './App.vue'
|
import App from './App.vue'
|
||||||
import webrtc from './webrtc'
|
import webrtc from './webrtc'
|
||||||
import * as echarts from 'echarts'
|
import * as echarts from 'echarts'
|
||||||
|
import 'element-ui/lib/theme-chalk/index.css'
|
||||||
|
import { DatePicker } from 'element-ui'
|
||||||
|
|
||||||
|
Vue.use(DatePicker)
|
||||||
Vue.prototype.webrtc = webrtc.webrtc
|
Vue.prototype.webrtc = webrtc.webrtc
|
||||||
Vue.prototype.echarts = echarts
|
Vue.prototype.echarts = echarts
|
||||||
Vue.config.productionTip = false
|
Vue.config.productionTip = false
|
||||||
|
@ -485,7 +485,7 @@ function addResponseEventListener(name, listener) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function removeResponseEventListener(name) {
|
function removeResponseEventListener(name) {
|
||||||
responseEventListeners.remove(name);
|
responseEventListeners.delete(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Must be kept in sync with PixelStreamingProtocol::EToPlayerMsg C++ enum.
|
// Must be kept in sync with PixelStreamingProtocol::EToPlayerMsg C++ enum.
|
||||||
@ -1865,7 +1865,7 @@ function connect() {
|
|||||||
}
|
}
|
||||||
// ws = new WebSocket("ws://localhost/");
|
// ws = new WebSocket("ws://localhost/");
|
||||||
// ws = new WebSocket(window.location.href.replace('http://', 'ws://').replace('https://', 'wss://'));
|
// ws = new WebSocket(window.location.href.replace('http://', 'ws://').replace('https://', 'wss://'));
|
||||||
let connectionUrl = window.location.href.replace('http://', 'ws://').replace('https://', 'wss://').replace(/:\d+/, ':8000');
|
let connectionUrl = window.location.href.replace('http://', 'ws://').replace('https://', 'wss://').replace(/:\d+/, '');
|
||||||
console.log(`Creating a websocket connection to: ${connectionUrl}`);
|
console.log(`Creating a websocket connection to: ${connectionUrl}`);
|
||||||
ws = new WebSocket(connectionUrl);
|
ws = new WebSocket(connectionUrl);
|
||||||
ws.attemptStreamReconnection = true;
|
ws.attemptStreamReconnection = true;
|
||||||
@ -1942,7 +1942,9 @@ let webrtc =
|
|||||||
playVideo: playVideoStream,
|
playVideo: playVideoStream,
|
||||||
resizePlayer: resizePlayerStyle,
|
resizePlayer: resizePlayerStyle,
|
||||||
emitUIInter: emitUIInteraction,
|
emitUIInter: emitUIInteraction,
|
||||||
emitCommand: emitCommand
|
emitCommand: emitCommand,
|
||||||
|
addResponseEventListener: addResponseEventListener,
|
||||||
|
removeResponseEventListener: removeResponseEventListener
|
||||||
}
|
}
|
||||||
|
|
||||||
export default
|
export default
|
||||||
|
Loading…
Reference in New Issue
Block a user