#19097·dataease

[Bug] 二次联动时汇总表/明细表丢失先前联动条件(透视表正常)

Author: Wanpl-JavaCreated Sep 10, 2026Updated Sep 14, 2026
Labels类型:bug状态:待处理

DataEase 版本 v2.10.22(更早版本同类逻辑也可能存在)

运行方式(安装包运行 or 源码运行 ?) 安装包运行

浏览器版本 all

Bug 描述 仪表板二次联动时,若目标为「汇总表」或「明细表」,第二次联动会清空该表上已有联动条件,只保留最近一次点击带来的条件。

典型现象:

  1. 先点击柱状折线图横轴某日(联动①)→ 汇总表按日期过滤正常
  2. 再点击其它图表维度(如角色条形图,联动②)→ 汇总表只生效②,不再受①日期限制
  3. 同样配置下「透视表」正常

Bug 重现步骤(有截图更好)

  1. 新建仪表板,配置多个图表互相联动,目标包含汇总表(或明细表)
  2. 点击柱状折线图某日(联动①),确认汇总表已按该日过滤
  3. 再点击其它维度图表某项(联动②)
  4. 观察汇总表:仅按第二次条件过滤,日期条件丢失

(可附截图)

预期结果 汇总表应同时保留多次联动条件(AND),例如同时受「日期 between」和「角色 eq」约束。

实际结果 二次联动后先前条件丢失,汇总表/明细表只保留最近一次条件。

原因分析(代码定位) 前端 trackFilterCursor 中,只要目标图表类型为 table-info / table-normal,就会把 linkageFilters 整表清空后再写入当次条件:

文件:core/core-frontend/src/store/modules/data-visualization/dvMain.ts

let currentFilters = element.linkageFilters || [] if (['table-info', 'table-normal'].includes(element.innerType)) { currentFilters = [] }

建议修复方向 不要按目标类型整表清空。若需处理明细表/汇总表作为联动源时字段子集变化,仅清除 sourceViewId === 当前源 的历史条件,保留其它图表带来的联动条件。