From 6e9d9bfd3d014a2f51a6ac63c0b6607bd2da58a3 Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Wed, 25 Dec 2024 21:39:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0`Tooltip`=E7=9A=84`itemFormat?= =?UTF-8?q?ter`=E8=AE=BE=E7=BD=AE`{f0}`=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Documentation~/zh/changelog.md | 1 + Runtime/Component/Label/SerieLabelHelper.cs | 2 +- Runtime/Component/Tooltip/TooltipHelper.cs | 3 ++- Runtime/Helper/FormatterHelper.cs | 12 ++++++++++-- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Documentation~/zh/changelog.md b/Documentation~/zh/changelog.md index b129d398..782e3cee 100644 --- a/Documentation~/zh/changelog.md +++ b/Documentation~/zh/changelog.md @@ -78,6 +78,7 @@ slug: /changelog ## master +* (2024.12.25) 增加`Tooltip`的`itemFormatter`设置`{f0}`支持 * (2024.12.25) 修复`YAxis`在范围变更刷新时部分label可能不显示的问题 * (2024.12.23) 增加`SymbolStyle`的`borderWidth`和`emptyColor`配置 * (2024.12.17) 增加`UISlider`扩展组件 diff --git a/Runtime/Component/Label/SerieLabelHelper.cs b/Runtime/Component/Label/SerieLabelHelper.cs index 2dc111e4..b05ffaae 100644 --- a/Runtime/Component/Label/SerieLabelHelper.cs +++ b/Runtime/Component/Label/SerieLabelHelper.cs @@ -45,7 +45,7 @@ namespace XCharts.Runtime { var content = serieLabel.formatter; FormatterHelper.ReplaceSerieLabelContent(ref content, numericFormatter, serie.dataCount, dataValue, - dataTotal, serieName, dataName, dataName, color, serieData, chart); + dataTotal, serieName, dataName, dataName, color, serieData, chart, serie.index); if (serieLabel.formatterFunction == null) return content; else diff --git a/Runtime/Component/Tooltip/TooltipHelper.cs b/Runtime/Component/Tooltip/TooltipHelper.cs index 4b42b71d..467dce83 100644 --- a/Runtime/Component/Tooltip/TooltipHelper.cs +++ b/Runtime/Component/Tooltip/TooltipHelper.cs @@ -44,7 +44,8 @@ namespace XCharts.Runtime param.serieData.name, param.color, param.serieData, - chart); + chart, + param.serieIndex); foreach (var item in content.Split('|')) { param.columns.Add(item); diff --git a/Runtime/Helper/FormatterHelper.cs b/Runtime/Helper/FormatterHelper.cs index 6a9ac8ad..2ab5a4da 100644 --- a/Runtime/Helper/FormatterHelper.cs +++ b/Runtime/Helper/FormatterHelper.cs @@ -149,7 +149,7 @@ namespace XCharts.Runtime else if (p == 'c' || p == 'C' || p == 'd' || p == 'D' || p == 'f' || p == 'f') { var isPercent = p == 'd' || p == 'D'; - var isTotal = p == 'f' || p == 'f'; + var isTotal = p == 'f' || p == 'F'; var bIndex = dataIndex; var dimensionIndex = -1; if (argsCount >= 2) @@ -211,7 +211,7 @@ namespace XCharts.Runtime } public static void ReplaceSerieLabelContent(ref string content, string numericFormatter, int dataCount, double value, double total, - string serieName, string category, string dataName, Color color, SerieData serieData, BaseChart chart = null) + string serieName, string category, string dataName, Color color, SerieData serieData, BaseChart chart = null, int serieIndex = 0) { var mc = s_RegexForSerieLabel.Matches(content); foreach (var m in mc) @@ -270,6 +270,14 @@ namespace XCharts.Runtime } else if (p == 'f' || p == 'f') { + if (pIndex != 1 && chart != null) + { + var serie = chart.GetSerie(serieIndex); + if (serie != null) + { + total = serie.GetDataTotal(pIndex, serieData); + } + } content = content.Replace(old, ChartCached.NumberToStr(total, numericFormatter)); } else if (p == 'g' || p == 'G')