From 377b7d99381f27839a68e02a79762c1334e92024 Mon Sep 17 00:00:00 2001 From: jingna <1264204245@qq.com> Date: Fri, 18 Apr 2025 18:26:53 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E5=90=88=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/visualization/DvSidebar.vue | 86 ++++++++++++++----- .../views/chart/components/editor/index.vue | 4 +- 2 files changed, 68 insertions(+), 22 deletions(-) diff --git a/core/core-frontend/src/components/visualization/DvSidebar.vue b/core/core-frontend/src/components/visualization/DvSidebar.vue index b3064dd..cba2e41 100644 --- a/core/core-frontend/src/components/visualization/DvSidebar.vue +++ b/core/core-frontend/src/components/visualization/DvSidebar.vue @@ -5,15 +5,21 @@ import { dvMainStoreWithOut } from '@/store/modules/data-visualization/dvMain' import { storeToRefs } from 'pinia' import { snapshotStoreWithOut } from '@/store/modules/data-visualization/snapshot' import Icon from '../icon-custom/src/Icon.vue' +import dvInfoSvg from '@/assets/svg/dv-info.svg' +import { useI18n } from '@/hooks/web/useI18n' +import combinationSvg from '@/assets/svg/combinationpage.svg' +import scatterSvg from '@/assets/svg/scatterpage.svg' +import { composeStoreWithOut } from '@/store/modules/data-visualization/compose' const dvMainStore = dvMainStoreWithOut() -const { canvasCollapse } = storeToRefs(dvMainStore) +const { canvasCollapse,curComponent } = storeToRefs(dvMainStore) let componentNameEdit = ref(false) let inputComponentName = ref({ id: null, name: null }) let componentNameInputAttr = ref(null) -import dvInfoSvg from '@/assets/svg/dv-info.svg' -import { useI18n } from '@/hooks/web/useI18n' const snapshotStore = snapshotStoreWithOut() +const composeStore = composeStoreWithOut() +const { areaData } = storeToRefs(composeStore) const { t } = useI18n() +const emit = defineEmits(['close', 'rename']) const props = defineProps({ element: { required: false, @@ -58,10 +64,13 @@ const props = defineProps({ type: String as PropType, default: 'light' }, - title: String + title: String, + activePosition: { + type: String, + default: 'canvas' + } }) - -const { width, asidePosition, sideName, themeInfo, view, themes, element } = toRefs(props) +const { width, asidePosition, sideName, themeInfo, view, themes, element,activePosition } = toRefs(props) const collapseChange = () => { canvasCollapse.value[sideName.value] = !canvasCollapse.value[sideName.value] } @@ -122,6 +131,33 @@ const editComponentName = () => { const onComponentNameChange = () => { snapshotStore.recordSnapshotCache('onComponentNameChange') } + +//组合 +const combinationclick = () => { + if(areaData.value.components.length){ + composeStore.compose() + snapshotStore.recordSnapshotCache('componentCompose') + menuOpt('componentCompose') + }else{ + ElMessage.warning('请选择多个组件进行组合!') + return + } +} +//打散 +const scatterclick= () => { + if(curComponent.value['component'] == 'Group'){ + composeStore.decompose() + snapshotStore.recordSnapshotCache('decompose') + menuOpt('decompose') + }else{ + ElMessage.warning('请选择组合!') + return + } +} +const menuOpt = optName => { + const param = { opt: optName } + activePosition.value === 'aside' && emit('close', param) +} -
+
{{ t('visualization.view_id') }}
-
+
{{ view.id }}