From c3cd3523f6d3dbcd33ca4650f414dc36e5387ce1 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Tue, 30 Apr 2024 17:13:07 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E5=B7=A5=E4=BD=9C=E5=8F=B0):=20?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=8F=B0=E5=B1=95=E7=A4=BA=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E5=B5=8C=E5=85=A5=E5=BC=8F=E9=80=82=E9=85=8D?= =?UTF-8?q?=E5=B9=B6=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/workbranch/index.vue | 40 +++++++++++++++++-- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/core/core-frontend/src/views/workbranch/index.vue b/core/core-frontend/src/views/workbranch/index.vue index f082c843d7..810dd3ea4a 100644 --- a/core/core-frontend/src/views/workbranch/index.vue +++ b/core/core-frontend/src/views/workbranch/index.vue @@ -14,6 +14,8 @@ import { ElMessage } from 'element-plus-secondary' import { useCache } from '@/hooks/web/useCache' import DeResourceCreateOptV2 from '@/views/common/DeResourceCreateOptV2.vue' import { Base64 } from 'js-base64' +import { useEmbedded } from '@/store/modules/embedded' +import { useAppStoreWithOut } from '@/store/modules/app' const userStore = useUserStoreWithOut() const interactiveStore = interactiveStoreWithOut() const permissionStore = usePermissionStoreWithOut() @@ -25,6 +27,8 @@ const { wsCache } = useCache() const { push } = useRouter() const router = useRouter() const resourceCreateOpt = ref(null) +const embeddedStore = useEmbedded() +const appStore = useAppStoreWithOut() const quickCreationList = shallowRef([ { @@ -96,6 +100,7 @@ const state = reactive({ loading: false, dvCreateForm: { resourceName: null, + templateId: null, name: null, pid: null, nodeType: 'panel', @@ -201,14 +206,21 @@ const templatePreview = previewId => { const templateApply = template => { state.dvCreateForm.name = template.title - state.dvCreateForm.templateUrl = template.metas.theme_repo - state.dvCreateForm.resourceName = template.id state.dvCreateForm.nodeType = template.templateType + if (template.source === 'market') { + state.dvCreateForm.newFrom = 'new_market_template' + state.dvCreateForm.templateUrl = template.metas.theme_repo + state.dvCreateForm.resourceName = template.id + } else { + state.dvCreateForm.newFrom = 'new_inner_template' + state.dvCreateForm.templateId = template.id + } apply() } +const isDataEaseBi = computed(() => appStore.getIsDataEaseBi) const apply = () => { - if (!state.dvCreateForm.templateUrl) { + if (state.dvCreateForm.newFrom === 'new_market_template' && !state.dvCreateForm.templateUrl) { ElMessage.warning('未获取模板下载链接请联系模板市场官方') return false } @@ -223,7 +235,27 @@ const apply = () => { : '#/dashboard?opt=create&createType=template') + '&templateParams=' + Base64.encode(JSON.stringify(templateTemplate)) - window.open(baseUrl, '_blank') + let newWindow = null + let embeddedBaseUrl = '' + if (isDataEaseBi.value) { + embeddedBaseUrl = embeddedStore.baseUrl + } + if (state.pid) { + newWindow = window.open(embeddedBaseUrl + baseUrl + `&pid=${state.pid}`, '_blank') + } else { + newWindow = window.open(embeddedBaseUrl + baseUrl, '_blank') + } + initOpenHandler(newWindow) +} +const openHandler = ref(null) +const initOpenHandler = newWindow => { + if (openHandler?.value) { + const pm = { + methodName: 'initOpenHandler', + args: newWindow + } + openHandler.value.invokeMethod(pm) + } } const toTemplateMarket = () => {