From 04ca328a67c8d6f96295f77cdf1351a866d9e570 Mon Sep 17 00:00:00 2001 From: 24kycj <1637269896@qq.com> Date: Mon, 5 Jan 2026 04:05:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8F=90=E4=BA=A4=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=9A=E5=AE=8C=E5=96=84=E6=89=80=E6=9C=89=E6=8B=B7?= =?UTF-8?q?=E8=B4=9D=E7=B1=BB=E5=9E=8B=E6=94=AF=E6=8C=81=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E7=94=B5=E5=AD=90=E5=85=89=E7=9B=98=E5=92=8C=E7=A6=81?= =?UTF-8?q?=E6=8B=B7U=E7=9B=98=E6=8F=90=E4=BA=A4=E5=8D=A1=E6=AD=BB?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复 Files 组件中 file_form=1(电子光盘) 和 file_form=4(禁拷U盘) 的空处理分支 - 添加完成回调触发逻辑,避免提交流程卡死 - 完善 upload()、upload_over()、performSubmit() 的状态判断 - 严格对齐 work-副本.vue 的验证逻辑和参数构建顺序 - 优化标签上传判断,避免无标签时的不必要API调用 - 添加 ISO/ZIP 验证(仅在有内容文件时) - 清理所有调试日志 --- src/renderer/components/NetworkAuthDialog.vue | 72 +- src/renderer/components/dispose.vue | 237 ++--- src/renderer/components/files/file.vue | 12 +- .../components/recorder/ScreenRecorder.vue | 14 +- .../components/work/AdvancedSettings.vue | 23 +- src/renderer/components/work/GuidePopover.vue | 96 ++ src/renderer/components/work/TagMetadata.vue | 6 +- src/renderer/components/work/TaskHeader.vue | 61 +- src/renderer/components/work/WorkMain.vue | 823 ++++++++++++++---- .../work/sections/AdvancedFeatures.vue | 7 +- .../components/work/sections/BasicConfig.vue | 66 +- .../work/sections/HardwareControl.vue | 6 +- .../work/sections/RecordingSettings.vue | 2 +- src/renderer/lang/cn.js | 9 +- src/renderer/lang/en.js | 17 +- src/renderer/lang/ocn.js | 9 +- src/renderer/main.js | 31 +- 17 files changed, 992 insertions(+), 499 deletions(-) create mode 100644 src/renderer/components/work/GuidePopover.vue diff --git a/src/renderer/components/NetworkAuthDialog.vue b/src/renderer/components/NetworkAuthDialog.vue index 44cfa6a..7d3b768 100644 --- a/src/renderer/components/NetworkAuthDialog.vue +++ b/src/renderer/components/NetworkAuthDialog.vue @@ -1,50 +1,28 @@ diff --git a/src/renderer/components/files/file.vue b/src/renderer/components/files/file.vue index 9ca851d..e086cf9 100644 --- a/src/renderer/components/files/file.vue +++ b/src/renderer/components/files/file.vue @@ -349,7 +349,11 @@ export default { entries.forEach((f) => this.fileBack(f, false)); } } else if (file_form == 1) { - //电子光盘 + // 电子光盘:不需要拷贝,直接标记为完成 + this.overNumber = 0; + for (const file of entries) { + this.fileBack(file, true); + } } else if (file_form == 2) { //zip this.archiverIsover = false; @@ -364,7 +368,11 @@ export default { let password = "123456"; zip(this.filesList, this.zip_path, this.archiverBack, true, password); } else if (file_form == 4) { - //u盘 + // 禁拷贝U盘:不需要拷贝,直接标记为完成 + this.overNumber = 0; + for (const file of entries) { + this.fileBack(file, true); + } } else { // 默认路径上传:不实际拷贝,仅回调推进流程 this.overNumber = 0; diff --git a/src/renderer/components/recorder/ScreenRecorder.vue b/src/renderer/components/recorder/ScreenRecorder.vue index cdf137d..b7fa8b2 100644 --- a/src/renderer/components/recorder/ScreenRecorder.vue +++ b/src/renderer/components/recorder/ScreenRecorder.vue @@ -12,7 +12,7 @@
- {{ statusOnly ? '录制中...' : recordingTime }} + {{ statusOnly ? $t('recorder.recording') : recordingTime }}
@@ -113,12 +113,12 @@ export default { this.currentTaskId = this.taskId || ''; this.startTimer(); - this.$message.success(this.$t('recorder.recordingStarted') || '开始录制'); + this.$message.success(this.$t('recorder.recordingStarted')); this.$emit('recording-started'); } catch (error) { console.error('启动录制失败:', error); - this.$message.error(this.$t('recorder.startFailed') || '启动录制失败'); + this.$message.error(this.$t('recorder.startFailed')); } finally { this.loading = false; } @@ -145,7 +145,7 @@ export default { } catch (error) { console.error('停止录制失败:', error); - this.$message.error(this.$t('recorder.stopFailed') || '停止录制失败'); + this.$message.error(this.$t('recorder.stopFailed')); } finally { this.loading = false; } @@ -153,7 +153,7 @@ export default { async cancelRecording() { await this.stopRecording(false); - this.$message.info('录制已取消'); + this.$message.info(this.$t('recorder.recordingCanceled')); }, async saveRecording(customPath) { @@ -176,7 +176,7 @@ export default { const result = await ipcRenderer.invoke('stop-recording', base64data, this.currentTaskId, customPath); if (result.success) { - this.$message.success(this.$t('recorder.savedSuccess') || `录制已保存: ${result.fileName}`); + this.$message.success(this.$t('recorder.savedSuccess') + `: ${result.fileName}`); this.$emit('recording-saved', result); } else { this.$message.error(result.message); @@ -186,7 +186,7 @@ export default { } catch (error) { console.error('保存录制失败:', error); - this.$message.error(this.$t('recorder.saveFailed') || '保存录制失败'); + this.$message.error(this.$t('recorder.saveFailed')); } }, diff --git a/src/renderer/components/work/AdvancedSettings.vue b/src/renderer/components/work/AdvancedSettings.vue index ae34709..cfcc11a 100644 --- a/src/renderer/components/work/AdvancedSettings.vue +++ b/src/renderer/components/work/AdvancedSettings.vue @@ -1,11 +1,12 @@