Use o Dataset para gerenciar os dados ao carregar dados de forma assíncrona no Echart.js: Se for 0, o rótulo não será exibido. Dica de ferramenta personalizada em Echart.js.

Prefácio

Hoje, Echart.js é usado no projeto para relatórios. Encontrei algumas soluções não documentadas no documento Echart.js . Grave aqui ...

Use o conjunto de dados para gerenciar dados ao carregar dados de forma assíncrona em Echart.js: Se for 0, o rótulo não será exibido

Mostrar mapa

Insira a descrição da imagem aqui
Nesse caso, não há necessidade de exibir 0,00 funcionários. Portanto, a solução é usar o atributo formatter para processamento de dados. Finalmente processado no efeito que você deseja. Este local pertence à etiqueta da série.

Portanto, quando estamos fazendo processamento de dados, devemos ter clareza sobre o que vamos fazer e com quem estamos lidando.

Minha solução

    series: [
                        {
    
    
                            type: 'line',
                            smooth: true,
                            symbol: 'circle',
                            symbolSize: 5,
                            sampling: 'average',
                            itemStyle: {
    
    
                                color: '#8ec6ad'
                            },
                            stack: 'a',
                            label: {
    
    
                                show: true,
                                formatter: function (params) {
    
    
                                    if (params.data.TotalAmount == 0) {
    
    
                                        return params.data.TotalAmount = '';
                                    } else {
    
    
                                        return params.data.TotalAmount = params.data.TotalAmount + '元';
                                    }
                                }
                            },
                            areaStyle: {
    
    
                                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
    
    
                                    offset: 0,
                                    color: '#8ec6ad'
                                }, {
    
    
                                    offset: 1,
                                    color: '#ffe'
                                }])
                            }
                        },
                        {
    
    
                            type: 'bar',
                            smooth: true,
                            symbol: 'circle',
                            symbolSize: 5,
                            sampling: 'average',
                            itemStyle: {
    
    
                                color: 'rgb(0,122,204)'
                            },
                            stack: 'a',
                            label: {
    
    
                                show: true,
                                formatter: function (params) {
    
    
                                    if (params.data.Otheramount == 0) {
    
    
                                        return params.data.Otheramount = '';
                                    } else {
    
    
                                        return params.data.Otheramount = params.data.Otheramount + '元';
                                    }
                                }
                            },

                            areaStyle: {
    
    
                                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
    
    
                                    offset: 0,
                                    color: 'rgb(0,122,204)'
                                }, {
    
    
                                    offset: 1,
                                    color: '#ffe'
                                }])
                            }
                        }

                    ]
Logíca de negócios
 label: {
    
    
           //显示数据 例如:0.0元,239,00元……
           show: true,
           //数据处理,且必须要又返回值
           formatter: function (params) {
    
    
               //这个地方可以把它输出来看看,有些什么东西   console.log(params)     
                 //判断当前的  TotalAmount  数据是否为0,也就是说是否为0元
                 if (params.data.TotalAmount == 0) 
                 {
    
     
                       //如果是,那么将返回一个空值
                       return params.data.TotalAmount = '';
                 } 
                 else 
                 {
    
    
                       //否则,就再加个单位 元 且返回出去
                       return params.data.TotalAmount = params.data.TotalAmount + '元';
                 }
           }
       }

Imagem de efeito após o problema ser resolvido

Insira a descrição da imagem aqui

Dica de ferramenta personalizada em Echart.js

Algumas coisas podem ser personalizadas neste local e o atributo formatter também é usado para processamento de dados.

  tooltip: {
    
    
                        //设置工具提示容器的宽,高
                        extraCssText: 'width:300px;height:90px;',
                        //对工具提示容器内要显示的数据进行处理
                        formatter: function (parms) {
    
    
                            //这个地方可以把它输出来看看,有些什么东西
                            console.log(params)
                            if (parms[0] != null) {
    
    
                                //判断当前相关金额类型是否为空
                                if (parms[0].data.TotalAmount == "") {
    
    
                                    parms[0].data.TotalAmount = " 0.00元";
                                }
                                if (parms[0].data.Otheramount == "") {
    
    
                                    parms[0].data.Otheramount = " 0.00元";
                                }
                                //再加一个小标题
                                var res = '<span style="margin-left:100px"></span>房屋租赁管理系统<br/>';
                                //自定义一些要显示的数据
                                res += '时间:' + parms[0].name + '<br/>';
                                res += parms[0].marker + '合同收租资金:' + parms[0].data.TotalAmount + '<br/>';
                                res += parms[1].marker + '其他收租资金:' + parms[0].data.Otheramount + '<br/>';
                                //其中parms[index].marker是每个数据代表的图形对象标签
                                return res;
                            }
                        }
                    }

Resumindo

Por se tratar de um relatório, os dados são apresentados. Então, os "dados válidos" devem ser exibidos intuitivamente e os dados desnecessários devem ser processados. Em vez de organizar os dados de maneira densa, criando uma experiência ruim para os usuários.

Acho que você gosta

Origin blog.csdn.net/WenRouDG/article/details/108270288
Recomendado
Clasificación