diff --git a/package.json b/package.json
index 7b8c1a4..702f16a 100644
--- a/package.json
+++ b/package.json
@@ -92,7 +92,10 @@
"vxe-table": "4.1.0",
"vxe-table-plugin-antd": "3.0.5",
"xe-utils": "^3.3.1",
- "xss": "^1.0.13"
+ "xss": "^1.0.13",
+ "video.js": "^8.21.1",
+ "videojs-contrib-hls": "^5.15.0",
+ "videojs-vtt.js": "^0.15.5"
},
"devDependencies": {
"@commitlint/cli": "^16.2.3",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d3cc77a..e0e299e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -150,6 +150,15 @@ importers:
vditor:
specifier: ^3.8.13
version: 3.8.13
+ video.js:
+ specifier: ^8.21.1
+ version: 8.23.4
+ videojs-contrib-hls:
+ specifier: ^5.15.0
+ version: 5.15.0
+ videojs-vtt.js:
+ specifier: ^0.15.5
+ version: 0.15.5
vue:
specifier: ^3.2.33
version: 3.2.33
@@ -2015,6 +2024,19 @@ packages:
resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@videojs/http-streaming@3.17.2':
+ resolution: {integrity: sha512-VBQ3W4wnKnVKb/limLdtSD2rAd5cmHN70xoMf4OmuDd0t2kfJX04G+sfw6u2j8oOm2BXYM9E1f4acHruqKnM1g==}
+ 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-legacy@2.0.0':
resolution: {integrity: sha512-cuc45C4BQo2VlOsHZML4fc3MPfSjOEFeezHxr+WWlOOmi+muy1rz2snnFiePtyjVc1CYGTsnxk13cXpzQvMZaw==}
engines: {node: '>=14.18.0'}
@@ -2214,6 +2236,10 @@ packages:
'@windicss/plugin-utils@1.8.7':
resolution: {integrity: sha512-dfj95olNZyGFDPFMBvE5oq8hA5f0ooUJZjVdWlthS4ek4W1/xNOHDxB6ygWR8LE9zCOXZykApjt1LOhy9Ky2QA==}
+ '@xmldom/xmldom@0.8.11':
+ resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==}
+ engines: {node: '>=10.0.0'}
+
'@zxcvbn-ts/core@2.0.1':
resolution: {integrity: sha512-i3viYattwORK5liqS/d9WaIWSLki75oKVog5Elg9Ls9d8L6zKLwpAkj6PT/P4LZqJHIVRPnKjgajpP6SLerr6Q==}
@@ -2263,6 +2289,12 @@ packages:
resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==}
engines: {node: '>=0.8'}
+ aes-decrypter@1.0.3:
+ resolution: {integrity: sha512-rsx8pfx7wJsn+ziYbpJ8XA5c93hKAtBCrfydxJqJCMT+qfjipd/B5wC2xHtBcoxyvlqJcpeAo3K55t0lXOn9yQ==}
+
+ aes-decrypter@4.0.2:
+ resolution: {integrity: sha512-lc+/9s6iJvuaRe5qDlMTpCFjnwpkeOXp8qP3oiZ5jsj1MRg+SBVUmmICrhxHvc8OELSmc+fEyyxAuppY6hrWzw==}
+
agent-base@6.0.2:
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
engines: {node: '>= 6.0.0'}
@@ -3353,6 +3385,9 @@ packages:
dom-serializer@1.4.1:
resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
+ dom-walk@0.1.2:
+ resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==}
+
domelementtype@1.3.1:
resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==}
@@ -3527,6 +3562,10 @@ packages:
resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
engines: {node: '>= 0.4'}
+ es5-shim@4.6.7:
+ resolution: {integrity: sha512-jg21/dmlrNQI7JyyA2w7n+yifSxBng0ZralnSfVZjoCawgNTCnS+yBCyVM9DL5itm7SUnDGgv7hcq2XCZX4iRQ==}
+ engines: {node: '>=0.4.0'}
+
esbuild-android-64@0.14.54:
resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==}
engines: {node: '>=12'}
@@ -4244,6 +4283,12 @@ packages:
resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
engines: {node: '>=6'}
+ global@4.3.2:
+ resolution: {integrity: sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==}
+
+ global@4.4.0:
+ resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==}
+
globals@13.24.0:
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
engines: {node: '>=8'}
@@ -4534,6 +4579,9 @@ packages:
resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
engines: {node: '>=8'}
+ individual@2.0.0:
+ resolution: {integrity: sha512-pWt8hBCqJsUWI/HtcfWod7+N9SgAqyPEaF7JQjwzjn5vGrpg6aQ5qeAFQ7dx//UH4J1O+7xqew+gCeeFt6xN/g==}
+
inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
@@ -4676,6 +4724,9 @@ packages:
resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
engines: {node: '>=12'}
+ is-function@1.0.2:
+ resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==}
+
is-generator-fn@2.1.0:
resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
engines: {node: '>=6'}
@@ -5327,6 +5378,12 @@ packages:
luxon@1.28.1:
resolution: {integrity: sha512-gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw==}
+ m3u8-parser@2.1.0:
+ resolution: {integrity: sha512-WbEpQ2FUaNGbJ0YanSeyj9D9ruu4FUvz+ZvebIzI2bSME+PUwcPXO1kKXZkjcPUAFruDikoOI5fWQNIA6JCCOQ==}
+
+ m3u8-parser@7.2.0:
+ resolution: {integrity: sha512-CRatFqpjVtMiMaKXxNvuI3I++vUumIXVVT/JpCpdU/FynV/ceVw1qpPyyBNindL+JlPMSesx+WX1QJaZEJSaMQ==}
+
magic-string@0.25.9:
resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
@@ -5455,6 +5512,9 @@ packages:
resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
engines: {node: '>=4'}
+ min-document@2.19.2:
+ resolution: {integrity: sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==}
+
min-indent@1.0.1:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
@@ -5506,6 +5566,10 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ mpd-parser@1.3.1:
+ resolution: {integrity: sha512-1FuyEWI5k2HcmhS1HkKnUAQV7yFPfXPht2DnRRGtoiiAAW+ESTbtEXIDpRkwdU+XyrQuwrIym7UkoPKsZ0SyFw==}
+ hasBin: true
+
mri@1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
@@ -5526,6 +5590,14 @@ packages:
mute-stream@0.0.8:
resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
+ mux.js@4.3.2:
+ resolution: {integrity: sha512-g0q6DPdvb3yYcoK7ElBGobdSSrhY/RjPt19U7uUc733aqvc5bCS/aCvL9z+448y+IoCZnYDwyZfQBBXMSmGOaQ==}
+
+ mux.js@7.1.0:
+ resolution: {integrity: sha512-NTxawK/BBELJrYsZThEulyUMDVlLizKdxyAsMuzoCD1eFj97BVaA8D/CvKsKu6FOLYkFojN5CbM9h++ZTZtknA==}
+ engines: {node: '>=8', npm: '>=5'}
+ hasBin: true
+
nanoid@3.3.11:
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -5788,6 +5860,9 @@ packages:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
+ parse-headers@2.0.6:
+ resolution: {integrity: sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==}
+
parse-json@2.2.0:
resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==}
engines: {node: '>=0.10.0'}
@@ -5932,6 +6007,15 @@ packages:
resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
engines: {node: '>= 6'}
+ pkcs7@0.2.3:
+ resolution: {integrity: sha512-kJRwmADEQUg+qJyRgWLtpEL9q9cFjZschejTEK3GRjKvnsU9G5WWoe/wKqRgbBoqWdVSeTUKP6vIA3Y72M3rWA==}
+ engines: {node: ^0.10, npm: ^1.4.6}
+ hasBin: true
+
+ pkcs7@1.0.4:
+ resolution: {integrity: sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==}
+ hasBin: true
+
pkg-dir@4.2.0:
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
engines: {node: '>=8'}
@@ -6078,6 +6162,14 @@ packages:
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+ process@0.11.10:
+ resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
+ engines: {node: '>= 0.6.0'}
+
+ process@0.5.2:
+ resolution: {integrity: sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==}
+ engines: {node: '>= 0.6.0'}
+
prompts@2.4.2:
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
engines: {node: '>= 6'}
@@ -6378,6 +6470,9 @@ packages:
run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ rust-result@1.0.0:
+ resolution: {integrity: sha512-6cJzSBU+J/RJCF063onnQf0cDUOHs9uZI1oroSGnHOph+CQTIJ5Pp2hK5kEQq1+7yE/EEWfulSNXAQ2jikPthA==}
+
rxjs@6.6.7:
resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==}
engines: {npm: '>=2.0.0'}
@@ -6395,6 +6490,9 @@ packages:
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+ safe-json-parse@4.0.0:
+ resolution: {integrity: sha512-RjZPPHugjK0TOzFrLZ8inw44s9bKox99/0AZW9o/BEQVrJfhI+fIHMErnPyRa89/yRXUUr93q+tiN6zhoVV4wQ==}
+
safe-push-apply@1.0.0:
resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
engines: {node: '>= 0.4'}
@@ -7089,6 +7187,10 @@ packages:
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+ tsml@1.0.1:
+ resolution: {integrity: sha512-3KmepnH9SUsoOVtg013CRrL7c+AK7ECaquAsJdvu4288EDJuraqBlP4PDXT/rLEJ9YDn4jqLAzRJsnFPx+V6lg==}
+ deprecated: no longer maintained
+
tsutils@3.21.0:
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
@@ -7270,6 +7372,9 @@ packages:
resolution: {integrity: sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==}
engines: {node: '>= 4'}
+ url-toolkit@2.2.5:
+ resolution: {integrity: sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg==}
+
use@3.1.1:
resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
engines: {node: '>=0.10.0'}
@@ -7309,6 +7414,40 @@ packages:
vditor@3.8.13:
resolution: {integrity: sha512-vp6OF1n9wIduKtLvvTYtn+7Gr1Az6MqDIEBpLzik+PTQ208YjrcQ+Ba4AHXMMvJgDtbYP3PdY8OixWKecFzo2A==}
+ video.js@6.13.0:
+ resolution: {integrity: sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg==}
+
+ video.js@8.23.4:
+ resolution: {integrity: sha512-qI0VTlYmKzEqRsz1Nppdfcaww4RSxZAq77z2oNSl3cNg2h6do5C8Ffl0KqWQ1OpD8desWXsCrde7tKJ9gGTEyQ==}
+
+ videojs-contrib-hls@5.15.0:
+ resolution: {integrity: sha512-18zbMYZ0XRBKTPEayA9bFTWWrqhT9b4G8+zf0czJLD7Epe5PcK1I/3dflTHQeQ5rwlWir+/XnFU3sMg/B2MMcw==}
+ engines: {node: '>= 0.10.12'}
+
+ videojs-contrib-media-sources@4.7.2:
+ resolution: {integrity: sha512-e6iCHWBFuV05EGo7v+pS9iepObXnJ9joms467gzi8ZjpKVb3ifha9M0Ja24Rd8JfvYpzjltsgDVtGFDvIg4hQQ==}
+
+ videojs-contrib-quality-levels@4.1.0:
+ resolution: {integrity: sha512-TfrXJJg1Bv4t6TOCMEVMwF/CoS8iENYsWNKip8zfhB5kTcegiFYezEA0eHAJPU64ZC8NQbxQgOwAsYU8VXbOWA==}
+ engines: {node: '>=16', npm: '>=8'}
+ peerDependencies:
+ video.js: ^8
+
+ videojs-font@2.1.0:
+ resolution: {integrity: sha512-zFqWpLrXf1q8NtYx5qtZhMC6SLUFScDmR6j+UGPogobxR21lvXShhnzcNNMdOxJUuFLiToJ/BPpFUQwX4xhpvA==}
+
+ videojs-font@4.2.0:
+ resolution: {integrity: sha512-YPq+wiKoGy2/M7ccjmlvwi58z2xsykkkfNMyIg4xb7EZQQNwB71hcSsB3o75CqQV7/y5lXkXhI/rsGAS7jfEmQ==}
+
+ videojs-ie8@1.1.2:
+ resolution: {integrity: sha512-0Zb2T4MLkpfZbeGMK/Z93b8Lrepr+rLFoHgQV1CoDeFqXvH7b+Vsd/VHoILGxQrgCSHFQ7mAODR6oyMjuiD4/g==}
+
+ videojs-vtt.js@0.12.6:
+ resolution: {integrity: sha512-XFXeGBQiljnElMhwCcZst0RDbZn2n8LU7ZScXryd3a00OaZsHAjdZu/7/RdSr7Z1jHphd45FnOvOQkGK4YrWCQ==}
+
+ videojs-vtt.js@0.15.5:
+ resolution: {integrity: sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==}
+
vite-plugin-compression@0.5.1:
resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==}
peerDependencies:
@@ -7572,6 +7711,9 @@ packages:
resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==}
engines: {node: '>=10.4'}
+ webwackify@0.1.6:
+ resolution: {integrity: sha512-pGcw1T3HpNnM/UTRQqqRkkkzythSLts05mB+7Gr00B+0VbL0m39dFL5g20rSIEUt9Wrpw+/8k+snxRlUFHhcqA==}
+
whatwg-encoding@1.0.5:
resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==}
@@ -7724,6 +7866,9 @@ packages:
xe-utils@3.3.1:
resolution: {integrity: sha512-OdQgl9WPV9dK3/djneFPrGX8z1M4neX+VOkzra5oONjoNsCKQhwdiut99WlxceNMQ5vXDv4EQ/wKA2fux3Gdug==}
+ xhr@2.4.0:
+ resolution: {integrity: sha512-TUbBsdAuJbX8olk9hsDwGK8P1ri1XlV+PdEWkYw+HQQbpkiBR8PLgD1F3kQDPBs9l4Px34hP9rCYAZOCCAENbw==}
+
xlsx@0.17.5:
resolution: {integrity: sha512-lXNU0TuYsvElzvtI6O7WIVb9Zar1XYw7Xb3VAx2wn8N/n0whBYrCnHMxtFyIiUU1Wjf09WzmLALDfBO5PqTb1g==}
engines: {node: '>=0.8'}
@@ -9810,6 +9955,28 @@ snapshots:
'@typescript-eslint/types': 5.62.0
eslint-visitor-keys: 3.4.3
+ '@videojs/http-streaming@3.17.2(video.js@8.23.4)':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@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.23.4
+
+ '@videojs/vhs-utils@4.1.1':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ global: 4.4.0
+
+ '@videojs/xhr@2.7.0':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ global: 4.4.0
+ is-function: 1.0.2
+
'@vitejs/plugin-legacy@2.0.0(terser@5.44.1)(vite@3.0.2(less@4.1.2)(sass@1.66.1)(terser@5.44.1))':
dependencies:
'@babel/standalone': 7.28.5
@@ -10101,6 +10268,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@xmldom/xmldom@0.8.11': {}
+
'@zxcvbn-ts/core@2.0.1':
dependencies:
fastest-levenshtein: 1.0.12
@@ -10140,6 +10309,17 @@ snapshots:
adler-32@1.3.1: {}
+ aes-decrypter@1.0.3:
+ dependencies:
+ pkcs7: 0.2.3
+
+ aes-decrypter@4.0.2:
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@videojs/vhs-utils': 4.1.1
+ global: 4.4.0
+ pkcs7: 1.0.4
+
agent-base@6.0.2:
dependencies:
debug: 4.4.3(supports-color@9.4.0)
@@ -11379,6 +11559,8 @@ snapshots:
domhandler: 4.3.1
entities: 2.2.0
+ dom-walk@0.1.2: {}
+
domelementtype@1.3.1: {}
domelementtype@2.3.0: {}
@@ -11615,6 +11797,8 @@ snapshots:
is-date-object: 1.1.0
is-symbol: 1.1.1
+ es5-shim@4.6.7: {}
+
esbuild-android-64@0.14.54:
optional: true
@@ -12411,6 +12595,16 @@ snapshots:
kind-of: 6.0.3
which: 1.3.1
+ global@4.3.2:
+ dependencies:
+ min-document: 2.19.2
+ process: 0.5.2
+
+ global@4.4.0:
+ dependencies:
+ min-document: 2.19.2
+ process: 0.11.10
+
globals@13.24.0:
dependencies:
type-fest: 0.20.2
@@ -12774,6 +12968,8 @@ snapshots:
indent-string@4.0.0: {}
+ individual@2.0.0: {}
+
inflight@1.0.6:
dependencies:
once: 1.4.0
@@ -12937,6 +13133,8 @@ snapshots:
is-fullwidth-code-point@4.0.0: {}
+ is-function@1.0.2: {}
+
is-generator-fn@2.1.0: {}
is-generator-function@1.1.2:
@@ -13816,6 +14014,14 @@ snapshots:
luxon@1.28.1: {}
+ m3u8-parser@2.1.0: {}
+
+ m3u8-parser@7.2.0:
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@videojs/vhs-utils': 4.1.1
+ global: 4.4.0
+
magic-string@0.25.9:
dependencies:
sourcemap-codec: 1.4.8
@@ -13967,6 +14173,10 @@ snapshots:
mimic-response@1.0.1: {}
+ min-document@2.19.2:
+ dependencies:
+ dom-walk: 0.1.2
+
min-indent@1.0.1: {}
minimatch@10.1.1:
@@ -14013,6 +14223,13 @@ snapshots:
bin-build: 3.0.0
bin-wrapper: bin-wrapper-china@0.1.0
+ mpd-parser@1.3.1:
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@videojs/vhs-utils': 4.1.1
+ '@xmldom/xmldom': 0.8.11
+ global: 4.4.0
+
mri@1.2.0: {}
ms@2.0.0: {}
@@ -14031,6 +14248,13 @@ snapshots:
mute-stream@0.0.8: {}
+ mux.js@4.3.2: {}
+
+ mux.js@7.1.0:
+ dependencies:
+ '@babel/runtime': 7.28.4
+ global: 4.4.0
+
nanoid@3.3.11: {}
nanomatch@1.2.13:
@@ -14311,6 +14535,8 @@ snapshots:
dependencies:
callsites: 3.1.0
+ parse-headers@2.0.6: {}
+
parse-json@2.2.0:
dependencies:
error-ex: 1.3.4
@@ -14416,6 +14642,12 @@ snapshots:
pirates@4.0.7: {}
+ pkcs7@0.2.3: {}
+
+ pkcs7@1.0.4:
+ dependencies:
+ '@babel/runtime': 7.28.4
+
pkg-dir@4.2.0:
dependencies:
find-up: 4.1.0
@@ -14553,6 +14785,10 @@ snapshots:
process-nextick-args@2.0.1: {}
+ process@0.11.10: {}
+
+ process@0.5.2: {}
+
prompts@2.4.2:
dependencies:
kleur: 3.0.3
@@ -14865,6 +15101,10 @@ snapshots:
dependencies:
queue-microtask: 1.2.3
+ rust-result@1.0.0:
+ dependencies:
+ individual: 2.0.0
+
rxjs@6.6.7:
dependencies:
tslib: 1.14.1
@@ -14885,6 +15125,10 @@ snapshots:
safe-buffer@5.2.1: {}
+ safe-json-parse@4.0.0:
+ dependencies:
+ rust-result: 1.0.0
+
safe-push-apply@1.0.0:
dependencies:
es-errors: 1.3.0
@@ -15676,6 +15920,8 @@ snapshots:
tslib@2.8.1: {}
+ tsml@1.0.1: {}
+
tsutils@3.21.0(typescript@4.6.3):
dependencies:
tslib: 1.14.1
@@ -15852,6 +16098,8 @@ snapshots:
url-to-options@1.0.1: {}
+ url-toolkit@2.2.5: {}
+
use@3.1.1: {}
util-deprecate@1.0.2: {}
@@ -15885,6 +16133,71 @@ snapshots:
dependencies:
diff-match-patch: 1.0.5
+ video.js@6.13.0:
+ dependencies:
+ babel-runtime: 6.26.0
+ global: 4.3.2
+ safe-json-parse: 4.0.0
+ tsml: 1.0.1
+ videojs-font: 2.1.0
+ videojs-ie8: 1.1.2
+ videojs-vtt.js: 0.12.6
+ xhr: 2.4.0
+
+ video.js@8.23.4:
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@videojs/http-streaming': 3.17.2(video.js@8.23.4)
+ '@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.23.4)
+ videojs-font: 4.2.0
+ videojs-vtt.js: 0.15.5
+
+ videojs-contrib-hls@5.15.0:
+ dependencies:
+ aes-decrypter: 1.0.3
+ global: 4.4.0
+ m3u8-parser: 2.1.0
+ mux.js: 4.3.2
+ url-toolkit: 2.2.5
+ video.js: 6.13.0
+ videojs-contrib-media-sources: 4.7.2
+ webwackify: 0.1.6
+
+ videojs-contrib-media-sources@4.7.2:
+ dependencies:
+ global: 4.4.0
+ mux.js: 4.3.2
+ video.js: 6.13.0
+ webwackify: 0.1.6
+
+ videojs-contrib-quality-levels@4.1.0(video.js@8.23.4):
+ dependencies:
+ global: 4.4.0
+ video.js: 8.23.4
+
+ videojs-font@2.1.0: {}
+
+ videojs-font@4.2.0: {}
+
+ videojs-ie8@1.1.2:
+ dependencies:
+ es5-shim: 4.6.7
+
+ videojs-vtt.js@0.12.6:
+ dependencies:
+ global: 4.4.0
+
+ videojs-vtt.js@0.15.5:
+ dependencies:
+ global: 4.4.0
+
vite-plugin-compression@0.5.1(vite@3.0.2(less@4.1.2)(sass@1.66.1)(terser@5.44.1)):
dependencies:
chalk: 4.1.2
@@ -16235,6 +16548,8 @@ snapshots:
webidl-conversions@6.1.0: {}
+ webwackify@0.1.6: {}
+
whatwg-encoding@1.0.5:
dependencies:
iconv-lite: 0.4.24
@@ -16466,6 +16781,13 @@ snapshots:
xe-utils@3.3.1: {}
+ xhr@2.4.0:
+ dependencies:
+ global: 4.3.2
+ is-function: 1.0.2
+ parse-headers: 2.0.6
+ xtend: 4.0.2
+
xlsx@0.17.5:
dependencies:
adler-32: 1.2.0
diff --git a/public/camera/main_control_bg.png b/public/camera/main_control_bg.png
new file mode 100644
index 0000000..190e37b
Binary files /dev/null and b/public/camera/main_control_bg.png differ
diff --git a/public/camera/step_down.png b/public/camera/step_down.png
new file mode 100644
index 0000000..1b61c6c
Binary files /dev/null and b/public/camera/step_down.png differ
diff --git a/public/camera/step_down_hover.png b/public/camera/step_down_hover.png
new file mode 100644
index 0000000..448677f
Binary files /dev/null and b/public/camera/step_down_hover.png differ
diff --git a/public/camera/step_left.png b/public/camera/step_left.png
new file mode 100644
index 0000000..3c61bcc
Binary files /dev/null and b/public/camera/step_left.png differ
diff --git a/public/camera/step_left_hover.png b/public/camera/step_left_hover.png
new file mode 100644
index 0000000..628bebe
Binary files /dev/null and b/public/camera/step_left_hover.png differ
diff --git a/public/camera/step_right.png b/public/camera/step_right.png
new file mode 100644
index 0000000..f7061e8
Binary files /dev/null and b/public/camera/step_right.png differ
diff --git a/public/camera/step_right_hover.png b/public/camera/step_right_hover.png
new file mode 100644
index 0000000..5f7d892
Binary files /dev/null and b/public/camera/step_right_hover.png differ
diff --git a/public/camera/step_up.png b/public/camera/step_up.png
new file mode 100644
index 0000000..9c69bc8
Binary files /dev/null and b/public/camera/step_up.png differ
diff --git a/public/camera/step_up_hover.png b/public/camera/step_up_hover.png
new file mode 100644
index 0000000..92b01db
Binary files /dev/null and b/public/camera/step_up_hover.png differ
diff --git a/public/camera/video_ctrl.png b/public/camera/video_ctrl.png
new file mode 100644
index 0000000..857169f
Binary files /dev/null and b/public/camera/video_ctrl.png differ
diff --git a/public/camera/video_icon.png b/public/camera/video_icon.png
new file mode 100644
index 0000000..65d3b59
Binary files /dev/null and b/public/camera/video_icon.png differ
diff --git a/public/camera/videoback.jpg b/public/camera/videoback.jpg
new file mode 100644
index 0000000..bc8ce40
Binary files /dev/null and b/public/camera/videoback.jpg differ
diff --git a/public/resource/img/cameras.jpg b/public/resource/img/cameras.jpg
new file mode 100644
index 0000000..bc8ce40
Binary files /dev/null and b/public/resource/img/cameras.jpg differ
diff --git a/src/views/appmana/deploy/SurvDeviceDeploy.api.ts b/src/views/appmana/deploy/SurvDeviceDeploy.api.ts
index a67fe38..fd01486 100644
--- a/src/views/appmana/deploy/SurvDeviceDeploy.api.ts
+++ b/src/views/appmana/deploy/SurvDeviceDeploy.api.ts
@@ -16,6 +16,9 @@ enum Api {
sendDeviceCmd= '/appmana/survDeviceDeploy/sendDeviceCmd',
initDevice = '/appmana/survDeviceDeploy/initDevice',
getDeviceData='/appmana/fDictDeviceDetail/getDeviceData',
+ getCamraInfo = '/appmana/survDeviceDeploy/stationInfoWithCamera',
+ cameraStartApi = '/appmana/survDeviceDeploy/cameraStart',
+ cameraStopApi = '/appmana/survDeviceDeploy/cameraStop',
}
/**
@@ -86,6 +89,15 @@ export const getYsToken = () => {
return defHttp.post({ url: Api.getYsToken }, { isTransformResponse: false });
}
+/**
+ * 获取token
+ * @param params
+ * @param isUpdate
+ */
+export const getCamList = () => {
+ return defHttp.post({ url: Api.getCamraInfo }, { isTransformResponse: false });
+}
+
/**
* 获取球阀状态
@@ -134,3 +146,20 @@ export const deviceInit = (params, handleSuccess) => {
* @param params
*/
export const getDeviceData = (params) => defHttp.get({ url: Api.getDeviceData, params }, { isTransformResponse: false });
+
+
+/**
+ * 摄像头控制开始
+ * @param params
+ */
+export const cameraStart = (params) => {
+ return defHttp.post({ url: Api.cameraStartApi, params }, { isTransformResponse: false });
+}
+
+/**
+ * 摄像头控制结束
+ * @param params
+ */
+export const cameraStop = (params) => {
+ return defHttp.post({ url: Api.cameraStopApi, params }, { isTransformResponse: false });
+}
diff --git a/src/views/appmana/liveCamra/MonitorModal.vue b/src/views/appmana/liveCamra/MonitorModal.vue
new file mode 100644
index 0000000..122c0e6
--- /dev/null
+++ b/src/views/appmana/liveCamra/MonitorModal.vue
@@ -0,0 +1,516 @@
+
+
+