遇见问题:
        当数据为空的时候,想直接用v-if来控制chart图表的显示,但是随着筛选条件的变化,再次渲染图的时候容易找不到chart的dom,所以问了下AI,给出以下答案:

// 初始化图表
const chart = echarts.init(document.getElementById('chartContainer'));

// 模拟数据(空数据场景)
const data = [];

// 配置项
const option = {
  // 空数据时显示“暂无数据”
  graphic: {
    // 只有数据为空时才显示
    show: data.length === 0,
    elements: [
      {
        type: 'text',
        left: 'center', // 水平居中
        top: 'middle', // 垂直居中
        style: {
          text: '暂无数据',
          fontSize: 16,
          fontWeight: 'bold',
          fill: '#999', // 文字颜色
        },
      },
    ],
  },
  // 正常图表配置(如 xAxis、yAxis、series 等)
  xAxis: { type: 'category' },
  yAxis: { type: 'value' },
  series: [
    {
      type: 'bar',
      data: data, // 绑定数据
    },
  ],
};

// 设置配置项
chart.setOption(option);


        按照给出的代码试了一下,没出效果,然后去扒拉echarts的文档,找到所使用的graphic的配置项,没有show的属性,在示例网站里试了下,直接控制text就可以了,所以最终代码如下:

// 初始化图表
const chart = echarts.init(document.getElementById('chartContainer'));

// 模拟数据(空数据场景)
const data = [];

// 配置项
const option = {
  // 空数据时显示“暂无数据”
  graphic: {
    // 只有数据为空时才显示
    show: data.length === 0,
    elements: [
      {
        type: 'text',
        left: 'center', // 水平居中
        top: 'middle', // 垂直居中
        style: {
          text:  data.length ? '' : '暂无数据',,
          fontSize: 16,
          fontWeight: 'bold',
          fill: '#999', // 文字颜色
        },
      },
    ],
  },
  // 正常图表配置(如 xAxis、yAxis、series 等)
  xAxis: { type: 'category' },
  yAxis: { type: 'value' },
  series: [
    {
      type: 'bar',
      data: data, // 绑定数据
    },
  ],
};

// 设置配置项
chart.setOption(option);

效果:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐