chunquansang 2 months ago
commit 212f5b9e81

214
package-lock.json generated

@ -13,6 +13,7 @@
"sass": "^1.85.1", "sass": "^1.85.1",
"swiper": "^11.2.5", "swiper": "^11.2.5",
"unplugin-auto-import": "^19.1.1", "unplugin-auto-import": "^19.1.1",
"video.js": "^8.22.0",
"vue": "^3.5.13" "vue": "^3.5.13"
}, },
"devDependencies": { "devDependencies": {
@ -390,6 +391,17 @@
"@babel/core": "^7.0.0-0" "@babel/core": "^7.0.0-0"
} }
}, },
"node_modules/@babel/runtime": {
"version": "7.26.10",
"resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.26.10.tgz",
"integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/template": { "node_modules/@babel/template": {
"version": "7.26.9", "version": "7.26.9",
"resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.26.9.tgz", "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.26.9.tgz",
@ -1818,6 +1830,51 @@
"integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==", "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==",
"devOptional": true "devOptional": true
}, },
"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": { "node_modules/@vitejs/plugin-vue": {
"version": "5.2.1", "version": "5.2.1",
"resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz", "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz",
@ -2189,6 +2246,14 @@
} }
} }
}, },
"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/acorn": { "node_modules/acorn": {
"version": "8.14.1", "version": "8.14.1",
"resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.14.1.tgz", "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.14.1.tgz",
@ -2200,6 +2265,17 @@
"node": ">=0.4.0" "node": ">=0.4.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/alien-signals": { "node_modules/alien-signals": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmmirror.com/alien-signals/-/alien-signals-1.0.4.tgz", "resolved": "https://registry.npmmirror.com/alien-signals/-/alien-signals-1.0.4.tgz",
@ -2631,6 +2707,11 @@
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
"dev": true "dev": true
}, },
"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/eastasianwidth": { "node_modules/eastasianwidth": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
@ -2962,6 +3043,15 @@
"node": ">= 6" "node": ">= 6"
} }
}, },
"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/globals": { "node_modules/globals": {
"version": "11.12.0", "version": "11.12.0",
"resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz",
@ -3054,6 +3144,11 @@
"node": ">=8" "node": ">=8"
} }
}, },
"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": { "node_modules/is-glob": {
"version": "4.0.3", "version": "4.0.3",
"resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
@ -3455,6 +3550,16 @@
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"dev": true "dev": true
}, },
"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": { "node_modules/magic-string": {
"version": "0.30.17", "version": "0.30.17",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz", "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz",
@ -3491,6 +3596,14 @@
"node": ">=8.6" "node": ">=8.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/mini-svg-data-uri": { "node_modules/mini-svg-data-uri": {
"version": "1.4.4", "version": "1.4.4",
"resolved": "https://registry.npmmirror.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", "resolved": "https://registry.npmmirror.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz",
@ -3568,6 +3681,20 @@
"random": "bin/random" "random": "bin/random"
} }
}, },
"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/ms": { "node_modules/ms": {
"version": "2.1.3", "version": "2.1.3",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
@ -3580,6 +3707,22 @@
"integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==",
"dev": true "dev": true
}, },
"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/mz": { "node_modules/mz": {
"version": "2.7.0", "version": "2.7.0",
"resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz",
@ -3799,6 +3942,17 @@
"node": ">= 6" "node": ">= 6"
} }
}, },
"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/pkg-types": { "node_modules/pkg-types": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-2.1.0.tgz", "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-2.1.0.tgz",
@ -3976,6 +4130,14 @@
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"dev": true "dev": true
}, },
"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/quansync": { "node_modules/quansync": {
"version": "0.2.8", "version": "0.2.8",
"resolved": "https://registry.npmmirror.com/quansync/-/quansync-0.2.8.tgz", "resolved": "https://registry.npmmirror.com/quansync/-/quansync-0.2.8.tgz",
@ -4032,6 +4194,11 @@
"node": ">=8.10.0" "node": ">=8.10.0"
} }
}, },
"node_modules/regenerator-runtime": {
"version": "0.14.1",
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
"node_modules/resolve": { "node_modules/resolve": {
"version": "1.22.10", "version": "1.22.10",
"resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.10.tgz", "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.10.tgz",
@ -4778,6 +4945,53 @@
"node": ">= 0.4.0" "node": ">= 0.4.0"
} }
}, },
"node_modules/video.js": {
"version": "8.22.0",
"resolved": "https://registry.npmmirror.com/video.js/-/video.js-8.22.0.tgz",
"integrity": "sha512-xge2kpjsvC0zgFJ1cqt+wTqsi21+huFswlonPFh7qiplypsb4FN/D2Rz6bWdG/S9eQaPHfWHsarmJL/7D3DHoA==",
"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": { "node_modules/vite": {
"version": "6.2.0", "version": "6.2.0",
"resolved": "https://registry.npmmirror.com/vite/-/vite-6.2.0.tgz", "resolved": "https://registry.npmmirror.com/vite/-/vite-6.2.0.tgz",

@ -15,6 +15,7 @@
"sass": "^1.85.1", "sass": "^1.85.1",
"swiper": "^11.2.5", "swiper": "^11.2.5",
"unplugin-auto-import": "^19.1.1", "unplugin-auto-import": "^19.1.1",
"video.js": "^8.22.0",
"vue": "^3.5.13" "vue": "^3.5.13"
}, },
"devDependencies": { "devDependencies": {

@ -23,6 +23,9 @@ importers:
unplugin-auto-import: unplugin-auto-import:
specifier: ^19.1.1 specifier: ^19.1.1
version: 19.1.1(@vueuse/core@9.13.0(vue@3.5.13(typescript@5.7.3))) version: 19.1.1(@vueuse/core@9.13.0(vue@3.5.13(typescript@5.7.3)))
video.js:
specifier: ^8.22.0
version: 8.22.0
vue: vue:
specifier: ^3.5.13 specifier: ^3.5.13
version: 3.5.13(typescript@5.7.3) version: 3.5.13(typescript@5.7.3)
@ -196,6 +199,10 @@ packages:
peerDependencies: peerDependencies:
'@babel/core': ^7.0.0-0 '@babel/core': ^7.0.0-0
'@babel/runtime@7.26.10':
resolution: {integrity: sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==}
engines: {node: '>=6.9.0'}
'@babel/template@7.26.9': '@babel/template@7.26.9':
resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
@ -711,6 +718,19 @@ packages:
'@types/web-bluetooth@0.0.16': '@types/web-bluetooth@0.0.16':
resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
'@videojs/http-streaming@3.17.0':
resolution: {integrity: sha512-Ch1P3tvvIEezeZXyK11UfWgp4cWKX4vIhZ30baN/lRinqdbakZ5hiAI3pGjRy3d+q/Epyc8Csz5xMdKNNGYpcw==}
engines: {node: '>=8', npm: '>=5'}
peerDependencies:
video.js: ^8.19.0
'@videojs/vhs-utils@4.1.1':
resolution: {integrity: sha512-5iLX6sR2ownbv4Mtejw6Ax+naosGvoT9kY+gcuHzANyUZZ+4NpeNdKMUhb6ag0acYej1Y7cmr/F2+4PrggMiVA==}
engines: {node: '>=8', npm: '>=5'}
'@videojs/xhr@2.7.0':
resolution: {integrity: sha512-giab+EVRanChIupZK7gXjHy90y3nncA2phIOyG3Ne5fvpiMJzvqYwiTOnEVW2S4CoYcuKJkomat7bMXA/UoUZQ==}
'@vitejs/plugin-vue-jsx@4.1.1': '@vitejs/plugin-vue-jsx@4.1.1':
resolution: {integrity: sha512-uMJqv/7u1zz/9NbWAD3XdjaY20tKTf17XVfQ9zq4wY1BjsB/PjpJPMe2xiG39QpP4ZdhYNhm4Hvo66uJrykNLA==} resolution: {integrity: sha512-uMJqv/7u1zz/9NbWAD3XdjaY20tKTf17XVfQ9zq4wY1BjsB/PjpJPMe2xiG39QpP4ZdhYNhm4Hvo66uJrykNLA==}
engines: {node: ^18.0.0 || >=20.0.0} engines: {node: ^18.0.0 || >=20.0.0}
@ -822,11 +842,18 @@ packages:
'@vueuse/shared@9.13.0': '@vueuse/shared@9.13.0':
resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==}
'@xmldom/xmldom@0.8.10':
resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==}
engines: {node: '>=10.0.0'}
acorn@8.14.1: acorn@8.14.1:
resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
hasBin: true hasBin: true
aes-decrypter@4.0.2:
resolution: {integrity: sha512-lc+/9s6iJvuaRe5qDlMTpCFjnwpkeOXp8qP3oiZ5jsj1MRg+SBVUmmICrhxHvc8OELSmc+fEyyxAuppY6hrWzw==}
alien-signals@1.0.4: alien-signals@1.0.4:
resolution: {integrity: sha512-DJqqQD3XcsaQcQ1s+iE2jDUZmmQpXwHiR6fCAim/w87luaW+vmLY8fMlrdkmRwzaFXhkxf3rqPCR59tKVv1MDw==} resolution: {integrity: sha512-DJqqQD3XcsaQcQ1s+iE2jDUZmmQpXwHiR6fCAim/w87luaW+vmLY8fMlrdkmRwzaFXhkxf3rqPCR59tKVv1MDw==}
@ -996,6 +1023,9 @@ packages:
dlv@1.1.3: dlv@1.1.3:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
dom-walk@0.1.2:
resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==}
eastasianwidth@0.2.0: eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
@ -1110,6 +1140,9 @@ packages:
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
hasBin: true hasBin: true
global@4.4.0:
resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==}
globals@11.12.0: globals@11.12.0:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'} engines: {node: '>=4'}
@ -1147,6 +1180,9 @@ packages:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'} engines: {node: '>=8'}
is-function@1.0.2:
resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==}
is-glob@4.0.3: is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@ -1291,6 +1327,9 @@ packages:
lru-cache@5.1.1: lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
m3u8-parser@7.2.0:
resolution: {integrity: sha512-CRatFqpjVtMiMaKXxNvuI3I++vUumIXVVT/JpCpdU/FynV/ceVw1qpPyyBNindL+JlPMSesx+WX1QJaZEJSaMQ==}
magic-string@0.30.17: magic-string@0.30.17:
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
@ -1305,6 +1344,9 @@ packages:
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
engines: {node: '>=8.6'} engines: {node: '>=8.6'}
min-document@2.19.0:
resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==}
mini-svg-data-uri@1.4.4: mini-svg-data-uri@1.4.4:
resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
hasBin: true hasBin: true
@ -1327,6 +1369,10 @@ packages:
resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==}
hasBin: true hasBin: true
mpd-parser@1.3.1:
resolution: {integrity: sha512-1FuyEWI5k2HcmhS1HkKnUAQV7yFPfXPht2DnRRGtoiiAAW+ESTbtEXIDpRkwdU+XyrQuwrIym7UkoPKsZ0SyFw==}
hasBin: true
ms@2.0.0: ms@2.0.0:
resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
@ -1336,6 +1382,11 @@ packages:
muggle-string@0.4.1: muggle-string@0.4.1:
resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
mux.js@7.1.0:
resolution: {integrity: sha512-NTxawK/BBELJrYsZThEulyUMDVlLizKdxyAsMuzoCD1eFj97BVaA8D/CvKsKu6FOLYkFojN5CbM9h++ZTZtknA==}
engines: {node: '>=8', npm: '>=5'}
hasBin: true
mz@2.7.0: mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
@ -1431,6 +1482,10 @@ packages:
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
engines: {node: '>= 6'} engines: {node: '>= 6'}
pkcs7@1.0.4:
resolution: {integrity: sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==}
hasBin: true
pkg-types@1.3.1: pkg-types@1.3.1:
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
@ -1484,6 +1539,10 @@ packages:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
process@0.11.10:
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
engines: {node: '>= 0.6.0'}
quansync@0.2.8: quansync@0.2.8:
resolution: {integrity: sha512-4+saucphJMazjt7iOM27mbFCk+D9dd/zmgMDCzRZ8MEoBfYp7lAvoN38et/phRQF6wOPMy/OROBGgoWeSKyluA==} resolution: {integrity: sha512-4+saucphJMazjt7iOM27mbFCk+D9dd/zmgMDCzRZ8MEoBfYp7lAvoN38et/phRQF6wOPMy/OROBGgoWeSKyluA==}
@ -1501,6 +1560,9 @@ packages:
resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
engines: {node: '>= 14.18.0'} engines: {node: '>= 14.18.0'}
regenerator-runtime@0.14.1:
resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
resolve@1.22.10: resolve@1.22.10:
resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@ -1675,6 +1737,21 @@ packages:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'} engines: {node: '>= 0.4.0'}
video.js@8.22.0:
resolution: {integrity: sha512-xge2kpjsvC0zgFJ1cqt+wTqsi21+huFswlonPFh7qiplypsb4FN/D2Rz6bWdG/S9eQaPHfWHsarmJL/7D3DHoA==}
videojs-contrib-quality-levels@4.1.0:
resolution: {integrity: sha512-TfrXJJg1Bv4t6TOCMEVMwF/CoS8iENYsWNKip8zfhB5kTcegiFYezEA0eHAJPU64ZC8NQbxQgOwAsYU8VXbOWA==}
engines: {node: '>=16', npm: '>=8'}
peerDependencies:
video.js: ^8
videojs-font@4.2.0:
resolution: {integrity: sha512-YPq+wiKoGy2/M7ccjmlvwi58z2xsykkkfNMyIg4xb7EZQQNwB71hcSsB3o75CqQV7/y5lXkXhI/rsGAS7jfEmQ==}
videojs-vtt.js@0.15.5:
resolution: {integrity: sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==}
vite-plugin-mock@3.0.2: vite-plugin-mock@3.0.2:
resolution: {integrity: sha512-bD//HvkTygGmk+LsIAdf0jGNlCv4iWv0kZlH9UEgWT6QYoUwfjQAE4SKxHRw2tfLgVhbPQVv/+X3YlNWvueGUA==} resolution: {integrity: sha512-bD//HvkTygGmk+LsIAdf0jGNlCv4iWv0kZlH9UEgWT6QYoUwfjQAE4SKxHRw2tfLgVhbPQVv/+X3YlNWvueGUA==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
@ -1934,6 +2011,10 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@babel/runtime@7.26.10':
dependencies:
regenerator-runtime: 0.14.1
'@babel/template@7.26.9': '@babel/template@7.26.9':
dependencies: dependencies:
'@babel/code-frame': 7.26.2 '@babel/code-frame': 7.26.2
@ -2291,6 +2372,28 @@ snapshots:
'@types/web-bluetooth@0.0.16': {} '@types/web-bluetooth@0.0.16': {}
'@videojs/http-streaming@3.17.0(video.js@8.22.0)':
dependencies:
'@babel/runtime': 7.26.10
'@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: 8.22.0
'@videojs/vhs-utils@4.1.1':
dependencies:
'@babel/runtime': 7.26.10
global: 4.4.0
'@videojs/xhr@2.7.0':
dependencies:
'@babel/runtime': 7.26.10
global: 4.4.0
is-function: 1.0.2
'@vitejs/plugin-vue-jsx@4.1.1(vite@6.2.0(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.85.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': '@vitejs/plugin-vue-jsx@4.1.1(vite@6.2.0(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.85.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))':
dependencies: dependencies:
'@babel/core': 7.26.9 '@babel/core': 7.26.9
@ -2463,8 +2566,17 @@ snapshots:
- '@vue/composition-api' - '@vue/composition-api'
- vue - vue
'@xmldom/xmldom@0.8.10': {}
acorn@8.14.1: {} acorn@8.14.1: {}
aes-decrypter@4.0.2:
dependencies:
'@babel/runtime': 7.26.10
'@videojs/vhs-utils': 4.1.1
global: 4.4.0
pkcs7: 1.0.4
alien-signals@1.0.4: {} alien-signals@1.0.4: {}
ansi-regex@5.0.1: {} ansi-regex@5.0.1: {}
@ -2608,6 +2720,8 @@ snapshots:
dlv@1.1.3: {} dlv@1.1.3: {}
dom-walk@0.1.2: {}
eastasianwidth@0.2.0: {} eastasianwidth@0.2.0: {}
echarts@5.6.0: echarts@5.6.0:
@ -2758,6 +2872,11 @@ snapshots:
package-json-from-dist: 1.0.1 package-json-from-dist: 1.0.1
path-scurry: 1.11.1 path-scurry: 1.11.1
global@4.4.0:
dependencies:
min-document: 2.19.0
process: 0.11.10
globals@11.12.0: {} globals@11.12.0: {}
graceful-fs@4.2.11: {} graceful-fs@4.2.11: {}
@ -2784,6 +2903,8 @@ snapshots:
is-fullwidth-code-point@3.0.0: {} is-fullwidth-code-point@3.0.0: {}
is-function@1.0.2: {}
is-glob@4.0.3: is-glob@4.0.3:
dependencies: dependencies:
is-extglob: 2.1.1 is-extglob: 2.1.1
@ -2885,6 +3006,12 @@ snapshots:
dependencies: dependencies:
yallist: 3.1.1 yallist: 3.1.1
m3u8-parser@7.2.0:
dependencies:
'@babel/runtime': 7.26.10
'@videojs/vhs-utils': 4.1.1
global: 4.4.0
magic-string@0.30.17: magic-string@0.30.17:
dependencies: dependencies:
'@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/sourcemap-codec': 1.5.0
@ -2898,6 +3025,10 @@ snapshots:
braces: 3.0.3 braces: 3.0.3
picomatch: 2.3.1 picomatch: 2.3.1
min-document@2.19.0:
dependencies:
dom-walk: 0.1.2
mini-svg-data-uri@1.4.4: {} mini-svg-data-uri@1.4.4: {}
minimatch@9.0.5: minimatch@9.0.5:
@ -2919,12 +3050,24 @@ snapshots:
dependencies: dependencies:
commander: 13.1.0 commander: 13.1.0
mpd-parser@1.3.1:
dependencies:
'@babel/runtime': 7.26.10
'@videojs/vhs-utils': 4.1.1
'@xmldom/xmldom': 0.8.10
global: 4.4.0
ms@2.0.0: {} ms@2.0.0: {}
ms@2.1.3: {} ms@2.1.3: {}
muggle-string@0.4.1: {} muggle-string@0.4.1: {}
mux.js@7.1.0:
dependencies:
'@babel/runtime': 7.26.10
global: 4.4.0
mz@2.7.0: mz@2.7.0:
dependencies: dependencies:
any-promise: 1.3.0 any-promise: 1.3.0
@ -2990,6 +3133,10 @@ snapshots:
pirates@4.0.6: {} pirates@4.0.6: {}
pkcs7@1.0.4:
dependencies:
'@babel/runtime': 7.26.10
pkg-types@1.3.1: pkg-types@1.3.1:
dependencies: dependencies:
confbox: 0.1.8 confbox: 0.1.8
@ -3043,6 +3190,8 @@ snapshots:
picocolors: 1.1.1 picocolors: 1.1.1
source-map-js: 1.2.1 source-map-js: 1.2.1
process@0.11.10: {}
quansync@0.2.8: {} quansync@0.2.8: {}
queue-microtask@1.2.3: {} queue-microtask@1.2.3: {}
@ -3057,6 +3206,8 @@ snapshots:
readdirp@4.1.2: {} readdirp@4.1.2: {}
regenerator-runtime@0.14.1: {}
resolve@1.22.10: resolve@1.22.10:
dependencies: dependencies:
is-core-module: 2.16.1 is-core-module: 2.16.1
@ -3270,6 +3421,32 @@ snapshots:
utils-merge@1.0.1: {} utils-merge@1.0.1: {}
video.js@8.22.0:
dependencies:
'@babel/runtime': 7.26.10
'@videojs/http-streaming': 3.17.0(video.js@8.22.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.1.0
videojs-contrib-quality-levels: 4.1.0(video.js@8.22.0)
videojs-font: 4.2.0
videojs-vtt.js: 0.15.5
videojs-contrib-quality-levels@4.1.0(video.js@8.22.0):
dependencies:
global: 4.4.0
video.js: 8.22.0
videojs-font@4.2.0: {}
videojs-vtt.js@0.15.5:
dependencies:
global: 4.4.0
vite-plugin-mock@3.0.2(esbuild@0.25.0)(mockjs@1.1.0)(vite@6.2.0(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.85.1)(yaml@2.7.0)): vite-plugin-mock@3.0.2(esbuild@0.25.0)(mockjs@1.1.0)(vite@6.2.0(jiti@2.4.2)(lightningcss@1.29.2)(sass@1.85.1)(yaml@2.7.0)):
dependencies: dependencies:
bundle-require: 4.2.1(esbuild@0.25.0) bundle-require: 4.2.1(esbuild@0.25.0)

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 800 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 922 B

@ -65,6 +65,9 @@
} }
} }
} }
.fixed_pagination{
padding: 12px 20px 0;
}
/* full_table */ /* full_table */
&.full_table { &.full_table {
.el-table--large .el-table__cell { .el-table--large .el-table__cell {
@ -99,6 +102,9 @@
} }
} }
} }
.fixed_pagination{
padding: 28px 20px;
}
} }
} }

@ -0,0 +1,11 @@
<!--
* @Author: donghao donghao@supervision.ltd
* @Date: 2025-03-12 13:48:31
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2025-03-12 13:56:15
* @FilePath: \5G-Loading-Bay-Web\src\components\videoPlayer\player.vue
* @Description: 视频播放器
-->
<template>
<!-- 视频播放器 -->
</template>

@ -0,0 +1,4 @@
<template>
<!-- 实时视频播放器 -->
</template>

@ -17,8 +17,25 @@
// ) // )
); );
/* 引入 Element Plus 样式 */ /* 引入 Element Plus 样式 */
@use "element-plus/theme-chalk/src/index.scss" as *; @use "element-plus/theme-chalk/src/index.scss" as *;
.el-button.is-text:not(.is-disabled):hover {
background-color: transparent;
}
.el-button.is-text:not(.is-disabled):hover {
background-color: transparent;
}
.el-button:hover {
color: white;
background-color: transparent;
outline: none;
}
/* 表格 */ /* 表格 */
.ds_table { .ds_table {
position: relative; position: relative;
@ -34,7 +51,6 @@
justify-content: flex-end; justify-content: flex-end;
right: 0; right: 0;
bottom: 0; bottom: 0;
padding: 28px 20px;
} }
.noneFixed_pagination { .noneFixed_pagination {
display: flex; display: flex;

@ -1,4 +1,6 @@
.appearance-monitor-warp { .appearance-monitor-warp {
box-sizing: border-box;
padding-top: 32px;
height: 100%; height: 100%;
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -6,42 +8,34 @@
// .appearance-monitor-right { // .appearance-monitor-right {
// display: flex; // display: flex;
// } // }
.pagination-container {
margin-top: 20px; .appearance-monitor-search-box {
display: flex; display: flex;
justify-content: flex-end; align-items: center;
gap: 12px;
margin: 16px 0;
} }
:deep(.el-pagination__total) { .right-panel{
color: #606266; .el-scrollbar__view {
margin-right: 10px; background: transparent !important;
} height: 600px;
}
:deep(.el-pagination__sizes .el-select__inner) {
background: #002a5c;
color: white;
border: 1px solid #409eff;
}
:deep(.el-pagination__item),
:deep(.el-pagination__button) {
background: #002a5c;
color: white;
border: 1px solid #409eff;
margin-right: 5px;
}
:deep(.el-pagination__item.is-active) {
background: #409eff;
color: white;
} }
.appearance-monitor-left { .appearance-monitor-left {
.monitor-left-top { .monitor-left-top {
box-sizing: border-box; box-sizing: border-box;
padding: 32px 16px; padding: 32px 16px;
margin-bottom: 16px;
min-height: 600px; min-height: 600px;
background-image: url("@/assets/common/boderBg.png");
background-size: 100% 100%;
background-position: center;
background-repeat: no-repeat;
img { img {
width: 100%; width: 100%;
height: 600px; height: 590px;
} }
} }
.monitor-left-bottom { .monitor-left-bottom {
@ -55,7 +49,7 @@
border-radius:4px; border-radius:4px;
img { img {
width: 100%; width: 100%;
height: 100%; height: 144px;
border-radius:4px; border-radius:4px;
} }
} }

@ -2,28 +2,15 @@
<div class="appearance-monitor-warp"> <div class="appearance-monitor-warp">
<div class="appearance-monitor-left w-[56%] h-[100%]"> <div class="appearance-monitor-left w-[56%] h-[100%]">
<div class="monitor-left-top"> <div class="monitor-left-top">
<img src="https://picsum.photos/300/200?random=1" alt="监控画面" /> <img :src="imageBig" alt="监控画面" />
<!-- <video src=""></video> -->
</div> </div>
<div class="monitor-left-bottom"> <div class="monitor-left-bottom">
<swiper <swiper ref="swiperRef" :modules="modules" :slides-per-view="4" :space-between="10" navigation
ref="swiperRef" :scrollbar="{ draggable: false }" :centered-slides="false" :observer="true" :observeParents="true"
:modules="modules" @swiper="onSwiper" @slideChange="onSlideChange">
:slides-per-view="4" <swiper-slide v-for="(image, index) in images" :key="index" @click="handleSlideClick(index)"
:space-between="10" :class="{ 'active-slide': activeIndex === index }">
navigation
:scrollbar="{ draggable: false }"
:centered-slides="false"
:observer="true"
:observeParents="true"
@swiper="onSwiper"
@slideChange="onSlideChange"
>
<swiper-slide
v-for="(image, index) in images"
:key="index"
@click="handleSlideClick(index)"
:class="{ 'active-slide': activeIndex === index }"
>
<img :src="image" alt="Slide" /> <img :src="image" alt="Slide" />
</swiper-slide> </swiper-slide>
</swiper> </swiper>
@ -41,57 +28,48 @@
</ContentHeader> </ContentHeader>
</div> </div>
<!-- 表格区域 --> <!-- 表格区域 -->
<el-table <!-- 搜索区域 -->
:data="tableData" <div class="px-[16px]">
stripe
style="width: 100%; margin-top: 20px"
class="custom-table"
>
<el-table-column prop="carNo" label="车号" width="80"></el-table-column>
<el-table-column
prop="carType"
label="车型"
width="60"
></el-table-column>
<el-table-column
prop="carriageNo"
label="车厢号"
width="80"
></el-table-column>
<el-table-column
prop="warnType"
label="告警类型"
width="80"
></el-table-column>
<el-table-column
prop="faultType"
label="故障类型"
width="120"
></el-table-column>
<el-table-column prop="level" label="等级" width="60"></el-table-column>
<el-table-column
prop="review"
label="复核"
width="60"
></el-table-column>
<el-table-column prop="time" label="时间" width="120"></el-table-column>
</el-table>
<!-- 分页区域 --> <div class="appearance-monitor-search-box">
<el-select v-model="searchForm.name" placeholder="列车号" class="custom-select">
<div class="pagination-container"> <el-option label="A" value="deviceA"></el-option>
<el-pagination <el-option label="B" value="deviceB"></el-option>
:page-sizes="[100, 200, 300, 400]" </el-select>
layout="total, sizes, prev, pager, next, jumper" <el-select v-model="searchForm.deviceId" placeholder="车厢号" class="custom-select">
:total="400" <el-option label="ID-001" value="id001"></el-option>
/> <el-option label="ID-002" value="id002"></el-option>
</el-select>
<el-select v-model="searchForm.faultType" placeholder="故障类型" class="custom-select">
<el-option label="类型1" value="id001"></el-option>
<el-option label="类型2" value="id002"></el-option>
</el-select>
<el-button type="primary" @click="handleQuery" class="basic-btn query-btn">
<span class="icon"></span> 查询
</el-button>
<el-button @click="handleReset" class="basic-btn reset-btn">
<span class="icon"></span> 重置
</el-button>
</div>
<!-- 右侧表格区域 -->
<div class="right-panel w-[768px]">
<div class="bg-transparent baseTable_wrap">
<template v-if="pagination.total > 0">
<BaseTable class="bg-transparent baseTable_box" :total="pagination.total" :pageSize="pagination.pageSize"
:dataSource="listData" :isFixedPagination="true" :columns="columns" :page="pagination.currentPage"
@change="handleTableChange">
</BaseTable>
</template>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import ContentHeader from "@/components/ContentHeader.vue"; import ContentHeader from "@/components/ContentHeader.vue";
import { computed, onMounted, onUnmounted, ref } from "vue"; import { BaseTable } from "@/components/CustomTable";
import { Swiper, SwiperSlide } from "swiper/vue"; import { Swiper, SwiperSlide } from "swiper/vue";
import { Navigation, Scrollbar } from "swiper/modules"; import { Navigation, Scrollbar } from "swiper/modules";
import "swiper/css"; import "swiper/css";
@ -99,58 +77,100 @@ import 'swiper/scss';
import 'swiper/scss/navigation'; import 'swiper/scss/navigation';
const modules = [Navigation, Scrollbar]; const modules = [Navigation, Scrollbar];
// // const currentRow = ref<Record<string, any>>({});
const searchForm = ref({ const columns = [
trainNo: "all",
carriageNo: "all",
faultType: "all",
});
//
const tableData = ref([
{ {
carNo: "CA1001", label: "车号",
carType: "C64", property: "carNo",
carriageNo: "101", width: 80,
warnType: "车辆损坏",
faultType: "搭扣未搭",
level: "1",
review: "是",
time: "2025-02-05 14:33",
}, },
{ {
carNo: "CA1002", label: "车型",
carType: "C64", property: "carType",
carriageNo: "101", width: 80,
warnType: "车辆损坏",
faultType: "搭扣未搭",
level: "1",
review: "是",
time: "2025-02-12 15:33",
}, },
// ... {
]); label: "车厢号",
property: "carriageNo",
width: 80,
},
{
label: "告警类型",
property: "warnType",
width: 120,
},
{
label: "故障类型",
property: "faultType",
width: 120,
},
{
label: "等级",
property: "level",
width: 60,
},
{
label: "复核",
property: "review",
width: 60,
},
{
label: "时间",
property: "date"
}
]
const pagination = ref({ currentPage: 1, pageSize: 10, total: 0 });
const listData = ref([]);
//
const searchForm = reactive({
trainNo: "",
carriageNo: "",
faultType: "",
});
const dataLoading = ref(true);
const total = ref(66); const getList = async () => {
const { currentPage, pageSize } = pagination.value;
const res = await fetch('/api/getPoleMonitorList', {
method: 'POST',
body: JSON.stringify({ ...searchForm, page: currentPage, pageSize })
})
const { data } = await res.json()
console.log(data, 'getList_data')
listData.value = data.list;
console.log(data.list);
pagination.value = {
...pagination.value,
total: data.total
};
dataLoading.value = false;
};
// //
const handleSearch = () => { const handleQuery = () => {
console.log("搜索参数", searchForm.value); getList()
}; };
// //
const handleReset = () => { const handleReset = () => {
searchForm.value = { searchForm.trainNo = '';
trainNo: "all", // deviceId.value = '';
carriageNo: "all", getList()
faultType: "all",
};
}; };
// function handleTableChange(record) {
const handlePageChange = (page) => { console.log("handleTableChange_record", record);
console.log("当前页码", page); pagination.value = {
}; ...pagination.value,
currentPage: record.page,
pageSize: record.pageSize
};
getList();
}
const images = ref([ const images = ref([
'https://picsum.photos/300/200?random=1', 'https://picsum.photos/300/200?random=1',
'https://picsum.photos/300/200?random=2', 'https://picsum.photos/300/200?random=2',
@ -158,11 +178,13 @@ const images = ref([
'https://picsum.photos/300/200?random=4', 'https://picsum.photos/300/200?random=4',
'https://picsum.photos/300/200?random=5' 'https://picsum.photos/300/200?random=5'
]); ]);
const imageBig = ref(images.value[0])
const activeIndex = ref(-1); const activeIndex = ref(-1);
const handleSlideClick = (index) => { const handleSlideClick = (index) => {
console.log(index); console.log(index);
activeIndex.value = index; activeIndex.value = index;
imageBig.value = images.value[index];
}; };
const swiperRef = ref(null); const swiperRef = ref(null);
console.log(swiperRef.value); console.log(swiperRef.value);
@ -173,6 +195,10 @@ const onSwiper = (swiper) => {
const onSlideChange = () => { const onSlideChange = () => {
console.log("slide change"); console.log("slide change");
}; };
onMounted(() => {
getList();
});
// // Swiper // // Swiper
// const handleResize = () => { // const handleResize = () => {
// if (swiperRef.value) { // if (swiperRef.value) {

@ -19,8 +19,25 @@
.module-header { .module-header {
color: #4a7ebf; color: #4a7ebf;
margin-bottom: 15px; margin-bottom: 15px;
.month-btn,
.week-btn {
width: 70px;
height: 28px;
font-size: 14px;
color: #FFF;
background: #0F2839;
border: none;
}
.week-btn {
margin-right: 20px;
}
.active-btn {
background: #0B345E;
border: 1px solid #3FDDEB;
}
} }
.chart-container { .chart-container {
margin-top: 40px;
width: 100%; width: 100%;
height: 300px; height: 300px;
} }
@ -34,11 +51,11 @@
margin-bottom: 15px; margin-bottom: 15px;
.device-icon { .device-icon {
width: 40px; width: 80px;
height: 40px; height: 90px;
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"/></svg>') background: url('@/assets/common/deviceTotal.png')
no-repeat center; no-repeat center;
background-size: 80%; background-size: 100%;
} }
.device-count { .device-count {
@ -70,9 +87,9 @@
.monitor-images { .monitor-images {
display: flex; display: flex;
gap: 10px; box-sizing: border-box;
margin-top: 15px; gap: 16px;
padding: 20px 16px 20px 16px;
img { img {
width: 100%; width: 100%;
height: auto; height: auto;

@ -9,7 +9,14 @@
<div class="w-[200px] bg_title bg_title_0"></div> <div class="w-[200px] bg_title bg_title_0"></div>
</template> </template>
<template #extra> <template #extra>
<div></div> <div>
<el-button type="primary" class="month-btn" @click="activeBtn = '月'" :class="{ 'active-btn': activeBtn === '月' }">
</el-button>
<el-button class="week-btn" @click="activeBtn = '周'" :class="{ 'active-btn': activeBtn === '周' }">
</el-button>
</div>
</template> </template>
</ContentHeader> </ContentHeader>
</div> </div>
@ -70,7 +77,10 @@
<div class="w-[200px] bg_title bg_title_2"></div> <div class="w-[200px] bg_title bg_title_2"></div>
</template> </template>
<template #extra> <template #extra>
<div></div> <el-select v-model="searchForm.name" placeholder="时间" class="custom-select">
<el-option label="A" value="deviceA"></el-option>
<el-option label="B" value="deviceB"></el-option>
</el-select>
</template> </template>
</ContentHeader> </ContentHeader>
</div> </div>
@ -85,12 +95,12 @@
{ value: 5, name: '小窗裂纹' }, { value: 5, name: '小窗裂纹' },
]" ]"
:colors="[ :colors="[
'#4CAF50', '#FF7C09',
'#8BC34A', '#0032FF',
'#CDDC39', '#04FFF2',
'#FFEB3B', '#D19EFF',
'#FFC107', '#FF0103',
'#FF5722', '#9EFFF3',
]" ]"
/> />
</div> </div>
@ -101,7 +111,12 @@
<template #title> <template #title>
<div class="w-[200px] bg_title bg_title_3"></div> <div class="w-[200px] bg_title bg_title_3"></div>
</template> </template>
<template #extra> </template> <template #extra>
<el-select v-model="searchForm.name" placeholder="时间" class="custom-select">
<el-option label="A" value="deviceA"></el-option>
<el-option label="B" value="deviceB"></el-option>
</el-select>
</template>
</ContentHeader> </ContentHeader>
</div> </div>
<div class="chart-container"> <div class="chart-container">
@ -110,7 +125,7 @@
{ value: 65, name: '撑杆断裂' }, { value: 65, name: '撑杆断裂' },
{ value: 35, name: '撑杆弯曲' }, { value: 35, name: '撑杆弯曲' },
]" ]"
:colors="['#2196F3', '#9C27B0']" :colors="['#9DFFF3', '#FFA179']"
/> />
</div> </div>
</li> </li>
@ -158,6 +173,12 @@ const deviceStatus = ref({
errorCount: 10, errorCount: 10,
outlineCount: 10 outlineCount: 10
}); });
const searchForm = reactive({
name: "",
status: "",
faultType: "",
});
const activeBtn = ref("月");
onMounted(() => { onMounted(() => {
}); });
</script> </script>

@ -1,71 +1,89 @@
.pole-monitor-wrap { .pole-monitor-wrap {
.search-section{ background-image: url("@/assets/common/bg_banner.png");
padding: 16px 0; // background-color: red;
} background-size: contain;
.pole-monitor-search-box { background-position: center;
display: flex; background-repeat: no-repeat;
align-items: center; .bg_footer_desp{
gap: 12px; width: 100%;
margin: 16px 0; height: 20px;
background-image: url("@/assets/common/bg_banner_footer.png");
// background-color: red;
background-size: contain;
background-position: bottom center;
background-repeat: no-repeat;
} }
.right-panel{
.el-scrollbar__view { .search-section {
background: transparent !important; padding: 16px 0;
height: 600px;
} }
} .pole-main-content {
.pole-monitor-main { width: 100%;
.left-panel { }
.pole-monitor-search-box {
display: flex;
align-items: center;
gap: 12px;
margin: 16px 0;
}
.right-panel {
.el-scrollbar__view {
background: transparent !important;
height: 600px;
}
}
.pole-monitor-main {
.left-panel {
.main-image { .main-image {
box-sizing: border-box; box-sizing: border-box;
min-height: 512px; min-height: 512px;
img { img {
width: 100%; width: 100%;
height: 512px; height: 512px;
} }
} }
.thumbnail-container { .thumbnail-container {
width: 100%; width: 100%;
overflow: visible; overflow: visible;
.swiper { .swiper {
width: 100%;
height: 100%;
.swiper-slide {
width: 20%;
border-radius: 4px;
img {
width: 100%; width: 100%;
height: 100%; height: 144px;
.swiper-slide { border-radius: 4px;
width: 20%;
border-radius:4px;
img {
width: 100%;
height: 100%;
border-radius:4px;
}
}
.active-slide img {
border-radius:4px;
border: 2px solid #2ECCE0;
}
.swiper-button-prev,
.swiper-button-next {
background-color: rgba(0, 0, 0, 0.5);
color: white;
width: 32px;
height: 32px;
border-radius: 50%;
}
.swiper-button-prev::after,
.swiper-button-next::after {
font-size: 12px ;
color: #FFF;
}
/* 修改按钮悬停样式 */
.swiper-button-prev:hover,
.swiper-button-next:hover {
background-color: rgba(0, 0, 0, 0.8);
}
} }
}
.active-slide img {
border-radius: 4px;
border: 2px solid #2ecce0;
}
.swiper-button-prev,
.swiper-button-next {
background-color: rgba(0, 0, 0, 0.5);
color: white;
width: 32px;
height: 32px;
border-radius: 50%;
}
.swiper-button-prev::after,
.swiper-button-next::after {
font-size: 12px;
color: #fff;
}
/* 修改按钮悬停样式 */
.swiper-button-prev:hover,
.swiper-button-next:hover {
background-color: rgba(0, 0, 0, 0.8);
}
}
} }
} }
} }
} }

@ -2,12 +2,12 @@
* @Author: donghao donghao@supervision.ltd * @Author: donghao donghao@supervision.ltd
* @Date: 2025-03-06 15:15:01 * @Date: 2025-03-06 15:15:01
* @LastEditors: donghao donghao@supervision.ltd * @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2025-03-12 11:43:32 * @LastEditTime: 2025-03-12 14:31:43
* @FilePath: \vite-ai\data-dashboard\src\views\dashboard\PoleMonitor.vue * @FilePath: \vite-ai\data-dashboard\src\views\dashboard\PoleMonitor.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
--> -->
<template> <template>
<div class="pole-monitor-wrap"> <div class="pole-monitor-wrap mt-[32px]">
<div class="module-header"> <div class="module-header">
<ContentHeader bgLayout="1855"> <ContentHeader bgLayout="1855">
<template #title> <template #title>
@ -19,63 +19,67 @@
</template> </template>
</ContentHeader> </ContentHeader>
</div> </div>
<!-- 搜索区域 --> <div class="pole-main-content px-[16px]">
<div class="pole-monitor-search-box"> <!-- 搜索区域 -->
<el-select v-model="formData.name" placeholder="列车号" class="custom-select"> <div class="pole-monitor-search-box">
<el-option label="A" value="deviceA"></el-option> <el-select v-model="searchForm.name" placeholder="列车号" class="custom-select">
<el-option label="B" value="deviceB"></el-option> <el-option label="A" value="deviceA"></el-option>
</el-select> <el-option label="B" value="deviceB"></el-option>
<el-select v-model="formData.deviceId" placeholder="车厢号" class="custom-select"> </el-select>
<el-option label="ID-001" value="id001"></el-option> <el-select v-model="searchForm.deviceId" placeholder="车厢号" class="custom-select">
<el-option label="ID-002" value="id002"></el-option> <el-option label="ID-001" value="id001"></el-option>
</el-select> <el-option label="ID-002" value="id002"></el-option>
<el-select v-model="formData.faultType" placeholder="故障类型" class="custom-select"> </el-select>
<el-option label="类型1" value="id001"></el-option> <el-select v-model="searchForm.faultType" placeholder="故障类型" class="custom-select">
<el-option label="类型2" value="id002"></el-option> <el-option label="类型1" value="id001"></el-option>
</el-select> <el-option label="类型2" value="id002"></el-option>
<el-button type="primary" @click="handleQuery" class="basic-btn query-btn"> </el-select>
<span class="icon"></span> 查询 <el-button type="primary" @click="handleQuery" class="basic-btn query-btn">
</el-button> <span class="icon"></span> 查询
<el-button @click="handleReset" class="basic-btn reset-btn"> </el-button>
<span class="icon"></span> 重置 <el-button @click="handleReset" class="basic-btn reset-btn">
</el-button> <span class="icon"></span> 重置
</div> </el-button>
<!-- 主体内容区域 --> </div>
<div class="flex justify-between pole-monitor-main"> <!-- 主体内容区域 -->
<!-- 左侧视频与缩略图区域 --> <div class="flex justify-between pole-monitor-main">
<div class="left-panel w-[900px]"> <!-- 左侧视频与缩略图区域 -->
<!-- 主图显示 --> <div class="left-panel w-[870px]">
<div class="main-image"> <!-- 主图显示 -->
<img src="https://picsum.photos/300/200?random=1" alt="监控画面"> <div class="main-image">
<div class="image-info"> <img src="https://picsum.photos/300/200?random=1" alt="监控画面">
: 35cm : 52cm : 28cm 体积: 50960cm 重量: 58kg <!-- <div class="image-info">
: 35cm : 52cm : 28cm 体积: 50960cm 重量: 58kg
</div> -->
</div> </div>
</div>
<!-- 缩略图区域 --> <!-- 缩略图区域 -->
<div class="thumbnail-container"> <div class="thumbnail-container">
<swiper ref="swiperRef" :modules="modules" :slides-per-view="4" :space-between="10" navigation <swiper ref="swiperRef" :modules="modules" :slides-per-view="4" :space-between="10" navigation
:scrollbar="{ draggable: false }" :centered-slides="false" :observer="true" :scrollbar="{ draggable: false }" :centered-slides="false" :observer="true"
:observeParents="true" @swiper="onSwiper" @slideChange="onSlideChange"> :observeParents="true" @swiper="onSwiper" @slideChange="onSlideChange">
<swiper-slide v-for="(image, index) in images" :key="index" @click="handleSlideClick(index)" <swiper-slide v-for="(image, index) in images" :key="index" @click="handleSlideClick(index)"
:class="{ 'active-slide': activeIndex === index }"> :class="{ 'active-slide': activeIndex === index }">
<img :src="image" alt="Slide" /> <img :src="image" alt="Slide" />
</swiper-slide> </swiper-slide>
</swiper> </swiper>
</div>
</div> </div>
</div> <!-- 右侧表格区域 -->
<!-- 右侧表格区域 --> <div class="right-panel w-[934px]">
<div class="right-panel w-[934px]"> <div class="bg-transparent baseTable_wrap">
<div class="bg-transparent baseTable_wrap"> <template v-if="pagination.total > 0">
<template v-if="pagination.total > 0"> <BaseTable class="bg-transparent baseTable_box" :total="pagination.total"
<BaseTable class="bg-transparent baseTable_box" :total="pagination.total" :pageSize="pagination.pageSize" :dataSource="listData" :isFixedPagination="true"
:pageSize="pagination.pageSize" :dataSource="listData" :isFixedPagination="true" :columns="columns" :page="pagination.currentPage" @change="handleTableChange">
:columns="columns" :page="pagination.currentPage" @change="handleTableChange"> </BaseTable>
</BaseTable> </template>
</template> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="bg_footer_desp">
</div>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
@ -91,12 +95,6 @@ defineOptions({
name: "PoleMonitorIndex" name: "PoleMonitorIndex"
}); });
const modules = [Navigation, Scrollbar]; const modules = [Navigation, Scrollbar];
//
const searchForm = ref({
trainNo: 'all',
carriageNo: 'all',
faultType: 'all'
});
const images = ref([ const images = ref([
'https://picsum.photos/300/200?random=1', 'https://picsum.photos/300/200?random=1',
'https://picsum.photos/300/200?random=2', 'https://picsum.photos/300/200?random=2',
@ -119,7 +117,7 @@ const onSlideChange = () => {
console.log("slide change"); console.log("slide change");
}; };
const currentRow = ref<Record<string, any>>({}); // const currentRow = ref<Record<string, any>>({});
const columns = [ const columns = [
{ {
label: "车号", label: "车号",
@ -167,7 +165,7 @@ const pagination = ref({ currentPage: 1, pageSize: 10, total: 0 });
const listData = ref([]); const listData = ref([]);
const formData = reactive({ const searchForm = reactive({
name: "", name: "",
status: "", status: "",
faultType: "", faultType: "",
@ -179,7 +177,7 @@ const getList = async () => {
const { currentPage, pageSize } = pagination.value; const { currentPage, pageSize } = pagination.value;
const res = await fetch('/api/getPoleMonitorList', { const res = await fetch('/api/getPoleMonitorList', {
method: 'POST', method: 'POST',
body: JSON.stringify({ ...formData, page: currentPage, pageSize }) body: JSON.stringify({ ...searchForm, page: currentPage, pageSize })
}) })
const { data } = await res.json() const { data } = await res.json()
console.log(data, 'getList_data') console.log(data, 'getList_data')
@ -199,8 +197,9 @@ const handleQuery = () => {
// //
const handleReset = () => { const handleReset = () => {
formData.name = ''; searchForm.name = '';
// deviceId.value = ''; // deviceId.value = '';
getList()
}; };
function handleTableChange(record) { function handleTableChange(record) {

@ -12,7 +12,7 @@ const props = defineProps({
const chartContainer = ref<HTMLDivElement | null>(null); const chartContainer = ref<HTMLDivElement | null>(null);
let chartInstance: echarts.ECharts | null = null; let chartInstance: echarts.ECharts | null = null;
const colorsArr = ['#FFCC4A','#028FF5','#06EA7C','#8500FF','#FF7D05','#00D1FF']
// //
const initChart = () => { const initChart = () => {
if (!chartContainer.value) return; if (!chartContainer.value) return;
@ -48,7 +48,7 @@ const updateChart = () => {
color: (params) => color: (params) =>
new echarts.graphic.LinearGradient(0, 0, 1, 0, [ new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{ offset: 0, color: props.colors[params.dataIndex] }, { offset: 0, color: props.colors[params.dataIndex] },
{ offset: 1, color: "#FFFFFF" }, { offset: 1, color: colorsArr[params.dataIndex] },
]), ]),
}, },
data: props.data, data: props.data,

@ -12,7 +12,7 @@ const props = defineProps({
const chartContainer = ref<HTMLDivElement | null>(null); const chartContainer = ref<HTMLDivElement | null>(null);
let chartInstance: echarts.ECharts | null = null; let chartInstance: echarts.ECharts | null = null;
const colorsArr = ['#3FE3FA','#FF4D00']
// //
const initChart = () => { const initChart = () => {
if (!chartContainer.value) return; if (!chartContainer.value) return;
@ -48,7 +48,7 @@ const updateChart = () => {
color: (params) => color: (params) =>
new echarts.graphic.LinearGradient(0, 0, 1, 0, [ new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{ offset: 0, color: props.colors[params.dataIndex] }, { offset: 0, color: props.colors[params.dataIndex] },
{ offset: 1, color: "#FFFFFF" }, { offset: 1, color: colorsArr[params.dataIndex] },
]), ]),
}, },
data: props.data, data: props.data,

Loading…
Cancel
Save