From d88b09893c60809644cf82d00d4097d1884fe7f0 Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Thu, 15 Jan 2026 11:16:39 +0800 Subject: [PATCH 1/2] fix: fix issue of showTooltip in map chart --- .../src/component/tooltip/utils/show-tooltip.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/vchart/src/component/tooltip/utils/show-tooltip.ts b/packages/vchart/src/component/tooltip/utils/show-tooltip.ts index afab7ae2a5..e945104dfc 100644 --- a/packages/vchart/src/component/tooltip/utils/show-tooltip.ts +++ b/packages/vchart/src/component/tooltip/utils/show-tooltip.ts @@ -273,28 +273,33 @@ export const getMarkInfoList = (datum: Datum, region: IRegion) => { }; const parseMarkInfoOfGeoSeries = () => { + console.log('parseMarkInfoOfGeoSeries'); + let originDatum = series.getViewData()?.latestData.find(datumContainsArray(dimensionFields, dimensionData)); // 地图需要特殊处理,需要根据properties属性来匹配数据 - const originDatum = series + const originMapDatum = series // @ts-ignore .getMapViewData?.() ?.latestData.find((datum: Datum) => dimensionFields.every((key, i) => datum.properties[key] === dimensionData?.[i]) ); let markInfoMeasureData = measureData; + if (originMapDatum && !originDatum) { + originDatum = { ...datum }; + } if (!hasMeasureData) { - // 如果只有单个数据组且用户没有给y轴数据,则补全y轴数据 + // 如果只有地图数据,则补全 measureData = getDataArrayFromFieldArray(measureFields, originDatum); markInfoMeasureData = measureData; if (!hasData(measureData) && !originDatum) { return; } - measureData = { ...originDatum.properties }; + measureData = [null]; } const pos = series.type === SeriesTypeEnum.pie - ? (series as PieSeries).dataToCentralPosition(originDatum.properties) - : series.dataToPosition(originDatum.properties); + ? (series as PieSeries).dataToCentralPosition(originMapDatum.properties) + : series.dataToPosition(originMapDatum.properties); if (isNil(pos) || isNaN(pos.x) || isNaN(pos.y)) { return; } From d01be1a7922850af39c391cde83ffefcc6bac09d Mon Sep 17 00:00:00 2001 From: "lixuefei.1313" Date: Thu, 15 Jan 2026 15:36:24 +0800 Subject: [PATCH 2/2] fix: fix issue of showTooltip in map chart --- .../component/tooltip/utils/show-tooltip.ts | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/vchart/src/component/tooltip/utils/show-tooltip.ts b/packages/vchart/src/component/tooltip/utils/show-tooltip.ts index e945104dfc..03c86f0254 100644 --- a/packages/vchart/src/component/tooltip/utils/show-tooltip.ts +++ b/packages/vchart/src/component/tooltip/utils/show-tooltip.ts @@ -276,12 +276,23 @@ export const getMarkInfoList = (datum: Datum, region: IRegion) => { console.log('parseMarkInfoOfGeoSeries'); let originDatum = series.getViewData()?.latestData.find(datumContainsArray(dimensionFields, dimensionData)); // 地图需要特殊处理,需要根据properties属性来匹配数据 + // @ts-ignore + const nameMap = series.getNameMap(); + const originMapDatum = series // @ts-ignore .getMapViewData?.() ?.latestData.find((datum: Datum) => - dimensionFields.every((key, i) => datum.properties[key] === dimensionData?.[i]) + dimensionFields.every((key, i) => { + if (key === 'name') { + return nameMap[datum.properties[key]] === dimensionData?.[i]; + } + return datum.properties[key] === dimensionData?.[i]; + }) ); + if (!originMapDatum) { + return; + } let markInfoMeasureData = measureData; if (originMapDatum && !originDatum) { originDatum = { ...datum }; @@ -293,13 +304,12 @@ export const getMarkInfoList = (datum: Datum, region: IRegion) => { if (!hasData(measureData) && !originDatum) { return; } - measureData = [null]; + if (!hasData(measureData)) { + measureData = [null]; + } } - const pos = - series.type === SeriesTypeEnum.pie - ? (series as PieSeries).dataToCentralPosition(originMapDatum.properties) - : series.dataToPosition(originMapDatum.properties); + const pos = series.dataToPosition(originDatum); if (isNil(pos) || isNaN(pos.x) || isNaN(pos.y)) { return; }