You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CoreUI CChartBar柱状图点击获取月份并跳转页面实现方法咨询

CoreUI的CChartBar基于Chart.js封装,组件的onClick事件默认返回三个参数,你当前只传入了事件对象,因此无法获取点击柱体的关联数据,按以下步骤修改即可实现需求:

1. 调整组件的onClick回调参数

修改CChartBar的onClick属性,接收完整的回调参数,原有其他配置保持不变即可:

<CChartBar
  datasets={[/* 原有数据集配置不变 */]}
  labels={dateLabels}
  // 新增后两个参数:点击的元素数组、图表实例
  onClick={(event, elements, chartInstance) => drillDown(elements, chartInstance)}
  options={/* 原有配置不变 */}
/>

2. 实现下钻跳转逻辑

在组件内编写drillDown方法,获取月份后跳转页面即可,以下是基于react-router的实现示例,也可根据你的路由方案替换为window.location.href赋值:

import { useNavigate } from 'react-router-dom'

const YourChartComponent = () => {
  const navigate = useNavigate()
  // 原有变量定义:expectedExpirations、actualExpirations、dateLabels等保持不变

  const drillDown = (elements, chartInstance) => {
    // 未点击到柱体时直接退出
    if (!elements?.length) return
    // 获取点击柱体对应的x轴索引
    const dataIndex = elements[0].index
    // 从x轴标签中取出对应月份
    const targetMonth = chartInstance.data.labels[dataIndex]
    
    // 跳转至表格页,将月份作为查询参数传递
    navigate(`/lease-expiration-table?month=${encodeURIComponent(targetMonth)}`)
  }

  // 原有返回渲染逻辑保持不变
}

补充说明

你使用的是堆叠柱状图,点击同一横轴位置不同图层的柱体,返回的dataIndex是一致的,不需要额外处理即可正常拿到对应月份。如果需要同时传递当前柱体对应的数值,也可以通过chartInstance.data.datasets[elements[0].datasetIndex].data[dataIndex]获取对应数据集的数值。

内容的提问来源于stack exchange,提问作者femmefunction

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 03:18:00