This commit is contained in:
949036910@qq.com
2026-05-28 20:48:16 +08:00
parent 989e8eb065
commit 3acffa6e7f
2 changed files with 25 additions and 0 deletions

View File

@@ -22,12 +22,22 @@ const tipItems = [
function onCancel() { function onCancel() {
feedback.value = { severity: "", message: "" }; feedback.value = { severity: "", message: "" };
if (videoRewriting.value) {
workflow.videoRewriteAbortRequested = true;
workflow.videoRewriting = false;
workflow.rewriteProgress = "";
}
workflow.videoLinkModalVisible = false; workflow.videoLinkModalVisible = false;
} }
function onDialogHide() {
onCancel();
}
async function onRewrite() { async function onRewrite() {
feedback.value = { severity: "", message: "" }; feedback.value = { severity: "", message: "" };
const result = await executeVideoRewrite(workflow); const result = await executeVideoRewrite(workflow);
if (result?.cancelled) return;
if (!result.ok) { if (!result.ok) {
feedback.value = { severity: "error", message: result.message }; feedback.value = { severity: "error", message: result.message };
} else { } else {
@@ -44,6 +54,7 @@ async function onRewrite() {
:style="{ width: '600px' }" :style="{ width: '600px' }"
:draggable="false" :draggable="false"
class="ip-brain-dialog" class="ip-brain-dialog"
@hide="onDialogHide"
> >
<div class="space-y-4"> <div class="space-y-4">
<Message <Message

View File

@@ -115,6 +115,8 @@ export const useWorkflowStore = defineStore("workflow", {
videoRewriting: false, videoRewriting: false,
videoRewriteAbortRequested: false,
scriptGenerating: false, scriptGenerating: false,
/** 爆款文案customPrompt 模式)生成中 */ /** 爆款文案customPrompt 模式)生成中 */
@@ -766,6 +768,9 @@ export const useWorkflowStore = defineStore("workflow", {
* @param {ReturnType<typeof useWorkflowStore>} store * @param {ReturnType<typeof useWorkflowStore>} store
*/ */
export async function executeVideoRewrite(store) { export async function executeVideoRewrite(store) {
if (store.videoRewriting) {
return { ok: false, message: "仿写任务正在执行中,请稍候" };
}
const parsed = validateShareText(store.videoShareText); const parsed = validateShareText(store.videoShareText);
if (!parsed.ok) { if (!parsed.ok) {
return { ok: false, message: parsed.message }; return { ok: false, message: parsed.message };
@@ -782,6 +787,7 @@ export async function executeVideoRewrite(store) {
} }
store.videoRewriting = true; store.videoRewriting = true;
store.videoRewriteAbortRequested = false;
store.rewriteProgress = "正在解析和仿写..."; store.rewriteProgress = "正在解析和仿写...";
let unlisten = null; let unlisten = null;
@@ -789,6 +795,9 @@ export async function executeVideoRewrite(store) {
try { try {
unlisten = await listen(NODEJS_EVENT, (e) => { unlisten = await listen(NODEJS_EVENT, (e) => {
const p = e.payload; const p = e.payload;
if (store.videoRewriteAbortRequested) {
return;
}
if (p?.type === "progress" && typeof p.status === "string") { if (p?.type === "progress" && typeof p.status === "string") {
store.rewriteProgress = p.status; store.rewriteProgress = p.status;
} else if (p?.type === "log") { } 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) { if (!result || result.success !== true) {
const err = const err =
(result && (result.error || result.message)) || (result && (result.error || result.message)) ||
@@ -849,6 +862,7 @@ export async function executeVideoRewrite(store) {
unlisten(); unlisten();
} }
store.videoRewriting = false; store.videoRewriting = false;
store.videoRewriteAbortRequested = false;
store.rewriteProgress = ""; store.rewriteProgress = "";
} }
} }