From b6b29e922701bea935eeeddf6effc0d6cbf389d7 Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Mon, 18 Nov 2024 17:24:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E7=B3=BB=E7=BB=9F=E8=AE=BE=E7=BD=AE):=20?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=AE=BE=E7=BD=AE=E7=9A=84=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=AD=E6=B7=BB=E5=8A=A0=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=89=93=E5=BC=80=E6=96=B9=E5=BC=8F=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/dashboard/DbToolbar.vue | 3 ++- .../canvas/ComponentWrapper.vue | 6 ++++-- .../v-query/QueryConditionConfiguration.vue | 8 ++++++-- .../src/layout/components/Header.vue | 3 ++- core/core-frontend/src/layout/components/Menu.vue | 5 ++++- .../src/layout/components/TopDocCard.vue | 5 ++++- core/core-frontend/src/pages/panel/main.ts | 1 + core/core-frontend/src/permission.ts | 1 + core/core-frontend/src/views/about/index.vue | 6 +++++- .../src/views/chart/components/editor/index.vue | 9 +++++++-- .../src/views/chart/components/views/index.vue | 3 ++- .../core-frontend/src/views/common/DeAppApply.vue | 6 +++++- .../src/views/common/DeResourceGroupOpt.vue | 6 ++++-- .../src/views/common/DeResourceTree.vue | 14 +++++++------- .../src/views/data-visualization/PreviewHead.vue | 10 ++++++---- .../src/views/share/share/ShareGrid.vue | 6 +++++- .../src/views/template-market/index.vue | 5 +++-- .../views/visualized/data/dataset/ExportExcel.vue | 7 ++++--- .../visualized/data/dataset/form/FieldMore.vue | 1 - .../src/views/visualized/data/dataset/index.vue | 6 +++--- .../src/views/workbranch/ShortcutTable.vue | 5 +++-- core/core-frontend/src/views/workbranch/index.vue | 15 ++++++++------- 22 files changed, 86 insertions(+), 45 deletions(-) diff --git a/core/core-frontend/src/components/dashboard/DbToolbar.vue b/core/core-frontend/src/components/dashboard/DbToolbar.vue index 0d077ef956..e69f658ac9 100644 --- a/core/core-frontend/src/components/dashboard/DbToolbar.vue +++ b/core/core-frontend/src/components/dashboard/DbToolbar.vue @@ -139,7 +139,8 @@ const previewOuter = () => { } canvasSave(() => { const url = '#/preview?dvId=' + dvInfo.value.id + '&ignoreParams=true' - const newWindow = window.open(url, '_blank') + const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' + const newWindow = window.open(url, openType) initOpenHandler(newWindow) }) } diff --git a/core/core-frontend/src/components/data-visualization/canvas/ComponentWrapper.vue b/core/core-frontend/src/components/data-visualization/canvas/ComponentWrapper.vue index 5fdc5575af..f1f5093af3 100644 --- a/core/core-frontend/src/components/data-visualization/canvas/ComponentWrapper.vue +++ b/core/core-frontend/src/components/data-visualization/canvas/ComponentWrapper.vue @@ -7,6 +7,7 @@ import { downloadCanvas2, imgUrlTrans } from '@/utils/imgUtils' import ComponentEditBar from '@/components/visualization/ComponentEditBar.vue' import ComponentSelector from '@/components/visualization/ComponentSelector.vue' import { useEmitt } from '@/hooks/web/useEmitt' +import { useCache } from '@/hooks/web/useCache' import Board from '@/components/de-board/Board.vue' import { dvMainStoreWithOut } from '@/store/modules/data-visualization/dvMain' import { activeWatermarkCheckUser, removeActiveWatermark } from '@/components/watermark/watermark' @@ -15,7 +16,7 @@ const componentWrapperInnerRef = ref(null) const componentEditBarRef = ref(null) const dvMainStore = dvMainStoreWithOut() const downLoading = ref(false) - +const { wsCache } = useCache('localStorage') const commonFilterAttrs = ['width', 'height', 'top', 'left', 'rotate'] const commonFilterAttrsFilterBorder = [ 'width', @@ -316,9 +317,10 @@ const onWrapperClick = e => { try { let newWindow if ('newPop' === jumpType) { + const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' window.open( url, - '_blank', + openType, 'width=800,height=600,left=200,top=100,toolbar=no,scrollbars=yes,resizable=yes,location=no' ) } else { diff --git a/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue b/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue index 97b5edae15..b1e1d5e822 100644 --- a/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue +++ b/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue @@ -1777,8 +1777,12 @@ const sortSave = list => { const handleCustomClick = async () => { if (sortComputed.value || curComponent.value.sort !== 'customSort') return - const list = await enumValueObj({ queryId: curComponent.value.sortId, searchText: '' }) - customSortFilterRef.value.sortInit([...new Set(list.map(ele => ele[curComponent.value.sortId]))]) + let list = cloneDeep(curComponent.value.sortList || []) + if (!list.length) { + const arr = await enumValueObj({ queryId: curComponent.value.sortId, searchText: '' }) + list = arr.map(ele => ele[curComponent.value.sortId]) + } + customSortFilterRef.value.sortInit([...new Set(list)]) } const sortComputed = computed(() => { diff --git a/core/core-frontend/src/layout/components/Header.vue b/core/core-frontend/src/layout/components/Header.vue index b6cf039dd1..fdb6440df5 100644 --- a/core/core-frontend/src/layout/components/Header.vue +++ b/core/core-frontend/src/layout/components/Header.vue @@ -65,7 +65,8 @@ const showOverlayCopilot = ref(true) const handleSelect = (index: string) => { // 自定义事件 if (isExternal(index)) { - window.open(index, '_blank') + const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' + window.open(index, openType) } else { push(index) } diff --git a/core/core-frontend/src/layout/components/Menu.vue b/core/core-frontend/src/layout/components/Menu.vue index 35efdfe1e3..d9629add12 100644 --- a/core/core-frontend/src/layout/components/Menu.vue +++ b/core/core-frontend/src/layout/components/Menu.vue @@ -3,6 +3,7 @@ import { computed } from 'vue' import { ElMenu } from 'element-plus-secondary' import { useRoute, useRouter } from 'vue-router' import { isExternal } from '@/utils/validate' +import { useCache } from '@/hooks/web/useCache' import MenuItem from './MenuItem.vue' import { useAppearanceStoreWithOut } from '@/store/modules/appearance' const appearanceStore = useAppearanceStoreWithOut() @@ -17,6 +18,7 @@ defineProps({ }) const route = useRoute() +const { wsCache } = useCache('localStorage') const { push } = useRouter() const menuList = computed(() => route.matched[0]?.children || []) const path = computed(() => route.matched[0]?.path) @@ -28,7 +30,8 @@ const activeIndex = computed(() => { const menuSelect = (index: string, indexPath: string[]) => { // 自定义事件 if (isExternal(index)) { - window.open(index) + const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' + window.open(index, openType) } else { push(`${path.value}/${indexPath.join('/')}`) } diff --git a/core/core-frontend/src/layout/components/TopDocCard.vue b/core/core-frontend/src/layout/components/TopDocCard.vue index 09f1126592..905040bf06 100644 --- a/core/core-frontend/src/layout/components/TopDocCard.vue +++ b/core/core-frontend/src/layout/components/TopDocCard.vue @@ -1,6 +1,8 @@ diff --git a/core/core-frontend/src/pages/panel/main.ts b/core/core-frontend/src/pages/panel/main.ts index 02e1602655..5667a05e6b 100644 --- a/core/core-frontend/src/pages/panel/main.ts +++ b/core/core-frontend/src/pages/panel/main.ts @@ -121,6 +121,7 @@ const setupAll = async ( const defaultSort = await getDefaultSort.getDefaultSettings() const { wsCache } = useCache() wsCache.set('TreeSort-backend', defaultSort['basic.defaultSort'] ?? '1') + wsCache.set('open-backend', defaultSort['basic.defaultOpen'] ?? '0') app.mount(dom) return app } diff --git a/core/core-frontend/src/permission.ts b/core/core-frontend/src/permission.ts index 61baf5e683..f9e116f199 100644 --- a/core/core-frontend/src/permission.ts +++ b/core/core-frontend/src/permission.ts @@ -61,6 +61,7 @@ router.beforeEach(async (to, from, next) => { await appearanceStore.setFontList() const defaultSort = await getDefaultSettings() wsCache.set('TreeSort-backend', defaultSort['basic.defaultSort'] ?? '1') + wsCache.set('open-backend', defaultSort['basic.defaultOpen'] ?? '0') if ((wsCache.get('user.token') || isDesktop) && !to.path.startsWith('/de-link/')) { if (!userStore.getUid) { await userStore.setUser() diff --git a/core/core-frontend/src/views/about/index.vue b/core/core-frontend/src/views/about/index.vue index cdccb6f682..953f79d31e 100644 --- a/core/core-frontend/src/views/about/index.vue +++ b/core/core-frontend/src/views/about/index.vue @@ -15,7 +15,10 @@ import { import { ElMessage, ElMessageBox, Action } from 'element-plus-secondary' import { useI18n } from '@/hooks/web/useI18n' import { useEmitt } from '@/hooks/web/useEmitt' +import { useCache } from '@/hooks/web/useCache' + const dialogVisible = ref(false) +const { wsCache } = useCache('localStorage') const { t } = useI18n() const userStore = useUserStoreWithOut() const license: F2CLicense = reactive({ @@ -59,7 +62,8 @@ const beforeUpload = file => { const support = () => { const url = 'https://support.fit2cloud.com/' - window.open(url, '_blank') + const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' + window.open(url, openType) } const getLicenseInfo = () => { diff --git a/core/core-frontend/src/views/chart/components/editor/index.vue b/core/core-frontend/src/views/chart/components/editor/index.vue index 7a023d1246..8733a3ba5b 100644 --- a/core/core-frontend/src/views/chart/components/editor/index.vue +++ b/core/core-frontend/src/views/chart/components/editor/index.vue @@ -71,6 +71,9 @@ import { iconFieldCalculatedMap, iconFieldCalculatedQMap } from '@/components/icon-group/field-calculated-list' +import { useCache } from '@/hooks/web/useCache' + +const { wsCache } = useCache('localStorage') const embeddedStore = useEmbedded() const snapshotStore = snapshotStoreWithOut() const dvMainStore = dvMainStoreWithOut() @@ -1399,7 +1402,8 @@ const addDsWindow = () => { const path = embeddedStore.getToken && appStore.getIsIframe ? 'dataset-embedded-form' : '/dataset-form' let routeData = router.resolve(path) - const newWindow = window.open(routeData.href, '_blank') + const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' + const newWindow = window.open(routeData.href, openType) initOpenHandler(newWindow) } const editDs = () => { @@ -1411,7 +1415,8 @@ const editDs = () => { id: view.value.tableId } }) - const newWindow = window.open(routeData.href, '_blank') + const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' + const newWindow = window.open(routeData.href, openType) initOpenHandler(newWindow) } diff --git a/core/core-frontend/src/views/chart/components/views/index.vue b/core/core-frontend/src/views/chart/components/views/index.vue index 3fdb62bc17..6e7c3e21c1 100644 --- a/core/core-frontend/src/views/chart/components/views/index.vue +++ b/core/core-frontend/src/views/chart/components/views/index.vue @@ -410,9 +410,10 @@ const windowsJump = (url, jumpType, size = 'middle') => { const width = screen.width * sizeX const left = screen.width * ((1 - sizeX) / 2) const top = screen.height * ((1 - sizeY) / 2) + const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' newWindow = window.open( url, - '_blank', + openType, `width=${width},height=${height},left=${left},top=${top},toolbar=no,scrollbars=yes,resizable=yes,location=no` ) } else if ('_self' === jumpType) { diff --git a/core/core-frontend/src/views/common/DeAppApply.vue b/core/core-frontend/src/views/common/DeAppApply.vue index 223ed61b3f..93600a3871 100644 --- a/core/core-frontend/src/views/common/DeAppApply.vue +++ b/core/core-frontend/src/views/common/DeAppApply.vue @@ -148,6 +148,9 @@ import { dvMainStoreWithOut } from '@/store/modules/data-visualization/dvMain' import { storeToRefs } from 'pinia' import { deepCopy } from '@/utils/utils' import { snapshotStoreWithOut } from '@/store/modules/data-visualization/snapshot' +import { useCache } from '@/hooks/web/useCache' + +const { wsCache } = useCache('localStorage') const { t } = useI18n() const emits = defineEmits(['closeDraw', 'saveAppCanvas']) const appSaveForm = ref(null) @@ -182,8 +185,9 @@ const dvPreName = computed(() => ) const addDsWindow = () => { // do addDsWindow + const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' const url = '#/data/datasource?opt=create' - window.open(url, '_blank') + window.open(url, openType) } const state = reactive({ diff --git a/core/core-frontend/src/views/common/DeResourceGroupOpt.vue b/core/core-frontend/src/views/common/DeResourceGroupOpt.vue index 3faf0313d4..8ac5a77bdd 100644 --- a/core/core-frontend/src/views/common/DeResourceGroupOpt.vue +++ b/core/core-frontend/src/views/common/DeResourceGroupOpt.vue @@ -3,6 +3,7 @@ import dvFolder from '@/assets/svg/dv-folder.svg' import icon_searchOutline_outlined from '@/assets/svg/icon_search-outline_outlined.svg' import { ref, reactive, computed, watch, toRefs, nextTick } from 'vue' import { useI18n } from '@/hooks/web/useI18n' +import { useCache } from '@/hooks/web/useCache' import nothingTree from '@/assets/img/nothing-tree.png' import { BusiTreeNode } from '@/models/tree/TreeNode' import { @@ -24,7 +25,7 @@ const props = defineProps({ }) const { curCanvasType } = toRefs(props) - +const { wsCache } = useCache('localStorage') const { t } = useI18n() const state = reactive({ @@ -286,11 +287,12 @@ const saveResource = () => { emits('finish') ElMessage.success('保存成功') if (cmd.value === 'copy') { + const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' const baseUrl = curCanvasType.value === 'dataV' ? '#/dvCanvas?opt=copy&dvId=' : '#/dashboard?opt=copy&resourceId=' - window.open(baseUrl + data.data, '_blank') + window.open(baseUrl + data.data, openType) } }) .finally(() => { diff --git a/core/core-frontend/src/views/common/DeResourceTree.vue b/core/core-frontend/src/views/common/DeResourceTree.vue index df609c1e8a..7e49765e26 100644 --- a/core/core-frontend/src/views/common/DeResourceTree.vue +++ b/core/core-frontend/src/views/common/DeResourceTree.vue @@ -281,7 +281,7 @@ const afterTreeInit = () => { } const copyLoading = ref(false) - +const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' const emit = defineEmits(['nodeClick']) const operation = (cmd: string, data: BusiTreeNode, nodeType: string) => { @@ -337,7 +337,7 @@ const operation = (cmd: string, data: BusiTreeNode, nodeType: string) => { ) return } - const newWindow = window.open(baseUrl, '_blank') + const newWindow = window.open(baseUrl, openType) initOpenHandler(newWindow) }) .finally(() => { @@ -372,9 +372,9 @@ const addOperation = ( return } if (data?.id) { - newWindow = window.open(baseUrl + `&pid=${data.id}`, '_blank') + newWindow = window.open(baseUrl + `&pid=${data.id}`, openType) } else { - newWindow = window.open(baseUrl, '_blank') + newWindow = window.open(baseUrl, openType) } initOpenHandler(newWindow) } else if (cmd === 'newFromTemplate') { @@ -409,7 +409,7 @@ const resourceEdit = resourceId => { return } - const newWindow = window.open(baseUrl + resourceId, '_blank') + const newWindow = window.open(baseUrl + resourceId, openType) initOpenHandler(newWindow) } @@ -440,9 +440,9 @@ const resourceCreateFinish = templateData => { } if (state.templateCreatePid) { - newWindow = window.open(baseUrl + `&pid=${state.templateCreatePid}`, '_blank') + newWindow = window.open(baseUrl + `&pid=${state.templateCreatePid}`, openType) } else { - newWindow = window.open(baseUrl, '_blank') + newWindow = window.open(baseUrl, openType) } initOpenHandler(newWindow) } diff --git a/core/core-frontend/src/views/data-visualization/PreviewHead.vue b/core/core-frontend/src/views/data-visualization/PreviewHead.vue index 1bda7e1f98..1076d78928 100644 --- a/core/core-frontend/src/views/data-visualization/PreviewHead.vue +++ b/core/core-frontend/src/views/data-visualization/PreviewHead.vue @@ -19,20 +19,22 @@ import { XpackComponent } from '@/components/plugin' import { useEmitt } from '@/hooks/web/useEmitt' import { useShareStoreWithOut } from '@/store/modules/share' import { exportPermission } from '@/utils/utils' -const shareStore = useShareStoreWithOut() +import { useCache } from '@/hooks/web/useCache' +const shareStore = useShareStoreWithOut() +const { wsCache } = useCache('localStorage') const dvMainStore = dvMainStoreWithOut() const appStore = useAppStoreWithOut() const { dvInfo } = storeToRefs(dvMainStore) const emit = defineEmits(['reload', 'download', 'downloadAsAppTemplate']) const { t } = useI18n() const embeddedStore = useEmbedded() - +const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' const favorited = ref(false) const preview = () => { const baseUrl = isDataEaseBi.value ? embeddedStore.baseUrl : '' const url = baseUrl + '#/preview?dvId=' + dvInfo.value.id + '&ignoreParams=true' - const newWindow = window.open(url, '_blank') + const newWindow = window.open(url, openType) initOpenHandler(newWindow) } const isDataEaseBi = computed(() => appStore.getIsDataEaseBi) @@ -67,7 +69,7 @@ const dvEdit = () => { return } const baseUrl = dvInfo.value.type === 'dataV' ? '#/dvCanvas?dvId=' : '#/dashboard?resourceId=' - const newWindow = window.open(baseUrl + dvInfo.value.id, '_blank') + const newWindow = window.open(baseUrl + dvInfo.value.id, openType) initOpenHandler(newWindow) } diff --git a/core/core-frontend/src/views/share/share/ShareGrid.vue b/core/core-frontend/src/views/share/share/ShareGrid.vue index e20f31fbd7..e39396e8d7 100644 --- a/core/core-frontend/src/views/share/share/ShareGrid.vue +++ b/core/core-frontend/src/views/share/share/ShareGrid.vue @@ -14,10 +14,13 @@ import dayjs from 'dayjs' import { propTypes } from '@/utils/propTypes' import ShareHandler from './ShareHandler.vue' import { interactiveStoreWithOut } from '@/store/modules/interactive' +import { useCache } from '@/hooks/web/useCache' + const props = defineProps({ activeName: propTypes.string.def('') }) +const { wsCache } = useCache('localStorage') const { t } = useI18n() const interactiveStore = interactiveStoreWithOut() @@ -44,7 +47,8 @@ const triggerFilterPanel = () => { } const preview = id => { const routeUrl = `/#/preview?dvId=${id}` - window.open(routeUrl, '_blank') + const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' + window.open(routeUrl, openType) } const formatterTime = (_, _column, cellValue) => { if (!cellValue) { diff --git a/core/core-frontend/src/views/template-market/index.vue b/core/core-frontend/src/views/template-market/index.vue index bc1968333a..2d5993218b 100644 --- a/core/core-frontend/src/views/template-market/index.vue +++ b/core/core-frontend/src/views/template-market/index.vue @@ -495,10 +495,11 @@ const apply = template => { ) return } + const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' if (state.pid) { - newWindow = window.open(baseUrl + `&pid=${state.pid}`, '_blank') + newWindow = window.open(baseUrl + `&pid=${state.pid}`, openType) } else { - newWindow = window.open(baseUrl, '_blank') + newWindow = window.open(baseUrl, openType) } initOpenHandler(newWindow) } diff --git a/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue b/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue index d68b8aa2f4..a891734dbb 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue @@ -60,6 +60,7 @@ const handleClose = () => { clearInterval(timer) } const { wsCache } = useCache() +const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' const xpack = wsCache.get('xpack-model-distributed') onUnmounted(() => { @@ -242,12 +243,12 @@ const callbackExportSuc = () => { const downLoadAll = () => { if (multipleSelection.value.length === 0) { tableData.value.forEach(item => { - window.open(PATH_URL + '/exportCenter/download/' + item.id) + window.open(PATH_URL + '/exportCenter/download/' + item.id, openType) }) return } multipleSelection.value.map(ele => { - window.open(PATH_URL + '/exportCenter/download/' + ele.id) + window.open(PATH_URL + '/exportCenter/download/' + ele.id, openType) }) } const showMsg = item => { @@ -263,7 +264,7 @@ const timestampFormatDate = value => { } import { PATH_URL } from '@/config/axios/service' const downloadClick = item => { - window.open(PATH_URL + '/exportCenter/download/' + item.id) + window.open(PATH_URL + '/exportCenter/download/' + item.id, openType) } const retry = item => { diff --git a/core/core-frontend/src/views/visualized/data/dataset/form/FieldMore.vue b/core/core-frontend/src/views/visualized/data/dataset/form/FieldMore.vue index 0625cc78c4..e3cc072188 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/form/FieldMore.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/form/FieldMore.vue @@ -219,7 +219,6 @@ const handleChange = () => { box-shadow: 0px 4px 8px 0px rgba(31, 35, 41, 0.1); border-right: none; &:nth-child(2) { - margin-top: 20px; > div { height: 210px; } diff --git a/core/core-frontend/src/views/visualized/data/dataset/index.vue b/core/core-frontend/src/views/visualized/data/dataset/index.vue index 02ec4878f8..2f2fbb84af 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/index.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/index.vue @@ -140,13 +140,13 @@ const state = reactive({ const resourceGroupOpt = ref() const curCanvasType = ref('') const mounted = ref(false) - +const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' const isDataEaseBi = computed(() => appStore.getIsDataEaseBi) const isIframe = computed(() => appStore.getIsIframe) const exportPermissions = computed(() => exportPermission(nodeInfo.weight, nodeInfo.ext)) const createPanel = path => { const baseUrl = `#/${path}?opt=create&id=${nodeInfo.id}` - window.open(baseUrl, '_blank') + window.open(baseUrl, openType) } const resourceOptFinish = param => { @@ -187,7 +187,7 @@ const resourceCreate = (pid, name) => { } save(canvasInfo).then(() => { const baseUrl = curCanvasType.value === 'dataV' ? '#/dvCanvas?dvId=' : '#/dashboard?resourceId=' - window.open(baseUrl + newResourceId, '_blank') + window.open(baseUrl + newResourceId, openType) }) } diff --git a/core/core-frontend/src/views/workbranch/ShortcutTable.vue b/core/core-frontend/src/views/workbranch/ShortcutTable.vue index e454b2c4c4..c0f645dc31 100644 --- a/core/core-frontend/src/views/workbranch/ShortcutTable.vue +++ b/core/core-frontend/src/views/workbranch/ShortcutTable.vue @@ -97,12 +97,13 @@ const getBusiListWithPermission = () => { const triggerFilterPanel = () => { loadTableData() } +const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' const preview = id => { const routeUrl = resolve({ path: '/preview', query: { dvId: id } }) - window.open(routeUrl.href, '_blank') + window.open(routeUrl.href, openType) } const openDataset = id => { @@ -110,7 +111,7 @@ const openDataset = id => { path: '/dataset-form', query: { id: id } }) - window.open(routeUrl.href, '_blank') + window.open(routeUrl.href, openType) } const formatterTime = (_, _column, cellValue) => { return dayjs(new Date(cellValue)).format('YYYY-MM-DD HH:mm:ss') diff --git a/core/core-frontend/src/views/workbranch/index.vue b/core/core-frontend/src/views/workbranch/index.vue index ee9aaddd03..0a1b785d42 100644 --- a/core/core-frontend/src/views/workbranch/index.vue +++ b/core/core-frontend/src/views/workbranch/index.vue @@ -40,7 +40,7 @@ const router = useRouter() const resourceCreateOpt = ref(null) const embeddedStore = useEmbedded() const appStore = useAppStoreWithOut() - +const openType = wsCache.get('open-backend') === '0' ? '_self' : '_blank' const quickCreationList = shallowRef([ { icon: icon_dashboard_outlined, @@ -192,24 +192,25 @@ const quickCreate = (flag: number, hasAuth: boolean) => { break } } + const createPanel = () => { const baseUrl = '#/dashboard?opt=create' - window.open(baseUrl, '_blank') + window.open(baseUrl, openType) } const createScreen = () => { const baseUrl = '#/dvCanvas?opt=create' - window.open(baseUrl, '_blank') + window.open(baseUrl, openType) } const createDataset = () => { let routeData = router.resolve({ path: '/dataset-form' }) - window.open(routeData.href, '_blank') + window.open(routeData.href, openType) } const createDatasource = () => { const baseUrl = '#/data/datasource?opt=create' - window.open(baseUrl, '_blank') + window.open(baseUrl, openType) } const templatePreview = previewId => { @@ -255,9 +256,9 @@ const apply = () => { embeddedBaseUrl = embeddedStore.baseUrl } if (state.pid) { - newWindow = window.open(embeddedBaseUrl + baseUrl + `&pid=${state.pid}`, '_blank') + newWindow = window.open(embeddedBaseUrl + baseUrl + `&pid=${state.pid}`, openType) } else { - newWindow = window.open(embeddedBaseUrl + baseUrl, '_blank') + newWindow = window.open(embeddedBaseUrl + baseUrl, openType) } initOpenHandler(newWindow) }