[bug] fix tooltip show data error when datazoom enable (#203)

This commit is contained in:
monitor1394
2022-06-25 19:32:50 +08:00
parent 2a03e71312
commit 564ff2e178
5 changed files with 21 additions and 6 deletions

View File

@@ -54,6 +54,7 @@
## master
* (2022.06.25) 修复`DataZoom`开启时`Tooltip`显示数据不一致的问题 (#203)
* (2022.06.25) 修复`Toolip`在类目轴无数据时绘制异常的问题 (#204)
* (2022.06.25) 优化`Serie`设置`PlaceHolder`时的`Tooltip`表现
* (2022.06.25) 增加`Since`标识配置参数从哪个版本开始支持

View File

@@ -42,6 +42,7 @@ namespace XCharts.Runtime
public List<string> runtimeData { get { return m_RuntimeData; } }
public List<double> labelValueList { get { return m_LabelValueList; } }
public List<ChartLabel> labelObjectList { get { return m_AxisLabelList; } }
public int dataZoomStartIndex;
internal List<string> filterData;
internal bool lastCheckInverse;
@@ -107,17 +108,25 @@ namespace XCharts.Runtime
if (range > data.Count - start - 1)
start = data.Count - range - 1;
if (start >= 0)
{
dataZoomStartIndex = start;
filterData = data.GetRange(start, range);
}
else
{
dataZoomStartIndex = 0;
filterData = data;
}
}
else
{
dataZoomStartIndex = 0;
filterData = data;
}
}
else if (end == 0)
{
dataZoomStartIndex = 0;
filterData = m_EmptyFliter;
}
}

View File

@@ -262,7 +262,7 @@ namespace XCharts.Runtime
if (isTriggerAxis)
{
serie.context.pointerEnter = true;
serie.context.pointerAxisDataIndexs.Add((int) xAxis.context.pointerValue);
serie.context.pointerAxisDataIndexs.Add(serie.context.dataZoomStartIndex + (int) xAxis.context.pointerValue);
xAxis.context.axisTooltipValue = xAxis.context.pointerValue;
}
}
@@ -446,7 +446,7 @@ namespace XCharts.Runtime
var axis = component as Axis;
if (axis.gridIndex == gridIndex && axis.IsCategory())
{
dataIndex = (int) axis.context.pointerValue;
dataIndex = axis.context.dataZoomStartIndex + (int) axis.context.pointerValue;
category = axis.GetData(dataIndex);
return true;
}
@@ -532,10 +532,6 @@ namespace XCharts.Runtime
Vector3 p2 = new Vector3(pX, pY);
Vector3 p3 = new Vector3(pX + tooltipSplitWid, pY);
Vector3 p4 = new Vector3(pX + tooltipSplitWid, grid.context.y);
Debug.LogError(p1 + "," + grid.context.x + "," + xAxis.context.pointerValue);
Debug.LogError(p2);
Debug.LogError(p3);
Debug.LogError(p4);
UGL.DrawQuadrilateral(vh, p1, p2, p3, p4, chart.theme.tooltip.areaColor);
}
break;

View File

@@ -707,17 +707,25 @@ namespace XCharts.Runtime
if (range > data.Count - start - 1)
start = data.Count - range - 1;
if (start >= 0)
{
serie.context.dataZoomStartIndex = start;
serie.m_FilterData = data.GetRange(start, range);
}
else
{
serie.context.dataZoomStartIndex = 0;
serie.m_FilterData = data;
}
}
else
{
serie.context.dataZoomStartIndex = 0;
serie.m_FilterData = data;
}
}
else if (end == 0)
{
serie.context.dataZoomStartIndex = 0;
serie.m_FilterData = emptyFilter;
}
}

View File

@@ -30,6 +30,7 @@ namespace XCharts.Runtime
/// </summary>
public List<int> pointerAxisDataIndexs = new List<int>();
public bool isTriggerByAxis = false;
public int dataZoomStartIndex = 0;
/// <summary>
/// 中心点