From 5457ab777808a46d055450be64741670915b92bb Mon Sep 17 00:00:00 2001 From: "@jyuhsin" <729757837@qq.com> Date: Fri, 19 Dec 2025 16:51:06 +0800 Subject: [PATCH] commit --- .../SysH5ScanCodeUploadFileController.java | 4 ++-- .../components/plugins/sysUpload/index.vue | 20 ++++++++++++++++--- .../views/platform/sys/h5upload.html | 8 ++++++-- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/budwk/app/sys/controller/SysH5ScanCodeUploadFileController.java b/src/main/java/com/budwk/app/sys/controller/SysH5ScanCodeUploadFileController.java index 0d33324..99c44b1 100644 --- a/src/main/java/com/budwk/app/sys/controller/SysH5ScanCodeUploadFileController.java +++ b/src/main/java/com/budwk/app/sys/controller/SysH5ScanCodeUploadFileController.java @@ -63,7 +63,7 @@ public class SysH5ScanCodeUploadFileController { @At @SLog(tag = "文件管理", msg = "同步到PC") @SaCheckLogin - public Result syncPc(@Param("files") JSONObject[] jsonObject) { + public Result syncPc(@Param("files") JSONObject[] jsonObject, @Param("timestamp") String timestamp) { try { if(ObjectUtil.isEmpty(jsonObject)){ return Result.error("请选择要同步的文件"); @@ -74,7 +74,7 @@ public class SysH5ScanCodeUploadFileController { do { scan = redisService.scan(scan == null ? ScanParams.SCAN_POINTER_START : scan.getStringCursor(), match); for (String key : scan.getResult()) { - NutMap data = NutMap.NEW().addv("action", "h5-scan-code-upload-file").addv("files", jsonObject); + NutMap data = NutMap.NEW().addv("action", "h5-scan-code-upload-file-" + timestamp).addv("files", jsonObject); pubSubService.fire(key, Json.toJson(data)); } } while (!scan.isCompleteIteration()); diff --git a/src/main/resources/static/components/plugins/sysUpload/index.vue b/src/main/resources/static/components/plugins/sysUpload/index.vue index e916d83..7d7b4e4 100644 --- a/src/main/resources/static/components/plugins/sysUpload/index.vue +++ b/src/main/resources/static/components/plugins/sysUpload/index.vue @@ -80,7 +80,7 @@
{{ upload_text }}
-
+
@@ -189,7 +189,8 @@ module.exports = { fileAccept: null, dragDisabled: true, qrCodeAddress: origin + "/platform/sys/h5ScanCodeUploadFile", - uploadMode: "pc" + uploadMode: "pc", + codeLoading: true, } }, computed: { @@ -540,7 +541,20 @@ module.exports = { }, mounted() { - webSocketPubSub.subscribe("h5-scan-code-upload-file", (data) => { + const timestamp = new Date().getTime() + this.qrCodeAddress = origin + "/platform/sys/h5ScanCodeUploadFile?timestamp=" + timestamp + console.info("qrCodeAddress:", this.qrCodeAddress) + // 可选:轮询或 watch ready 状态 + const checkReady = () => { + if (webSocketPubSub.ws && webSocketPubSub.ws.readyState === WebSocket.OPEN) { + console.info("ws.readyState is open"); + this.codeLoading = false; + } else { + setTimeout(checkReady, 100); + } + }; + checkReady(); + webSocketPubSub.subscribe("h5-scan-code-upload-file-" + timestamp, (data) => { console.log("ws:收到手机上传文件消息:", data) const originFileList = this.fileList || [] console.log(data.files) diff --git a/src/main/resources/views/platform/sys/h5upload.html b/src/main/resources/views/platform/sys/h5upload.html index 15cd075..abaa201 100644 --- a/src/main/resources/views/platform/sys/h5upload.html +++ b/src/main/resources/views/platform/sys/h5upload.html @@ -88,10 +88,13 @@ ], // accept: "image/*", accept: "*", - upload_number: 9 + upload_number: 9, } }, methods: { + GetQueryString(name) { + return new URLSearchParams(window.location.search).get(name) + }, beforeRead(file) { return true }, @@ -156,7 +159,8 @@ .post( "/platform/sys/h5ScanCodeUploadFile/syncPc", { - files: JSON.stringify(this.fileList) + files: JSON.stringify(this.fileList), + timestamp: this.GetQueryString("timestamp") }, { headers: {