From 93db9389a278fbb126931bd2a97edabd58818628 Mon Sep 17 00:00:00 2001 From: renna <576157508@qq.com> Date: Thu, 5 Jun 2025 18:21:18 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 371 +++++++++++++ package.json | 1 + src/api/index.js | 71 ++- src/assets/img/alert3.png | Bin 0 -> 43494 bytes src/assets/img/delete.png | Bin 0 -> 1333 bytes src/assets/img/empty.png | Bin 0 -> 2976 bytes src/assets/img/empty_list.png | Bin 0 -> 1958 bytes src/assets/img/report.png | Bin 6104 -> 5825 bytes src/components/AlarmStatistics.vue | 253 +++++++-- src/components/LatestAlarms.vue | 532 +++++++++++++++---- src/components/RobotStatusList.vue | 304 +++++++++-- src/components/common/CustomWebRTCPlayer.vue | 298 +++++++++++ src/components/common/EmptyState.vue | 57 ++ src/components/common/VideoPlayer.vue | 370 +++++++++++++ src/components/dialog/ConfirmDialog.vue | 47 +- src/components/dialog/RobotListModal.vue | 124 ++++- src/utils/request.js | 1 + src/views/Home copy.vue | 427 +++++++++++++++ src/views/Home.vue | 187 ++++++- src/views/RobotDetail.vue | 17 +- 20 files changed, 2796 insertions(+), 264 deletions(-) create mode 100644 src/assets/img/alert3.png create mode 100644 src/assets/img/delete.png create mode 100644 src/assets/img/empty.png create mode 100644 src/assets/img/empty_list.png create mode 100644 src/components/common/CustomWebRTCPlayer.vue create mode 100644 src/components/common/EmptyState.vue create mode 100644 src/components/common/VideoPlayer.vue create mode 100644 src/views/Home copy.vue diff --git a/package-lock.json b/package-lock.json index 85bba94..04e2e0d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "axios": "^1.9.0", "echarts": "^5.6.0", + "video.js": "^8.23.3", "vue": "^3.3.4", "vue-router": "^4.5.1", "webrtc-adapter": "^9.0.3" @@ -32,6 +33,14 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/runtime": { + "version": "7.27.6", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", @@ -685,6 +694,51 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/@videojs/http-streaming": { + "version": "3.17.0", + "resolved": "https://registry.npmmirror.com/@videojs/http-streaming/-/http-streaming-3.17.0.tgz", + "integrity": "sha512-Ch1P3tvvIEezeZXyK11UfWgp4cWKX4vIhZ30baN/lRinqdbakZ5hiAI3pGjRy3d+q/Epyc8Csz5xMdKNNGYpcw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^4.1.1", + "aes-decrypter": "^4.0.2", + "global": "^4.4.0", + "m3u8-parser": "^7.2.0", + "mpd-parser": "^1.3.1", + "mux.js": "7.1.0", + "video.js": "^7 || ^8" + }, + "engines": { + "node": ">=8", + "npm": ">=5" + }, + "peerDependencies": { + "video.js": "^8.19.0" + } + }, + "node_modules/@videojs/vhs-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/@videojs/vhs-utils/-/vhs-utils-4.1.1.tgz", + "integrity": "sha512-5iLX6sR2ownbv4Mtejw6Ax+naosGvoT9kY+gcuHzANyUZZ+4NpeNdKMUhb6ag0acYej1Y7cmr/F2+4PrggMiVA==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "global": "^4.4.0" + }, + "engines": { + "node": ">=8", + "npm": ">=5" + } + }, + "node_modules/@videojs/xhr": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/@videojs/xhr/-/xhr-2.7.0.tgz", + "integrity": "sha512-giab+EVRanChIupZK7gXjHy90y3nncA2phIOyG3Ne5fvpiMJzvqYwiTOnEVW2S4CoYcuKJkomat7bMXA/UoUZQ==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "global": "~4.4.0", + "is-function": "^1.0.1" + } + }, "node_modules/@vitejs/plugin-vue": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz", @@ -805,6 +859,25 @@ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/aes-decrypter": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/aes-decrypter/-/aes-decrypter-4.0.2.tgz", + "integrity": "sha512-lc+/9s6iJvuaRe5qDlMTpCFjnwpkeOXp8qP3oiZ5jsj1MRg+SBVUmmICrhxHvc8OELSmc+fEyyxAuppY6hrWzw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^4.1.1", + "global": "^4.4.0", + "pkcs7": "^1.0.4" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", @@ -897,6 +970,11 @@ "node": ">=0.10" } }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, "node_modules/dotenv": { "version": "16.5.0", "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-16.5.0.tgz", @@ -1117,6 +1195,15 @@ "node": ">= 0.4" } }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", @@ -1180,6 +1267,11 @@ "node": ">=0.10.0" } }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", @@ -1203,6 +1295,16 @@ "node": ">=0.12.0" } }, + "node_modules/m3u8-parser": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/m3u8-parser/-/m3u8-parser-7.2.0.tgz", + "integrity": "sha512-CRatFqpjVtMiMaKXxNvuI3I++vUumIXVVT/JpCpdU/FynV/ceVw1qpPyyBNindL+JlPMSesx+WX1QJaZEJSaMQ==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^4.1.1", + "global": "^4.4.0" + } + }, "node_modules/magic-string": { "version": "0.30.5", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", @@ -1255,6 +1357,44 @@ "node": ">= 0.6" } }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/mpd-parser": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/mpd-parser/-/mpd-parser-1.3.1.tgz", + "integrity": "sha512-1FuyEWI5k2HcmhS1HkKnUAQV7yFPfXPht2DnRRGtoiiAAW+ESTbtEXIDpRkwdU+XyrQuwrIym7UkoPKsZ0SyFw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^4.0.0", + "@xmldom/xmldom": "^0.8.3", + "global": "^4.4.0" + }, + "bin": { + "mpd-to-m3u8-json": "bin/parse.js" + } + }, + "node_modules/mux.js": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/mux.js/-/mux.js-7.1.0.tgz", + "integrity": "sha512-NTxawK/BBELJrYsZThEulyUMDVlLizKdxyAsMuzoCD1eFj97BVaA8D/CvKsKu6FOLYkFojN5CbM9h++ZTZtknA==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "global": "^4.4.0" + }, + "bin": { + "muxjs-transmux": "bin/transmux.js" + }, + "engines": { + "node": ">=8", + "npm": ">=5" + } + }, "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", @@ -1297,6 +1437,17 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pkcs7": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/pkcs7/-/pkcs7-1.0.4.tgz", + "integrity": "sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==", + "dependencies": { + "@babel/runtime": "^7.5.5" + }, + "bin": { + "pkcs7": "bin/cli.js" + } + }, "node_modules/postcss": { "version": "8.4.31", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", @@ -1324,6 +1475,14 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -1409,6 +1568,53 @@ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" }, + "node_modules/video.js": { + "version": "8.23.3", + "resolved": "https://registry.npmmirror.com/video.js/-/video.js-8.23.3.tgz", + "integrity": "sha512-Toe0VLlDZcUhiaWfcePS1OEdT3ATfktm0hk/PELfD7zUoPDHeT+cJf/wZmCy5M5eGVwtGUg25RWPCj1L/1XufA==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@videojs/http-streaming": "^3.17.0", + "@videojs/vhs-utils": "^4.1.1", + "@videojs/xhr": "2.7.0", + "aes-decrypter": "^4.0.2", + "global": "4.4.0", + "m3u8-parser": "^7.2.0", + "mpd-parser": "^1.3.1", + "mux.js": "^7.0.1", + "videojs-contrib-quality-levels": "4.1.0", + "videojs-font": "4.2.0", + "videojs-vtt.js": "0.15.5" + } + }, + "node_modules/videojs-contrib-quality-levels": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/videojs-contrib-quality-levels/-/videojs-contrib-quality-levels-4.1.0.tgz", + "integrity": "sha512-TfrXJJg1Bv4t6TOCMEVMwF/CoS8iENYsWNKip8zfhB5kTcegiFYezEA0eHAJPU64ZC8NQbxQgOwAsYU8VXbOWA==", + "dependencies": { + "global": "^4.4.0" + }, + "engines": { + "node": ">=16", + "npm": ">=8" + }, + "peerDependencies": { + "video.js": "^8" + } + }, + "node_modules/videojs-font": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/videojs-font/-/videojs-font-4.2.0.tgz", + "integrity": "sha512-YPq+wiKoGy2/M7ccjmlvwi58z2xsykkkfNMyIg4xb7EZQQNwB71hcSsB3o75CqQV7/y5lXkXhI/rsGAS7jfEmQ==" + }, + "node_modules/videojs-vtt.js": { + "version": "0.15.5", + "resolved": "https://registry.npmmirror.com/videojs-vtt.js/-/videojs-vtt.js-0.15.5.tgz", + "integrity": "sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==", + "dependencies": { + "global": "^4.3.1" + } + }, "node_modules/vite": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", @@ -1517,6 +1723,11 @@ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==" }, + "@babel/runtime": { + "version": "7.27.6", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==" + }, "@esbuild/android-arm": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", @@ -1793,6 +2004,40 @@ "dev": true, "optional": true }, + "@videojs/http-streaming": { + "version": "3.17.0", + "resolved": "https://registry.npmmirror.com/@videojs/http-streaming/-/http-streaming-3.17.0.tgz", + "integrity": "sha512-Ch1P3tvvIEezeZXyK11UfWgp4cWKX4vIhZ30baN/lRinqdbakZ5hiAI3pGjRy3d+q/Epyc8Csz5xMdKNNGYpcw==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^4.1.1", + "aes-decrypter": "^4.0.2", + "global": "^4.4.0", + "m3u8-parser": "^7.2.0", + "mpd-parser": "^1.3.1", + "mux.js": "7.1.0", + "video.js": "^7 || ^8" + } + }, + "@videojs/vhs-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/@videojs/vhs-utils/-/vhs-utils-4.1.1.tgz", + "integrity": "sha512-5iLX6sR2ownbv4Mtejw6Ax+naosGvoT9kY+gcuHzANyUZZ+4NpeNdKMUhb6ag0acYej1Y7cmr/F2+4PrggMiVA==", + "requires": { + "@babel/runtime": "^7.12.5", + "global": "^4.4.0" + } + }, + "@videojs/xhr": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/@videojs/xhr/-/xhr-2.7.0.tgz", + "integrity": "sha512-giab+EVRanChIupZK7gXjHy90y3nncA2phIOyG3Ne5fvpiMJzvqYwiTOnEVW2S4CoYcuKJkomat7bMXA/UoUZQ==", + "requires": { + "@babel/runtime": "^7.5.5", + "global": "~4.4.0", + "is-function": "^1.0.1" + } + }, "@vitejs/plugin-vue": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz", @@ -1904,6 +2149,22 @@ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" }, + "@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==" + }, + "aes-decrypter": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/aes-decrypter/-/aes-decrypter-4.0.2.tgz", + "integrity": "sha512-lc+/9s6iJvuaRe5qDlMTpCFjnwpkeOXp8qP3oiZ5jsj1MRg+SBVUmmICrhxHvc8OELSmc+fEyyxAuppY6hrWzw==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^4.1.1", + "global": "^4.4.0", + "pkcs7": "^1.0.4" + } + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", @@ -1972,6 +2233,11 @@ "dev": true, "optional": true }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, "dotenv": { "version": "16.5.0", "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-16.5.0.tgz", @@ -2125,6 +2391,15 @@ "es-object-atoms": "^1.0.0" } }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, "gopd": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", @@ -2164,6 +2439,11 @@ "dev": true, "optional": true }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", @@ -2181,6 +2461,16 @@ "dev": true, "optional": true }, + "m3u8-parser": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/m3u8-parser/-/m3u8-parser-7.2.0.tgz", + "integrity": "sha512-CRatFqpjVtMiMaKXxNvuI3I++vUumIXVVT/JpCpdU/FynV/ceVw1qpPyyBNindL+JlPMSesx+WX1QJaZEJSaMQ==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^4.1.1", + "global": "^4.4.0" + } + }, "magic-string": { "version": "0.30.5", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", @@ -2218,6 +2508,34 @@ "mime-db": "1.52.0" } }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "mpd-parser": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/mpd-parser/-/mpd-parser-1.3.1.tgz", + "integrity": "sha512-1FuyEWI5k2HcmhS1HkKnUAQV7yFPfXPht2DnRRGtoiiAAW+ESTbtEXIDpRkwdU+XyrQuwrIym7UkoPKsZ0SyFw==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/vhs-utils": "^4.0.0", + "@xmldom/xmldom": "^0.8.3", + "global": "^4.4.0" + } + }, + "mux.js": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/mux.js/-/mux.js-7.1.0.tgz", + "integrity": "sha512-NTxawK/BBELJrYsZThEulyUMDVlLizKdxyAsMuzoCD1eFj97BVaA8D/CvKsKu6FOLYkFojN5CbM9h++ZTZtknA==", + "requires": { + "@babel/runtime": "^7.11.2", + "global": "^4.4.0" + } + }, "nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", @@ -2242,6 +2560,14 @@ "dev": true, "optional": true }, + "pkcs7": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/pkcs7/-/pkcs7-1.0.4.tgz", + "integrity": "sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==", + "requires": { + "@babel/runtime": "^7.5.5" + } + }, "postcss": { "version": "8.4.31", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", @@ -2252,6 +2578,11 @@ "source-map-js": "^1.0.2" } }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + }, "proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -2309,6 +2640,46 @@ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" }, + "video.js": { + "version": "8.23.3", + "resolved": "https://registry.npmmirror.com/video.js/-/video.js-8.23.3.tgz", + "integrity": "sha512-Toe0VLlDZcUhiaWfcePS1OEdT3ATfktm0hk/PELfD7zUoPDHeT+cJf/wZmCy5M5eGVwtGUg25RWPCj1L/1XufA==", + "requires": { + "@babel/runtime": "^7.12.5", + "@videojs/http-streaming": "^3.17.0", + "@videojs/vhs-utils": "^4.1.1", + "@videojs/xhr": "2.7.0", + "aes-decrypter": "^4.0.2", + "global": "4.4.0", + "m3u8-parser": "^7.2.0", + "mpd-parser": "^1.3.1", + "mux.js": "^7.0.1", + "videojs-contrib-quality-levels": "4.1.0", + "videojs-font": "4.2.0", + "videojs-vtt.js": "0.15.5" + } + }, + "videojs-contrib-quality-levels": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/videojs-contrib-quality-levels/-/videojs-contrib-quality-levels-4.1.0.tgz", + "integrity": "sha512-TfrXJJg1Bv4t6TOCMEVMwF/CoS8iENYsWNKip8zfhB5kTcegiFYezEA0eHAJPU64ZC8NQbxQgOwAsYU8VXbOWA==", + "requires": { + "global": "^4.4.0" + } + }, + "videojs-font": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/videojs-font/-/videojs-font-4.2.0.tgz", + "integrity": "sha512-YPq+wiKoGy2/M7ccjmlvwi58z2xsykkkfNMyIg4xb7EZQQNwB71hcSsB3o75CqQV7/y5lXkXhI/rsGAS7jfEmQ==" + }, + "videojs-vtt.js": { + "version": "0.15.5", + "resolved": "https://registry.npmmirror.com/videojs-vtt.js/-/videojs-vtt.js-0.15.5.tgz", + "integrity": "sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==", + "requires": { + "global": "^4.3.1" + } + }, "vite": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", diff --git a/package.json b/package.json index c51a22b..fdd32da 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "dependencies": { "axios": "^1.9.0", "echarts": "^5.6.0", + "video.js": "^8.23.3", "vue": "^3.3.4", "vue-router": "^4.5.1", "webrtc-adapter": "^9.0.3" diff --git a/src/api/index.js b/src/api/index.js index 088b8c4..f649817 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,16 +1,67 @@ -import request, { service } from '@/utils/request' +import { service } from '../utils/request' // 机器人相关接口 -export const robotApi = { - // 获取机器人统计信息 - getRobotStatistics: () => { +export const homeApi = { + // 获取机器人列表 + getRobotList: (data) => { return service({ - url: '/api/v1/events/robotST', - method: 'get' + url: '/api/v1/event/getRobotList', + method: 'post', + data + }) + }, + // 告警事件统计 + getAlarmStatistics: (day) => { + // 根据不同时间段参数构建不同的URL + return service({ + url: `/api/v1/events/stMessages/${day}`, + method: 'get', + }) + }, + // 获取告警信息数量信息 返回已处理未处理的数量 + getAlertCount: () => { + return service({ + url: '/api/v1/events/alertCount', + method: 'get', + }) + }, + // 获取未处理告警消息列表 + getNoSolve: (params) => { + return service({ + url: '/api/v1/events/messagesUnhandled', + method: 'get', + params + }) + }, + // 获取已处理告警消息列表 + getSolveList:() =>{ + return service({ + url: '/api/v1/events/messagesHandled', + method: 'get', + + }) + }, + // 处理单个告警事件 + getAlarmEvent:(data)=>{ + return service({ + url: '/api/v1/events/handleOcrAlert', + method: 'post', + data + }) + }, + // 一键处理所有事件 + handleAllEvent:()=>{ + return service({ + url: '/api/v1/events/handleOcrAlerts', + method: 'get', + }) + }, + // 获取厂区级机器人实时监控 + getFactoryRobotRealTime:()=>{ + console.log('调用getFactoryRobotRealTime接口'); + return service({ + url: '/api/v1/events/getMonitor', + method: 'get', }) } - // 机器人状态列表 - - // - } \ No newline at end of file diff --git a/src/assets/img/alert3.png b/src/assets/img/alert3.png new file mode 100644 index 0000000000000000000000000000000000000000..b5818b4ae01eddb117ca57ad4d7afba113486311 GIT binary patch literal 43494 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 P)A+_UBfSzG+o1mga0Opi literal 0 HcmV?d00001 diff --git a/src/assets/img/delete.png b/src/assets/img/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..da379d1dba2ca530fc7c19862bd13643e19dd3cc GIT binary patch literal 1333 zcmV-51BLo{ejN4Jik zCf*X7^~$6Id-j~M4cFtj@0qayf0A{XxtG}IpL5R4od+;y&YU@45%7RqUoWFnT7{Hl z`Yfrd`gXBAymrv-~jk3&2Rpjd3V9HfqR7Y7xl& zx9Lm&R$o3_>}C}rl?W>SrM!pPWtV>AA4o~!oS-~lwgm`M7f+wol0KYB1eF6g1imd2 z3lS@V>IFCn+ROpRj{{e(02eL{%J1F*ckTcmKEN_-Bt$drp?DECHthETckcoxPmb3e z9Rb&`+ZBSl&u(`mZX6Mr7*!syEx`HnlL9d89hWY_D(tC@r& z&YXb*s^ra;s0YG5q1W4WG8Tw(cMb_RL^h^T1my)%Zo>tyUxypZ_uNp4@&>afuot+3 z1!y!TJ>tOw;N?p=B-AEj??4Ih(95v+?AgKf@X%!_1Tl7*CB1^&rt0mz;O$#@ManJk zOqIrDI0&(Y?-e1oP1UBHP=zmeY``CXESVDIm9$Mfmh-Iatgz<(?Z;5;WxrPw3&$ z#!J?iM+VFwNV2|M-9zXskSe_jbe0hQ)F9ZIF&;esd;qVh#PYEd^s zMWEc!Qu_pL6Sd&-{ynS{;{{CgTV%0VxBhzl=FMPdiiw90VVz!YE$)#>5mZmHu<$Ev zbL-YXj1lYsH*dPwu2T~)UbN#LO15$9;zi!KoO)|qETa`D`^Iw^G$;%b<+VhUD)h%V zH`HJoUWs-iK#Tr%J?Z1A_BPWx9AXxdo;N9~fK7BLHLP z_|N9%7X6rpN3UR)ujMs+9PzAHgT!DsTfE-@wO@xAPwP3F7KVV42qYZh*ze z?;U(zlIJ(}OjBbvaDF&+cuZiG451$%<;?rVYt9N(0n<&00000NkvXXu0mjfCmnhE literal 0 HcmV?d00001 diff --git a/src/assets/img/empty.png b/src/assets/img/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..a3659206635e82a9ae64cd2c4eedacb461f11f0a GIT binary patch literal 2976 zcmV;R3t#k!P)xMN%YF*N1`Du_4QldDC2ncl>5K*8~jCd%KkZN8c5P}p12}L}(yr8^* zsKg85q2vK1`Vz_uQjroPA&?Rr8zCYUwaU7st{oEW#P$FF^qjjh+u7OqySuaMUS&Sz zWOnDyoI7{EbIzPQ_pSi~0&HkB8pl!c@BkwX0|X@FSu8%EN~P8z;DZMevLEHAC?65( z9!B{U$~Zhg7$i^m9LnF&OYRDF=TKI$ZiZJNK_wE13G8za5`sY@<#Ck%NOjMk{7kC5 zigJp7!O5OLxyqy@E5*9g?Bm`CeXWWO7N+vT_i>azN^K$ngzv>hJ8lW}FR{<3Ss2Vy z5&;RoKrQr&1^!*>`#zM4@Vz7*FEKqULOb%l{Y-ZvJY|qbSr-?1#5*WsQk#FGOz<#; z6FrB;oN)XX!siMr$7xN%J`^6`f&h2mq@6=KAl3a&&b;vZ6p2)KnTIQd-p5$^9SDdA zoU~_%7^$vI>k7)4rSD5JQHnM_hpyS#+0x9+%+&Sk*UQjH3{v>I0?iC*Kd->BGmXWs z!2^8Ukk;#U^3oSj*VSv+uJtX&PQd_y-Ag=&^5Zy@$U;{I`}_nvgS-RDILpp6iA9kg z!}C?J_`~@4_z%D%28t8{g&7+mY@rv|5F%5|xM;$jh91EPxoW#v#p6#OIdWtgJRu7M z21gGe63S8?S#XJeA+KZES=ZRv*(s*e>5{EoCX-nPj~F;o9PyN6o1REHdi3brjT<-0 zmS&YhhYrnyM+{u}ashh5EHu5vgx{d2d<*&j3~R;B&CQ}*f9%+?3V1-`NTDqhEL_3` zE&LyYK7cYW3|Xh-`t9xQOFoE6A}M8PZc4hKgv59aEi#B8JV%??RIAlWFXSXU%z|I$-m_#r@(w?W51?Go!SKR>@aKb$|F&14~y%|bSk3}lCf&?>Vqgx{lb zD2Me}hr-*Wu^cWGzA-sD`4A)oi6G_KZ$9_+Y&7vhkz`p(lb=H(cs)r@Xp?2+I65(j-1IHZ}(5&!49ZYHu^^>O?M$p(@*cNw|0Q*9#XeoVa=OW&;VSK?0DN z`xHj*Er^d5BykiHghVX#4BbAzC?@IkB0`c#X>CGAH;N9T>YD^4X_q*%c3dN1ad9y! zO(+(NFfuaI);B3g1SxD2vdlh5bv)xT^bx<7Awfurr?go*-Lu#rWoRWLmc0))@JI?N zZEFINqDza(L+F^|IBgtWf&?Hbq?E-kL`ux?MIdiW1Sv_$zFOgnJb(yMWLRxbgt#&! z1OtEb$nG&_!4F20u&yM*Q+%egiAar;K*}lI0SaIER1xmoy9f90->1j0V8H=M0KAj3 zwzhT({Gz0)Br+Bj7GP;&9bHt~gyNhB{=US4hyK_xw1%m~j|*4Ni{p)3)b zlU_){NjZQMRYVIdd(Li@8;P{<)q2Rq2ob%7>d2eo=!^q2!ikNIjS}<;UPwXfTfvDq zh!aB>?2{CwRm+|slEa1GVu_>E6}V=;fch_^Vca4kgg(IA9X)&h=^zqRfgXW6a#+xV zsj}u=5eZ%5%k0--OQUO!@Yrn?(%uY#rM1n=`sD>j#A_G_lMA+P7y&U|D(^S=eFEYB!qP= zQMOqq6kY+3@J0$=MA@YsBjKYcA7Z8IXK(Z@{Ry287f-3xjF02VQ>LZ5-Au;VIH@3F z-bT4YDK}zLR)p=I$6_E!De(^t^&c1@B50DyO7}>Ib+bpm=Dn>tfCi9Z*3I>|yoHyz zzL8$t4GaAW+2yU44>N&$K7UB%eJnb7g%?uj1!wt&jS)c?|8Z7w@X3<*-Q+s{#!Cu> z$z>aoS^0c8VNqZ7q6T?ME|;sbbEO>5C!U8si;p%_sB<@{QKZasbad2Pg5!l0jJ2=u zUrk~8Hcr@+&|CnC7`jlGS9{tfU-7+#;o;$GOdTp+s$*K>@SLyWLcb5MP291dB;gW1 zdM<#+tkc^rF%EVZi%&pvo#;4hITszL^t>*#bLrz_{G1d~pUFT9=rv!XdnNSP%jlVF ztbPOK4KhmbFrc1*WRSN}hK#Q1H4uAR#IiG=T>d=ljm=nik7ypHlq zlvOYrqi$>>sr*`1VU*^A{&pEfjDI0Hn-CLSk%A|rbe6oMz^bayZh<;WY*QoDo2-`p zp33i`85+l!@OOtE1vM6hl1O-+$vxrRvPamWhU{&swNkt$`su|HoU3^x=1qu!*x`%) zNsf|2Ps5?k^_aM}$l3&b{jfetXm!ffZp;|o&liuC@{1I(1$da(0N<6=?P$%B(_bm59}ElKbdaA zy0Kgxfi|l&o!d4pQyA;kGi*k52Z^~OSDGfA|KYPLnAZ&50CX1F%|flKQ+cLN7dW;R zkMlM*FSi+qH_iUt|3d6WSFd0cP`ttsp?eY(CLq!rXm_LDdZ`p z$D}G({~!?O{HD+qx1Z1c93qjliMiP#g@vxVMY%3c%57cO09Uw#C7lPSV(M|#pK@rc zN*JsOMpmk*f_dSy4Ir-f*pdJjYt<1E=Njb6*7f0Qoonc{jax~S9KPZ_sOrV)Z2jY= zzplq^a50KH_(MlRLF-CZI+<)00A>r&#cNRXNyX494%n0|=yZt3MP0I9*U%;#iK;Jv z*@$!@H6S1$ARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hARr(hAi{h5 Wg%dOhkE^c$0000uXT6O(6a05|Y} z7{KDISvxOD@|SD|qwh|jMJ!jq$;&=Oy}Mv+A1thc6Hdhm-g$!8oIsYnfzda|uq2un zkVNbC9^=Dr=2lh*W`<941nIx8Vf5`0G)OZ7Qq_z;AL7?-*C!fFf)+i6)E=Q_CJ>mg z0yZn$JP97pv5N196f&HEPk$bQjdqqG+&l>$W7vN590E|kfRmRob_~x@xIVNBa|~Jf zq;6}hSHQeieO1otup_Yc7_Y@PEK2ZoHdnp|HjDAiI+m}OwCn^$9M##;)F~spFCo`yn zyxG{m&&3W)J(jFR#OeZ05BBlzWB-W(gj>Yq7;;;M$mVw?HON&@ez{!ivytfs>9xr>)gf}4K z+Q;ZO@QIk;>oF9hxPZDFLMQ+9L1R_c$K(}yL}z%={F5UqhSV{PU={ljoclkX@ewhcVKaH~(m{l&S(}-V_XNQ`;v8 zH`btc^X|eDXN4H<=dN=a@W=v2(S5dzVrgwb6B$a+-V3FCh(9uSh3h;58pAu^G$Wu5 zXvA~1MVJzjrF>Ilp$`JGfR-Km&00}?bpc%(r^UQ z%P(RZ#1q;_LBLE9P&u)us)$XB7e!w}38X5VuqC!Y`&d@QrY+9`Zxn(XCFA-I9OfO$udFkjY(qNqirjM-A!JWfDyMBxi2a2Kz^kG~dgGgKma+t>QV zb6yu4wi7#3UohdAElbb5!N!H?ERiEnZ=3Sf*RZidhb&;0{w`cvPC%lZh~b7RQI8MZ zdj#|+m8OS(@=2G|+m)tqOb@878!OHXCtjZOe#ex~@W;L_U9QN9WJ0u7pTS><&JqKA z7((8|TK?J3Q3z#W?blU-k)hsa=Fv!Y{+yb7gkt(eoQV{ z0!`4vT(Pw=Q<`XV-Z~5P&m$SYDv?hV9SCQr7bxoEfi8p3w1rm4C$x=x*dn=#)Nwrr zC3*qf6xnQXHEmOpUBYDwy%XdM%{D6*ksfXBxi7f1M7R2A7-}hLt>kG|Sv>0b3qFf( zhUy|Hm~i&j`&LdUpXY;kQmVGpn6tcqtAcu=P5Q9RGFaU(rVNvx@Ygo6Tbr@0X(0KE zs%MH2*|_W);s7hwsk+>J_0fuT>SXGi)}gzHG2Vm5OB$bhLZzr*!0F*0bK?mF+`GV0 zbd!r3Ru_a2@U3S}T2lMABxQC7p(VJ(tr1itfPe=STZ?rkQ?L@PAm4o`fg)V4Qg<8p z^r0A)s_j)m2&fH`&f&(ECup4~=;SA#%vFhcx3DY*`f)5JwMuSmQSt=`OH7D za<%vsoFM&tMyRDk_k6kgclo|3G)T5t%eOtbN|C(_fM91%WmO6KI-65AsRfmm&8EhaYx^%|Nm;5ulEaj*gCw sj{gY;J`Abcduy$^^8bc8uVdBu56fIu>{82&pa1{>07*qoM6N<$g6zGcG5`Po literal 0 HcmV?d00001 diff --git a/src/assets/img/report.png b/src/assets/img/report.png index 0e68725783964b6f4d6a0e424539658a9ffbba32..c05619cc72aecf180f8daa2e6f4dc9576ba9ad4d 100644 GIT binary patch literal 5825 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 LNkvXXu0mjf{A*0M literal 6104 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 {{ period.label }} +
@@ -209,22 +390,25 @@ onUnmounted(() => { .alarm-statistics { width: 100%; height: 100%; - /* background: rgba(0, 21, 31, 0.3); - border-radius: 4px; */ - /* padding: 10px; */ + position: relative; } .chart-container { width: 100%; height: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 1; } .time-filter { display: flex; justify-content: flex-end; gap: 5px; - /* margin-bottom: 15px; */ padding: 0 10px; + position: relative; + z-index: 3; } .filter-item { @@ -236,11 +420,10 @@ onUnmounted(() => { } .filter-item.active { - /* background: rgba(0, 145, 169, 0.3); - */ - padding: 2px 10px; + padding: 2px 10px; background: url("../assets/img/alarm_tri.png") no-repeat; background-size: 100% 100%; color: #00ffff; } + diff --git a/src/components/LatestAlarms.vue b/src/components/LatestAlarms.vue index 282e255..6ed1068 100644 --- a/src/components/LatestAlarms.vue +++ b/src/components/LatestAlarms.vue @@ -16,56 +16,72 @@
状态
- -
-
-
-
避障警报
-
-
-
{{ item.event }}
-
{{ item.robotId }}
-
{{ item.time }}
-
- - 已处理 -
-
+ +
+
数据加载中...
- -
-
-
-
高温感知报警
-
-
-
{{ item.event }}
-
{{ item.robotId }}
-
{{ item.time }}
-
- - 已处理 -
-
-
+ + - -
-
-
-
日常巡检
-
-
-
{{ item.event }}
-
{{ item.robotId }}
-
{{ item.time }}
-
- - 已处理 + +
@@ -75,88 +91,308 @@ @confirm="handleConfirm" @report="handleReport" /> + + +
\ No newline at end of file diff --git a/src/components/common/CustomWebRTCPlayer.vue b/src/components/common/CustomWebRTCPlayer.vue new file mode 100644 index 0000000..89c0c50 --- /dev/null +++ b/src/components/common/CustomWebRTCPlayer.vue @@ -0,0 +1,298 @@ + + + + + \ No newline at end of file diff --git a/src/components/common/EmptyState.vue b/src/components/common/EmptyState.vue new file mode 100644 index 0000000..77443c7 --- /dev/null +++ b/src/components/common/EmptyState.vue @@ -0,0 +1,57 @@ + + + + + \ No newline at end of file diff --git a/src/components/common/VideoPlayer.vue b/src/components/common/VideoPlayer.vue new file mode 100644 index 0000000..bb793c5 --- /dev/null +++ b/src/components/common/VideoPlayer.vue @@ -0,0 +1,370 @@ + + + + + \ No newline at end of file diff --git a/src/components/dialog/ConfirmDialog.vue b/src/components/dialog/ConfirmDialog.vue index 19216e2..4a49a74 100644 --- a/src/components/dialog/ConfirmDialog.vue +++ b/src/components/dialog/ConfirmDialog.vue @@ -2,8 +2,9 @@
- {{ title }} - + {{ title }} + +
{{ message }} @@ -60,23 +61,32 @@ const handleCancel = () => { } .confirm-dialog { - width: 400px; - background: url("../../assets/img/alert.png") no-repeat; + width:700px; + height:310px; + background: url("../../assets/img/alert3.png") no-repeat; background-size: 100% 100%; - border-radius: 4px; - padding: 20px; + /* border-radius: 4px; */ + padding:10px 20px; + letter-spacing: 2px; + } .confirm-dialog-header { + padding-left: 20px; display: flex; justify-content: space-between; align-items: center; - margin-bottom: 20px; + /* margin-bottom: 40px; */ + + /* line-height: 40px; */ + letter-spacing: 2px; + + } .title { color: #B9E8FF; - font-size: 18px; + font-size: 28px; } .close-btn { @@ -86,11 +96,21 @@ const handleCancel = () => { font-size: 20px; cursor: pointer; } - +.confirm-dialog-content::before{ + content: url("../../assets/img/delete.png"); + display: flex; + justify-content: center; + align-items: center; + width: 48px; + height: 48px; + margin-right: 20px; +} .confirm-dialog-content { + height: 70%; color: #B9E8FF; - margin-bottom: 20px; - min-height: 60px; + /* margin-bottom: 20px; */ + min-height: 40px; + font-size: 28px; display: flex; align-items: center; justify-content: center; @@ -107,9 +127,10 @@ const handleCancel = () => { height: 32px; border: none; cursor: pointer; - font-size: 14px; + font-size: 18px; background-size: 100% 100%; color: #C6F4FF; + margin-bottom: 20px; } .btn.cancel { @@ -118,7 +139,7 @@ const handleCancel = () => { } .btn.confirm { - background: url("../../assets/img/confirm.png") no-repeat; + background: url("../../assets/img/report.png") no-repeat; background-size: 100% 100%; } \ No newline at end of file diff --git a/src/components/dialog/RobotListModal.vue b/src/components/dialog/RobotListModal.vue index 6d07151..d6510ea 100644 --- a/src/components/dialog/RobotListModal.vue +++ b/src/components/dialog/RobotListModal.vue @@ -75,8 +75,9 @@ diff --git a/src/views/Home.vue b/src/views/Home.vue index dcb3d80..b5f1a45 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -59,12 +59,17 @@ v-model="selectedViews[camera.title]" :options="viewOptions" size="small" - variant="search" - font="small" + variant="search" + font="small" + @change="handleViewChange(camera.title)" />
- +
@@ -77,7 +82,7 @@