From 34f60e796768b795f3bd56dc3acfcf4c38429689 Mon Sep 17 00:00:00 2001 From: jianneng-fit2cloud Date: Thu, 13 Feb 2025 10:13:37 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=9B=BE=E8=A1=A8):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=9C=86=E5=BD=A2=E5=A1=AB=E5=85=85=E5=9B=BE=E7=9A=84=E7=8E=B0?= =?UTF-8?q?=E5=AE=9E=E4=BB=A5=E5=8F=8A=E6=93=8D=E4=BD=9C=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../js/panel/charts/others/circle-packing.ts | 51 ++++++------------- .../views/components/ChartComponentG2Plot.vue | 2 +- .../views/chart/components/views/index.vue | 5 +- 3 files changed, 18 insertions(+), 40 deletions(-) diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/others/circle-packing.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/others/circle-packing.ts index 0235050396..380fd06fb5 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/charts/others/circle-packing.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/charts/others/circle-packing.ts @@ -55,47 +55,34 @@ export class CirclePacking extends G2PlotChartView): Promise { const { chart, container, action } = drawOptions - if (chart?.data?.tableRow?.length) { + if (chart?.data?.data?.length) { // data - const data = chart.data.tableRow - const { xAxis, yAxis } = chart + const data = chart.data.data + const { xAxis, yAxis, drillFields } = chart const ySort = yAxis[0]?.sort ?? 'none' const sort = { sort: (a, b) => ySort === 'asc' ? a.value - b.value : ySort === 'desc' ? b.value - a.value : 0 } - // 根据配置获取节点的key,用于构建节点树,拖入字段顺序即为节点的层级 - const nodeKeys = xAxis.map(item => item.dataeaseName) // 将数据转为圆形填充图数据格式 const getCirclePackingData = () => { const result = [{ name: t('commons.all'), children: [] }] - const addNode = (nodes, item, level) => { - if (level >= nodeKeys.length) return - const key = nodeKeys[level] - const value = item[key] - let node = nodes.find(n => n.name === value) - if (!node) { - node = { name: value, field: xAxis.find(f => f.dataeaseName === key), children: [] } - nodes.push(node) - } - if (level === nodeKeys.length - 1) { - node.value = yAxis.length ? item[yAxis[0].dataeaseName] : 1 - } else { - addNode(node.children, item, level + 1) - } + const addNode = (nodes, item) => { + const node = { ...item, name: item.name, children: [] } + nodes.push(node) } - data.forEach(item => addNode(result[0].children, item, 0)) + data.forEach(item => addNode(result[0].children, item)) return result[0] } // options @@ -137,26 +124,20 @@ export class CirclePacking extends G2PlotChartView { - const data = param?.data?.data - if (data?.name === t('commons.all')) { + const pointData = param?.data?.data + if (pointData?.name === t('commons.all')) { return } - action({ + const actionParams = { x: param.x, y: param.y, data: { data: { - ...data, - dimensionList: [ - { - id: data?.field?.id, - value: data.name, - name: data.name - } - ] + ...pointData } } - }) + } + action(actionParams) }) return newChart } diff --git a/core/core-frontend/src/views/chart/components/views/components/ChartComponentG2Plot.vue b/core/core-frontend/src/views/chart/components/views/components/ChartComponentG2Plot.vue index ad87840642..603c9a6f16 100644 --- a/core/core-frontend/src/views/chart/components/views/components/ChartComponentG2Plot.vue +++ b/core/core-frontend/src/views/chart/components/views/components/ChartComponentG2Plot.vue @@ -465,7 +465,7 @@ const trackClick = trackAction => { } } let quotaList = state.pointParam.data.quotaList - if (['bar-range', 'circle-packing'].includes(curView.type)) { + if (['bar-range'].includes(curView.type)) { quotaList = state.pointParam.data.dimensionList } else { quotaList[0]['value'] = state.pointParam.data.value 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 cb8657e135..4f85d65cba 100644 --- a/core/core-frontend/src/views/chart/components/views/index.vue +++ b/core/core-frontend/src/views/chart/components/views/index.vue @@ -357,10 +357,7 @@ const chartClick = param => { ElMessage.error(t('chart.drill_field_error')) return } - if ( - view.value.type === 'circle-packing' && - (param.data?.childNodeCount === 0 || param.data.name === t('commons.all')) - ) { + if (view.value.type === 'circle-packing' && param.data.name === t('commons.all')) { ElMessage.error(t('chart.last_layer')) return }