diff --git a/package.json b/package.json index cddbed4..5fdfbb7 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "luckyexcel": "v1.0.1", "luckysheet": "2.1.13", "mitt": "^3.0.1", + "mqtt": "^5.10.1", "nprogress": "^0.2.0", "pinia": "^2.1.7", "pinia-plugin-persistedstate": "^3.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 461c2a4..dba9a23 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -74,6 +74,9 @@ importers: mitt: specifier: ^3.0.1 version: 3.0.1 + mqtt: + specifier: ^5.10.1 + version: 5.10.1 nprogress: specifier: ^0.2.0 version: 0.2.0 @@ -271,6 +274,10 @@ packages: resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.8.tgz} engines: {node: '>=6.9.0'} + '@babel/runtime@7.25.6': + resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.25.6.tgz} + engines: {node: '>=6.9.0'} + '@babel/template@7.22.15': resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} @@ -600,6 +607,9 @@ packages: '@types/node@20.10.5': resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==, tarball: https://registry.npmmirror.com/@types/node/-/node-20.10.5.tgz} + '@types/readable-stream@4.0.15': + resolution: {integrity: sha512-oAZ3kw+kJFkEqyh7xORZOku1YAKvsFTogRY8kVl4vHpEKiDkfnSA/My8haRE7fvmix5Zyy+1pwzOi7yycGLBJw==, tarball: https://registry.npmmirror.com/@types/readable-stream/-/readable-stream-4.0.15.tgz} + '@types/splitpanes@2.2.6': resolution: {integrity: sha512-3dV5sO1Ht74iER4jJU03mreL3f+Q2h47ZqXS6Sfbqc6hkCvsDrX1GA0NbYWRdNvZemPyTDzUoApWKeoGbALwkQ==, tarball: https://registry.npmmirror.com/@types/splitpanes/-/splitpanes-2.2.6.tgz} @@ -609,6 +619,9 @@ packages: '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==, tarball: https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz} + '@types/ws@8.5.12': + resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==, tarball: https://registry.npmmirror.com/@types/ws/-/ws-8.5.12.tgz} + '@uppy/companion-client@2.2.2': resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==} @@ -808,6 +821,10 @@ packages: slate: ^0.72.0 snabbdom: ^3.1.0 + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==, tarball: https://registry.npmmirror.com/abort-controller/-/abort-controller-3.0.0.tgz} + engines: {node: '>=6.5'} + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -870,6 +887,9 @@ packages: bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, tarball: https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz} + bl@6.0.15: + resolution: {integrity: sha512-RGhjD1XCPS7ZdAH6cEJVaR3gLV4KJP2hvkQ49AH5kwScjiyd0jBM8RsP4oHKzcx+kNCON9752zPeRnuv0HHwzw==, tarball: https://registry.npmmirror.com/bl/-/bl-6.0.15.tgz} + bluebird@3.4.7: resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==, tarball: https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz} @@ -891,6 +911,9 @@ packages: buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==, tarball: https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz} + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, tarball: https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz} + buffer-indexof-polyfill@1.0.2: resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==, tarball: https://registry.npmmirror.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz} engines: {node: '>=0.10'} @@ -898,6 +921,9 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, tarball: https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz} + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, tarball: https://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz} + buffers@0.1.1: resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==, tarball: https://registry.npmmirror.com/buffers/-/buffers-0.1.1.tgz} engines: {node: '>=0.2.0'} @@ -941,6 +967,9 @@ packages: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==, tarball: https://registry.npmmirror.com/commander/-/commander-9.5.0.tgz} engines: {node: ^12.20.0 || >=14} + commist@3.2.0: + resolution: {integrity: sha512-4PIMoPniho+LqXmpS5d3NuGYncG6XWlkBSVGiWycL22dd42OYdUGil2CWuzklaJoNxyxUSpO4MKIBU94viWNAw==, tarball: https://registry.npmmirror.com/commist/-/commist-3.2.0.tgz} + compress-commons@4.1.2: resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==, tarball: https://registry.npmmirror.com/compress-commons/-/compress-commons-4.1.2.tgz} engines: {node: '>= 10'} @@ -954,6 +983,10 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} + concat-stream@2.0.0: + resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==, tarball: https://registry.npmmirror.com/concat-stream/-/concat-stream-2.0.0.tgz} + engines: {'0': node >= 6.0} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -1068,6 +1101,14 @@ packages: event-emitter@0.3.5: resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==, tarball: https://registry.npmmirror.com/event-target-shim/-/event-target-shim-5.0.1.tgz} + engines: {node: '>=6'} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, tarball: https://registry.npmmirror.com/events/-/events-3.3.0.tgz} + engines: {node: '>=0.8.x'} + exceljs@4.4.0: resolution: {integrity: sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==, tarball: https://registry.npmmirror.com/exceljs/-/exceljs-4.4.0.tgz} engines: {node: '>=8.3.0'} @@ -1085,6 +1126,10 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-unique-numbers@8.0.13: + resolution: {integrity: sha512-7OnTFAVPefgw2eBJ1xj2PGGR9FwYzSUso9decayHgCDX4sJkHLdcsYTytTg+tYv+wKF3U8gJuSBz2jJpQV4u/g==, tarball: https://registry.npmmirror.com/fast-unique-numbers/-/fast-unique-numbers-8.0.13.tgz} + engines: {node: '>=16.1.0'} + file-saver@2.0.5: resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==, tarball: https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz} @@ -1162,6 +1207,9 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, tarball: https://registry.npmmirror.com/he/-/he-1.2.0.tgz} hasBin: true + help-me@5.0.0: + resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==, tarball: https://registry.npmmirror.com/help-me/-/help-me-5.0.0.tgz} + html-tags@3.3.1: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} @@ -1240,6 +1288,9 @@ packages: jquery@3.7.1: resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==} + js-sdsl@4.3.0: + resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==, tarball: https://registry.npmmirror.com/js-sdsl/-/js-sdsl-4.3.0.tgz} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -1348,6 +1399,9 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, tarball: https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -1400,6 +1454,14 @@ packages: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, tarball: https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz} hasBin: true + mqtt-packet@9.0.0: + resolution: {integrity: sha512-8v+HkX+fwbodsWAZIZTI074XIoxVBOmPeggQuDFCGg1SqNcC+uoRMWu7J6QlJPqIUIJXmjNYYHxBBLr1Y/Df4w==, tarball: https://registry.npmmirror.com/mqtt-packet/-/mqtt-packet-9.0.0.tgz} + + mqtt@5.10.1: + resolution: {integrity: sha512-hXCOki8sANoQ7w+2OzJzg6qMBxTtrH9RlnVNV8panLZgnl+Gh0J/t4k6r8Az8+C7y3KAcyXtn0mmLixyUom8Sw==, tarball: https://registry.npmmirror.com/mqtt/-/mqtt-5.10.1.tgz} + engines: {node: '>=16.0.0'} + hasBin: true + ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -1430,6 +1492,9 @@ packages: nprogress@0.2.0: resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==, tarball: https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz} + number-allocator@1.0.14: + resolution: {integrity: sha512-OrL44UTVAvkKdOdRQZIJpLkAdjXGTRda052sN4sO77bKEzYYqWKMBjQvrJFzqygI99gL6Z4u2xctPW1tB8ErvA==, tarball: https://registry.npmmirror.com/number-allocator/-/number-allocator-1.0.14.tgz} + numeral@2.0.6: resolution: {integrity: sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==, tarball: https://registry.npmmirror.com/numeral/-/numeral-2.0.6.tgz} @@ -1492,6 +1557,10 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, tarball: https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz} + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, tarball: https://registry.npmmirror.com/process/-/process-0.11.10.tgz} + engines: {node: '>= 0.6.0'} + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, tarball: https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz} @@ -1506,6 +1575,10 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz} engines: {node: '>= 6'} + readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-4.5.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + readdir-glob@1.1.3: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==, tarball: https://registry.npmmirror.com/readdir-glob/-/readdir-glob-1.1.3.tgz} @@ -1516,6 +1589,9 @@ packages: regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz} + reinterval@1.1.0: + resolution: {integrity: sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ==, tarball: https://registry.npmmirror.com/reinterval/-/reinterval-1.1.0.tgz} + resolve@1.19.0: resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} @@ -1523,6 +1599,9 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==, tarball: https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz} + rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz} deprecated: Rimraf versions prior to v4 are no longer supported @@ -1536,6 +1615,9 @@ packages: safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz} + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz} + sass@1.69.5: resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==, tarball: https://registry.npmmirror.com/sass/-/sass-1.69.5.tgz} engines: {node: '>=14.0.0'} @@ -1584,6 +1666,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, tarball: https://registry.npmmirror.com/split2/-/split2-4.2.0.tgz} + engines: {node: '>= 10.x'} + splitpanes@3.1.5: resolution: {integrity: sha512-r3Mq2ITFQ5a2VXLOy4/Sb2Ptp7OfEO8YIbhVJqJXoFc9hc5nTXXkCvtVDjIGbvC0vdE7tse+xTM9BMjsszP6bw==, tarball: https://registry.npmmirror.com/splitpanes/-/splitpanes-3.1.5.tgz} @@ -1600,6 +1686,9 @@ packages: string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz} + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -1643,12 +1732,18 @@ packages: tslib@2.3.0: resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz} + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.7.0.tgz} + type@1.2.0: resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} type@2.7.2: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==, tarball: https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz} + typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==, tarball: https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz} engines: {node: '>=14.17'} @@ -1779,9 +1874,30 @@ packages: wildcard@1.1.2: resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==} + worker-timers-broker@6.1.8: + resolution: {integrity: sha512-FUCJu9jlK3A8WqLTKXM9E6kAmI/dR1vAJ8dHYLMisLNB/n3GuaFIjJ7pn16ZcD1zCOf7P6H62lWIEBi+yz/zQQ==, tarball: https://registry.npmmirror.com/worker-timers-broker/-/worker-timers-broker-6.1.8.tgz} + + worker-timers-worker@7.0.71: + resolution: {integrity: sha512-ks/5YKwZsto1c2vmljroppOKCivB/ma97g9y77MAAz2TBBjPPgpoOiS1qYQKIgvGTr2QYPT3XhJWIB6Rj2MVPQ==, tarball: https://registry.npmmirror.com/worker-timers-worker/-/worker-timers-worker-7.0.71.tgz} + + worker-timers@7.1.8: + resolution: {integrity: sha512-R54psRKYVLuzff7c1OTFcq/4Hue5Vlz4bFtNEIarpSiCYhpifHU3aIQI29S84o1j87ePCYqbmEJPqwBTf+3sfw==, tarball: https://registry.npmmirror.com/worker-timers/-/worker-timers-7.1.8.tgz} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, tarball: https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==, tarball: https://registry.npmmirror.com/ws/-/ws-8.18.0.tgz} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xe-utils@3.5.14: resolution: {integrity: sha512-Xq6mS8dWwHBQsQUEBXcZYSaBV0KnNLoVWd0vRRDI3nKpbNxfs/LSCK0W21g1edLFnXYfKqg7hh5dakr3RtYY0A==} @@ -1974,6 +2090,10 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/runtime@7.25.6': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/template@7.22.15': dependencies: '@babel/code-frame': 7.23.5 @@ -2252,6 +2372,11 @@ snapshots: dependencies: undici-types: 5.26.5 + '@types/readable-stream@4.0.15': + dependencies: + '@types/node': 20.10.5 + safe-buffer: 5.1.2 + '@types/splitpanes@2.2.6': dependencies: vue: 2.7.16 @@ -2260,6 +2385,10 @@ snapshots: '@types/web-bluetooth@0.0.20': {} + '@types/ws@8.5.12': + dependencies: + '@types/node': 20.10.5 + '@uppy/companion-client@2.2.2': dependencies: '@uppy/utils': 4.1.3 @@ -2565,6 +2694,10 @@ snapshots: slate: 0.72.8 snabbdom: 3.5.1 + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -2656,6 +2789,13 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + bl@6.0.15: + dependencies: + '@types/readable-stream': 4.0.15 + buffer: 6.0.3 + inherits: 2.0.4 + readable-stream: 4.5.2 + bluebird@3.4.7: {} brace-expansion@1.1.11: @@ -2680,6 +2820,8 @@ snapshots: buffer-crc32@0.2.13: {} + buffer-from@1.1.2: {} + buffer-indexof-polyfill@1.0.2: {} buffer@5.7.1: @@ -2687,6 +2829,11 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + buffers@0.1.1: {} camelcase@6.3.0: {} @@ -2732,6 +2879,8 @@ snapshots: commander@9.5.0: optional: true + commist@3.2.0: {} + compress-commons@4.1.2: dependencies: buffer-crc32: 0.2.13 @@ -2745,6 +2894,13 @@ snapshots: concat-map@0.0.1: {} + concat-stream@2.0.0: + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + typedarray: 0.0.6 + convert-source-map@2.0.0: {} core-util-is@1.0.3: {} @@ -2891,6 +3047,10 @@ snapshots: d: 1.0.1 es5-ext: 0.10.62 + event-target-shim@5.0.1: {} + + events@3.3.0: {} + exceljs@4.4.0: dependencies: archiver: 5.3.2 @@ -2916,6 +3076,11 @@ snapshots: fast-json-stable-stringify@2.1.0: {} + fast-unique-numbers@8.0.13: + dependencies: + '@babel/runtime': 7.25.6 + tslib: 2.7.0 + file-saver@2.0.5: {} fill-range@7.0.1: @@ -2981,6 +3146,8 @@ snapshots: he@1.2.0: {} + help-me@5.0.0: {} + html-tags@3.3.1: {} html-void-elements@2.0.1: {} @@ -3041,6 +3208,8 @@ snapshots: jquery@3.7.1: {} + js-sdsl@4.3.0: {} + js-tokens@4.0.0: {} jsesc@2.5.2: {} @@ -3122,6 +3291,8 @@ snapshots: lodash@4.17.21: {} + lru-cache@10.4.3: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -3179,6 +3350,37 @@ snapshots: dependencies: minimist: 1.2.8 + mqtt-packet@9.0.0: + dependencies: + bl: 6.0.15 + debug: 4.3.4 + process-nextick-args: 2.0.1 + transitivePeerDependencies: + - supports-color + + mqtt@5.10.1: + dependencies: + '@types/readable-stream': 4.0.15 + '@types/ws': 8.5.12 + commist: 3.2.0 + concat-stream: 2.0.0 + debug: 4.3.4 + help-me: 5.0.0 + lru-cache: 10.4.3 + minimist: 1.2.8 + mqtt-packet: 9.0.0 + number-allocator: 1.0.14 + readable-stream: 4.5.2 + reinterval: 1.1.0 + rfdc: 1.4.1 + split2: 4.2.0 + worker-timers: 7.1.8 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + ms@2.1.2: {} muggle-string@0.3.1: {} @@ -3197,6 +3399,13 @@ snapshots: nprogress@0.2.0: {} + number-allocator@1.0.14: + dependencies: + debug: 4.3.4 + js-sdsl: 4.3.0 + transitivePeerDependencies: + - supports-color + numeral@2.0.6: {} once@1.4.0: @@ -3242,6 +3451,8 @@ snapshots: process-nextick-args@2.0.1: {} + process@0.11.10: {} + proxy-from-env@1.1.0: {} punycode@2.3.1: {} @@ -3262,6 +3473,14 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 + readable-stream@4.5.2: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + readdir-glob@1.1.3: dependencies: minimatch: 5.1.6 @@ -3272,6 +3491,8 @@ snapshots: regenerator-runtime@0.14.1: {} + reinterval@1.1.0: {} + resolve@1.19.0: dependencies: is-core-module: 2.13.1 @@ -3283,6 +3504,8 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + rfdc@1.4.1: {} + rimraf@2.7.1: dependencies: glob: 7.2.3 @@ -3306,6 +3529,8 @@ snapshots: safe-buffer@5.1.2: {} + safe-buffer@5.2.1: {} + sass@1.69.5: dependencies: chokidar: 3.5.3 @@ -3347,6 +3572,8 @@ snapshots: source-map@0.6.1: {} + split2@4.2.0: {} + splitpanes@3.1.5: {} sprintf-js@1.0.3: {} @@ -3359,6 +3586,10 @@ snapshots: dependencies: safe-buffer: 5.1.2 + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + strip-json-comments@3.1.1: {} supports-color@5.5.0: @@ -3395,10 +3626,14 @@ snapshots: tslib@2.3.0: {} + tslib@2.7.0: {} + type@1.2.0: {} type@2.7.2: {} + typedarray@0.0.6: {} + typescript@5.3.3: {} undici-types@5.26.5: {} @@ -3525,8 +3760,29 @@ snapshots: wildcard@1.1.2: {} + worker-timers-broker@6.1.8: + dependencies: + '@babel/runtime': 7.25.6 + fast-unique-numbers: 8.0.13 + tslib: 2.7.0 + worker-timers-worker: 7.0.71 + + worker-timers-worker@7.0.71: + dependencies: + '@babel/runtime': 7.25.6 + tslib: 2.7.0 + + worker-timers@7.1.8: + dependencies: + '@babel/runtime': 7.25.6 + tslib: 2.7.0 + worker-timers-broker: 6.1.8 + worker-timers-worker: 7.0.71 + wrappy@1.0.2: {} + ws@8.18.0: {} + xe-utils@3.5.14: {} xmlchars@2.2.0: {} diff --git a/src/views/govern/device/fileService/index.vue b/src/views/govern/device/fileService/index.vue index d7dd6a8..319321d 100644 --- a/src/views/govern/device/fileService/index.vue +++ b/src/views/govern/device/fileService/index.vue @@ -93,13 +93,13 @@ item?.prjDataPath && item?.prjDataPath.includes(activePath) && item?.prjDataPath.length > activePath.length - ? item?.prjDataPath.replace(activePath, ' ') - : item?.prjDataPath + ? item?.prjDataPath.replace(activePath, ' ').replace('/', ' ') + : item?.prjDataPath.replace('/', ' ') }}

- + import DeviceTree from '@/components/tree/govern/deviceTree.vue' import { mainHeight } from '@/utils/layout' -import { ref, reactive, watch } from 'vue' -import { ElMessage } from 'element-plus' +import { ref, reactive, watch, onMounted, onBeforeUnmount } from 'vue' +import { ElMessage, ElMessageBox } from 'element-plus' import { getDeviceRootPath, getFileServiceFileOrDir, @@ -157,6 +157,8 @@ import { Search } from '@element-plus/icons-vue' import popup from './popup.vue' +import mqtt from 'mqtt' +import { passwordConfirm, updatePassword } from '@/api/user-boot/user' defineOptions({ name: 'govern/device/fileService' }) @@ -179,16 +181,29 @@ const nodeClick = (e: any) => { dirList.value = [] activePath.value = '' activePathList.value = [] - getDeviceRootPath(nDid.value) - .then((res: any) => { - loading.value = false - dirList.value = [res.data] - activePath.value = res.data.prjDataPath - activePathList.value.map((item: any, index: any) => { - if (item.path.indexOf(res.data.prjDataPath) == -1) { - activePathList.value.push({ path: activePath.value }) - } - }) + // getDeviceRootPath(nDid.value) + // .then((res: any) => { + // loading.value = false + // dirList.value = [res.data] + // activePath.value = res.data.prjDataPath + // activePathList.value.map((item: any, index: any) => { + // if (item.path.indexOf(res.data.prjDataPath) == -1) { + // activePathList.value.push({ path: activePath.value }) + // } + // }) + // }) + // .catch(e => { + // loading.value = false + // }) + activePath.value = '/' + getFileServiceFileOrDir({ nDid: nDid.value, name: activePath.value, type: 'dir' }) + .then((resp: any) => { + if (resp.code == 'A0000') { + dirList.value = resp.data + currentDirList.value = resp.data + activePathList.value = [{ path: activePath.value }] + loading.value = false + } }) .catch(e => { loading.value = false @@ -223,12 +238,28 @@ const handleRefresh = () => { const deviceRestartLoading = ref(false) const handleRestartDevice = () => { deviceRestartLoading.value = true - reStartDevice({ nDid: nDid.value }).then((res: any) => { - if (res.code == 'A0000') { - deviceRestartLoading.value = false - ElMessage.success(res.message) - } + ElMessageBox.prompt('二次校验密码确认', '装置重启', { + confirmButtonText: '确认', + cancelButtonText: '取消', + customClass: 'customInput', + inputType: 'text' }) + .then(({ value }) => { + console.log(document.querySelector('.custom-message-box'), '77788888', value) + passwordConfirm(value).then((resp: any) => { + if (resp.code == 'A0000') { + reStartDevice({ nDid: nDid.value }).then((res: any) => { + if (res.code == 'A0000') { + deviceRestartLoading.value = false + ElMessage({ message: res.message, type: 'success', duration: 5000 }) + } + }) + } + }) + }) + .catch(() => { + deviceRestartLoading.value = false + }) } // 进入文件夹 const dirList = ref([]) @@ -315,6 +346,7 @@ const formRef = ref() const reloadCurrentMenu = (msg: string) => { getFileServiceFileOrDir({ nDid: nDid.value, name: activePath.value, type: 'dir' }).then((resp: any) => { if (resp.code == 'A0000') { + loading.value = false dirList.value = resp.data currentDirList.value = resp.data activePathList.value.map((item: any, index: any) => { @@ -322,9 +354,8 @@ const reloadCurrentMenu = (msg: string) => { activePathList.value.splice(index, 1) } }) - loading.value = false if (!msg) return - ElMessage.success(msg) + ElMessage({ message: msg, type: 'success', duration: 5000 }) } }) } @@ -343,7 +374,7 @@ const submitDeviceDir = () => { addDeviceDir(obj).then((res: any) => { if (res.code == 'A0000') { reloadCurrentMenu(res.message) - // ElMessage.success(res.message) + // ElMessage({ message: res.message, type: 'success', duration: 5000 }) addDeviceDirOpen.value = false } }) @@ -356,7 +387,7 @@ const handleDelDirOrFile = (row: any) => { delDeviceDir({ nDid: nDid.value, path: row.prjDataPath }).then((res: any) => { if (res.code == 'A0000') { reloadCurrentMenu(res.message) - // ElMessage.success(res.message) + // ElMessage({ message: res.message, type: 'success', duration: 5000 }) } }) } @@ -403,9 +434,59 @@ watch( deep: true } ) +const mqttRef = ref() + +const connectMqtt = () => { + if (mqttRef.value) { + if (mqttRef.value.connected) { + return + } + } + const options = { + protocolId: 'MQTT', + qos: 2, + clean: true, + connectTimeout: 30 * 1000, + clientId: 'mqttjs' + Math.random(), + username: 't_user', + password: 'njcnpqs' + } + const url = 'wss://pqmcn.com:8087' + + mqttRef.value = mqtt.connect(url, options) +} +connectMqtt() +mqttRef.value.on('connect', (e: any) => { + ElMessage.success('连接mqtt服务器成功!') + console.log('mqtt客户端已连接....') + mqttRef.value.subscribe('/Web/Progress') +}) + +mqttRef.value.on('message', (topic: any, message: any) => { + // console.log('🚀 ~ mqttRef.value.on ~ message:', JSON.parse(message)) + console.log('mqtt接收到消息' + message) + // "{allStep:\""+times+"\",nowStep:"+i+"}" +}) + +mqttRef.value.on('error', (error: any) => { + console.log('mqtt连接失败...', error) + mqttRef.value.end() +}) + +mqttRef.value.on('close', function () { + console.log('mqtt客户端已断开连接.....') +}) +onMounted(() => {}) +onBeforeUnmount(() => { + if (mqttRef.value) { + mqttRef.value.end() + } +}) -