Echarts 相关问题汇总

| 宽度 100px

问题描述:vue tabs 切换 echarts 宽度显示为 100px。

解决:使用 v-if 控制显示隐藏 (进入对应的 tab,初始化对应的 echarts)

  <Tabs :animated="false" @on-click="switchTab">
    <TabPane label="回溯">
      <v-echarts :tabs="1" :width='width' v-if="tab==1"/>
    </TabPane>
    <TabPane label="累计">
      <v-echarts :tabs="2" :width='width' v-if="tab==2"/>
    </TabPane>
    <TabPane label="当期">
      <v-echarts :tabs="3" :width='width' v-if="tab==3"/>
    </TabPane>
  </Tabs>

原理:页面加载时,所有 echarts 进行初始化,然而隐藏的 echarts 父元素div宽度为 0,默认给了100px。

| Y 轴显示图片

var medals = {
        'Gold': require('../../assets/images/gold.png'),
        'Silver': require('../../assets/images/silver.png'),
        'Bronze': require('../../assets/images/bronze.png')
    };

yAxis 配置: [{
          name: '排名top10',
          data: [10, 9, 8, 7, 6, 5, 4, 'Bronze', 'Silver', 'Gold', '排名'],
          axisLabel: {
              formatter: function(value) {
                  if (value == "Gold" || value == "Silver" || value == "Bronze") {
                      return '{' + value + '| }';
                  } else {
                      return '{value|' + value + '}';
                  }
              },
              rich: {
                  value: {
                      align: 'left',
                      width: 20
                  },
                  Gold: {
                      height: 20,
                      backgroundColor: {
                          image: medals.Gold
                      }
                  },
                  Silver: {
                      height: 20,
                      backgroundColor: {
                          image: medals.Silver
                      }
                  },
                  Bronze: {
                      height: 20,
                      backgroundColor: {
                          image: medals.Bronze
                      }
                  }
              }
          }
      }]

| 自定义图例

legend-data-icon 通过 ‘path://’ 将图标设置为任意的矢量路径; 详情见:SVG Path

| formatter

  • 字符串模板
formatter: '{b}<br/>{a0}:{c0}%<br/>{a1}:{c1}%<br/>{a2}:{c2}%<br/>{a3}:{c3}%'
  • 回调函数
formatter: (params)=>{
  console.log(params);
  return "自定义内容";
}

| 加载地图

引入 import 'echarts/map/js/china.js'