fix(图表): 修复表格下钻后,调整浏览器窗口大小,表格恢复初始显示状态的问题

This commit is contained in:
jianneng-fit2cloud
2026-05-19 15:27:10 +08:00
committed by jianneng-fit2cloud
parent 0a83948c34
commit 09f616ff72

View File

@@ -209,6 +209,39 @@ const handleDefaultVal = (chart: Chart) => {
}
}
}
/**
* 根据图表请求状态恢复 S2 下钻状态
* 仪表板在 resize/scale 重绘时可能复用原始 view但数据仍是下钻后的结果
* 这里通过 chartExtRequest.drill 反推 drillFilters避免表头字段回退
*
*/
const restoreDrillState = (chart: ChartObj) => {
const drillRequests = chart.chartExtRequest?.drill
const drillFields = chart.drillFields ?? []
if (!drillRequests?.length || chart.drillFilters?.length || drillFields.length < 2) {
return
}
if (drillRequests.length >= drillFields.length) {
return
}
const drillFilters = []
for (let index = 0; index < drillRequests.length; index++) {
const request = drillRequests[index]
const drillField = drillFields[index]
const dimension = request.dimensionList?.find(item => item.id === drillField?.id)
if (!dimension) {
return
}
drillFilters.push({
fieldId: dimension.id,
value: dimension.value !== undefined && dimension.value !== null ? [dimension.value] : []
})
}
chart.drill = true
chart.drillFilters = drillFilters
}
const renderChart = (viewInfo: Chart, resetPageInfo: boolean) => {
if (!viewInfo) {
return
@@ -220,6 +253,7 @@ const renderChart = (viewInfo: Chart, resetPageInfo: boolean) => {
data: chartData.value,
fontFamily: props.fontFamily
} as ChartObj)
restoreDrillState(actualChart)
recursionTransObj(customAttrTrans, actualChart.customAttr, scale.value, terminal.value)
recursionTransObj(customStyleTrans, actualChart.customStyle, scale.value, terminal.value)