搜索

首页  >  问答  >  正文

如何使用 vue.js 从 ApexChart 的选项中调用方法

我是 vue 和 apex 图表的新手,基本上我需要的是从 apex 图表选项调用方法,我创建了一个显示我遇到的问题的文件:

https://jsfiddle.net/wr3uo5va/

我需要从 chartOptions.dataLabels 调用方法 currencyValue

    dataLabels: {
      enabled: true,
      offsetX: -25,
      formatter: function(val) {
        return val + " Reais";  <--- This works
       // return this.currencyValue(val)  <--- This does not work
      },
    },

有什么建议吗?

P粉373596828P粉373596828287 天前395

全部回复(2)我来回复

  • P粉662089521

    P粉6620895212024-03-28 15:58:45

    您可以将 chartOptions 放在方法中而不是数据中。 下面是工作代码

    const currencyValue = (val) => {
      return "R$" + val;
    }
    
    new Vue({
      el: "#app",
      data() {
        return {
          series: [450, 300, 500]
        }
      },
      methods: {
        chartOptions() {
          return {
            labels: ['Paid', 'Pending', 'Rejected'],
            plotOptions: {
                radialBar: {
                    size: 165,
                    offsetY: 30,
                    hollow: {
                        size: '20%'
                    },
                    track: {
                        background: "#ebebeb",
                        strokeWidth: '100%',
                        margin: 15,
                    },
                    dataLabels: {
                        show: true,
                        name: {
                            fontSize: '18px',
                        },
                        value: {
                            fontSize: '16px',
                            color: "#636a71",
                            offsetY: 11
                        },
                        total: {
                            show: true,
                            label: 'Total',
                            formatter: function() {
                                return 42459
                            }
                        }
                    }
                },
            },
            responsive: [{
                breakpoint: 576,
                options: {
                    plotOptions: {
                        radialBar: {
                            size: 150,
                            hollow: {
                                size: '20%'
                            },
                            track: {
                                background: "#ebebeb",
                                strokeWidth: '100%',
                                margin: 15,
                            },
                        }
                    }
                }
            }],
            colors: ['#7961F9', '#FF9F43', '#EA5455'],
            fill: {
                type: 'gradient',
                gradient: {
                    // enabled: true,
                    shade: 'dark',
                    type: 'vertical',
                    shadeIntensity: 0.5,
                    gradientToColors: ['#9c8cfc', '#FFC085', '#f29292'],
                    inverseColors: false,
                    opacityFrom: 1,
                    opacityTo: 1,
                    stops: [0, 100]
                },
            },
            stroke: {
                lineCap: 'round'
            },
            chart: {
                dropShadow: {
                    enabled: true,
                    blur: 3,
                    left: 1,
                    top: 1,
                    opacity: 0.1
                },
            },
            tooltip: {
              x: {
                formatter: function (val) {
                  return val;
                },
              },
              y: {
                formatter: function (val) {
                  return currencyValue(val);
                },
              },
            },            
          }
        }
      },
      components: {
        VueApexCharts
      }
    })

    方法不能在 datacompulated 中调用,可以在 methods 中调用

    html 中需要修改的一件事如下

    
    

    回复
    0
  • P粉078945182
  • 取消回复