11
This commit is contained in:
@@ -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"
|
||||
>
|
||||
<div class="space-y-4">
|
||||
<Message
|
||||
|
||||
@@ -115,6 +115,8 @@ export const useWorkflowStore = defineStore("workflow", {
|
||||
|
||||
videoRewriting: false,
|
||||
|
||||
videoRewriteAbortRequested: false,
|
||||
|
||||
scriptGenerating: false,
|
||||
|
||||
/** 爆款文案(customPrompt 模式)生成中 */
|
||||
@@ -766,6 +768,9 @@ export const useWorkflowStore = defineStore("workflow", {
|
||||
* @param {ReturnType<typeof useWorkflowStore>} 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 = "";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user