From 32699552333ddcbd7d72ffb38aa2274cc893857e Mon Sep 17 00:00:00 2001 From: limengnan <420004014@qq.com> Date: Mon, 23 Jun 2025 18:21:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=89=8D=E7=AB=AFsrc/compone?= =?UTF-8?q?nts=E7=9B=AE=E5=BD=95=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/column-list/src/ColumnList.vue | 36 ++- .../src/components/cron/src/Cron.vue | 8 +- .../src/components/dashboard/DbCanvasAttr.vue | 1 - .../src/components/dashboard/DbToolbar.vue | 102 ++++-- .../ComponentColorSelector.vue | 35 +- .../FilterStyleSimpleSelector.vue | 4 +- .../dashboard-style/OverallSetting.vue | 75 +++-- .../dashboard-style/SeniorStyleSetting.vue | 18 +- .../dashboard-style/ViewSimpleTitle.vue | 1 + .../pre-subject/SubjectTemplateItem.vue | 1 - .../data-visualization/CanvasAttr.vue | 6 +- .../data-visualization/ComponentToolBar.vue | 18 +- .../data-visualization/DvToolbar.vue | 300 +++++++++--------- .../data-visualization/RealTimeGroup.vue | 4 +- .../data-visualization/RealTimeGroupInner.vue | 4 +- .../data-visualization/RealTimeListTree.vue | 6 +- .../data-visualization/RealTimeTab.vue | 14 +- .../data-visualization/canvas/CanvasCore.vue | 5 +- .../canvas/ComponentWrapper.vue | 145 ++++++--- .../canvas/ContextMenuDetails.vue | 121 +++---- .../data-visualization/canvas/DePreview.vue | 42 ++- .../data-visualization/canvas/Shape.vue | 72 +++-- .../src/components/de-app/AppExportForm.vue | 29 +- .../components/drawer-main/src/DrawerMain.vue | 3 +- .../empty-background/src/EmptyBackground.vue | 5 +- .../components/grid-table/src/GridTable.vue | 1 - .../handle-more/src/DvHandleMore.vue | 40 ++- .../components/handle-more/src/HandleMore.vue | 6 +- .../components/icon-group/chart-dark-list.ts | 4 +- .../src/components/icon-group/chart-list.ts | 4 +- .../components/icon-group/datasource-list.ts | 2 + .../src/components/relation-chart/index.vue | 2 +- .../rich-text/TinymacEditorAlarm.vue | 2 +- .../visualization/CanvasBaseSetting.vue | 2 +- .../visualization/CanvasCacheDialog.vue | 4 - .../components/visualization/CanvasOptBar.vue | 30 +- .../visualization/ComponentButton.vue | 1 - .../visualization/ComponentButtonLabel.vue | 4 +- .../visualization/ComponentEditBar.vue | 11 +- .../visualization/DatasetParamsComponent.vue | 4 - .../visualization/DePreviewPopDialog.vue | 22 +- .../components/visualization/DvSidebar.vue | 92 ++---- .../JumpSetOuterContentEditor.vue | 2 +- .../components/visualization/LinkJumpSet.vue | 52 +-- .../components/visualization/LinkageSet.vue | 45 ++- .../visualization/LinkageSetOption.vue | 8 +- .../visualization/OuterParamsSet.vue | 88 ++--- .../visualization/UserViewEnlarge.vue | 34 +- .../components/visualization/ViewTrackBar.vue | 30 +- .../common/ComponentPosition.vue | 4 +- .../visualization/common/DeFullscreen.vue | 54 ++-- .../visualization/common/DeUpload.vue | 2 +- .../BackgroundOverallCommon.vue | 13 +- .../component-background/CanvasBackground.vue | 2 +- .../src/components/watermark/watermark.ts | 4 +- 55 files changed, 923 insertions(+), 701 deletions(-) diff --git a/core/core-frontend/src/components/column-list/src/ColumnList.vue b/core/core-frontend/src/components/column-list/src/ColumnList.vue index 0c91e11..9b5175e 100644 --- a/core/core-frontend/src/components/column-list/src/ColumnList.vue +++ b/core/core-frontend/src/components/column-list/src/ColumnList.vue @@ -64,21 +64,23 @@ const handleCheckAllChange = (val: CheckboxValueType) => { - {{ $t('component.selectInfo') }} - {{ $t('component.allSelect') }} - - {{ - $t(column.label) - }} - + + {{ $t('component.selectInfo') }} + {{ $t('component.allSelect') }} + + {{ + $t(column.label) + }} + + @@ -102,5 +104,9 @@ const handleCheckAllChange = (val: CheckboxValueType) => { .ed-checkbox { width: 100%; } + .main-div-select { + max-height: 320px; + padding: 0; + } } diff --git a/core/core-frontend/src/components/cron/src/Cron.vue b/core/core-frontend/src/components/cron/src/Cron.vue index 45b9738..1b6799b 100644 --- a/core/core-frontend/src/components/cron/src/Cron.vue +++ b/core/core-frontend/src/components/cron/src/Cron.vue @@ -120,13 +120,7 @@ const emits = defineEmits(['update:modelValue']) - + diff --git a/core/core-frontend/src/components/dashboard/DbCanvasAttr.vue b/core/core-frontend/src/components/dashboard/DbCanvasAttr.vue index 4149d9c..8d98c98 100644 --- a/core/core-frontend/src/components/dashboard/DbCanvasAttr.vue +++ b/core/core-frontend/src/components/dashboard/DbCanvasAttr.vue @@ -185,7 +185,6 @@ const saveSelfSubject = () => { top: 4px; right: 4px; font-size: 12px; - color: #0089ff; } } diff --git a/core/core-frontend/src/components/dashboard/DbToolbar.vue b/core/core-frontend/src/components/dashboard/DbToolbar.vue index 6ca483e..cce6856 100644 --- a/core/core-frontend/src/components/dashboard/DbToolbar.vue +++ b/core/core-frontend/src/components/dashboard/DbToolbar.vue @@ -1,6 +1,6 @@ props.popActive || (dvMainStore.mobileInPc && element-loading-text="导出中..." element-loading-background="rgba(255, 255, 255, 1)" > + + + + + props.popActive || (dvMainStore.mobileInPc && :element="config" :show-position="showPosition" :class="{ 'wrapper-edit-bar-active': active }" + @componentImageDownload="htmlToImage" @userViewEnlargeOpen="opt => emits('userViewEnlargeOpen', opt)" @datasetParamsInit="() => emits('datasetParamsInit')" > @@ -406,7 +455,7 @@ const showActive = computed(() => props.popActive || (dvMainStore.mobileInPc && class="wrapper-inner-adaptor" :style="slotStyle" :class="{ 'pop-wrapper-inner': showActive, 'event-active': eventEnable }" - @mousedown="onWrapperClick" + @mousedown="onWrapperClickCur" > props.popActive || (dvMainStore.mobileInPc && :is-edit="false" :suffix-id="suffixId" :font-family="fontFamily" + :active="active" + :common-params="commonParams" @onPointClick="onPointClick" + @onComponentEvent="onWrapperClick" /> @@ -444,6 +496,7 @@ const showActive = computed(() => props.popActive || (dvMainStore.mobileInPc && ref="openHandler" jsname="L2NvbXBvbmVudC9lbWJlZGRlZC1pZnJhbWUvT3BlbkhhbmRsZXI=" /> + @@ -454,6 +507,15 @@ const showActive = computed(() => props.popActive || (dvMainStore.mobileInPc && } .wrapper-outer { position: absolute; + .refresh-from-pc { + position: absolute; + right: 38px; + top: 12px; + z-index: 2; + font-size: 16px; + cursor: pointer; + color: var(--ed-color-primary); + } } .wrapper-inner { width: 100%; @@ -503,4 +565,11 @@ const showActive = computed(() => props.popActive || (dvMainStore.mobileInPc && .event-active { cursor: pointer; } + +.freeze-component { + position: fixed; + z-index: 1; + top: var(--top-show-offset) px !important; + left: var(--left-show-offset) px !important; +} diff --git a/core/core-frontend/src/components/data-visualization/canvas/ContextMenuDetails.vue b/core/core-frontend/src/components/data-visualization/canvas/ContextMenuDetails.vue index e725ddb..1fb3d02 100644 --- a/core/core-frontend/src/components/data-visualization/canvas/ContextMenuDetails.vue +++ b/core/core-frontend/src/components/data-visualization/canvas/ContextMenuDetails.vue @@ -298,64 +298,73 @@ const editQueryCriteria = () => { {{ t('visualization.delete') }} - - {{ t('visualization.cancel_group') }} - - - - - {{ t('visualization.move_to_screen_show') }} - {{ t('visualization.edit') }} - {{ t('visualization.rename') }} - {{ t('visualization.copy') }} - {{ t('visualization.paste') }} - - {{ t('visualization.delete') }} + + + {{ t('visualization.cancel_group') }} + + + + + {{ t('visualization.move_to_screen_show') }} + {{ t('visualization.edit') }} + + {{ t('visualization.rename') }} + + {{ t('visualization.copy') }} + {{ t('visualization.paste') }} + + {{ t('visualization.delete') }} + + + + {{ t('visualization.edit') }} + + {{ t('visualization.up_component') }} + {{ t('visualization.down_component') }} + {{ t('visualization.top_component') }} + {{ t('visualization.bottom_component') }} + + {{ t('visualization.sort') }} + + + + {{ t('visualization.move_to_pop_area') }} + + + {{ t('visualization.hidden') }} + + {{ t('visualization.cancel_hidden') }} + + {{ t('visualization.lock') }} + + {{ t('visualization.unlock') }} + + + + {{ t('visualization.rename') }} + + {{ t('visualization.copy') }} + {{ t('visualization.paste') }} + {{ t('visualization.cut') }} + + {{ t('visualization.delete') }} + + {{ t('visualization.unlock') }} - - - {{ t('visualization.edit') }} - - {{ t('visualization.up_component') }} - {{ t('visualization.down_component') }} - {{ t('visualization.top_component') }} - {{ t('visualization.bottom_component') }} - - {{ t('visualization.sort') }} - - - - {{ t('visualization.move_to_pop_area') }} - - - {{ t('visualization.hidden') }} - - {{ t('visualization.cancel_hidden') }} - - {{ t('visualization.lock') }} - - {{ t('visualization.unlock') }} - - - {{ t('visualization.rename') }} - {{ t('visualization.copy') }} - {{ t('visualization.paste') }} - {{ t('visualization.cut') }} - - {{ t('visualization.delete') }} - - {{ t('visualization.unlock') }} + + {{ t('visualization.paste') }} + - - {{ t('visualization.paste') }} - diff --git a/core/core-frontend/src/components/data-visualization/canvas/DePreview.vue b/core/core-frontend/src/components/data-visualization/canvas/DePreview.vue index f43de15..eae15b6 100644 --- a/core/core-frontend/src/components/data-visualization/canvas/DePreview.vue +++ b/core/core-frontend/src/components/data-visualization/canvas/DePreview.vue @@ -22,6 +22,7 @@ import EmptyBackground from '../../empty-background/src/EmptyBackground.vue' import LinkOptBar from '@/components/data-visualization/canvas/LinkOptBar.vue' import { isDesktop } from '@/utils/ModelUtil' import { isMobile } from '@/utils/utils' +import { useI18n } from '@/hooks/web/useI18n' const dvMainStore = dvMainStoreWithOut() const { pcMatrixCount, curComponent, mobileInPc, canvasState, inMobile } = storeToRefs(dvMainStore) const openHandler = ref(null) @@ -30,6 +31,7 @@ const emits = defineEmits(['onResetLayout']) const fullScreeRef = ref(null) const isOverSize = ref(false) const isDesktopFlag = isDesktop() +const { t } = useI18n() const props = defineProps({ canvasStyleData: { type: Object, @@ -93,6 +95,11 @@ const props = defineProps({ type: String, required: false, default: 'inherit' + }, + // 联动按钮位置 + showLinkageButton: { + type: Boolean, + default: true } }) @@ -125,7 +132,8 @@ const dashboardActive = computed(() => { return dvInfo.value.type === 'dashboard' }) const state = reactive({ - initState: true + initState: true, + scrollMain: 0 }) const curSearchCount = computed(() => { @@ -171,6 +179,7 @@ const canvasStyle = computed(() => { if (canvasStyleData.value?.screenAdaptor === 'keep') { style['height'] = canvasStyleData.value?.height + 'px' style['width'] = canvasStyleData.value?.width + 'px' + style['margin'] = 'auto' } else { style['height'] = dashboardActive.value ? downloadStatus.value @@ -470,6 +479,12 @@ const downloadAsPDF = () => { // test } +const scrollPreview = () => { + state.scrollMain = previewCanvas.value.scrollTop +} + +const showUnpublishFlag = computed(() => dvInfo.value?.status === 0 && isMainCanvas(canvasId.value)) + defineExpose({ restore }) @@ -480,9 +495,14 @@ defineExpose({ :id="domId" class="canvas-container" :style="canvasStyle" - :class="{ 'de-download-custom': downloadStatus, 'datav-preview': dataVPreview }" + :class="{ + 'de-download-custom': downloadStatus, + 'datav-preview': dataVPreview, + 'datav-preview-unpublish': showUnpublishFlag + }" ref="previewCanvas" @mousedown="handleMouseDown" + @scroll="scrollPreview" v-if="state.initState" > @@ -500,12 +520,14 @@ defineExpose({ :show-position="'preview'" > - - + + + @@ -567,4 +597,8 @@ defineExpose({ .datav-preview { overflow-y: hidden !important; } + +.datav-preview-unpublish { + background-color: inherit !important; +} diff --git a/core/core-frontend/src/components/data-visualization/canvas/Shape.vue b/core/core-frontend/src/components/data-visualization/canvas/Shape.vue index 57e25d9..e094036 100644 --- a/core/core-frontend/src/components/data-visualization/canvas/Shape.vue +++ b/core/core-frontend/src/components/data-visualization/canvas/Shape.vue @@ -1,7 +1,11 @@ { + return ( + isMainCanvas(canvasId.value) && + element.value.freeze && + mainScrollTop.value - defaultStyle.value.top > 0 + ) +}) + const showCheck = computed(() => { return mobileInPc.value && element.value.canvasId === 'canvas-main' }) @@ -386,7 +400,7 @@ const getPointList = () => { } const isActive = () => { - return active.value && !element.value['isLock'] && isEditMode.value + return active.value && !element.value['isLock'] && isEditMode.value && !freezeFlag.value } const userViewEnlargeOpen = opt => { @@ -538,7 +552,8 @@ const handleMouseDownOnShape = e => { // } e.stopPropagation() - if (element.value['isLock'] || !isEditMode.value) return + // 锁定 非编辑状态 冻结状态 不进行移动 + if (element.value['isLock'] || !isEditMode.value || freezeFlag.value) return cursors.value = getCursor() // 根据旋转角度获取光标位置 @@ -897,30 +912,6 @@ const commonBackgroundSvgInner = computed(() => { } }) -const padding3D = computed(() => { - const width = defaultStyle.value.width // 原始元素宽度 - const height = defaultStyle.value.height // 原始元素高度 - const rotateX = element.value['multiDimensional'].x // 旋转X角度 - const rotateY = element.value['multiDimensional'].y // 旋转Y角度 - - // 将角度转换为弧度 - const radX = (rotateX * Math.PI) / 180 - const radY = (rotateY * Math.PI) / 180 - - // 计算旋转后新宽度和高度 - const newWidth = Math.abs(width * Math.cos(radY)) + Math.abs(height * Math.sin(radX)) - const newHeight = Math.abs(height * Math.cos(radX)) + Math.abs(width * Math.sin(radY)) - - // 计算需要的 padding - const paddingX = (newWidth - width) / 2 - const paddingY = (newHeight - height) / 2 - - return { - paddingX: `${paddingX}px`, - paddingY: `${paddingY}px` - } -}) - const componentBackgroundStyle = computed(() => { if (element.value.commonBackground && element.value.component !== 'GroupArea') { const { @@ -1107,12 +1098,15 @@ const dragCollision = computed(() => { const htmlToImage = () => { downLoading.value = true + useEmitt().emitter.emit('l7-prepare-picture', element.value.id) setTimeout(() => { activeWatermarkCheckUser(viewDemoInnerId.value, 'canvas-main', scale.value) - downloadCanvas2('img', componentInnerRef.value, '图表', () => { + const dom = document.getElementById(viewDemoInnerId.value) + downloadCanvas2('img', dom, '图表', () => { // do callback removeActiveWatermark(viewDemoInnerId.value) downLoading.value = false + useEmitt().emitter.emit('l7-unprepare-picture', element.value.id) }) }, 200) } @@ -1138,13 +1132,11 @@ onMounted(() => { }) settingAttribute() const methodName = 'componentImageDownload-' + element.value.id - useEmitt().emitter.off(methodName) - useEmitt({ - name: methodName, - callback: () => { + if (!useEmitt().emitter.all.get(methodName)?.length) { + useEmitt().emitter.on(methodName, () => { htmlToImage() - } - }) + }) + } }) @@ -1318,4 +1310,14 @@ onMounted(() => { position: relative; transform-style: preserve-3d; } + +.freeze-component { + position: fixed; + z-index: 1; + top: 66px !important; +} + +.freeze-component-fullscreen { + top: 5px !important; +} diff --git a/core/core-frontend/src/components/de-app/AppExportForm.vue b/core/core-frontend/src/components/de-app/AppExportForm.vue index ed4d37c..8e9cf30 100644 --- a/core/core-frontend/src/components/de-app/AppExportForm.vue +++ b/core/core-frontend/src/components/de-app/AppExportForm.vue @@ -2,7 +2,7 @@ @@ -55,11 +55,9 @@ import { ElButton, ElDrawer, ElForm, ElFormItem, ElInput } from 'element-plus-se import { reactive, ref, toRefs } from 'vue' import { useI18n } from '@/hooks/web/useI18n' import { export2AppCheck } from '@/api/visualization/dataVisualization' -import { dvMainStoreWithOut } from '@/store/modules/data-visualization/dvMain' const { t } = useI18n() const emits = defineEmits(['closeDraw', 'downLoadApp']) const applyDownloadForm = ref(null) -const dvMainStore = dvMainStoreWithOut() const props = defineProps({ componentData: { @@ -138,43 +136,28 @@ const close = () => { state.applyDownloadDrawer = false } -const gatherAppInfo = (viewIds, dsIds) => { - componentData.value.forEach(item => { +const gatherAppInfo = (viewIds, dsIds, componentDataCheck) => { + componentDataCheck.forEach(item => { if (item.component === 'UserView' && canvasViewInfo.value[item.id]) { const viewDetails = canvasViewInfo.value[item.id] const { id, tableId } = viewDetails viewIds.push(id) dsIds.push(tableId) } else if (item.component === 'Group') { - item.propValue.forEach(groupItem => { - if (groupItem.component === 'UserView') { - const viewDetails = canvasViewInfo.value[groupItem.id] - const { id, tableId } = viewDetails - viewIds.push(id) - dsIds.push(tableId) - } - }) + gatherAppInfo(viewIds, dsIds, item.propValue) } else if (item.component === 'DeTabs') { item.propValue.forEach(tabItem => { - tabItem.componentData.forEach(tabComponent => { - if (tabComponent.component === 'UserView') { - const viewDetails = canvasViewInfo.value[tabComponent.id] - const { id, tableId } = viewDetails - viewIds.push(id) - dsIds.push(tableId) - } - }) + gatherAppInfo(viewIds, dsIds, tabItem.componentData) }) } }) } - const downloadApp = () => { applyDownloadForm.value?.validate(valid => { if (valid) { const viewIds = [] const dsIds = [] - gatherAppInfo(viewIds, dsIds) + gatherAppInfo(viewIds, dsIds, componentData.value) export2AppCheck({ dvId: dvInfo.value.id, viewIds, dsIds }).then(rsp => { const params = { ...rsp.data, diff --git a/core/core-frontend/src/components/drawer-main/src/DrawerMain.vue b/core/core-frontend/src/components/drawer-main/src/DrawerMain.vue index 721dbc9..f1123fa 100644 --- a/core/core-frontend/src/components/drawer-main/src/DrawerMain.vue +++ b/core/core-frontend/src/components/drawer-main/src/DrawerMain.vue @@ -119,7 +119,7 @@ defineExpose({ :title="t('common.filter_condition')" v-model="userDrawer" size="600px" - custom-class="drawer-main-container" + modal-class="drawer-main-container" direction="rtl" > @@ -164,7 +164,6 @@ defineExpose({ diff --git a/core/core-frontend/src/components/grid-table/src/GridTable.vue b/core/core-frontend/src/components/grid-table/src/GridTable.vue index 01f33bc..c3a8891 100644 --- a/core/core-frontend/src/components/grid-table/src/GridTable.vue +++ b/core/core-frontend/src/components/grid-table/src/GridTable.vue @@ -127,7 +127,6 @@ defineExpose({ { return } if (props.node.leaf && props.node?.weight >= 7) { - menus.value[0]['divided'] = true menus.value.splice(0, 0, param) } } const emit = defineEmits(['handleCommand']) + +const menuDisabledCheck = ele => { + // do return + return ele.disabled || (props.node.extraFlag1 === 0 && ['share', 'copy'].includes(ele.command)) +} @@ -88,13 +94,30 @@ const emit = defineEmits(['handleCommand']) :command="ele.command" v-for="ele in menus" :key="ele.label" - :disabled="ele.disabled" - :class="{ 'de-hidden-drop-item': ele.hidden }" + :disabled="menuDisabledCheck(ele)" + :class="{ + 'de-hidden-drop-item': + ele.hidden || (ele.command === 'cancelPublish' && node.extraFlag1 === 0) + }" > - + - {{ ele.label }} + + {{ ele.label }} + @@ -110,11 +133,14 @@ const emit = defineEmits(['handleCommand']) diff --git a/core/core-frontend/src/components/visualization/ComponentButton.vue b/core/core-frontend/src/components/visualization/ComponentButton.vue index 1efdbb9..557bd80 100644 --- a/core/core-frontend/src/components/visualization/ComponentButton.vue +++ b/core/core-frontend/src/components/visualization/ComponentButton.vue @@ -85,6 +85,5 @@ const emits = defineEmits(['customClick']) .toolbar-icon { font-size: 20px; - color: #fff; } diff --git a/core/core-frontend/src/components/visualization/ComponentButtonLabel.vue b/core/core-frontend/src/components/visualization/ComponentButtonLabel.vue index 6513f31..43a78fb 100644 --- a/core/core-frontend/src/components/visualization/ComponentButtonLabel.vue +++ b/core/core-frontend/src/components/visualization/ComponentButtonLabel.vue @@ -21,9 +21,7 @@ const emits = defineEmits(['customClick']) - - - {{ title }} + {{ title }} diff --git a/core/core-frontend/src/components/visualization/ComponentEditBar.vue b/core/core-frontend/src/components/visualization/ComponentEditBar.vue index 6535120..f507b1a 100644 --- a/core/core-frontend/src/components/visualization/ComponentEditBar.vue +++ b/core/core-frontend/src/components/visualization/ComponentEditBar.vue @@ -171,6 +171,7 @@ @@ -250,9 +251,7 @@ import CustomTabsSort from '@/custom-component/de-tabs/CustomTabsSort.vue' import { exportPivotExcel } from '@/views/chart/components/js/panel/common/common_table' import { XpackComponent } from '@/components/plugin' import { exportPermission, isMobile } from '@/utils/utils' -import { layerStoreWithOut } from '@/store/modules/data-visualization/layer' import { isMainCanvas } from '@/utils/canvasUtils' -const layerStore = layerStoreWithOut() const dvMainStore = dvMainStoreWithOut() const snapshotStore = snapshotStoreWithOut() const copyStore = copyStoreWithOut() @@ -267,7 +266,8 @@ const emits = defineEmits([ 'showViewDetails', 'amRemoveItem', 'linkJumpSetOpen', - 'linkageSetOpen' + 'linkageSetOpen', + 'componentImageDownload' ]) const { t } = useI18n() const { emitter } = useEmitt() @@ -479,13 +479,12 @@ const exportAsExcel = () => { const chartExtRequest = dvMainStore.getLastViewRequestInfo(element.value.id) const viewInfo = dvMainStore.getViewDetails(element.value.id) const chart = { ...viewInfo, chartExtRequest, data: viewDataInfo, busiFlag: dvInfo.value.type } - exportExcelDownload(chart, () => { + exportExcelDownload(chart, dvInfo.value.name, () => { openMessageLoading(callbackExport) }) } const exportAsImage = () => { - // do export - useEmitt().emitter.emit('componentImageDownload-' + element.value.id) + emits('componentImageDownload') } const deleteComponent = () => { eventBus.emit('removeMatrixItem-' + canvasId.value, index.value) diff --git a/core/core-frontend/src/components/visualization/DatasetParamsComponent.vue b/core/core-frontend/src/components/visualization/DatasetParamsComponent.vue index d50ee7a..eba82dc 100644 --- a/core/core-frontend/src/components/visualization/DatasetParamsComponent.vue +++ b/core/core-frontend/src/components/visualization/DatasetParamsComponent.vue @@ -1,12 +1,10 @@ diff --git a/core/core-frontend/src/components/visualization/DePreviewPopDialog.vue b/core/core-frontend/src/components/visualization/DePreviewPopDialog.vue index c6389ab..1262eb1 100644 --- a/core/core-frontend/src/components/visualization/DePreviewPopDialog.vue +++ b/core/core-frontend/src/components/visualization/DePreviewPopDialog.vue @@ -1,7 +1,7 @@ + @@ -173,7 +137,7 @@ const menuOpt = optName => { :id="'attr-slide-component-name' + slideIndex" v-if="!canvasCollapse[sideName]" class="name-area-attr" - style="max-width: 180px; text-overflow: ellipsis; white-space: nowrap;" + style="max-width: 180px; text-overflow: ellipsis; white-space: nowrap" :style="{ width: componentNameEdit ? '300px' : 'auto' }" :class="{ 'component-name-dark': themeInfo === 'dark' }" @dblclick="editComponentName" @@ -191,7 +155,7 @@ const menuOpt = optName => { @@ -204,30 +168,20 @@ const menuOpt = optName => { - - - - - - - - - - - - - - + + + + @@ -393,7 +347,7 @@ const menuOpt = optName => { height: 100%; } .ed-icon{ - + } } diff --git a/core/core-frontend/src/components/visualization/JumpSetOuterContentEditor.vue b/core/core-frontend/src/components/visualization/JumpSetOuterContentEditor.vue index ec66194..777c00b 100644 --- a/core/core-frontend/src/components/visualization/JumpSetOuterContentEditor.vue +++ b/core/core-frontend/src/components/visualization/JumpSetOuterContentEditor.vue @@ -40,7 +40,7 @@ const setNameIdTrans = (from, to, originName, name2Auto?: string[]) => { pre[next[from]] = next[to] return pre }, {}) - const on = originName.match(/\[(.+?)\]/g) + const on = originName.match(/\[(.+?)\]/g) || [] if (on) { on.forEach(itm => { const ele = itm.slice(1, -1) diff --git a/core/core-frontend/src/components/visualization/LinkJumpSet.vue b/core/core-frontend/src/components/visualization/LinkJumpSet.vue index 5be55cb..694ec55 100644 --- a/core/core-frontend/src/components/visualization/LinkJumpSet.vue +++ b/core/core-frontend/src/components/visualization/LinkJumpSet.vue @@ -236,7 +236,12 @@ state.linkJumpInfo?.jumpType === 'newPop' }" > - + {{ t('visualization.linkage_setting_tips1') }} - + + + + {{ t('visualization.indicator_linkage') }} + + {{ t('visualization.current_chart_source_field') }} @@ -367,7 +383,10 @@ const sameDsShow = computed( ) const diffDsShow = computed( - () => curLinkageTargetViewsInfoDiffDs.value && curLinkageTargetViewsInfoDiffDs.value.length > 0 + () => + curLinkageTargetViewsInfoDiffDs.value && + curLinkageTargetViewsInfoDiffDs.value.length > 0 && + curComponent.value.innerType !== 'indicator' ) const dialogInit = viewItem => { @@ -387,7 +406,8 @@ const linkageSetting = curViewId => { dvId: dvInfo.value.id, sourceViewId: curViewId, targetViewIds: targetViewIds, - linkageInfo: null + linkageInfo: null, + resourceTable: 'snapshot' } getViewLinkageGatherArray(requestInfo).then(rsp => { // 获取当前仪表板的图表(去掉当前图表) @@ -554,14 +574,22 @@ const linkageFieldAdaptor = async data => { const curCheckAllAxisStr = JSON.stringify(state.curLinkageViewInfo.xAxis) + JSON.stringify(state.curLinkageViewInfo.xAxisExt) + + JSON.stringify(state.curLinkageViewInfo.extStack) + (state.curLinkageViewInfo.type.includes('chart-mix') ? JSON.stringify(state.curLinkageViewInfo.extBubble) + : '') + + (['indicator'].includes(state.curLinkageViewInfo.type) + ? JSON.stringify(state.curLinkageViewInfo.yAxis) : '') const targetCheckAllAxisStr = JSON.stringify(targetChartDetails.xAxis) + JSON.stringify(targetChartDetails.xAxisExt) + + JSON.stringify(state.curLinkageViewInfo.extStack) + (targetChartDetails.type.includes('chart-mix') ? JSON.stringify(targetChartDetails.extBubble) + : '') + + (['indicator'].includes(state.curLinkageViewInfo.type) + ? JSON.stringify(state.curLinkageViewInfo.yAxis) : '') state.sourceLinkageInfo.targetViewFields.forEach(item => { if ( @@ -586,10 +614,11 @@ const sourceLinkageInfoFilter = computed(() => { JSON.stringify(state.curLinkageViewInfo.xAxis) + JSON.stringify(state.curLinkageViewInfo.drillFields) + JSON.stringify(state.curLinkageViewInfo.xAxisExt) + + JSON.stringify(state.curLinkageViewInfo.extStack) + (state.curLinkageViewInfo.type.includes('chart-mix') ? JSON.stringify(state.curLinkageViewInfo.extBubble) : '') + - (state.curLinkageViewInfo.type.includes('table-normal') + (['table-normal', 'indicator'].includes(state.curLinkageViewInfo.type) ? JSON.stringify(state.curLinkageViewInfo.yAxis) : '') return state.sourceLinkageInfo.targetViewFields.filter(item => @@ -644,7 +673,7 @@ defineExpose({ .preview { margin-top: 5px; - border: 1px solid rgb(61,61,61); + border: 1px solid #e6e6e6; border-radius: 4px; height: 470px !important; overflow: hidden; @@ -652,7 +681,7 @@ defineExpose({ } .preview-show { - border-left: 1px solid #5f5f5f; + border-left: 1px solid #e6e6e6; height: 470px; background-size: 100% 100% !important; } @@ -701,7 +730,7 @@ defineExpose({ flex-direction: column; span { line-height: 22px; - color: #909399; + color: #646a73; } } @@ -742,7 +771,7 @@ defineExpose({ margin-right: 16px; font-weight: 400; font-size: 12px; - color: #d2d2d2; + color: #646a73; .ed-switch { margin-left: 8px; } diff --git a/core/core-frontend/src/components/visualization/LinkageSetOption.vue b/core/core-frontend/src/components/visualization/LinkageSetOption.vue index 565a865..4642a7c 100644 --- a/core/core-frontend/src/components/visualization/LinkageSetOption.vue +++ b/core/core-frontend/src/components/visualization/LinkageSetOption.vue @@ -1,5 +1,5 @@ @@ -44,7 +42,7 @@ const { title, themes, actionSelection } = toRefs(props) - + {{ t('visualization.select_linkage_tips') }} diff --git a/core/core-frontend/src/components/visualization/OuterParamsSet.vue b/core/core-frontend/src/components/visualization/OuterParamsSet.vue index 147ae85..c42dd3c 100644 --- a/core/core-frontend/src/components/visualization/OuterParamsSet.vue +++ b/core/core-frontend/src/components/visualization/OuterParamsSet.vue @@ -50,7 +50,7 @@ style="width: 100%" v-model="data.paramName" :placeholder="$t('visualization.input_param_name')" - @blur="closeEdit" + @blur="closeEdit(data)" /> @@ -62,8 +62,7 @@ outerParamsOperation(cmd, node, data)" :menu-list="state.optMenu" :icon-name="icon_more_vertical_outlined" @@ -324,10 +323,10 @@
{{ $t('component.selectInfo') }}