可视化大屏点击交互中,应通过平台封装的数据级target对象(如rowdata、params、e.data)动态读取子级属性,而非原生event.target;在“每项单击”事件中提取维度、指标等字段用于筛选、跳转或联动。

在可视化大屏的点击交互中,利用 target 动态读取子级属性,核心是通过事件触发时捕获被点击元素的数据上下文(如图表数据项、表格行、列表节点等),从中提取其绑定的字段值(即子级属性),再用于后续动作——比如筛选、跳转、参数传递或联动展示。
这个能力常见于 ECharts、FineVis、DataV 或 FineReport 等平台的「每项单击时」类事件,而非简单“组件整体单击”。关键不在 DOM 的 event.target,而在于平台封装的 数据级 target 对象(如 rowdata、params、event.data)。
以下是可直接落地的操作逻辑和要点:
✅ 明确什么是“target”的子级属性
在图表/列表类组件中,点击某个柱子、某条折线、某一行表格时,平台会自动将该具体数据项的完整上下文作为 target(或类似命名的对象)传入事件处理器。它通常包含:
- 维度字段值:如
rowdata.dimension["region"]→"华东" - 指标字段值:如
rowdata.measure["sales"]→128000 - 序号信息:如
event.index→2(第3项) - 原始数据对象:如
event.data(ECharts 中为params.data或params.value)
注意:不是浏览器原生
event.target(那个只是 HTML 元素节点),而是可视化组件抽象出的数据目标对象。
✅ 在主流工具中读取子级属性的方法
▪ FineVis / FineReport(推荐写法)
在「每项单击时」事件中,直接使用内置变量:
rowdata.dimension["部门"] // 获取当前点击项的“部门”维度值 rowdata.measure["销售额"] // 获取当前点击项的“销售额”指标值 event.index // 当前项在数据集中的序号(从0开始)
✅ 实际应用示例:
点击柱状图某根柱子 → 触发「写入参数」动作 → 将 rowdata.dimension["产品类别"] 写入参数 SelectedCategory → 其他图表响应 SelectedCategory == "手机" 时高亮或过滤。
▪ ECharts(网页端 HTML5 大屏)
在 chartInstance.on('click', (params) => { ... }) 回调中:
const clickedItem = params.data; // 原始数据项(数组或对象) const category = params.name; // X轴/分类名(常用) const value = params.value; // 数值(可能为数字或数组) const seriesName = params.seriesName; // 所属图例名 // 若 data 是对象格式,可直接取字段: // const region = params.data.region; // const amount = params.data.amount;
✅ 提示:确保 series 的 encode 或 dimensions 正确定义了字段映射,否则 params.name 可能为空。
▪ DataV / 阿里云大屏
使用 e.data 或 e.target.data(取决于组件类型):
- 表格组件:
e.data.row.城市 - 柱图组件:
e.data.name(X轴标签)、e.data.value(Y值) - 地图组件:
e.data.properties.name(GeoJSON 属性)
✅ 常见避坑提醒
- ❌ 不要试图用
document.getElementById(...).dataset.xxx读取——大屏渲染多为 Canvas 或 SVG,无对应 DOM 数据属性。 - ❌
event.target.innerText在图表中基本无效(Canvas 内容不可选)。 - ✅ 优先查文档确认该组件支持的「每项单击」事件是否携带
rowdata/params/e.data;不支持则需改用「数据联动」或「过滤器」替代。 - ✅ 若需组合多个字段(如
"华东_2024Q1"),可在响应动作中用字符串拼接:rowdata.dimension["区域"] + "_" + rowdata.dimension["季度"]
✅ 典型联动场景一句话实现
点击饼图某一块 → 读取
rowdata.dimension["省份"]→ 写入全局参数ActiveProvince→ 地图组件根据该参数高亮对应区域 + 下方明细表自动刷新筛选。
这种基于 target 子级属性的动态读取,是实现「所点即所得」「一触即联动」的关键底层能力,不需要写代码也能在配置界面完成,前提是选对事件类型(必须是「每项单击」,不是「组件单击」)。










