From fdc87fa88ae58fe8c0eb88b37f9ae940d52e8187 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=A1=E5=A4=8D=E4=B9=A0?= <2353956224@qq.com> Date: Fri, 24 Apr 2026 14:04:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96tk=E7=89=88=E7=A7=81=E4=BF=A1?= =?UTF-8?q?=E5=BC=80=E5=90=AF=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/auto-dm/AutoDmTkWorkbench.vue | 37 ++++++++++++++++--------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/src/views/auto-dm/AutoDmTkWorkbench.vue b/src/views/auto-dm/AutoDmTkWorkbench.vue index 79532dd..fdb3b0c 100644 --- a/src/views/auto-dm/AutoDmTkWorkbench.vue +++ b/src/views/auto-dm/AutoDmTkWorkbench.vue @@ -13,8 +13,8 @@ class="flex items-center gap-2 rounded-lg bg-gradient-to-r from-emerald-500 to-teal-500 px-4 py-2 text-sm text-white shadow-sm transition-all hover:from-emerald-600 hover:to-teal-600 disabled:cursor-not-allowed disabled:opacity-60"> {{ isPreparing ? '预热中...' : '预热视图' }} - @@ -355,6 +355,12 @@ function buildStartPayload() { } function ensureElectronCapability(methodName) { if (!isElectronEnv || !window.electronAPI?.[methodName]) { ElMessage.error('当前环境不支持该功能'); return false } return true } function invalidatePreparedState(nextStatus = '配置已变更,请重新预热视图') { preparedConfigKey.value = ''; loginConfirmed.value = false; if (!statusText.value.includes('运行')) statusText.value = nextStatus } +async function showBrowserWorkspace(viewId, fallbackStatusText) { + pageMode.value = 'browser' + await window.electronAPI.switchToView(viewId) + await window.electronAPI.showViews() + if (!statusText.value.includes('运行')) statusText.value = fallbackStatusText +} function handleGreetingConfirm(data) { configForm.prologueList = { yolo: data.sentences || [], ...(data.translations || {}) }; configForm.needTranslate = Boolean(data.needTranslate); showGreetingDialog.value = false; invalidatePreparedState(); void saveSharedConfig() } function handleSwitchMinutesBlur() { configForm.groupSwitchMinutes = clampMinutes(configForm.groupSwitchMinutes); invalidatePreparedState() } function handlePostUserSleepBlur() { configForm.postUserSleepSeconds = clampPositiveSeconds(configForm.postUserSleepSeconds, 6); invalidatePreparedState() } @@ -422,10 +428,11 @@ async function handlePrepareViews() { if (result.currentViewId) activeViewId.value = result.currentViewId preparedConfigKey.value = currentPrepareKey.value await saveSharedConfig() - // pageMode.value = 'browser' - await window.electronAPI.showViews() + if (pageMode.value === 'config') { + await window.electronAPI.hideViews() + } statusText.value = `视图已预热,请先在视图 ${activeViewId.value} 手动登录,再启动脚本` - ElMessage.success('视图预热完成,已切换到浏览器视图') + ElMessage.success('视图预热完成,请切换到浏览器视图') } catch (error) { const message = error instanceof Error ? error.message : String(error) ElMessage.error(`预热视图失败:${message}`) @@ -435,15 +442,20 @@ async function handlePrepareViews() { } async function openBrowserView() { if (!ensureElectronCapability('switchToView')) return - pageMode.value = 'browser' + if (isPreparing.value) { + ElMessage.warning('视图预热中,请等待预热完成后再打开浏览器视图') + return + } try { - await window.electronAPI.switchToView(activeViewId.value) - await window.electronAPI.showViews() - if (!statusText.value.includes('运行')) { - statusText.value = hasPreparedViews.value ? `已打开预热视图 ${activeViewId.value},请手动登录后启动脚本` : '当前配置尚未预热,请先返回工作台执行预热视图' - } + await showBrowserWorkspace( + activeViewId.value, + hasPreparedViews.value + ? `已打开预热视图 ${activeViewId.value},请手动登录后启动脚本` + : '当前配置尚未预热,请先返回工作台执行预热视图' + ) } catch (error) { const message = error instanceof Error ? error.message : String(error) + pageMode.value = 'config' ElMessage.error(`打开浏览器视图失败:${message}`) } } @@ -490,8 +502,7 @@ async function handleStart() { isStarting.value = true try { await saveSharedConfig() - await window.electronAPI.switchToView(activeViewId.value) - await window.electronAPI.showViews() + await showBrowserWorkspace(activeViewId.value, `已打开预热视图 ${activeViewId.value},请手动登录后启动脚本`) const result = await window.electronAPI.startStandaloneTikTokAutomationAll(buildStartPayload()) if (!result?.success) { statusText.value = '启动失败'