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 @@ + + + + + diff --git a/src/views/appmana/liveCamra/index.vue b/src/views/appmana/liveCamra/index.vue index d28b6e6..2e0c2e2 100644 --- a/src/views/appmana/liveCamra/index.vue +++ b/src/views/appmana/liveCamra/index.vue @@ -1,62 +1,91 @@ - - - - \ No newline at end of file + + diff --git a/src/views/appmana/liveCamra/index_bak.vue b/src/views/appmana/liveCamra/index_bak.vue new file mode 100644 index 0000000..5455ed5 --- /dev/null +++ b/src/views/appmana/liveCamra/index_bak.vue @@ -0,0 +1,60 @@ + + + + diff --git a/src/views/appmana/maintainrecord/SurvMaintainRecord.data.ts b/src/views/appmana/maintainrecord/SurvMaintainRecord.data.ts index a8246ef..84adc67 100644 --- a/src/views/appmana/maintainrecord/SurvMaintainRecord.data.ts +++ b/src/views/appmana/maintainrecord/SurvMaintainRecord.data.ts @@ -10,7 +10,7 @@ export const columns: BasicColumn[] = [ dataIndex: 'stationName' }, { - title: '运维项', + title: '监测情况', align: "center", dataIndex: 'maintainData1' }, @@ -20,7 +20,7 @@ export const columns: BasicColumn[] = [ // dataIndex: 'omName' // }, { - title: '运维时间', + title: '维护时间', align: "center", dataIndex: 'maintainTime' }, @@ -30,7 +30,7 @@ export const columns: BasicColumn[] = [ dataIndex: 'maintainNote' }, { - title: '运维人员', + title: '负责人', align: "center", dataIndex: 'maintainPerson' }, @@ -53,7 +53,7 @@ export const formSchema: FormSchema[] = [ component: 'Input', }, { - label: '运维时间', + label: '维护时间', field: 'maintainTime', component: 'Input', }, @@ -63,7 +63,7 @@ export const formSchema: FormSchema[] = [ component: 'Input', }, { - label: '运维人员', + label: '负责人', field: 'maintainPerson', component: 'Input', }, diff --git a/src/views/appmana/maintainrecord/SurvMaintainRecordList.vue b/src/views/appmana/maintainrecord/SurvMaintainRecordList.vue index ae88fee..68d19b9 100644 --- a/src/views/appmana/maintainrecord/SurvMaintainRecordList.vue +++ b/src/views/appmana/maintainrecord/SurvMaintainRecordList.vue @@ -19,15 +19,15 @@ - + @@ -145,7 +145,7 @@ import { getStationList } from '../station/SurvStationInfo.api'; registerModal.value.disableSubmit = false; registerModal.value.add(); } - + /** * 编辑事件 */ @@ -153,7 +153,7 @@ import { getStationList } from '../station/SurvStationInfo.api'; registerModal.value.disableSubmit = false; registerModal.value.edit(record); } - + /** * 详情 */ @@ -161,28 +161,28 @@ import { getStationList } from '../station/SurvStationInfo.api'; registerModal.value.disableSubmit = true; registerModal.value.edit(record); } - + /** * 删除事件 */ async function handleDelete(record) { await deleteOne({ id: record.id }, handleSuccess); } - + /** * 批量删除事件 */ async function batchHandleDelete() { await batchDelete({ ids: selectedRowKeys.value }, handleSuccess); } - + /** * 成功回调 */ function handleSuccess() { (selectedRowKeys.value = []) && reload(); } - + /** * 操作栏 */ @@ -194,7 +194,7 @@ import { getStationList } from '../station/SurvStationInfo.api'; }, ]; } - + /** * 下拉操作栏 */ @@ -219,7 +219,7 @@ import { getStationList } from '../station/SurvStationInfo.api'; function searchQuery() { reload(); } - + /** * 重置 */ @@ -229,7 +229,7 @@ import { getStationList } from '../station/SurvStationInfo.api'; //刷新数据 reload(); } - + diff --git a/src/views/appmana/maintainrecord/components/SurvMaintainRecordForm.vue b/src/views/appmana/maintainrecord/components/SurvMaintainRecordForm.vue index 83c682d..d4bbd58 100644 --- a/src/views/appmana/maintainrecord/components/SurvMaintainRecordForm.vue +++ b/src/views/appmana/maintainrecord/components/SurvMaintainRecordForm.vue @@ -18,8 +18,23 @@ - - + + + + + + + + + + + + + + + + + - + @@ -47,11 +62,7 @@ - - - - - + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 查询 + 重置 + + + + + +
+ + + + + + + + + + + + + + + + + + + + diff --git a/src/views/appmana/survconfig/components/FSurvConfigForm.vue b/src/views/appmana/survconfig/components/FSurvConfigForm.vue new file mode 100644 index 0000000..bb94c84 --- /dev/null +++ b/src/views/appmana/survconfig/components/FSurvConfigForm.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/src/views/appmana/survconfig/components/FSurvConfigModal.vue b/src/views/appmana/survconfig/components/FSurvConfigModal.vue new file mode 100644 index 0000000..e351801 --- /dev/null +++ b/src/views/appmana/survconfig/components/FSurvConfigModal.vue @@ -0,0 +1,75 @@ + + + + +