From 840d586c5b86282498f2ee8ea7fa76b2088d29a5 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Fri, 1 Nov 2024 16:19:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F?= =?UTF-8?q?=E3=80=81=E4=BB=AA=E8=A1=A8=E6=9D=BF):=20=E9=A2=84=E8=A7=88?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=94=BE=E5=A4=A7=E3=80=81?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=8C=89=E9=92=AE=E7=AD=89#9673?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assets/svg/icon_down-right_outlined.svg | 6 +- .../src/assets/svg/icon_download_outlined.svg | 4 +- .../src/assets/svg/icon_magnify_outlined.svg | 4 +- .../src/assets/svg/icon_minify_outlined.svg | 4 +- .../src/assets/svg/icon_up-left_outlined.svg | 6 +- .../dashboard-style/OverallSetting.vue | 20 ++ .../data-visualization/DvToolbar.vue | 2 +- .../data-visualization/canvas/DePreview.vue | 16 ++ .../data-visualization/canvas/LinkOptBar.vue | 242 ++++++++++++++++++ .../visualization/CanvasBaseSetting.vue | 21 ++ core/core-frontend/src/utils/canvasUtils.ts | 4 + .../editor/util/dataVisualization.ts | 1 + .../views/chart/components/views/index.vue | 9 +- 13 files changed, 323 insertions(+), 16 deletions(-) create mode 100644 core/core-frontend/src/components/data-visualization/canvas/LinkOptBar.vue diff --git a/core/core-frontend/src/assets/svg/icon_down-right_outlined.svg b/core/core-frontend/src/assets/svg/icon_down-right_outlined.svg index e7b55ed09b..8feb48f61f 100644 --- a/core/core-frontend/src/assets/svg/icon_down-right_outlined.svg +++ b/core/core-frontend/src/assets/svg/icon_down-right_outlined.svg @@ -1,4 +1,4 @@ - - - + + + diff --git a/core/core-frontend/src/assets/svg/icon_download_outlined.svg b/core/core-frontend/src/assets/svg/icon_download_outlined.svg index 5f3c6cdf5a..45092897ef 100644 --- a/core/core-frontend/src/assets/svg/icon_download_outlined.svg +++ b/core/core-frontend/src/assets/svg/icon_download_outlined.svg @@ -1,3 +1,3 @@ - - + + diff --git a/core/core-frontend/src/assets/svg/icon_magnify_outlined.svg b/core/core-frontend/src/assets/svg/icon_magnify_outlined.svg index 4bce7bca29..5893f97031 100644 --- a/core/core-frontend/src/assets/svg/icon_magnify_outlined.svg +++ b/core/core-frontend/src/assets/svg/icon_magnify_outlined.svg @@ -1,3 +1,3 @@ - - + + diff --git a/core/core-frontend/src/assets/svg/icon_minify_outlined.svg b/core/core-frontend/src/assets/svg/icon_minify_outlined.svg index eba55dca1a..2037d7fd9a 100644 --- a/core/core-frontend/src/assets/svg/icon_minify_outlined.svg +++ b/core/core-frontend/src/assets/svg/icon_minify_outlined.svg @@ -1,3 +1,3 @@ - - + + diff --git a/core/core-frontend/src/assets/svg/icon_up-left_outlined.svg b/core/core-frontend/src/assets/svg/icon_up-left_outlined.svg index 6050a522b1..766e655356 100644 --- a/core/core-frontend/src/assets/svg/icon_up-left_outlined.svg +++ b/core/core-frontend/src/assets/svg/icon_up-left_outlined.svg @@ -1,4 +1,4 @@ - - - + + + diff --git a/core/core-frontend/src/components/dashboard/subject-setting/dashboard-style/OverallSetting.vue b/core/core-frontend/src/components/dashboard/subject-setting/dashboard-style/OverallSetting.vue index 45c73501a2..279c7cb8f8 100644 --- a/core/core-frontend/src/components/dashboard/subject-setting/dashboard-style/OverallSetting.vue +++ b/core/core-frontend/src/components/dashboard/subject-setting/dashboard-style/OverallSetting.vue @@ -180,6 +180,26 @@ :disabled="canvasStyleData.dashboard.resultMode === 'all'" /> + + + + 显示放大、导出等悬浮按钮 + + + + + + + + + diff --git a/core/core-frontend/src/components/data-visualization/DvToolbar.vue b/core/core-frontend/src/components/data-visualization/DvToolbar.vue index d6388eb32a..27ea637cc2 100644 --- a/core/core-frontend/src/components/data-visualization/DvToolbar.vue +++ b/core/core-frontend/src/components/data-visualization/DvToolbar.vue @@ -395,7 +395,7 @@ const fullScreenPreview = () => { 编辑 - {{ t('template_manage.preview') }} + 预览 { const dataVPreview = computed( () => dvInfo.value.type === 'dataV' && canvasId.value === 'canvas-main' ) + +const linkOptBarShow = computed(() => { + return Boolean(canvasStyleData.value.suspensionButtonAvailable) +}) + +const downloadAsPDF = () => { + // test +} defineExpose({ restore }) @@ -455,6 +464,13 @@ defineExpose({ + diff --git a/core/core-frontend/src/components/visualization/CanvasBaseSetting.vue b/core/core-frontend/src/components/visualization/CanvasBaseSetting.vue index 6eaf45a023..324316795f 100644 --- a/core/core-frontend/src/components/visualization/CanvasBaseSetting.vue +++ b/core/core-frontend/src/components/visualization/CanvasBaseSetting.vue @@ -21,6 +21,27 @@ + + + +
+ 显示放大、导出等悬浮按钮 + + + + + + +
+
+
diff --git a/core/core-frontend/src/utils/canvasUtils.ts b/core/core-frontend/src/utils/canvasUtils.ts index e85086621a..16d5d99085 100644 --- a/core/core-frontend/src/utils/canvasUtils.ts +++ b/core/core-frontend/src/utils/canvasUtils.ts @@ -217,6 +217,10 @@ export function historyAdaptor( //历史字段适配 canvasStyleResult.component['seniorStyleSetting'] = canvasStyleResult.component['seniorStyleSetting'] || deepCopy(SENIOR_STYLE_SETTING_LIGHT) + canvasStyleResult['suspensionButtonAvailable'] = + canvasStyleResult['suspensionButtonAvailable'] === undefined + ? false + : canvasStyleResult['suspensionButtonAvailable'] canvasStyleResult['screenAdaptor'] = canvasStyleResult['screenAdaptor'] || 'widthFirst' canvasStyleResult['refreshBrowserEnable'] = canvasStyleResult['refreshBrowserEnable'] === undefined diff --git a/core/core-frontend/src/views/chart/components/editor/util/dataVisualization.ts b/core/core-frontend/src/views/chart/components/editor/util/dataVisualization.ts index 9dc7ce6f94..21a1dfaac2 100644 --- a/core/core-frontend/src/views/chart/components/editor/util/dataVisualization.ts +++ b/core/core-frontend/src/views/chart/components/editor/util/dataVisualization.ts @@ -89,6 +89,7 @@ export const DEFAULT_CANVAS_STYLE_DATA_BASE = { refreshTime: 5, // 仪表板刷新时间 默认5分钟 popupAvailable: true, // 弹窗区域是否可用 默认为true popupButtonAvailable: true, // 弹框区域显示按钮是否可用 默认为true + suspensionButtonAvailable: false, // 悬浮按钮是否可用 默认false screenAdaptor: 'widthFirst', // 屏幕适配方式 widthFirst=宽度优先 heightFirst=高度优先 full=铺满全屏 keepSize=不缩放 scale: 60, scaleWidth: 60, 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 38af35edc2..bddce2d40f 100644 --- a/core/core-frontend/src/views/chart/components/views/index.vue +++ b/core/core-frontend/src/views/chart/components/views/index.vue @@ -470,7 +470,9 @@ const jumpClick = param => { if (jumpInfo.publicJumpId) { const url = `${embeddedBaseUrl}#/de-link/${ jumpInfo.publicJumpId - }?jumpInfoParam=${encodeURIComponent(Base64.encode(JSON.stringify(param)))}` + }?fromLink=true&jumpInfoParam=${encodeURIComponent( + Base64.encode(JSON.stringify(param)) + )}` const currentUrl = window.location.href localStorage.setItem('beforeJumpUrl', currentUrl) windowsJump(url, jumpInfo.jumpType, jumpInfo.windowSize) @@ -480,8 +482,9 @@ const jumpClick = param => { } else { const url = `${embeddedBaseUrl}#/preview?dvId=${ jumpInfo.targetDvId - }&jumpInfoParam=${encodeURIComponent(Base64.encode(JSON.stringify(param)))}` - + }&fromLink=true&jumpInfoParam=${encodeURIComponent(Base64.encode(JSON.stringify(param)))}` + const currentUrl = window.location.href + localStorage.setItem('beforeJumpUrl', currentUrl) if (isIframe.value || isDataEaseBi.value) { embeddedStore.clearState() }