Метод перерисовки серии Highchart.Vuejs - PullRequest
1 голос
/ 02 июля 2019

Построение реактивных карт на Vuejs и Hightcharts.Сложил, пытаясь сделать метод для redraw().

Я пробовал this.chart.series[0].setData(this.values,true);, но это не работает, так как мне нужно установить целое series вместо series.data.Формат данных моей серии: [{"data": 'value', "name": 'value'}], но я знаю только, как перерисовать часть данных серии.Любые советы будут оценены!

// My data format:
    values: [ 
    { "data": [ 6000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, { "isSum": true } ], "name": "Shares A" }, 
    { "data": [ 9600000, 0, 0, 0, 0, 0, 0, 0, 0, 0, { "isSum": true } ], "name": "Shares B" }, 
    { "data": [ 0, 0, 4000000, 0, 0, 0, 0, 0, 0, 0, { "isSum": true } ], "name": "Share C" }, 
    { "data": [ 0, 5000000, 0, 0, 0, 0, 0, 0, 0, 0, { "isSum": true } ], "name": "Shares D" } 
    ]
    // Redraw method:
    methods:{
        redraw(){
            // this doesn't work, need help with this part 
            this.chart.series[0].setData(this.values,true);

            // I've also tried this way, but it redraws only 1st seria, not every of them
            this.chart.series[0].update({
                data: this.values[0].data,
                name: this.values[0].name
            }, true); 
        }
    },
    watch:{
        values(){this.redraw()},
    },
    series: this.values

1 Ответ

1 голос
/ 02 июля 2019

Я наконец нашел решение:

methods:{
        redraw(){
            chart = this.chart

            if(chart.series.length > 1){
                var s = 0;
                for(var i in this.values){
                    chart.series[s].setData(this.values[i].data);
                    chart.series[s].name = this.values[i].name;
                    s++;
                }
            }else{
                this.chart.series[0].setData(this.values[0].data);
                this.chart.series[0].name = this.values[0].name;
            }
        }
    },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...