From 3acffa6e7f7d73d8b9722086c21a33fd086884e2 Mon Sep 17 00:00:00 2001
From: "949036910@qq.com" <>
Date: Thu, 28 May 2026 20:48:16 +0800
Subject: [PATCH] 11
---
src/components/workflow/VideoLinkDialog.vue | 11 +++++++++++
src/stores/workflow.js | 14 ++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/src/components/workflow/VideoLinkDialog.vue b/src/components/workflow/VideoLinkDialog.vue
index f4a6f2f..a158195 100644
--- a/src/components/workflow/VideoLinkDialog.vue
+++ b/src/components/workflow/VideoLinkDialog.vue
@@ -22,12 +22,22 @@ const tipItems = [
function onCancel() {
feedback.value = { severity: "", message: "" };
+ if (videoRewriting.value) {
+ workflow.videoRewriteAbortRequested = true;
+ workflow.videoRewriting = false;
+ workflow.rewriteProgress = "";
+ }
workflow.videoLinkModalVisible = false;
}
+function onDialogHide() {
+ onCancel();
+}
+
async function onRewrite() {
feedback.value = { severity: "", message: "" };
const result = await executeVideoRewrite(workflow);
+ if (result?.cancelled) return;
if (!result.ok) {
feedback.value = { severity: "error", message: result.message };
} else {
@@ -44,6 +54,7 @@ async function onRewrite() {
:style="{ width: '600px' }"
:draggable="false"
class="ip-brain-dialog"
+ @hide="onDialogHide"
>
} store
*/
export async function executeVideoRewrite(store) {
+ if (store.videoRewriting) {
+ return { ok: false, message: "仿写任务正在执行中,请稍候" };
+ }
const parsed = validateShareText(store.videoShareText);
if (!parsed.ok) {
return { ok: false, message: parsed.message };
@@ -782,6 +787,7 @@ export async function executeVideoRewrite(store) {
}
store.videoRewriting = true;
+ store.videoRewriteAbortRequested = false;
store.rewriteProgress = "正在解析和仿写...";
let unlisten = null;
@@ -789,6 +795,9 @@ export async function executeVideoRewrite(store) {
try {
unlisten = await listen(NODEJS_EVENT, (e) => {
const p = e.payload;
+ if (store.videoRewriteAbortRequested) {
+ return;
+ }
if (p?.type === "progress" && typeof p.status === "string") {
store.rewriteProgress = p.status;
} else if (p?.type === "log") {
@@ -813,6 +822,10 @@ export async function executeVideoRewrite(store) {
},
});
+ if (store.videoRewriteAbortRequested) {
+ return { ok: false, cancelled: true, message: "已取消仿写任务" };
+ }
+
if (!result || result.success !== true) {
const err =
(result && (result.error || result.message)) ||
@@ -849,6 +862,7 @@ export async function executeVideoRewrite(store) {
unlisten();
}
store.videoRewriting = false;
+ store.videoRewriteAbortRequested = false;
store.rewriteProgress = "";
}
}