Commit 279cf9b5bda1440b6afe3caabab981a2e16350e9
1 parent
c3a3eedb
装修垃圾清运 取消普通用户,只让投放点管理员登录;新增接收量字段
Showing
13 changed files
with
752 additions
and
265 deletions
garbage-removal/.env.dev
garbage-removal/.env.local
garbage-removal/.hbuilderx/launch.json
| 1 | -{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ | ||
| 2 | - // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 | ||
| 3 | - "version": "0.0", | ||
| 4 | - "configurations": [{ | ||
| 5 | - "default" : | ||
| 6 | - { | ||
| 7 | - "launchtype" : "local" | ||
| 8 | - }, | ||
| 9 | - "mp-weixin" : | ||
| 10 | - { | ||
| 11 | - "launchtype" : "local" | ||
| 12 | - }, | ||
| 13 | - "type" : "uniCloud" | ||
| 14 | - } | 1 | +{ |
| 2 | + // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ | ||
| 3 | + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 | ||
| 4 | + "version" : "0.0", | ||
| 5 | + "configurations" : [ | ||
| 6 | + { | ||
| 7 | + "default" : { | ||
| 8 | + "launchtype" : "local" | ||
| 9 | + }, | ||
| 10 | + "mp-weixin" : { | ||
| 11 | + "launchtype" : "local" | ||
| 12 | + }, | ||
| 13 | + "type" : "uniCloud" | ||
| 14 | + }, | ||
| 15 | + { | ||
| 16 | + "playground" : "standard", | ||
| 17 | + "type" : "uni-app:app-android" | ||
| 18 | + } | ||
| 15 | ] | 19 | ] |
| 16 | } | 20 | } |
garbage-removal/package-lock.json
| @@ -22,17 +22,20 @@ | @@ -22,17 +22,20 @@ | ||
| 22 | "@dcloudio/uni-mp-weixin": "3.0.0-3090620231104002", | 22 | "@dcloudio/uni-mp-weixin": "3.0.0-3090620231104002", |
| 23 | "@dcloudio/uni-mp-xhs": "3.0.0-3090620231104002", | 23 | "@dcloudio/uni-mp-xhs": "3.0.0-3090620231104002", |
| 24 | "@dcloudio/uni-quickapp-webview": "3.0.0-3090620231104002", | 24 | "@dcloudio/uni-quickapp-webview": "3.0.0-3090620231104002", |
| 25 | + "@vitejs/plugin-basic-ssl": "^1.1.0", | ||
| 25 | "axios": "^0.27.2", | 26 | "axios": "^0.27.2", |
| 26 | "clipboard": "^2.0.11", | 27 | "clipboard": "^2.0.11", |
| 27 | "dayjs": "^1.11.10", | 28 | "dayjs": "^1.11.10", |
| 28 | "js-md5": "^0.8.3", | 29 | "js-md5": "^0.8.3", |
| 29 | "pinia": "2.0.33", | 30 | "pinia": "2.0.33", |
| 30 | "pinia-plugin-persist-uni": "^1.2.0", | 31 | "pinia-plugin-persist-uni": "^1.2.0", |
| 32 | + "qrcode-reader-vue3": "^3.1.2", | ||
| 31 | "sass": "1.58.3", | 33 | "sass": "1.58.3", |
| 32 | "sass-loader": "13.2.0", | 34 | "sass-loader": "13.2.0", |
| 33 | "uqrcodejs": "^4.0.7", | 35 | "uqrcodejs": "^4.0.7", |
| 34 | "vue": "^3.2.45", | 36 | "vue": "^3.2.45", |
| 35 | - "vue-i18n": "^9.1.9" | 37 | + "vue-i18n": "^9.1.9", |
| 38 | + "vue3-qr-reader": "^1.0.0" | ||
| 36 | }, | 39 | }, |
| 37 | "devDependencies": { | 40 | "devDependencies": { |
| 38 | "@dcloudio/types": "^3.3.2", | 41 | "@dcloudio/types": "^3.3.2", |
| @@ -3986,6 +3989,17 @@ | @@ -3986,6 +3989,17 @@ | ||
| 3986 | "dev": true, | 3989 | "dev": true, |
| 3987 | "peer": true | 3990 | "peer": true |
| 3988 | }, | 3991 | }, |
| 3992 | + "node_modules/@vitejs/plugin-basic-ssl": { | ||
| 3993 | + "version": "1.2.0", | ||
| 3994 | + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.2.0.tgz", | ||
| 3995 | + "integrity": "sha512-mkQnxTkcldAzIsomk1UuLfAu9n+kpQ3JbHcpCp7d2Oo6ITtji8pHS3QToOWjhPFvNQSnhlkAjmGbhv2QvwO/7Q==", | ||
| 3996 | + "engines": { | ||
| 3997 | + "node": ">=14.21.3" | ||
| 3998 | + }, | ||
| 3999 | + "peerDependencies": { | ||
| 4000 | + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" | ||
| 4001 | + } | ||
| 4002 | + }, | ||
| 3989 | "node_modules/@vitejs/plugin-legacy": { | 4003 | "node_modules/@vitejs/plugin-legacy": { |
| 3990 | "version": "4.1.1", | 4004 | "version": "4.1.1", |
| 3991 | "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.1.1.tgz", | 4005 | "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.1.1.tgz", |
| @@ -4398,6 +4412,26 @@ | @@ -4398,6 +4412,26 @@ | ||
| 4398 | "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", | 4412 | "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", |
| 4399 | "peer": true | 4413 | "peer": true |
| 4400 | }, | 4414 | }, |
| 4415 | + "node_modules/@zxing/library": { | ||
| 4416 | + "version": "0.18.6", | ||
| 4417 | + "resolved": "https://registry.npmmirror.com/@zxing/library/-/library-0.18.6.tgz", | ||
| 4418 | + "integrity": "sha512-bulZ9JHoLFd9W36pi+7e7DnEYNJhljYjZ1UTsKPOoLMU3qtC+REHITeCRNx40zTRJZx18W5TBRXt5pq2Uopjsw==", | ||
| 4419 | + "dependencies": { | ||
| 4420 | + "ts-custom-error": "^3.0.0" | ||
| 4421 | + }, | ||
| 4422 | + "engines": { | ||
| 4423 | + "node": ">= 10.4.0" | ||
| 4424 | + }, | ||
| 4425 | + "optionalDependencies": { | ||
| 4426 | + "@zxing/text-encoding": "~0.9.0" | ||
| 4427 | + } | ||
| 4428 | + }, | ||
| 4429 | + "node_modules/@zxing/text-encoding": { | ||
| 4430 | + "version": "0.9.0", | ||
| 4431 | + "resolved": "https://registry.npmmirror.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", | ||
| 4432 | + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", | ||
| 4433 | + "optional": true | ||
| 4434 | + }, | ||
| 4401 | "node_modules/abab": { | 4435 | "node_modules/abab": { |
| 4402 | "version": "2.0.6", | 4436 | "version": "2.0.6", |
| 4403 | "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz", | 4437 | "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz", |
| @@ -4871,6 +4905,16 @@ | @@ -4871,6 +4905,16 @@ | ||
| 4871 | "dev": true, | 4905 | "dev": true, |
| 4872 | "peer": true | 4906 | "peer": true |
| 4873 | }, | 4907 | }, |
| 4908 | + "node_modules/barcode-detector": { | ||
| 4909 | + "version": "0.7.0", | ||
| 4910 | + "resolved": "https://registry.npmmirror.com/barcode-detector/-/barcode-detector-0.7.0.tgz", | ||
| 4911 | + "integrity": "sha512-SJh+LV6e+W5e6QJe70ralFfqcYwvaOUGWyr+GepuQ5swPH4jF2asyTxOIUZNSU9Z5isD3KWI5hlqQ+b/QaFFOg==", | ||
| 4912 | + "deprecated": "The ownership of barcode-detector has been transferred to a new user. Please update to version 2.0.0 or higher for continued support and maintenance. View the new API and source code at https://github.com/Sec-ant/barcode-detector ", | ||
| 4913 | + "dependencies": { | ||
| 4914 | + "@zxing/library": "^0.18.4", | ||
| 4915 | + "jsqr": "^1.3.1" | ||
| 4916 | + } | ||
| 4917 | + }, | ||
| 4874 | "node_modules/base64-js": { | 4918 | "node_modules/base64-js": { |
| 4875 | "version": "1.5.1", | 4919 | "version": "1.5.1", |
| 4876 | "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", | 4920 | "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", |
| @@ -5115,6 +5159,11 @@ | @@ -5115,6 +5159,11 @@ | ||
| 5115 | "node": ">= 0.4" | 5159 | "node": ">= 0.4" |
| 5116 | } | 5160 | } |
| 5117 | }, | 5161 | }, |
| 5162 | + "node_modules/callforth": { | ||
| 5163 | + "version": "0.4.0", | ||
| 5164 | + "resolved": "https://registry.npmmirror.com/callforth/-/callforth-0.4.0.tgz", | ||
| 5165 | + "integrity": "sha512-k3kD3OBPRvYs3Sb41Fn1T7l6vvSmTMPq1a0jxh8QKD+wb+17G8oOq48eBi0stn8ahpNVUJtPlrlYwbfv9Cfhpg==" | ||
| 5166 | + }, | ||
| 5118 | "node_modules/callsites": { | 5167 | "node_modules/callsites": { |
| 5119 | "version": "3.1.0", | 5168 | "version": "3.1.0", |
| 5120 | "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", | 5169 | "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", |
| @@ -8855,6 +8904,11 @@ | @@ -8855,6 +8904,11 @@ | ||
| 8855 | "graceful-fs": "^4.1.6" | 8904 | "graceful-fs": "^4.1.6" |
| 8856 | } | 8905 | } |
| 8857 | }, | 8906 | }, |
| 8907 | + "node_modules/jsqr": { | ||
| 8908 | + "version": "1.4.0", | ||
| 8909 | + "resolved": "https://registry.npmmirror.com/jsqr/-/jsqr-1.4.0.tgz", | ||
| 8910 | + "integrity": "sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A==" | ||
| 8911 | + }, | ||
| 8858 | "node_modules/kleur": { | 8912 | "node_modules/kleur": { |
| 8859 | "version": "3.0.3", | 8913 | "version": "3.0.3", |
| 8860 | "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz", | 8914 | "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz", |
| @@ -9963,6 +10017,18 @@ | @@ -9963,6 +10017,18 @@ | ||
| 9963 | "integrity": "sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==", | 10017 | "integrity": "sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==", |
| 9964 | "license": "Apache-2.0" | 10018 | "license": "Apache-2.0" |
| 9965 | }, | 10019 | }, |
| 10020 | + "node_modules/qrcode-reader-vue3": { | ||
| 10021 | + "version": "3.1.2", | ||
| 10022 | + "resolved": "https://registry.npmmirror.com/qrcode-reader-vue3/-/qrcode-reader-vue3-3.1.2.tgz", | ||
| 10023 | + "integrity": "sha512-OqhJ4lkKHlyV42Fm5qptm7cdV3X2DRbtCgTNMjcFY7plkMNDqGo+bPxxlGkoPMCHowxXa1pPu9knWPfoqu5mUg==", | ||
| 10024 | + "dependencies": { | ||
| 10025 | + "barcode-detector": "^0.7", | ||
| 10026 | + "callforth": "^0.4", | ||
| 10027 | + "core-js": "^3", | ||
| 10028 | + "vue": "^3", | ||
| 10029 | + "webrtc-adapter": "^7" | ||
| 10030 | + } | ||
| 10031 | + }, | ||
| 9966 | "node_modules/qrcode-terminal": { | 10032 | "node_modules/qrcode-terminal": { |
| 9967 | "version": "0.12.0", | 10033 | "version": "0.12.0", |
| 9968 | "resolved": "https://registry.npmmirror.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", | 10034 | "resolved": "https://registry.npmmirror.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", |
| @@ -10259,6 +10325,18 @@ | @@ -10259,6 +10325,18 @@ | ||
| 10259 | "fsevents": "~2.3.2" | 10325 | "fsevents": "~2.3.2" |
| 10260 | } | 10326 | } |
| 10261 | }, | 10327 | }, |
| 10328 | + "node_modules/rtcpeerconnection-shim": { | ||
| 10329 | + "version": "1.2.15", | ||
| 10330 | + "resolved": "https://registry.npmmirror.com/rtcpeerconnection-shim/-/rtcpeerconnection-shim-1.2.15.tgz", | ||
| 10331 | + "integrity": "sha512-C6DxhXt7bssQ1nHb154lqeL0SXz5Dx4RczXZu2Aa/L1NJFnEVDxFwCBo3fqtuljhHIGceg5JKBV4XJ0gW5JKyw==", | ||
| 10332 | + "dependencies": { | ||
| 10333 | + "sdp": "^2.6.0" | ||
| 10334 | + }, | ||
| 10335 | + "engines": { | ||
| 10336 | + "node": ">=6.0.0", | ||
| 10337 | + "npm": ">=3.10.0" | ||
| 10338 | + } | ||
| 10339 | + }, | ||
| 10262 | "node_modules/run-parallel": { | 10340 | "node_modules/run-parallel": { |
| 10263 | "version": "1.2.0", | 10341 | "version": "1.2.0", |
| 10264 | "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", | 10342 | "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", |
| @@ -10403,6 +10481,11 @@ | @@ -10403,6 +10481,11 @@ | ||
| 10403 | "node": ">= 10.13.0" | 10481 | "node": ">= 10.13.0" |
| 10404 | } | 10482 | } |
| 10405 | }, | 10483 | }, |
| 10484 | + "node_modules/sdp": { | ||
| 10485 | + "version": "2.12.0", | ||
| 10486 | + "resolved": "https://registry.npmmirror.com/sdp/-/sdp-2.12.0.tgz", | ||
| 10487 | + "integrity": "sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw==" | ||
| 10488 | + }, | ||
| 10406 | "node_modules/select": { | 10489 | "node_modules/select": { |
| 10407 | "version": "1.1.2", | 10490 | "version": "1.1.2", |
| 10408 | "resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz", | 10491 | "resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz", |
| @@ -10997,6 +11080,14 @@ | @@ -10997,6 +11080,14 @@ | ||
| 10997 | "node": ">=8" | 11080 | "node": ">=8" |
| 10998 | } | 11081 | } |
| 10999 | }, | 11082 | }, |
| 11083 | + "node_modules/ts-custom-error": { | ||
| 11084 | + "version": "3.3.1", | ||
| 11085 | + "resolved": "https://registry.npmmirror.com/ts-custom-error/-/ts-custom-error-3.3.1.tgz", | ||
| 11086 | + "integrity": "sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==", | ||
| 11087 | + "engines": { | ||
| 11088 | + "node": ">=14.0.0" | ||
| 11089 | + } | ||
| 11090 | + }, | ||
| 11000 | "node_modules/type-detect": { | 11091 | "node_modules/type-detect": { |
| 11001 | "version": "4.0.8", | 11092 | "version": "4.0.8", |
| 11002 | "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", | 11093 | "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", |
| @@ -11404,6 +11495,14 @@ | @@ -11404,6 +11495,14 @@ | ||
| 11404 | "vue": "^3.2.0" | 11495 | "vue": "^3.2.0" |
| 11405 | } | 11496 | } |
| 11406 | }, | 11497 | }, |
| 11498 | + "node_modules/vue3-qr-reader": { | ||
| 11499 | + "version": "1.0.0", | ||
| 11500 | + "resolved": "https://registry.npmmirror.com/vue3-qr-reader/-/vue3-qr-reader-1.0.0.tgz", | ||
| 11501 | + "integrity": "sha512-BRgmR+lDPkNwgL6skSaEOGFg4Aup/FLYnOGFCV0knYHxfbAnliJN/+wr//iqD2G3EOBrXw4TPGNfj/5Wxl7wwQ==", | ||
| 11502 | + "dependencies": { | ||
| 11503 | + "jsqr": "^1.4.0" | ||
| 11504 | + } | ||
| 11505 | + }, | ||
| 11407 | "node_modules/w3c-hr-time": { | 11506 | "node_modules/w3c-hr-time": { |
| 11408 | "version": "1.0.2", | 11507 | "version": "1.0.2", |
| 11409 | "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", | 11508 | "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", |
| @@ -11513,6 +11612,19 @@ | @@ -11513,6 +11612,19 @@ | ||
| 11513 | "node": ">=10.13.0" | 11612 | "node": ">=10.13.0" |
| 11514 | } | 11613 | } |
| 11515 | }, | 11614 | }, |
| 11615 | + "node_modules/webrtc-adapter": { | ||
| 11616 | + "version": "7.7.1", | ||
| 11617 | + "resolved": "https://registry.npmmirror.com/webrtc-adapter/-/webrtc-adapter-7.7.1.tgz", | ||
| 11618 | + "integrity": "sha512-TbrbBmiQBL9n0/5bvDdORc6ZfRY/Z7JnEj+EYOD1ghseZdpJ+nF2yx14k3LgQKc7JZnG7HAcL+zHnY25So9d7A==", | ||
| 11619 | + "dependencies": { | ||
| 11620 | + "rtcpeerconnection-shim": "^1.2.15", | ||
| 11621 | + "sdp": "^2.12.0" | ||
| 11622 | + }, | ||
| 11623 | + "engines": { | ||
| 11624 | + "node": ">=6.0.0", | ||
| 11625 | + "npm": ">=3.10.0" | ||
| 11626 | + } | ||
| 11627 | + }, | ||
| 11516 | "node_modules/whatwg-encoding": { | 11628 | "node_modules/whatwg-encoding": { |
| 11517 | "version": "1.0.5", | 11629 | "version": "1.0.5", |
| 11518 | "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", | 11630 | "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", |
garbage-removal/package.json
| @@ -54,17 +54,20 @@ | @@ -54,17 +54,20 @@ | ||
| 54 | "@dcloudio/uni-mp-weixin": "3.0.0-3090620231104002", | 54 | "@dcloudio/uni-mp-weixin": "3.0.0-3090620231104002", |
| 55 | "@dcloudio/uni-mp-xhs": "3.0.0-3090620231104002", | 55 | "@dcloudio/uni-mp-xhs": "3.0.0-3090620231104002", |
| 56 | "@dcloudio/uni-quickapp-webview": "3.0.0-3090620231104002", | 56 | "@dcloudio/uni-quickapp-webview": "3.0.0-3090620231104002", |
| 57 | + "@vitejs/plugin-basic-ssl": "^1.1.0", | ||
| 57 | "axios": "^0.27.2", | 58 | "axios": "^0.27.2", |
| 58 | "clipboard": "^2.0.11", | 59 | "clipboard": "^2.0.11", |
| 59 | "dayjs": "^1.11.10", | 60 | "dayjs": "^1.11.10", |
| 60 | "js-md5": "^0.8.3", | 61 | "js-md5": "^0.8.3", |
| 61 | "pinia": "2.0.33", | 62 | "pinia": "2.0.33", |
| 62 | "pinia-plugin-persist-uni": "^1.2.0", | 63 | "pinia-plugin-persist-uni": "^1.2.0", |
| 64 | + "qrcode-reader-vue3": "^3.1.2", | ||
| 63 | "sass": "1.58.3", | 65 | "sass": "1.58.3", |
| 64 | "sass-loader": "13.2.0", | 66 | "sass-loader": "13.2.0", |
| 65 | "uqrcodejs": "^4.0.7", | 67 | "uqrcodejs": "^4.0.7", |
| 66 | "vue": "^3.2.45", | 68 | "vue": "^3.2.45", |
| 67 | - "vue-i18n": "^9.1.9" | 69 | + "vue-i18n": "^9.1.9", |
| 70 | + "vue3-qr-reader": "^1.0.0" | ||
| 68 | }, | 71 | }, |
| 69 | "devDependencies": { | 72 | "devDependencies": { |
| 70 | "@dcloudio/types": "^3.3.2", | 73 | "@dcloudio/types": "^3.3.2", |
garbage-removal/src/components/QrScanner/QrScanner.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div> | ||
| 3 | + <QrStream | ||
| 4 | + :style="scannerStyle" | ||
| 5 | + @decode="handleDecode" | ||
| 6 | + @init="handleInit" | ||
| 7 | + @error="handleError" | ||
| 8 | + > | ||
| 9 | + <template v-if="showCloseButton"> | ||
| 10 | + <div class="qr-scanner-container"> | ||
| 11 | + <button class="close-view" @click="closeScanner"><span>X</span></button> | ||
| 12 | + <div class="qr-scanner"> | ||
| 13 | + <div class="box"> | ||
| 14 | + <div class="line"></div> | ||
| 15 | + <div class="angle"></div> | ||
| 16 | + </div> | ||
| 17 | + </div> | ||
| 18 | + </div> | ||
| 19 | + </template> | ||
| 20 | + </QrStream> | ||
| 21 | + </div> | ||
| 22 | +</template> | ||
| 23 | + | ||
| 24 | +<script setup> | ||
| 25 | +import { ref, defineExpose } from 'vue' | ||
| 26 | +import { QrStream } from 'vue3-qr-reader' | ||
| 27 | + | ||
| 28 | +const emit = defineEmits(['decode','close']) | ||
| 29 | + | ||
| 30 | +const scannerStyle = { | ||
| 31 | + position: 'fixed', | ||
| 32 | + top: 0, | ||
| 33 | + left: 0, | ||
| 34 | + width: '100vw', | ||
| 35 | + height: '100vh', | ||
| 36 | + zIndex: 9999, | ||
| 37 | +} | ||
| 38 | + | ||
| 39 | +const showCloseButton = ref(false) | ||
| 40 | + | ||
| 41 | +const qrcodeData = ref(null) | ||
| 42 | + | ||
| 43 | +const handleDecode = (data) => { | ||
| 44 | + console.log('Decoded data:', data) | ||
| 45 | + emit('decode', data) | ||
| 46 | + qrcodeData.value = data | ||
| 47 | + | ||
| 48 | +} | ||
| 49 | + | ||
| 50 | +const closeScanner = () => { | ||
| 51 | + emit('close') | ||
| 52 | +} | ||
| 53 | + | ||
| 54 | +const handleInit = async (promise) => { | ||
| 55 | + try { | ||
| 56 | + const { capabilities } = await promise | ||
| 57 | + console.log('Camera capabilities:', capabilities) | ||
| 58 | + showCloseButton.value = true | ||
| 59 | + } catch (error) { | ||
| 60 | + handleError(error) | ||
| 61 | + | ||
| 62 | + } | ||
| 63 | +} | ||
| 64 | + | ||
| 65 | +const handleError = (error) => { | ||
| 66 | + const errorMessages = { | ||
| 67 | + NotAllowedError: '您需要授予相机访问权限', | ||
| 68 | + NotFoundError: '这个设备上没有摄像头', | ||
| 69 | + NotSupportedError: '所需的安全上下文(HTTPS、本地主机)', | ||
| 70 | + NotReadableError: '相机被占用', | ||
| 71 | + OverconstrainedError: '安装摄像头不合适', | ||
| 72 | + StreamApiNotSupportedError: '此浏览器不支持流API', | ||
| 73 | + InsecureContextError: '仅允许在安全上下文中访问摄像机。使用HTTPS或本地主机,而不是HTTP。', | ||
| 74 | + } | ||
| 75 | + | ||
| 76 | + const message = errorMessages[error.name] || 'ERROR: 摄像头错误' | ||
| 77 | + message.error(message) | ||
| 78 | + console.error(message) | ||
| 79 | +} | ||
| 80 | + | ||
| 81 | +defineExpose({ qrcodeData }) | ||
| 82 | +</script> | ||
| 83 | + | ||
| 84 | +<style scoped lang="scss"> | ||
| 85 | +.qr-scanner-container { | ||
| 86 | + position: relative; | ||
| 87 | + width: 100%; | ||
| 88 | + height: 100%; | ||
| 89 | + | ||
| 90 | + .close-view { | ||
| 91 | + width: 30px; | ||
| 92 | + height: 30px; | ||
| 93 | + position: absolute; | ||
| 94 | + top: 30px; | ||
| 95 | + right: 30px; | ||
| 96 | + border-radius: 50%; | ||
| 97 | + background-color: #fff; | ||
| 98 | + color: #000; | ||
| 99 | + text-align: left; | ||
| 100 | + line-height: 30px; | ||
| 101 | + font-size: 20px; | ||
| 102 | + cursor: pointer; | ||
| 103 | + z-index: 1000000; | ||
| 104 | + } | ||
| 105 | +} | ||
| 106 | + | ||
| 107 | +.qr-scanner { | ||
| 108 | + background-image: linear-gradient( | ||
| 109 | + 0deg, | ||
| 110 | + transparent 24%, | ||
| 111 | + rgba(32, 255, 77, 0.1) 25%, | ||
| 112 | + rgba(32, 255, 77, 0.1) 26%, | ||
| 113 | + transparent 27%, | ||
| 114 | + transparent 74%, | ||
| 115 | + rgba(32, 255, 77, 0.1) 75%, | ||
| 116 | + rgba(32, 255, 77, 0.1) 76%, | ||
| 117 | + transparent 77%, | ||
| 118 | + transparent | ||
| 119 | + ), | ||
| 120 | + linear-gradient( | ||
| 121 | + 90deg, | ||
| 122 | + transparent 24%, | ||
| 123 | + rgba(32, 255, 77, 0.1) 25%, | ||
| 124 | + rgba(32, 255, 77, 0.1) 26%, | ||
| 125 | + transparent 27%, | ||
| 126 | + transparent 74%, | ||
| 127 | + rgba(32, 255, 77, 0.1) 75%, | ||
| 128 | + rgba(32, 255, 77, 0.1) 76%, | ||
| 129 | + transparent 77%, | ||
| 130 | + transparent | ||
| 131 | + ); | ||
| 132 | + background-size: 3rem 3rem; | ||
| 133 | + background-position: -1rem -1rem; | ||
| 134 | + width: 100%; | ||
| 135 | + /* height: 100%; */ | ||
| 136 | + height: 100vh; | ||
| 137 | + position: relative; | ||
| 138 | + background-color: #1110; | ||
| 139 | + | ||
| 140 | + /* background-color: #111; */ | ||
| 141 | +} | ||
| 142 | + | ||
| 143 | +.qr-scanner .box { | ||
| 144 | + width: 213px; | ||
| 145 | + height: 213px; | ||
| 146 | + position: absolute; | ||
| 147 | + left: 50%; | ||
| 148 | + top: 50%; | ||
| 149 | + transform: translate(-50%, -50%); | ||
| 150 | + overflow: hidden; | ||
| 151 | + border: 0.1rem solid rgba(0, 255, 51, 0.2); | ||
| 152 | + /* background: url('http://resource.beige.world/imgs/gongconghao.png') no-repeat center center; */ | ||
| 153 | +} | ||
| 154 | + | ||
| 155 | +.qr-scanner .line { | ||
| 156 | + height: calc(100% - 2px); | ||
| 157 | + width: 100%; | ||
| 158 | + background: linear-gradient(180deg, rgba(0, 255, 51, 0) 43%, #00ff33 211%); | ||
| 159 | + border-bottom: 3px solid #00ff33; | ||
| 160 | + transform: translateY(-100%); | ||
| 161 | + animation: radar-beam 2s infinite alternate; | ||
| 162 | + animation-timing-function: cubic-bezier(0.53, 0, 0.43, 0.99); | ||
| 163 | + animation-delay: 1.4s; | ||
| 164 | +} | ||
| 165 | + | ||
| 166 | +.qr-scanner .box:after, | ||
| 167 | +.qr-scanner .box:before, | ||
| 168 | +.qr-scanner .angle:after, | ||
| 169 | +.qr-scanner .angle:before { | ||
| 170 | + content: ''; | ||
| 171 | + display: block; | ||
| 172 | + position: absolute; | ||
| 173 | + width: 3vw; | ||
| 174 | + height: 3vw; | ||
| 175 | + | ||
| 176 | + border: 0.2rem solid transparent; | ||
| 177 | +} | ||
| 178 | + | ||
| 179 | +.qr-scanner .box:after, | ||
| 180 | +.qr-scanner .box:before { | ||
| 181 | + top: 0; | ||
| 182 | + border-top-color: #00ff33; | ||
| 183 | +} | ||
| 184 | + | ||
| 185 | +.qr-scanner .angle:after, | ||
| 186 | +.qr-scanner .angle:before { | ||
| 187 | + bottom: 0; | ||
| 188 | + border-bottom-color: #00ff33; | ||
| 189 | +} | ||
| 190 | + | ||
| 191 | +.qr-scanner .box:before, | ||
| 192 | +.qr-scanner .angle:before { | ||
| 193 | + left: 0; | ||
| 194 | + border-left-color: #00ff33; | ||
| 195 | +} | ||
| 196 | + | ||
| 197 | +.qr-scanner .box:after, | ||
| 198 | +.qr-scanner .angle:after { | ||
| 199 | + right: 0; | ||
| 200 | + border-right-color: #00ff33; | ||
| 201 | +} | ||
| 202 | + | ||
| 203 | +@keyframes radar-beam { | ||
| 204 | + 0% { | ||
| 205 | + transform: translateY(-100%); | ||
| 206 | + } | ||
| 207 | + | ||
| 208 | + 100% { | ||
| 209 | + transform: translateY(0); | ||
| 210 | + } | ||
| 211 | +} | ||
| 212 | +</style> |
garbage-removal/src/components/liu-delivery-time/liu-delivery-time.vue
| @@ -104,13 +104,14 @@ const getFutureDays = () => { | @@ -104,13 +104,14 @@ const getFutureDays = () => { | ||
| 104 | const month = (date.getMonth() + 1).toString().padStart(2, '0'); | 104 | const month = (date.getMonth() + 1).toString().padStart(2, '0'); |
| 105 | const day = date.getDate().toString().padStart(2, '0'); | 105 | const day = date.getDate().toString().padStart(2, '0'); |
| 106 | if (i === 0) { | 106 | if (i === 0) { |
| 107 | - let hours = new Date().getHours(); | 107 | + let hours = date.getHours(); |
| 108 | + console.log(hours); | ||
| 108 | // if (hours >= 13) { | 109 | // if (hours >= 13) { |
| 109 | // continue; | 110 | // continue; |
| 110 | // } | 111 | // } |
| 111 | days.push({ | 112 | days.push({ |
| 112 | day: `${year}-${month}-${day}`, | 113 | day: `${year}-${month}-${day}`, |
| 113 | - timeList: getCurrentDayTimeList(9, hours, 1) | 114 | + timeList: getCurrentDayTimeList(0, hours, 1) |
| 114 | }); | 115 | }); |
| 115 | } else { | 116 | } else { |
| 116 | days.push({ | 117 | days.push({ |
garbage-removal/src/pages/home-info/clean/index.vue
| @@ -25,7 +25,7 @@ | @@ -25,7 +25,7 @@ | ||
| 25 | </view> | 25 | </view> |
| 26 | <view @click.stop="handleTimeChoose" class="company-clean-container-header-reservation"> | 26 | <view @click.stop="handleTimeChoose" class="company-clean-container-header-reservation"> |
| 27 | <view class="company-clean-container-header-reservation-left"> | 27 | <view class="company-clean-container-header-reservation-left"> |
| 28 | - <text style="color: red;">*</text> <u-icon name="calendar" size="40"></u-icon>123预约时间123 | 28 | + <text style="color: red;">*</text> <u-icon name="calendar" size="40"></u-icon>预约时间 |
| 29 | </view> | 29 | </view> |
| 30 | <view class="company-clean-container-header-reservation-right"> | 30 | <view class="company-clean-container-header-reservation-right"> |
| 31 | <text style="margin-right: 10rpx;">{{ dayTime ? dayTime : "请选择时间" }}</text> <u-icon name="arrow-right" | 31 | <text style="margin-right: 10rpx;">{{ dayTime ? dayTime : "请选择时间" }}</text> <u-icon name="arrow-right" |
| @@ -490,8 +490,7 @@ const handleOderSure = async () => { | @@ -490,8 +490,7 @@ const handleOderSure = async () => { | ||
| 490 | garLongitude: userAddress.value.garLongitude, | 490 | garLongitude: userAddress.value.garLongitude, |
| 491 | garLatitude: userAddress.value.garLatitude, | 491 | garLatitude: userAddress.value.garLatitude, |
| 492 | garCoordinate: userAddress.value.garCoordinate, | 492 | garCoordinate: userAddress.value.garCoordinate, |
| 493 | - garInCarStore: paramFrom.value.garInCarStore, | ||
| 494 | - garEstimatedCost:paramFrom.value.garEstimatedCost | 493 | + garInCarStore: paramFrom.value.garInCarStore |
| 495 | } | 494 | } |
| 496 | console.log("----------------------->5"); | 495 | console.log("----------------------->5"); |
| 497 | if (!validateParams(params)) { | 496 | if (!validateParams(params)) { |
garbage-removal/src/pages/login/code.vue
| @@ -69,18 +69,18 @@ const noCaptcha = () => { | @@ -69,18 +69,18 @@ const noCaptcha = () => { | ||
| 69 | 69 | ||
| 70 | // 校验验证码 | 70 | // 校验验证码 |
| 71 | const checkVerifyNum = (code) => { | 71 | const checkVerifyNum = (code) => { |
| 72 | - userLogin({ loginType: 0, tel: iphoneNumber.value, code: code }).then(res => { | 72 | + userLogin({ loginType: 0, tel: iphoneNumber.value, code: code }).then(res => { |
| 73 | // 登录成功 | 73 | // 登录成功 |
| 74 | - if (res.data.success) { | 74 | + if (res.data.code===200) { |
| 75 | verifyFlag.value = false; | 75 | verifyFlag.value = false; |
| 76 | store.tempToken = res.data.data.token | 76 | store.tempToken = res.data.data.token |
| 77 | - | ||
| 78 | store.userName = res.data.data.name; | 77 | store.userName = res.data.data.name; |
| 79 | uni.navigateTo({ | 78 | uni.navigateTo({ |
| 80 | url: `/pages/wode-info/wode-info-choose/index?ruleVos= ${encodeURIComponent(JSON.stringify(res.data.data.ruleVos))}&userName=${encodeURIComponent(res.data.data.name)}` | 79 | url: `/pages/wode-info/wode-info-choose/index?ruleVos= ${encodeURIComponent(JSON.stringify(res.data.data.ruleVos))}&userName=${encodeURIComponent(res.data.data.name)}` |
| 81 | }); | 80 | }); |
| 82 | } else { | 81 | } else { |
| 83 | verifyFlag.value = true; | 82 | verifyFlag.value = true; |
| 83 | + uni.$u.toast(res.data.message); | ||
| 84 | } | 84 | } |
| 85 | }) | 85 | }) |
| 86 | } | 86 | } |
garbage-removal/src/pages/order-info/order-disposal/scan-detail/index.vue
| @@ -56,6 +56,15 @@ | @@ -56,6 +56,15 @@ | ||
| 56 | v-model="details.garCarryingWeight" @change="handlerInputChange"></up-input> | 56 | v-model="details.garCarryingWeight" @change="handlerInputChange"></up-input> |
| 57 | </view> | 57 | </view> |
| 58 | </view> | 58 | </view> |
| 59 | + <view class="scan-car-num"> | ||
| 60 | + <view class="scan-car-num-label"> | ||
| 61 | + 接收量 | ||
| 62 | + </view> | ||
| 63 | + <view class="scan-car-num-content"> | ||
| 64 | + <up-input :disabled="!isDeletable" placeholder="请输入数字" border="surround" | ||
| 65 | + v-model="details.garReceptionQuantity" @change="handlerInputChange"></up-input> | ||
| 66 | + </view> | ||
| 67 | + </view> | ||
| 59 | <view class="scan-upload-fill-image-box"> | 68 | <view class="scan-upload-fill-image-box"> |
| 60 | <view class="scan-upload-fill-image-label"> | 69 | <view class="scan-upload-fill-image-label"> |
| 61 | <view> | 70 | <view> |
| @@ -159,6 +168,10 @@ const validateParams = (params) => { | @@ -159,6 +168,10 @@ const validateParams = (params) => { | ||
| 159 | uni.$u.toast("请输入处理人单位"); | 168 | uni.$u.toast("请输入处理人单位"); |
| 160 | return false; | 169 | return false; |
| 161 | } | 170 | } |
| 171 | + if (!params.garReceptionQuantity) { | ||
| 172 | + uni.$u.toast("请输入接收量"); | ||
| 173 | + return false; | ||
| 174 | + } | ||
| 162 | if (!validateImage(params.fillImageList)) { | 175 | if (!validateImage(params.fillImageList)) { |
| 163 | return false; | 176 | return false; |
| 164 | } | 177 | } |
garbage-removal/src/pages/order/order-disposal/index.vue
| 1 | <template> | 1 | <template> |
| 2 | - <view class="order-container"> | ||
| 3 | - <!-- #ifdef H5 --> | ||
| 4 | - <z-paging-swiper :fixed="false"> | ||
| 5 | - <!-- #endif --> | ||
| 6 | - <!-- #ifdef MP-WEIXIN --> | ||
| 7 | - <z-paging-swiper> | ||
| 8 | - <!-- #endif --> | ||
| 9 | - <template v-slot:top> | ||
| 10 | - <view class="header-box" :style="{ | 2 | + <view class="order-container"> |
| 3 | + <!-- #ifdef H5 --> | ||
| 4 | + <z-paging-swiper :fixed="false"> | ||
| 5 | + <!-- #endif --> | ||
| 6 | + <!-- #ifdef MP-WEIXIN --> | ||
| 7 | + <z-paging-swiper> | ||
| 8 | + <!-- #endif --> | ||
| 9 | + <template v-slot:top> | ||
| 10 | + <view class="header-box" :style="{ | ||
| 11 | 'height': lightHeight, 'line-height': lightHeight, | 11 | 'height': lightHeight, 'line-height': lightHeight, |
| 12 | 'padding-top': topMargin | 12 | 'padding-top': topMargin |
| 13 | } | 13 | } |
| 14 | "> | 14 | "> |
| 15 | - <view class="header-box-left-message"> | ||
| 16 | - | ||
| 17 | - </view> | ||
| 18 | - <view class="header-box-title"> | ||
| 19 | - {{ title }} | ||
| 20 | - </view> | ||
| 21 | - </view> | ||
| 22 | - <u-tabs lineWidth=" 40" lineColor="#ffffff" lineHeight="6" | ||
| 23 | - :activeStyle="{ 'color': '#ffffff', 'font-weight': 'bolder' }" :inactiveStyle="{ color: '#ffffff' }" | ||
| 24 | - ref="uTabsElement" :list="list" :current="current" @change="tabsChange" :scrollable="false"></u-tabs> | ||
| 25 | - </template> | ||
| 26 | - <swiper class="swiper" :current="swiperCurrent" @translation="translation" @animationfinish="animationfinish"> | ||
| 27 | - <swiper-item class="swiper-item" v-for="( item, index ) in list " :key="index"> | ||
| 28 | - <swiper-list-item :tabIndex="index" :currentIndex="swiperCurrent"></swiper-list-item> | ||
| 29 | - </swiper-item> | ||
| 30 | - </swiper> | ||
| 31 | - </z-paging-swiper> | ||
| 32 | - | ||
| 33 | - </view> | ||
| 34 | - <view class="scan-box"> | ||
| 35 | - <view class="scan-btn"> | ||
| 36 | - <view class="scan-icon"> | ||
| 37 | - | ||
| 38 | - | ||
| 39 | - <!-- #ifdef H5 --> | ||
| 40 | - <u-icon @click="handleScanH5" name="scan" :size="80" color="#fff"></u-icon> | ||
| 41 | - <!-- #endif --> | ||
| 42 | - </view> | ||
| 43 | - </view> | ||
| 44 | - </view> | 15 | + <view class="header-box-left-message"> |
| 16 | + | ||
| 17 | + </view> | ||
| 18 | + <view class="header-box-title"> | ||
| 19 | + {{ title }} | ||
| 20 | + </view> | ||
| 21 | + </view> | ||
| 22 | + <u-tabs lineWidth=" 40" lineColor="#ffffff" lineHeight="6" | ||
| 23 | + :activeStyle="{ 'color': '#ffffff', 'font-weight': 'bolder' }" | ||
| 24 | + :inactiveStyle="{ color: '#ffffff' }" ref="uTabsElement" :list="list" :current="current" | ||
| 25 | + @change="tabsChange" :scrollable="false"></u-tabs> | ||
| 26 | + </template> | ||
| 27 | + <swiper class="swiper" :current="swiperCurrent" @translation="translation" | ||
| 28 | + @animationfinish="animationfinish"> | ||
| 29 | + <swiper-item class="swiper-item" v-for="( item, index ) in list " :key="index"> | ||
| 30 | + <swiper-list-item :tabIndex="index" :currentIndex="swiperCurrent"></swiper-list-item> | ||
| 31 | + </swiper-item> | ||
| 32 | + </swiper> | ||
| 33 | + </z-paging-swiper> | ||
| 34 | + | ||
| 35 | + </view> | ||
| 36 | + <view class="scan-box"> | ||
| 37 | + <view class="scan-btn"> | ||
| 38 | + <view class="scan-icon"> | ||
| 39 | + | ||
| 40 | + | ||
| 41 | + <!-- #ifdef H5 --> | ||
| 42 | + <u-icon @click="handleScanH5" name="scan" :size="180" color="#fff"></u-icon> | ||
| 43 | + <!-- #endif --> | ||
| 44 | + </view> | ||
| 45 | + </view> | ||
| 46 | + </view> | ||
| 47 | + <QrScannerVue v-if="showScan" @decode="onDecodeHandler" @close="qrReaderClose" /> | ||
| 45 | </template> | 48 | </template> |
| 46 | 49 | ||
| 47 | <script setup> | 50 | <script setup> |
| 48 | -import { checkCode } from '@/apis/order.js'; | ||
| 49 | -import { nextTick, onMounted, ref } from 'vue'; | ||
| 50 | -import swiperListItem from './swiper-list-item/index.vue'; | ||
| 51 | -import { useMainStore } from '@/stores'; | ||
| 52 | -const list = ref([{ name: '处理中' }, { name: '已完成' }]) | ||
| 53 | -const current = ref(0); | ||
| 54 | -const swiperCurrent = ref(0); | ||
| 55 | -const uTabsElement = ref(); | ||
| 56 | -const title = ref('处置场所'); | ||
| 57 | -const topMargin = ref(); | ||
| 58 | -const lightHeight = ref(); | ||
| 59 | -const store = useMainStore(); | ||
| 60 | - | ||
| 61 | -const tabsChange = (el) => { | ||
| 62 | - console.log("tabsChange", el); | ||
| 63 | - swiperCurrent.value = Number(el.index) | ||
| 64 | -} | ||
| 65 | - | ||
| 66 | -const animationfinish = (e) => { | ||
| 67 | - current.value = e.detail.current | ||
| 68 | - swiperCurrent.value = e.detail.current | ||
| 69 | -} | ||
| 70 | - | ||
| 71 | -const translation = (e) => { | ||
| 72 | - uTabsElement.value.setDx(e.detail.dx) | ||
| 73 | -} | ||
| 74 | - | ||
| 75 | -const handleScan = () => { | ||
| 76 | - | ||
| 77 | - | ||
| 78 | - uni.scanCode({ | ||
| 79 | - success: function (res) { | ||
| 80 | - console.log('条码类型:' + res.scanType); | ||
| 81 | - console.log('条码内容:' + res.result); | ||
| 82 | - try { | ||
| 83 | - if (res.scanType == "QR_CODE") { | ||
| 84 | - checkCode(res.result).then(res => { | ||
| 85 | - console.log(res); | ||
| 86 | - if (res.data.code == 200) { | ||
| 87 | - uni.$u.route({ | ||
| 88 | - url: `pages/order-info/order-disposal/scan-detail/index`, | ||
| 89 | - params: { | ||
| 90 | - data: encodeURIComponent(JSON.stringify(res.data.data)) | ||
| 91 | - } | ||
| 92 | - }) | ||
| 93 | - return | ||
| 94 | - } | ||
| 95 | - uni.$u.toast(res.data.msg); | ||
| 96 | - }) | ||
| 97 | - } | ||
| 98 | - } catch (error) { | ||
| 99 | - uni.$u.toast("无法确认当前二维码趟次,请扫描正在进行的运输趟次123"); | ||
| 100 | - console.log("===================>weixin"); | ||
| 101 | - } | ||
| 102 | - }, | ||
| 103 | - fail:function (res) { | ||
| 104 | - uni.$u.toast("图片扫码失败,请检查二维码图片123"); | ||
| 105 | - console.log("===================>weixin"); | ||
| 106 | - } | ||
| 107 | - }); | ||
| 108 | -} | ||
| 109 | - | ||
| 110 | -const handleScanH5 = () => { | ||
| 111 | - uni.chooseImage({ | ||
| 112 | - count:1, | ||
| 113 | - sizeType:['original','compressed'], | ||
| 114 | - sourceType:['camera','album'], | ||
| 115 | - success:(res)=>{ | ||
| 116 | - console.log(res.tempFilePaths[0]); | ||
| 117 | - uni.uploadFile({ | ||
| 118 | - url:import.meta.env.VITE_BASE_URL+"/QRCode/ocr/pric", | ||
| 119 | - header: { | ||
| 120 | - "Authorization": store.token | ||
| 121 | - }, | ||
| 122 | - fileType:'image', | ||
| 123 | - filePath:res.tempFilePaths[0], | ||
| 124 | - name:'file', | ||
| 125 | - success:(uploadRes)=>{ | ||
| 126 | - if (uploadRes.statusCode == 200) { | ||
| 127 | - if("" == uploadRes.data || undefined == uploadRes.data || null == uploadRes.data){ | ||
| 128 | - uni.$u.toast("二维码图片识别失败,请检查二维码图片"); | ||
| 129 | - return; | ||
| 130 | - }else{ | ||
| 131 | - checkCode(uploadRes.data).then(res => { | ||
| 132 | - if (res.data&& res.data.code == 200) { | ||
| 133 | - uni.$u.route({ | ||
| 134 | - url: `pages/order-info/order-disposal/scan-detail/index`, | ||
| 135 | - params: { | ||
| 136 | - data: encodeURIComponent(JSON.stringify(res.data.data)) | ||
| 137 | - } | ||
| 138 | - }) | ||
| 139 | - return | ||
| 140 | - } | ||
| 141 | - uni.$u.toast(res.data.msg); | ||
| 142 | - }) | ||
| 143 | - } | ||
| 144 | - }else{ | ||
| 145 | - uni.$u.toast("二维码图片识别失败,请检查二维码图片"); | ||
| 146 | - } | ||
| 147 | - | ||
| 148 | - } | ||
| 149 | - }) | ||
| 150 | - | ||
| 151 | - } | ||
| 152 | - }) | ||
| 153 | -} | 51 | + import QrScannerVue from '../../../components/QrScanner/QrScanner.vue'; |
| 52 | + import { | ||
| 53 | + checkCode | ||
| 54 | + } from '@/apis/order.js'; | ||
| 55 | + import { | ||
| 56 | + nextTick, | ||
| 57 | + onMounted, | ||
| 58 | + ref | ||
| 59 | + } from 'vue'; | ||
| 60 | + import swiperListItem from './swiper-list-item/index.vue'; | ||
| 61 | + import { | ||
| 62 | + useMainStore | ||
| 63 | + } from '@/stores'; | ||
| 64 | + const list = ref([{ | ||
| 65 | + name: '处理中' | ||
| 66 | + }, { | ||
| 67 | + name: '已完成' | ||
| 68 | + }]) | ||
| 69 | + const current = ref(0); | ||
| 70 | + const swiperCurrent = ref(0); | ||
| 71 | + const uTabsElement = ref(); | ||
| 72 | + const title = ref('处置场所'); | ||
| 73 | + const topMargin = ref(); | ||
| 74 | + const lightHeight = ref(); | ||
| 75 | + const store = useMainStore(); | ||
| 76 | + const showScan = ref(false); | ||
| 154 | 77 | ||
| 78 | + const tabsChange = (el) => { | ||
| 79 | + console.log("tabsChange", el); | ||
| 80 | + swiperCurrent.value = Number(el.index) | ||
| 81 | + } | ||
| 155 | 82 | ||
| 83 | + const animationfinish = (e) => { | ||
| 84 | + current.value = e.detail.current | ||
| 85 | + swiperCurrent.value = e.detail.current | ||
| 86 | + } | ||
| 156 | 87 | ||
| 88 | + const translation = (e) => { | ||
| 89 | + uTabsElement.value.setDx(e.detail.dx) | ||
| 90 | + } | ||
| 157 | 91 | ||
| 158 | -onMounted(() => { | ||
| 159 | - console.log("处理场所"); | ||
| 160 | - nextTick(() => { | ||
| 161 | - try { | ||
| 162 | - const { height, top } = uni.getMenuButtonBoundingClientRect(); | ||
| 163 | - topMargin.value = top + 'px'; | ||
| 164 | - lightHeight.value = height + 'px'; | ||
| 165 | - } catch (error) { | ||
| 166 | - topMargin.value = '60rpx'; | ||
| 167 | - lightHeight.value = '60rpx'; | ||
| 168 | - console.log('There is no menu because the current app is not a small program'); | ||
| 169 | - } | ||
| 170 | - }) | ||
| 171 | -}) | 92 | + const handleScan = () => { |
| 93 | + | ||
| 94 | + | ||
| 95 | + uni.scanCode({ | ||
| 96 | + success: function(res) { | ||
| 97 | + console.log('条码类型:' + res.scanType); | ||
| 98 | + console.log('条码内容:' + res.result); | ||
| 99 | + try { | ||
| 100 | + if (res.scanType == "QR_CODE") { | ||
| 101 | + checkCode(res.result).then(res => { | ||
| 102 | + console.log(res); | ||
| 103 | + if (res.data.code == 200) { | ||
| 104 | + uni.$u.route({ | ||
| 105 | + url: `pages/order-info/order-disposal/scan-detail/index`, | ||
| 106 | + params: { | ||
| 107 | + data: encodeURIComponent(JSON.stringify(res.data | ||
| 108 | + .data)) | ||
| 109 | + } | ||
| 110 | + }) | ||
| 111 | + return | ||
| 112 | + } | ||
| 113 | + uni.$u.toast(res.data.msg); | ||
| 114 | + }) | ||
| 115 | + } | ||
| 116 | + } catch (error) { | ||
| 117 | + uni.$u.toast("无法确认当前二维码趟次,请扫描正在进行的运输趟次"); | ||
| 118 | + console.log("===================>weixin"); | ||
| 119 | + } | ||
| 120 | + }, | ||
| 121 | + fail: function(res) { | ||
| 122 | + uni.$u.toast("图片扫码失败,请检查二维码图片"); | ||
| 123 | + console.log("===================>weixin"); | ||
| 124 | + } | ||
| 125 | + }); | ||
| 126 | + } | ||
| 127 | + | ||
| 128 | + const handleScanH5 = () => { | ||
| 129 | + showScan.value = true; | ||
| 130 | + // uni.chooseImage({ | ||
| 131 | + // count: 1, | ||
| 132 | + // sizeType: ['original', 'compressed'], | ||
| 133 | + // sourceType: ['camera', 'album'], | ||
| 134 | + // success: (res) => { | ||
| 135 | + // console.log(res.tempFilePaths[0]); | ||
| 136 | + // uni.uploadFile({ | ||
| 137 | + // url: import.meta.env.VITE_BASE_URL + "/QRCode/ocr/pric", | ||
| 138 | + // header: { | ||
| 139 | + // "Authorization": store.token | ||
| 140 | + // }, | ||
| 141 | + // fileType: 'image', | ||
| 142 | + // filePath: res.tempFilePaths[0], | ||
| 143 | + // name: 'file', | ||
| 144 | + // success: (uploadRes) => { | ||
| 145 | + // if (uploadRes.statusCode == 200) { | ||
| 146 | + // if ("" == uploadRes.data || undefined == uploadRes.data || null == | ||
| 147 | + // uploadRes.data) { | ||
| 148 | + // uni.$u.toast("二维码图片识别失败,请检查二维码图片"); | ||
| 149 | + // return; | ||
| 150 | + // } else { | ||
| 151 | + // checkCode(uploadRes.data).then(res => { | ||
| 152 | + // if (res.data && res.data.code == 200) { | ||
| 153 | + // uni.$u.route({ | ||
| 154 | + // url: `pages/order-info/order-disposal/scan-detail/index`, | ||
| 155 | + // params: { | ||
| 156 | + // data: encodeURIComponent(JSON | ||
| 157 | + // .stringify(res.data | ||
| 158 | + // .data)) | ||
| 159 | + // } | ||
| 160 | + // }) | ||
| 161 | + // return | ||
| 162 | + // } | ||
| 163 | + // uni.$u.toast(res.data.msg); | ||
| 164 | + // }) | ||
| 165 | + // } | ||
| 166 | + // } else { | ||
| 167 | + // uni.$u.toast("二维码图片识别失败,请检查二维码图片"); | ||
| 168 | + // } | ||
| 169 | + | ||
| 170 | + // } | ||
| 171 | + // }) | ||
| 172 | + | ||
| 173 | + // } | ||
| 174 | + // }) | ||
| 175 | + } | ||
| 176 | + | ||
| 177 | + const onDecodeHandler = (data) => { | ||
| 178 | + showScan.value = false | ||
| 179 | + try { | ||
| 180 | + checkCode(data).then(res => { | ||
| 181 | + console.log(res); | ||
| 182 | + if (res.data.code == 200) { | ||
| 183 | + uni.$u.route({ | ||
| 184 | + url: `pages/order-info/order-disposal/scan-detail/index`, | ||
| 185 | + params: { | ||
| 186 | + data: encodeURIComponent(JSON.stringify(res.data | ||
| 187 | + .data)) | ||
| 188 | + } | ||
| 189 | + }) | ||
| 190 | + return | ||
| 191 | + } | ||
| 192 | + alert(res.data.msg); | ||
| 193 | + }) | ||
| 194 | + } catch (error) { | ||
| 195 | + alert("无法确认当前二维码趟次,请扫描正在进行的运输趟次"); | ||
| 196 | + } | ||
| 197 | + } | ||
| 198 | + const qrReaderClose = () => { | ||
| 199 | + uni.$u.toast("qrReaderClose",data) | ||
| 200 | + alert("qrReaderClose") | ||
| 201 | + // showScan.value = false | ||
| 202 | + } | ||
| 203 | + onMounted(() => { | ||
| 204 | + console.log("处理场所"); | ||
| 205 | + nextTick(() => { | ||
| 206 | + try { | ||
| 207 | + const { | ||
| 208 | + height, | ||
| 209 | + top | ||
| 210 | + } = uni.getMenuButtonBoundingClientRect(); | ||
| 211 | + topMargin.value = top + 'px'; | ||
| 212 | + lightHeight.value = height + 'px'; | ||
| 213 | + } catch (error) { | ||
| 214 | + topMargin.value = '60rpx'; | ||
| 215 | + lightHeight.value = '60rpx'; | ||
| 216 | + console.log('There is no menu because the current app is not a small program'); | ||
| 217 | + } | ||
| 218 | + }) | ||
| 219 | + }) | ||
| 172 | </script> | 220 | </script> |
| 173 | <style lang="scss" scoped> | 221 | <style lang="scss" scoped> |
| 174 | -.order-container { | ||
| 175 | - width: 100%; | ||
| 176 | - height: 100%; | ||
| 177 | - background: #19a97c; | ||
| 178 | - box-sizing: border-box; | ||
| 179 | - display: flex; | ||
| 180 | - flex-direction: column; | ||
| 181 | - | ||
| 182 | - .header-box { | ||
| 183 | - width: 100%; | ||
| 184 | - color: white; | ||
| 185 | - display: flex; | ||
| 186 | - justify-content: flex-start; | ||
| 187 | - align-items: center; | ||
| 188 | - /* 分散对齐,自动调整间距 */ | ||
| 189 | - | ||
| 190 | - .header-box-left-message { | ||
| 191 | - width: 150rpx; | ||
| 192 | - display: flex; | ||
| 193 | - justify-content: center; | ||
| 194 | - align-items: center; | ||
| 195 | - } | 222 | + .scanCode { |
| 223 | + position: fixed; | ||
| 224 | + top: 0; | ||
| 225 | + left: 0; | ||
| 226 | + right: 0; | ||
| 227 | + bottom: 0; | ||
| 228 | + z-index: 99; | ||
| 229 | + height: 100%; | ||
| 230 | + width: 100%; | ||
| 231 | + background-color: rgba(0, 0, 0, 0.7); | ||
| 232 | + } | ||
| 196 | 233 | ||
| 197 | - .header-box-title { | ||
| 198 | - font-size: 35rpx; | ||
| 199 | - font-weight: bold; | ||
| 200 | - width: 600rpx; | ||
| 201 | - text-align: center; | ||
| 202 | - // 向左偏移75rpx | ||
| 203 | - margin-left: -75rpx; | 234 | + .order-container { |
| 235 | + width: 100%; | ||
| 236 | + height: 100%; | ||
| 237 | + background: #19a97c; | ||
| 238 | + box-sizing: border-box; | ||
| 239 | + display: flex; | ||
| 240 | + flex-direction: column; | ||
| 204 | 241 | ||
| 205 | - } | 242 | + .header-box { |
| 243 | + width: 100%; | ||
| 244 | + color: white; | ||
| 245 | + display: flex; | ||
| 246 | + justify-content: flex-start; | ||
| 247 | + align-items: center; | ||
| 248 | + /* 分散对齐,自动调整间距 */ | ||
| 206 | 249 | ||
| 207 | - } | ||
| 208 | - | ||
| 209 | - | ||
| 210 | - .swiper { | ||
| 211 | - height: 100%; | ||
| 212 | - // height: 300px; | ||
| 213 | - background: linear-gradient(to bottom, #19a97c, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color); | ||
| 214 | - } | ||
| 215 | - | ||
| 216 | - | ||
| 217 | -} | ||
| 218 | - | ||
| 219 | -.scan-box { | ||
| 220 | - position: fixed; | ||
| 221 | - bottom: 200rpx; | ||
| 222 | - right: 50rpx; | ||
| 223 | - width: 90rpx; | ||
| 224 | - height: 90rpx; | ||
| 225 | - border-radius: 15rpx; | ||
| 226 | - box-shadow: 0 0 10rpx rgba(0, 0, 0, .1); | ||
| 227 | - display: flex; | ||
| 228 | - justify-content: center; | ||
| 229 | - align-items: center; | ||
| 230 | - padding: 2rpx; | ||
| 231 | - box-sizing: border-box; | ||
| 232 | - background-color: #ffffff71; | ||
| 233 | - | ||
| 234 | - .scan-btn { | ||
| 235 | - width: 80rpx; | ||
| 236 | - height: 80rpx; | ||
| 237 | - border-radius: 50%; | ||
| 238 | - display: flex; | ||
| 239 | - justify-content: center; | ||
| 240 | - align-items: center; | ||
| 241 | - background-color: #19a97c; | ||
| 242 | - @include handleClick; | ||
| 243 | - | ||
| 244 | - .scan-icon { | ||
| 245 | - display: flex; | ||
| 246 | - justify-content: center; | ||
| 247 | - align-items: center; | ||
| 248 | - } | ||
| 249 | - } | ||
| 250 | -} | 250 | + .header-box-left-message { |
| 251 | + width: 150rpx; | ||
| 252 | + display: flex; | ||
| 253 | + justify-content: center; | ||
| 254 | + align-items: center; | ||
| 255 | + } | ||
| 256 | + | ||
| 257 | + .header-box-title { | ||
| 258 | + font-size: 35rpx; | ||
| 259 | + font-weight: bold; | ||
| 260 | + width: 600rpx; | ||
| 261 | + text-align: center; | ||
| 262 | + // 向左偏移75rpx | ||
| 263 | + margin-left: -75rpx; | ||
| 264 | + | ||
| 265 | + } | ||
| 266 | + | ||
| 267 | + } | ||
| 268 | + | ||
| 269 | + | ||
| 270 | + .swiper { | ||
| 271 | + height: 100%; | ||
| 272 | + // height: 300px; | ||
| 273 | + background: linear-gradient(to bottom, #19a97c, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color); | ||
| 274 | + } | ||
| 275 | + | ||
| 276 | + | ||
| 277 | + } | ||
| 278 | + | ||
| 279 | + .scan-box { | ||
| 280 | + position: fixed; | ||
| 281 | + bottom: 200rpx; | ||
| 282 | + right: 50rpx; | ||
| 283 | + width: 90rpx; | ||
| 284 | + height: 90rpx; | ||
| 285 | + border-radius: 15rpx; | ||
| 286 | + box-shadow: 0 0 10rpx rgba(0, 0, 0, .1); | ||
| 287 | + display: flex; | ||
| 288 | + justify-content: center; | ||
| 289 | + align-items: center; | ||
| 290 | + padding: 2rpx; | ||
| 291 | + box-sizing: border-box; | ||
| 292 | + background-color: #ffffff71; | ||
| 293 | + | ||
| 294 | + .scan-btn { | ||
| 295 | + width: 80rpx; | ||
| 296 | + height: 80rpx; | ||
| 297 | + border-radius: 50%; | ||
| 298 | + display: flex; | ||
| 299 | + justify-content: center; | ||
| 300 | + align-items: center; | ||
| 301 | + background-color: #19a97c; | ||
| 302 | + @include handleClick; | ||
| 303 | + | ||
| 304 | + .scan-icon { | ||
| 305 | + display: flex; | ||
| 306 | + justify-content: center; | ||
| 307 | + align-items: center; | ||
| 308 | + } | ||
| 309 | + } | ||
| 310 | + } | ||
| 251 | </style> | 311 | </style> |
| 252 | \ No newline at end of file | 312 | \ No newline at end of file |
garbage-removal/vite.config.js
| 1 | import uni from '@dcloudio/vite-plugin-uni'; | 1 | import uni from '@dcloudio/vite-plugin-uni'; |
| 2 | +import basicSsl from '@vitejs/plugin-basic-ssl' | ||
| 2 | 3 | ||
| 3 | import { resolve } from "path"; | 4 | import { resolve } from "path"; |
| 4 | import { defineConfig } from 'vite'; | 5 | import { defineConfig } from 'vite'; |
| @@ -6,6 +7,7 @@ import { defineConfig } from 'vite'; | @@ -6,6 +7,7 @@ import { defineConfig } from 'vite'; | ||
| 6 | export default defineConfig({ | 7 | export default defineConfig({ |
| 7 | plugins: [ | 8 | plugins: [ |
| 8 | uni(), | 9 | uni(), |
| 10 | + // basicSsl() | ||
| 9 | ], | 11 | ], |
| 10 | resolve: { | 12 | resolve: { |
| 11 | alias: { | 13 | alias: { |
| @@ -14,6 +16,7 @@ export default defineConfig({ | @@ -14,6 +16,7 @@ export default defineConfig({ | ||
| 14 | }, | 16 | }, |
| 15 | }, | 17 | }, |
| 16 | server: { | 18 | server: { |
| 17 | - port: 9000 | 19 | + port: 9000, |
| 20 | + // https: true | ||
| 18 | } | 21 | } |
| 19 | }) | 22 | }) |
garbage-removal/yarn.lock
| @@ -2201,6 +2201,11 @@ | @@ -2201,6 +2201,11 @@ | ||
| 2201 | dependencies: | 2201 | dependencies: |
| 2202 | "@types/yargs-parser" "*" | 2202 | "@types/yargs-parser" "*" |
| 2203 | 2203 | ||
| 2204 | +"@vitejs/plugin-basic-ssl@^1.1.0": | ||
| 2205 | + "integrity" "sha512-mkQnxTkcldAzIsomk1UuLfAu9n+kpQ3JbHcpCp7d2Oo6ITtji8pHS3QToOWjhPFvNQSnhlkAjmGbhv2QvwO/7Q==" | ||
| 2206 | + "resolved" "https://registry.npmmirror.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.2.0.tgz" | ||
| 2207 | + "version" "1.2.0" | ||
| 2208 | + | ||
| 2204 | "@vitejs/plugin-legacy@^4.0.3": | 2209 | "@vitejs/plugin-legacy@^4.0.3": |
| 2205 | "integrity" "sha512-um3gbVouD2Q/g19C0qpDfHwveXDCAHzs8OC3e9g6aXpKoD1H14himgs7wkMnhAynBJy7QqUoZNAXDuqN8zLR2g==" | 2210 | "integrity" "sha512-um3gbVouD2Q/g19C0qpDfHwveXDCAHzs8OC3e9g6aXpKoD1H14himgs7wkMnhAynBJy7QqUoZNAXDuqN8zLR2g==" |
| 2206 | "resolved" "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.1.1.tgz" | 2211 | "resolved" "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.1.1.tgz" |
| @@ -2494,6 +2499,20 @@ | @@ -2494,6 +2499,20 @@ | ||
| 2494 | "resolved" "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz" | 2499 | "resolved" "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz" |
| 2495 | "version" "4.2.2" | 2500 | "version" "4.2.2" |
| 2496 | 2501 | ||
| 2502 | +"@zxing/library@^0.18.4": | ||
| 2503 | + "integrity" "sha512-bulZ9JHoLFd9W36pi+7e7DnEYNJhljYjZ1UTsKPOoLMU3qtC+REHITeCRNx40zTRJZx18W5TBRXt5pq2Uopjsw==" | ||
| 2504 | + "resolved" "https://registry.npmmirror.com/@zxing/library/-/library-0.18.6.tgz" | ||
| 2505 | + "version" "0.18.6" | ||
| 2506 | + dependencies: | ||
| 2507 | + "ts-custom-error" "^3.0.0" | ||
| 2508 | + optionalDependencies: | ||
| 2509 | + "@zxing/text-encoding" "~0.9.0" | ||
| 2510 | + | ||
| 2511 | +"@zxing/text-encoding@~0.9.0": | ||
| 2512 | + "integrity" "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==" | ||
| 2513 | + "resolved" "https://registry.npmmirror.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz" | ||
| 2514 | + "version" "0.9.0" | ||
| 2515 | + | ||
| 2497 | "abab@^2.0.3", "abab@^2.0.5": | 2516 | "abab@^2.0.3", "abab@^2.0.5": |
| 2498 | "integrity" "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" | 2517 | "integrity" "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" |
| 2499 | "resolved" "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz" | 2518 | "resolved" "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz" |
| @@ -2740,6 +2759,14 @@ | @@ -2740,6 +2759,14 @@ | ||
| 2740 | "resolved" "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz" | 2759 | "resolved" "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz" |
| 2741 | "version" "1.0.2" | 2760 | "version" "1.0.2" |
| 2742 | 2761 | ||
| 2762 | +"barcode-detector@^0.7": | ||
| 2763 | + "integrity" "sha512-SJh+LV6e+W5e6QJe70ralFfqcYwvaOUGWyr+GepuQ5swPH4jF2asyTxOIUZNSU9Z5isD3KWI5hlqQ+b/QaFFOg==" | ||
| 2764 | + "resolved" "https://registry.npmmirror.com/barcode-detector/-/barcode-detector-0.7.0.tgz" | ||
| 2765 | + "version" "0.7.0" | ||
| 2766 | + dependencies: | ||
| 2767 | + "@zxing/library" "^0.18.4" | ||
| 2768 | + "jsqr" "^1.3.1" | ||
| 2769 | + | ||
| 2743 | "base64-js@^1.3.1": | 2770 | "base64-js@^1.3.1": |
| 2744 | "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" | 2771 | "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" |
| 2745 | "resolved" "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz" | 2772 | "resolved" "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz" |
| @@ -2860,6 +2887,11 @@ | @@ -2860,6 +2887,11 @@ | ||
| 2860 | "get-intrinsic" "^1.2.1" | 2887 | "get-intrinsic" "^1.2.1" |
| 2861 | "set-function-length" "^1.1.1" | 2888 | "set-function-length" "^1.1.1" |
| 2862 | 2889 | ||
| 2890 | +"callforth@^0.4": | ||
| 2891 | + "integrity" "sha512-k3kD3OBPRvYs3Sb41Fn1T7l6vvSmTMPq1a0jxh8QKD+wb+17G8oOq48eBi0stn8ahpNVUJtPlrlYwbfv9Cfhpg==" | ||
| 2892 | + "resolved" "https://registry.npmmirror.com/callforth/-/callforth-0.4.0.tgz" | ||
| 2893 | + "version" "0.4.0" | ||
| 2894 | + | ||
| 2863 | "callsites@^3.0.0": | 2895 | "callsites@^3.0.0": |
| 2864 | "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" | 2896 | "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" |
| 2865 | "resolved" "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz" | 2897 | "resolved" "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz" |
| @@ -3050,7 +3082,7 @@ | @@ -3050,7 +3082,7 @@ | ||
| 3050 | dependencies: | 3082 | dependencies: |
| 3051 | "browserslist" "^4.22.1" | 3083 | "browserslist" "^4.22.1" |
| 3052 | 3084 | ||
| 3053 | -"core-js@^3.31.1", "core-js@^3.4.1": | 3085 | +"core-js@^3", "core-js@^3.31.1", "core-js@^3.4.1": |
| 3054 | "integrity" "sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==" | 3086 | "integrity" "sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==" |
| 3055 | "resolved" "https://registry.npmmirror.com/core-js/-/core-js-3.33.2.tgz" | 3087 | "resolved" "https://registry.npmmirror.com/core-js/-/core-js-3.33.2.tgz" |
| 3056 | "version" "3.33.2" | 3088 | "version" "3.33.2" |
| @@ -4534,6 +4566,11 @@ | @@ -4534,6 +4566,11 @@ | ||
| 4534 | optionalDependencies: | 4566 | optionalDependencies: |
| 4535 | "graceful-fs" "^4.1.6" | 4567 | "graceful-fs" "^4.1.6" |
| 4536 | 4568 | ||
| 4569 | +"jsqr@^1.3.1", "jsqr@^1.4.0": | ||
| 4570 | + "integrity" "sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A==" | ||
| 4571 | + "resolved" "https://registry.npmmirror.com/jsqr/-/jsqr-1.4.0.tgz" | ||
| 4572 | + "version" "1.4.0" | ||
| 4573 | + | ||
| 4537 | "kleur@^3.0.3": | 4574 | "kleur@^3.0.3": |
| 4538 | "integrity" "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" | 4575 | "integrity" "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" |
| 4539 | "resolved" "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz" | 4576 | "resolved" "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz" |
| @@ -5155,6 +5192,17 @@ | @@ -5155,6 +5192,17 @@ | ||
| 5155 | "resolved" "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz" | 5192 | "resolved" "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz" |
| 5156 | "version" "2.3.1" | 5193 | "version" "2.3.1" |
| 5157 | 5194 | ||
| 5195 | +"qrcode-reader-vue3@^3.1.2": | ||
| 5196 | + "integrity" "sha512-OqhJ4lkKHlyV42Fm5qptm7cdV3X2DRbtCgTNMjcFY7plkMNDqGo+bPxxlGkoPMCHowxXa1pPu9knWPfoqu5mUg==" | ||
| 5197 | + "resolved" "https://registry.npmmirror.com/qrcode-reader-vue3/-/qrcode-reader-vue3-3.1.2.tgz" | ||
| 5198 | + "version" "3.1.2" | ||
| 5199 | + dependencies: | ||
| 5200 | + "barcode-detector" "^0.7" | ||
| 5201 | + "callforth" "^0.4" | ||
| 5202 | + "core-js" "^3" | ||
| 5203 | + "vue" "^3" | ||
| 5204 | + "webrtc-adapter" "^7" | ||
| 5205 | + | ||
| 5158 | "qrcode-reader@^1.0.4": | 5206 | "qrcode-reader@^1.0.4": |
| 5159 | "integrity" "sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==" | 5207 | "integrity" "sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==" |
| 5160 | "resolved" "https://registry.npmmirror.com/qrcode-reader/-/qrcode-reader-1.0.4.tgz" | 5208 | "resolved" "https://registry.npmmirror.com/qrcode-reader/-/qrcode-reader-1.0.4.tgz" |
| @@ -5326,6 +5374,13 @@ | @@ -5326,6 +5374,13 @@ | ||
| 5326 | optionalDependencies: | 5374 | optionalDependencies: |
| 5327 | "fsevents" "~2.3.2" | 5375 | "fsevents" "~2.3.2" |
| 5328 | 5376 | ||
| 5377 | +"rtcpeerconnection-shim@^1.2.15": | ||
| 5378 | + "integrity" "sha512-C6DxhXt7bssQ1nHb154lqeL0SXz5Dx4RczXZu2Aa/L1NJFnEVDxFwCBo3fqtuljhHIGceg5JKBV4XJ0gW5JKyw==" | ||
| 5379 | + "resolved" "https://registry.npmmirror.com/rtcpeerconnection-shim/-/rtcpeerconnection-shim-1.2.15.tgz" | ||
| 5380 | + "version" "1.2.15" | ||
| 5381 | + dependencies: | ||
| 5382 | + "sdp" "^2.6.0" | ||
| 5383 | + | ||
| 5329 | "run-parallel@^1.1.9": | 5384 | "run-parallel@^1.1.9": |
| 5330 | "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" | 5385 | "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" |
| 5331 | "resolved" "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz" | 5386 | "resolved" "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz" |
| @@ -5386,6 +5441,11 @@ | @@ -5386,6 +5441,11 @@ | ||
| 5386 | "ajv" "^6.12.5" | 5441 | "ajv" "^6.12.5" |
| 5387 | "ajv-keywords" "^3.5.2" | 5442 | "ajv-keywords" "^3.5.2" |
| 5388 | 5443 | ||
| 5444 | +"sdp@^2.12.0", "sdp@^2.6.0": | ||
| 5445 | + "integrity" "sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw==" | ||
| 5446 | + "resolved" "https://registry.npmmirror.com/sdp/-/sdp-2.12.0.tgz" | ||
| 5447 | + "version" "2.12.0" | ||
| 5448 | + | ||
| 5389 | "select@^1.1.2": | 5449 | "select@^1.1.2": |
| 5390 | "integrity" "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" | 5450 | "integrity" "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" |
| 5391 | "resolved" "https://registry.npmmirror.com/select/-/select-1.1.2.tgz" | 5451 | "resolved" "https://registry.npmmirror.com/select/-/select-1.1.2.tgz" |
| @@ -5744,6 +5804,11 @@ | @@ -5744,6 +5804,11 @@ | ||
| 5744 | dependencies: | 5804 | dependencies: |
| 5745 | "punycode" "^2.1.1" | 5805 | "punycode" "^2.1.1" |
| 5746 | 5806 | ||
| 5807 | +"ts-custom-error@^3.0.0": | ||
| 5808 | + "integrity" "sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==" | ||
| 5809 | + "resolved" "https://registry.npmmirror.com/ts-custom-error/-/ts-custom-error-3.3.1.tgz" | ||
| 5810 | + "version" "3.3.1" | ||
| 5811 | + | ||
| 5747 | "type-detect@4.0.8": | 5812 | "type-detect@4.0.8": |
| 5748 | "integrity" "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" | 5813 | "integrity" "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" |
| 5749 | "resolved" "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz" | 5814 | "resolved" "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz" |
| @@ -5876,7 +5941,7 @@ | @@ -5876,7 +5941,7 @@ | ||
| 5876 | "resolved" "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz" | 5941 | "resolved" "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz" |
| 5877 | "version" "1.1.2" | 5942 | "version" "1.1.2" |
| 5878 | 5943 | ||
| 5879 | -"vite@^4.0.0", "vite@4.0.3": | 5944 | +"vite@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", "vite@^4.0.0", "vite@4.0.3": |
| 5880 | "integrity" "sha512-HvuNv1RdE7deIfQb8mPk51UKjqptO/4RXZ5yXSAvurd5xOckwS/gg8h9Tky3uSbnjYTgUm0hVCet1cyhKd73ZA==" | 5945 | "integrity" "sha512-HvuNv1RdE7deIfQb8mPk51UKjqptO/4RXZ5yXSAvurd5xOckwS/gg8h9Tky3uSbnjYTgUm0hVCet1cyhKd73ZA==" |
| 5881 | "resolved" "https://registry.npmmirror.com/vite/-/vite-4.0.3.tgz" | 5946 | "resolved" "https://registry.npmmirror.com/vite/-/vite-4.0.3.tgz" |
| 5882 | "version" "4.0.3" | 5947 | "version" "4.0.3" |
| @@ -5914,7 +5979,7 @@ | @@ -5914,7 +5979,7 @@ | ||
| 5914 | dependencies: | 5979 | dependencies: |
| 5915 | "@vue/devtools-api" "^6.5.0" | 5980 | "@vue/devtools-api" "^6.5.0" |
| 5916 | 5981 | ||
| 5917 | -"vue@^2.0.0 || >=3.0.0", "vue@^2.6.14 || ^3.2.0", "vue@^3.0.0", "vue@^3.0.0-0 || ^2.6.0", "vue@^3.2.0", "vue@^3.2.25", "vue@^3.2.45", "vue@3.2.47": | 5982 | +"vue@^2.0.0 || >=3.0.0", "vue@^2.6.14 || ^3.2.0", "vue@^3", "vue@^3.0.0", "vue@^3.0.0-0 || ^2.6.0", "vue@^3.2.0", "vue@^3.2.25", "vue@^3.2.45", "vue@3.2.47": |
| 5918 | "integrity" "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==" | 5983 | "integrity" "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==" |
| 5919 | "resolved" "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz" | 5984 | "resolved" "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz" |
| 5920 | "version" "3.2.47" | 5985 | "version" "3.2.47" |
| @@ -5925,6 +5990,13 @@ | @@ -5925,6 +5990,13 @@ | ||
| 5925 | "@vue/server-renderer" "3.2.47" | 5990 | "@vue/server-renderer" "3.2.47" |
| 5926 | "@vue/shared" "3.2.47" | 5991 | "@vue/shared" "3.2.47" |
| 5927 | 5992 | ||
| 5993 | +"vue3-qr-reader@^1.0.0": | ||
| 5994 | + "integrity" "sha512-BRgmR+lDPkNwgL6skSaEOGFg4Aup/FLYnOGFCV0knYHxfbAnliJN/+wr//iqD2G3EOBrXw4TPGNfj/5Wxl7wwQ==" | ||
| 5995 | + "resolved" "https://registry.npmmirror.com/vue3-qr-reader/-/vue3-qr-reader-1.0.0.tgz" | ||
| 5996 | + "version" "1.0.0" | ||
| 5997 | + dependencies: | ||
| 5998 | + "jsqr" "^1.4.0" | ||
| 5999 | + | ||
| 5928 | "w3c-hr-time@^1.0.2": | 6000 | "w3c-hr-time@^1.0.2": |
| 5929 | "integrity" "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==" | 6001 | "integrity" "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==" |
| 5930 | "resolved" "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" | 6002 | "resolved" "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" |
| @@ -5999,6 +6071,14 @@ | @@ -5999,6 +6071,14 @@ | ||
| 5999 | "watchpack" "^2.4.0" | 6071 | "watchpack" "^2.4.0" |
| 6000 | "webpack-sources" "^3.2.3" | 6072 | "webpack-sources" "^3.2.3" |
| 6001 | 6073 | ||
| 6074 | +"webrtc-adapter@^7": | ||
| 6075 | + "integrity" "sha512-TbrbBmiQBL9n0/5bvDdORc6ZfRY/Z7JnEj+EYOD1ghseZdpJ+nF2yx14k3LgQKc7JZnG7HAcL+zHnY25So9d7A==" | ||
| 6076 | + "resolved" "https://registry.npmmirror.com/webrtc-adapter/-/webrtc-adapter-7.7.1.tgz" | ||
| 6077 | + "version" "7.7.1" | ||
| 6078 | + dependencies: | ||
| 6079 | + "rtcpeerconnection-shim" "^1.2.15" | ||
| 6080 | + "sdp" "^2.12.0" | ||
| 6081 | + | ||
| 6002 | "whatwg-encoding@^1.0.5": | 6082 | "whatwg-encoding@^1.0.5": |
| 6003 | "integrity" "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==" | 6083 | "integrity" "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==" |
| 6004 | "resolved" "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" | 6084 | "resolved" "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" |