From cae7cd0064a2cebb6d99f6c4487644fb9b6e7cb4 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Tue, 28 May 2024 10:01:48 +0800 Subject: [PATCH 01/10] =?UTF-8?q?perf:=20div=E5=B5=8C=E5=85=A5=E5=BC=8F?= =?UTF-8?q?=E8=B7=A8=E5=9F=9F=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/dataease/auth/interceptor/CorsConfig.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sdk/common/src/main/java/io/dataease/auth/interceptor/CorsConfig.java b/sdk/common/src/main/java/io/dataease/auth/interceptor/CorsConfig.java index 35e39b1a3a..49d96768f6 100644 --- a/sdk/common/src/main/java/io/dataease/auth/interceptor/CorsConfig.java +++ b/sdk/common/src/main/java/io/dataease/auth/interceptor/CorsConfig.java @@ -5,6 +5,7 @@ import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -30,4 +31,9 @@ public class CorsConfig implements WebMvcConfigurer { public void configurePathMatch(PathMatchConfigurer configurer) { configurer.addPathPrefix(AuthConstant.DE_API_PREFIX, c -> c.isAnnotationPresent(RestController.class) && c.getPackageName().startsWith("io.dataease")); } + + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**"); + } } From e95fa0fbd7ea2aa4aaa8f6bc056e8215b8542877 Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Tue, 28 May 2024 10:25:07 +0800 Subject: [PATCH 02/10] =?UTF-8?q?fix(=E5=B5=8C=E5=85=A5=E5=BC=8F):=20?= =?UTF-8?q?=E5=B5=8C=E5=85=A5=E5=BC=8F=E6=94=B9=E4=B8=BA=E5=B1=80=E9=83=A8?= =?UTF-8?q?=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/views/common/DeResourceTree.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/core-frontend/src/views/common/DeResourceTree.vue b/core/core-frontend/src/views/common/DeResourceTree.vue index 63b9bc0ed3..5562947855 100644 --- a/core/core-frontend/src/views/common/DeResourceTree.vue +++ b/core/core-frontend/src/views/common/DeResourceTree.vue @@ -295,7 +295,7 @@ const operation = (cmd: string, data: BusiTreeNode, nodeType: string) => { } useEmitt().emitter.emit( 'changeCurrentComponent', - curCanvasType.value === 'dataV' ? 'VisualizationEditor' : 'Dashboard' + curCanvasType.value === 'dataV' ? 'VisualizationEditor' : 'DashboardEditor' ) return } @@ -327,7 +327,7 @@ const addOperation = ( } useEmitt().emitter.emit( 'changeCurrentComponent', - curCanvasType.value === 'dataV' ? 'VisualizationEditor' : 'Dashboard' + curCanvasType.value === 'dataV' ? 'VisualizationEditor' : 'DashboardEditor' ) return } @@ -364,7 +364,7 @@ const resourceEdit = resourceId => { } useEmitt().emitter.emit( 'changeCurrentComponent', - curCanvasType.value === 'dataV' ? 'VisualizationEditor' : 'Dashboard' + curCanvasType.value === 'dataV' ? 'VisualizationEditor' : 'DashboardEditor' ) return } @@ -393,7 +393,7 @@ const resourceCreateFinish = templateData => { } useEmitt().emitter.emit( 'changeCurrentComponent', - curCanvasType.value === 'dataV' ? 'VisualizationEditor' : 'Dashboard' + curCanvasType.value === 'dataV' ? 'VisualizationEditor' : 'DashboardEditor' ) return } From ea579a2b2bc9cdaa5e4885fc455c50ae1755fcc2 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Tue, 28 May 2024 11:15:01 +0800 Subject: [PATCH 03/10] =?UTF-8?q?perf(X-Pack):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E6=8A=A5=E5=91=8A=E6=8E=A5=E6=94=B6=E8=80=85?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E8=BE=93=E5=85=A5=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- de-xpack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/de-xpack b/de-xpack index 7a8f793d47..5ec6dd3d14 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 7a8f793d47c5c2f63ef852f9f6595e9b876defce +Subproject commit 5ec6dd3d143b07be28de7ccd1bf9c478c2de01ea From 0d5ac2a86da141072bdbe2328d4a0d5c4f0404df Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Tue, 28 May 2024 11:22:18 +0800 Subject: [PATCH 04/10] =?UTF-8?q?fix:=20typos=E6=8B=BC=E5=86=99=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/visualized/data/dataset/ExportExcel.vue | 2 +- de-xpack | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 d7c59a1224..08edb571af 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue @@ -398,7 +398,7 @@ defineExpose({
diff --git a/de-xpack b/de-xpack index 5ec6dd3d14..acc4535b4d 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 5ec6dd3d143b07be28de7ccd1bf9c478c2de01ea +Subproject commit acc4535b4dc2440d7f34948e5424bf43fc6b6200 From 7112a3102d0a79b181889f31aef1722d8768968b Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Tue, 28 May 2024 12:49:06 +0800 Subject: [PATCH 05/10] =?UTF-8?q?perf(X-Pack):=20typos=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- de-xpack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/de-xpack b/de-xpack index acc4535b4d..53ef3a55d9 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit acc4535b4dc2440d7f34948e5424bf43fc6b6200 +Subproject commit 53ef3a55d9ce36f3227a9851915250e55a32476d From 29248a85180ab12b01a1abc2c6145b05371b77a3 Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Tue, 28 May 2024 14:06:21 +0800 Subject: [PATCH 06/10] =?UTF-8?q?fix(=E4=BB=AA=E8=A1=A8=E6=9D=BF):=20?= =?UTF-8?q?=E4=BB=AA=E8=A1=A8=E6=9D=BF=E8=BF=87=E6=BB=A4=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/visualized/data/dataset/auth-tree/RowAuth.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/core-frontend/src/views/visualized/data/dataset/auth-tree/RowAuth.vue b/core/core-frontend/src/views/visualized/data/dataset/auth-tree/RowAuth.vue index 45366c059c..28ecb11651 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/auth-tree/RowAuth.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/auth-tree/RowAuth.vue @@ -28,8 +28,8 @@ const svgDashinePath = computed(() => { }) const init = expressionTree => { - const { logic: lg = 'or', items } = expressionTree - logic.value = lg + const { items } = expressionTree + logic.value = expressionTree.logic || 'or' relationList.value = dfsInit(items || []) } const submit = () => { From e686cfb274484400b3c55f07e35a5b1efba53ef9 Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Tue, 28 May 2024 15:59:43 +0800 Subject: [PATCH 07/10] =?UTF-8?q?fix(=E5=B5=8C=E5=85=A5=E5=BC=8F):=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=B7=B3=E8=BD=AC=EF=BC=8C=E4=B8=94=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E2=80=9C=E5=B1=80=E9=83=A8=E5=88=B7=E6=96=B0=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/pages/panel/App.vue | 6 ++++++ core/core-frontend/src/pages/panel/Iframe.vue | 19 +++++++++++++++++ .../src/store/modules/embedded.ts | 21 +++++++++++++++++-- .../views/chart/components/views/index.vue | 18 +++++++++++++++- .../data-visualization/PreviewCanvas.vue | 7 +++++-- 5 files changed, 66 insertions(+), 5 deletions(-) create mode 100644 core/core-frontend/src/pages/panel/Iframe.vue diff --git a/core/core-frontend/src/pages/panel/App.vue b/core/core-frontend/src/pages/panel/App.vue index 4633e6cd9a..7c4e1299f4 100644 --- a/core/core-frontend/src/pages/panel/App.vue +++ b/core/core-frontend/src/pages/panel/App.vue @@ -10,6 +10,7 @@ const DashboardEditor = defineAsyncComponent(() => import('@/views/dashboard/ind const Dashboard = defineAsyncComponent(() => import('./DashboardPreview.vue')) const ViewWrapper = defineAsyncComponent(() => import('./ViewWrapper.vue')) +const Iframe = defineAsyncComponent(() => import('./Iframe.vue')) const Dataset = defineAsyncComponent(() => import('@/views/visualized/data/dataset/index.vue')) const Datasource = defineAsyncComponent( () => import('@/views/visualized/data/datasource/index.vue') @@ -18,6 +19,9 @@ const ScreenPanel = defineAsyncComponent(() => import('@/views/data-visualizatio const DashboardPanel = defineAsyncComponent( () => import('@/views/dashboard/DashboardPreviewShow.vue') ) + +const Preview = defineAsyncComponent(() => import('@/views/data-visualization/PreviewCanvas.vue')) + const props = defineProps({ componentName: propTypes.string.def('DashboardEditor') }) @@ -27,8 +31,10 @@ const componentMap = { DashboardEditor, VisualizationEditor, ViewWrapper, + Preview, Dashboard, Dataset, + Iframe, Datasource, ScreenPanel, DashboardPanel diff --git a/core/core-frontend/src/pages/panel/Iframe.vue b/core/core-frontend/src/pages/panel/Iframe.vue new file mode 100644 index 0000000000..c9ec6aba57 --- /dev/null +++ b/core/core-frontend/src/pages/panel/Iframe.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/core/core-frontend/src/store/modules/embedded.ts b/core/core-frontend/src/store/modules/embedded.ts index 2fe8a11191..e6c29b7870 100644 --- a/core/core-frontend/src/store/modules/embedded.ts +++ b/core/core-frontend/src/store/modules/embedded.ts @@ -1,6 +1,5 @@ import { defineStore } from 'pinia' import { store } from '../index' -import { clear } from '@/api/sync/syncTaskLog' interface AppState { type: string token: string @@ -14,6 +13,8 @@ interface AppState { opt: string createType: string templateParams: string + jumpInfoParam: string + outerUrl: string } export const userStore = defineStore('embedded', { @@ -30,13 +31,21 @@ export const userStore = defineStore('embedded', { resourceId: '', opt: '', createType: '', - templateParams: '' + templateParams: '', + outerUrl: '', + jumpInfoParam: '' } }, getters: { getType(): string { return this.type }, + getJumpInfoParam(): string { + return this.jumpInfoParam + }, + getOuterUrl(): string { + return this.outerUrl + }, getCreateType(): string { return this.createType }, @@ -87,6 +96,12 @@ export const userStore = defineStore('embedded', { setType(type: string) { this.type = type }, + setOuterUrl(outerUrl: string) { + this.outerUrl = outerUrl + }, + setJumpInfoParam(jumpInfoParam: string) { + this.jumpInfoParam = jumpInfoParam + }, setCreateType(createType: string) { this.createType = createType }, @@ -137,6 +152,8 @@ export const userStore = defineStore('embedded', { this.setTemplateParams('') this.setResourceId('') this.setDvId('') + this.setJumpInfoParam('') + this.setOuterUrl('') } } }) 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 898266d407..20f1b124b8 100644 --- a/core/core-frontend/src/views/chart/components/views/index.vue +++ b/core/core-frontend/src/views/chart/components/views/index.vue @@ -346,11 +346,15 @@ const initOpenHandler = newWindow => { } } +const divEmbedded = type => { + useEmitt().emitter.emit('changeCurrentComponent', type) +} + const windowsJump = (url, jumpType) => { try { const newWindow = window.open(url, jumpType) initOpenHandler(newWindow) - if (jumpType === '_self' && !embeddedStore.baseUrl) { + if (jumpType === '_self') { location.reload() } } catch (e) { @@ -384,6 +388,7 @@ const jumpClick = param => { param.sourceViewId = param.viewId param.sourceFieldId = dimension.id let embeddedBaseUrl = '' + const divSelf = isDataEaseBi.value && jumpInfo.jumpType === '_self' if (isDataEaseBi.value) { embeddedBaseUrl = embeddedStore.baseUrl } @@ -406,6 +411,12 @@ const jumpClick = param => { const url = `${embeddedBaseUrl}#/preview?dvId=${ jumpInfo.targetDvId }&jumpInfoParam=${encodeURIComponent(Base64.encode(JSON.stringify(param)))}` + if (divSelf) { + embeddedStore.setDvId(jumpInfo.targetDvId) + embeddedStore.setJumpInfoParam(encodeURIComponent(Base64.encode(JSON.stringify(param)))) + divEmbedded('Preview') + return + } windowsJump(url, jumpInfo.jumpType) } } else { @@ -415,6 +426,11 @@ const jumpClick = param => { const colList = [...param.dimensionList, ...param.quotaList] let url = setIdValueTrans('id', 'value', jumpInfo.content, colList) url = checkAddHttp(url) + if (divSelf) { + embeddedStore.setOuterUrl(url) + divEmbedded('Iframe') + return + } windowsJump(url, jumpInfo.jumpType) } } else { diff --git a/core/core-frontend/src/views/data-visualization/PreviewCanvas.vue b/core/core-frontend/src/views/data-visualization/PreviewCanvas.vue index 8dae442fd5..2ff8f9574f 100644 --- a/core/core-frontend/src/views/data-visualization/PreviewCanvas.vue +++ b/core/core-frontend/src/views/data-visualization/PreviewCanvas.vue @@ -8,11 +8,13 @@ import { queryTargetVisualizationJumpInfo } from '@/api/visualization/linkJump' import { Base64 } from 'js-base64' import { getOuterParamsInfo } from '@/api/visualization/outerParams' import { ElMessage } from 'element-plus-secondary' +import { useEmbedded } from '@/store/modules/embedded' import { useI18n } from '@/hooks/web/useI18n' import { XpackComponent } from '@/components/plugin' const dvMainStore = dvMainStoreWithOut() const { t } = useI18n() +const embeddedStore = useEmbedded() const state = reactive({ canvasDataPreview: null, canvasStylePreview: null, @@ -34,7 +36,7 @@ const props = defineProps({ }) const loadCanvasDataAsync = async (dvId, dvType) => { - const { jumpInfoParam } = router.currentRoute.value.query + const jumpInfoParam = embeddedStore.jumpInfoParam || router.currentRoute.value.query.jumpInfoParam let jumpParam // 获取外部跳转参数 if (jumpInfoParam) { @@ -105,7 +107,8 @@ let p = null const XpackLoaded = () => p(true) onMounted(async () => { await new Promise(r => (p = r)) - const { dvId, dvType, callBackFlag } = router.currentRoute.value.query + const dvId = embeddedStore.dvId || router.currentRoute.value.query.dvId + const { dvType, callBackFlag } = router.currentRoute.value.query if (dvId) { loadCanvasDataAsync(dvId, dvType) return From 21f427e439838a5e86ace74f76e1dddd551e268e Mon Sep 17 00:00:00 2001 From: wisonic-s Date: Tue, 28 May 2024 16:56:08 +0800 Subject: [PATCH 08/10] =?UTF-8?q?fix(=E5=9B=BE=E8=A1=A8):=20=E5=A4=9A?= =?UTF-8?q?=E7=B3=BB=E5=88=97=E6=8F=90=E7=A4=BA=E6=98=BE=E7=A4=BA=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/TooltipSelector.vue | 98 +++++++++---------- .../views/chart/components/editor/index.vue | 2 + 2 files changed, 46 insertions(+), 54 deletions(-) diff --git a/core/core-frontend/src/views/chart/components/editor/editor-style/components/TooltipSelector.vue b/core/core-frontend/src/views/chart/components/editor/editor-style/components/TooltipSelector.vue index 7baabca4fd..26eb33533f 100644 --- a/core/core-frontend/src/views/chart/components/editor/editor-style/components/TooltipSelector.vue +++ b/core/core-frontend/src/views/chart/components/editor/editor-style/components/TooltipSelector.vue @@ -7,12 +7,11 @@ import cloneDeep from 'lodash-es/cloneDeep' import defaultsDeep from 'lodash-es/defaultsDeep' import { formatterType, unitType } from '../../../js/formatter' import { fieldType } from '@/utils/attr' -import { partition, uniqWith, isEqual } from 'lodash-es' +import { partition } from 'lodash-es' import chartViewManager from '../../../js/panel' import { dvMainStoreWithOut } from '@/store/modules/data-visualization/dvMain' import { storeToRefs } from 'pinia' import { useEmitt } from '@/hooks/web/useEmitt' -import { deepCopy } from '@/utils/utils' const { t } = useI18n() @@ -41,55 +40,54 @@ const quotaData = ref(inject('quotaData')) const showSeriesTooltipFormatter = computed(() => { return showProperty('seriesTooltipFormatter') && !batchOptStatus.value && props.chart.id }) -// 初始化系列提示 -const initSeriesTooltip = () => { +// 切换图表类型直接重置为默认 +const changeChartType = () => { if (!showSeriesTooltipFormatter.value) { return } + curSeriesFormatter.value = {} const formatter = state.tooltipForm.seriesTooltipFormatter - const seriesAxisMap = formatter.reduce((pre, next) => { - next.seriesId = next.seriesId ?? next.id - pre[next.seriesId] = next - return pre - }, {}) - // 新增图表 - if (!quotaAxis.value?.length) { - if (!formatter.length) { - quotaData.value?.forEach(i => formatter.push({ ...i, seriesId: i.id, show: false })) - } - curSeriesFormatter.value = {} - return - } formatter.splice(0, formatter.length) - const axisIds = quotaAxis.value?.map(i => i.id) - const allQuotaAxis = quotaAxis.value?.concat( - quotaData.value?.filter(ele => !axisIds.includes(ele.id)) - ) - const axisMap = allQuotaAxis.reduce((pre, next, index) => { - let tmp = { - ...next, - seriesId: next.seriesId ?? next.id, - show: index <= quotaAxis.value.length - 1, - summary: COUNT_DE_TYPE.includes(next.deType) ? 'count' : 'sum' - } as SeriesFormatter - if (seriesAxisMap[tmp.seriesId]) { - tmp = { - ...tmp, - formatterCfg: seriesAxisMap[tmp.seriesId].formatterCfg, - show: seriesAxisMap[tmp.seriesId].show, - summary: seriesAxisMap[tmp.seriesId].summary, - chartShowName: seriesAxisMap[tmp.seriesId].chartShowName - } + const axisIds = [] + quotaAxis.value.forEach(axis => { + formatter.push({ + ...axis, + show: true + }) + axisIds.push(axis.id) + }) + quotaData.value.forEach(quotaAxis => { + if (!axisIds.includes(quotaAxis.id)) { + formatter.push({ + ...quotaAxis, + seriesId: quotaAxis.id, + show: false + }) + } + }) + emit('onTooltipChange', { data: state.tooltipForm, render: false }, 'seriesTooltipFormatter') + emit('onExtTooltipChange', extTooltip.value) +} +// 切换数据集 +const changeDataset = () => { + curSeriesFormatter.value = {} + const formatter = state.tooltipForm.seriesTooltipFormatter + const quotaIds = quotaData.value.map(i => i.id) + for (let i = formatter.length - 1; i >= 0; i--) { + if (!quotaIds.includes(formatter[i].id)) { + formatter.splice(i, 1) } - formatter.push(tmp) - pre[tmp.seriesId] = tmp - return pre - }, {}) - if (!curSeriesFormatter.value || !axisMap[curSeriesFormatter.value.seriesId]) { - curSeriesFormatter.value = axisMap[formatter[0].seriesId] - return } - curSeriesFormatter.value = axisMap[curSeriesFormatter.value.seriesId] + const formatterIds = formatter.map(i => i.id) + quotaData.value.forEach(axis => { + if (!formatterIds.includes(axis.id)) { + formatter.push({ + ...axis, + seriesId: axis.id, + show: false + }) + } + }) } const AXIS_PROP: AxisType[] = ['yAxis', 'yAxisExt', 'extBubble'] const quotaAxis = computed(() => { @@ -173,16 +171,6 @@ watch( }, { deep: false } ) -watch( - [quotaData, () => props.chart.type], - newVal => { - if (!newVal?.[0]?.length) { - return - } - initSeriesTooltip() - }, - { deep: false } -) const state = reactive({ tooltipForm: { @@ -373,6 +361,8 @@ onMounted(() => { useEmitt({ name: 'addAxis', callback: updateSeriesTooltipFormatter }) useEmitt({ name: 'removeAxis', callback: updateSeriesTooltipFormatter }) useEmitt({ name: 'updateAxis', callback: updateSeriesTooltipFormatter }) + useEmitt({ name: 'chart-type-change', callback: changeChartType }) + useEmitt({ name: 'dataset-change', callback: changeDataset }) }) 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 fce40fcf05..3d0d971bab 100644 --- a/core/core-frontend/src/views/chart/components/editor/index.vue +++ b/core/core-frontend/src/views/chart/components/editor/index.vue @@ -211,6 +211,7 @@ const getFields = (id, chartId) => { state.quota = (res.quotaList as unknown as Field[]) || [] state.dimensionData = JSON.parse(JSON.stringify(state.dimension)) state.quotaData = JSON.parse(JSON.stringify(state.quota)) + emitter.emit('dataset-change') }) .catch(() => { state.dimension = [] @@ -739,6 +740,7 @@ const onAreaChange = val => { const onTypeChange = (render, type) => { view.value.render = render view.value.type = type + emitter.emit('chart-type-change') // 处理配置项默认值,不同图表的同一配置项默认值不同 const chartViewInstance = chartViewManager.getChartView(view.value.render, view.value.type) if (chartViewInstance) { From 339fcb549b07fc7f6cd15550aa1ee10d82033ee7 Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Tue, 28 May 2024 17:16:15 +0800 Subject: [PATCH 09/10] =?UTF-8?q?fix(=E5=B7=A5=E4=BD=9C=E5=8F=B0):=20?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=87=BA=E4=B8=AD=E5=BF=83=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/visualized/data/dataset/ExportExcel.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 08edb571af..baa726ec64 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue @@ -418,7 +418,7 @@ defineExpose({