diff --git a/packages/ui/src/renderer/src/features/DependenciesSetupProgressIndicatorDialog/operations.ts b/packages/ui/src/renderer/src/features/DependenciesSetupProgressIndicatorDialog/operations.ts new file mode 100644 index 0000000..c3b2e6f --- /dev/null +++ b/packages/ui/src/renderer/src/features/DependenciesSetupProgressIndicatorDialog/operations.ts @@ -0,0 +1,36 @@ +import { createApp } from 'vue' +import ElementPlus from 'element-plus' +import DependenciesSetupProgressIndicatorDialog from './index.vue' + +export const mountGlobalDialog = () => { + const containerElId = `elForDependenciesSetupProgressIndicatorDialog` + + if (document.getElementById(containerElId)) { + return + } + let containerEl: null | HTMLElement = (() => { + const el = document.createElement('div') + el.id = containerElId + return el + })() + document.body.append(containerEl) + + const dispose = () => { + app?.unmount() + containerEl?.remove() + + app = null + containerEl = null + } + let app: null | ReturnType = createApp(DependenciesSetupProgressIndicatorDialog, { + modelValue: true, + onClosed() { + dispose() + } + }).use(ElementPlus) + app.mount(containerEl) + + return { + dispose + } +} diff --git a/packages/ui/src/renderer/src/page/Configuration/GeekAutoStartChatWithBoss.vue b/packages/ui/src/renderer/src/page/Configuration/GeekAutoStartChatWithBoss.vue index f16b711..19d58d3 100644 --- a/packages/ui/src/renderer/src/page/Configuration/GeekAutoStartChatWithBoss.vue +++ b/packages/ui/src/renderer/src/page/Configuration/GeekAutoStartChatWithBoss.vue @@ -27,7 +27,6 @@ I'm ready, geekgeekgo! - @@ -36,7 +35,7 @@ import { onUnmounted, ref } from 'vue' import JSON5 from 'json5' import { ElForm, ElMessage, ElMessageBox } from 'element-plus' import router from '../../router/index' -import DependenciesSetupProgressIndicatorDialog from '../../features/DependenciesSetupProgressIndicatorDialog/index.vue' +import { mountGlobalDialog as mountDependenciesSetupProgressIndicatorDialog } from '@renderer/features/DependenciesSetupProgressIndicatorDialog/operations' const formContent = ref({ bossZhipinCookies: '', @@ -118,13 +117,11 @@ const handleExpectCompaniesInputBlur = (event) => { .join(',') } -const shouldShowDependenciesSetupProgressIndicatorDialog = ref(false) - const needWarmingUpDenpendenciesHandler = () => { - shouldShowDependenciesSetupProgressIndicatorDialog.value = true + const processDialog = mountDependenciesSetupProgressIndicatorDialog() const handlePuppeteerDownloadFinished = () => { - shouldShowDependenciesSetupProgressIndicatorDialog.value = false + processDialog?.dispose() } electron.ipcRenderer.once('PUPPETEER_DOWNLOAD_FINISHED', handlePuppeteerDownloadFinished) }