给echarts添加筛选时间控件时,控件不显示,并设置数据库无数据时echarts模块显示暂无数据

本文介绍如何在ECharts中正确使用时间控件,避免被画布遮挡导致失效的问题。同时,探讨了当从后台获取数据为空时,如何通过切换div显示暂无数据提示,确保用户体验。代码示例展示了如何结合Ajax请求动态更新图表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给echarts模块添加时间控件时,控件无效,经检查发现,控件被画布遮盖了,需要用一个form标签包括时间控件,否则时间控件不生效。另外,如果echarts从后台获取到的数据为空,需要提示暂无信息。这时,需要使用一个div,在有数据时显示echarts,在无数据时显示暂无数据。

HTML:

<style>

    body {
    background-color: #ebf6fc;
}

 #chart7, #chart8 {
    height: 300px;
}

#chart7_, #chart8_ {
    height: 300px;
    display: none;
    padding-top: 136px;
    font-size: 20px;
    text-align: center;
}

.panel-title {
    text-align: center;
}
</style>

 

<div class="tab-content">
                <div id="yl_4" class="tab-pane fade active in">

                    <form class="form-horizontal">
                        <div class="form-group">
                            <label class="col-sm-3 control-label">缴费年份</label>
                            <div class="col-sm-3">
                                <input type="text" id="jfnfyl" class="form-control"
                                    readonly="readonly"
                                    onFocus="WdatePicker({isShowClear:false,dateFmt:'yyyy',maxDate:'%y'})">
                            </div>
                            <button class="btn btn-mint" type="button" onclick="searchYL();">
                                <i class="glyphicon glyphicon-search"></i> 搜索
                            </button>
                        </div>
                    </form>
                    <div id="chart7"></div>
                    <div id="chart7_">暂无数据</div>
                </div>
                <div id="yb_4" class="tab-pane fade">
                    <form class="form-horizontal">
                        <div class="form-group">
                            <label class="col-sm-3 control-label">缴费年份</label>
                            <div class="col-sm-3">
                                <input type="text" id="jfnfyb" class="form-control"
                                    readonly="readonly"
                                    onFocus="WdatePicker({isShowClear:false,dateFmt:'yyyy',maxDate:'%y'})">
                            </div>
                            <button class="btn btn-mint" type="button" onclick="searchYB();">
                                <i class="glyphicon glyphicon-search"></i> 搜索
                            </button>
                        </div>
                    </form>
                    <div id="chart8"></div>
                    <div id="chart8_">暂无数据</div>

                </div>
            </div>

 

<script>

 

var ylx=[];var yly=[];var ybx=[];var yby=[];
        var myDate = new Date();
        var year = myDate.getFullYear();
        $('#jfnfyl').val(year);
        $('#jfnfyb').val(year);
        
        $.ajax({ 
            type : "get", 
            url : ctx + "/admin/zklt/payInfo/getTrendYL",
            data:{jfnfyl:$('#jfnfyl').val()},
            dataType: "json",
            success : function(result) {
                
                for(var i =0;i<result.length;i++){
                    if(null == result[i].name){
                        ylx.push("其他");
                    }else{
                        ylx.push(result[i].name);
                    }
                    
                    yly.push(result[i].total);
                }
                
                myChart7.hideLoading();
                myChart7.setOption({
                    xAxis:{
                        data:ylx
                    },
                    series:[{
                        data:yly
                    }]
                });
               
            },
            error:function(){
                alert("error");
            }
           }); 
           
           
        $.ajax({ 
            type : "get", 
            url : ctx + "/admin/zklt/payInfo/getTrendYB",
            data:{jfnfyb:$('#jfnfyb').val()},
            dataType: "json",
            success : function(data) {
                
                for(var i =0;i<data.length;i++){
                   ybx.push(data[i].name);
                   yby.push(data[i].total);
                }
                
                myChart8.hideLoading();
                myChart8.setOption({
                    xAxis:{
                        data:ybx
                    },
                    series:[{
                        data:yby
                    }]
                });
            },
            error:function(){
                alert("error");
            }
           });

 

    var myChart7 = echarts.init(document.getElementById('chart7'));
    var myChart8 = echarts.init(document.getElementById('chart8'));

 

var option7 = {
            tooltip: {
                trigger: 'axis',
                axisPointer: {            // 坐标轴指示器,坐标轴触发有效
                    type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
                }
            },
            grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true
            },
            xAxis: [
                {
                    type: 'category',
                    data:[],
                    axisTick: {
                        alignWithLabel: true
                    },
                    //设置字体倾斜
                    axisLabel: {  
                           interval:0,  
                           rotate:40  
                        } 
                }
            ],
            yAxis: [
                {
                    type: 'value',
                    name: '单位:人'
                }
            ],
            series: [
                {
                    name: '养老',
                    type: 'bar',
                    // barWidth: '30%',
                    data: []
                }
            ]
        };
        var option8 = {
            tooltip: {
                trigger: 'axis',
                axisPointer: {            // 坐标轴指示器,坐标轴触发有效
                    type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
                }
            },
            grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true
            },
            xAxis: [
                {
                    type: 'category',
                    data: [],
                    axisTick: {
                        alignWithLabel: true
                    },
                    axisLabel: {  
                           interval:0,  
                           rotate:40  
                        } 
                }
            ],
            yAxis: [
                {
                    type: 'value',
                    name: '单位:人'
                }
            ],
            series: [
                {
                    name: '医保',
                    type: 'bar',
                    // barWidth: '30%',
                    data: []
                }
            ]
        };

 

    myChart7.setOption(option7);
    myChart8.setOption(option8);
    myChart7.showLoading();
    myChart8.showLoading();

 

    $('a[href="#yl_4"]').on('shown.bs.tab', function (e) {
        e.preventDefault();
        myChart7.resize();
        myChart8.resize();
    });
    $('a[href="#yb_4"]').on('shown.bs.tab', function (e) {
        e.preventDefault();
        myChart7.resize();
        myChart8.resize();
    });

 

    function searchYL(){
        ylx.splice(0,ylx.length);
        yly.splice(0,yly.length);
        $.ajax({ 
            type : "get", 
            url : ctx + "/admin/zklt/payInfo/getTrendYL",
            data:{jfnfyl:$('#jfnfyl').val()},
            dataType: "json",
            success : function(result) {
                if(result.length == 0){
                    //提示暂无数据
                    $("#chart7").css({"display":"none"});
                    $("#chart7_").css({"display":"block"});
                }else{
                    $("#chart7").css({"display":"block"});
                    $("#chart7_").css({"display":"none"});
                    for(var i =0;i<result.length;i++){
                        if(null == result[i].name){
                            ylx.push("其他");
                        }else{
                            ylx.push(result[i].name);
                        }
                        
                        yly.push(result[i].total);
                    }
                    
                    myChart7.hideLoading();
                    myChart7.setOption({
                        xAxis:{
                            data:ylx
                        },
                        series:[{
                            data:yly
                        }]
                    });
                }
            },
            error:function(){
                alert("error");
            }
           });
    }
    
    function searchYB(){
        ybx.splice(0,ybx.length);
        yby.splice(0,yby.length);
        $.ajax({ 
            type : "get", 
            url : ctx + "/admin/zklt/payInfo/getTrendYB",
            data:{jfnfyb:$('#jfnfyb').val()},
            dataType: "json",
            success : function(data) {
                if(data.length == 0){
                    //提示暂无数据
                    $("#chart8").css({"display":"none"});
                    $("#chart8_").css({"display":"block"});
                }else{
                    $("#chart8").css({"display":"block"});
                    $("#chart8_").css({"display":"none"});
                    for(var i =0;i<data.length;i++){
                           ybx.push(data[i].name);
                           yby.push(data[i].total);
                        }
                        
                        myChart8.hideLoading();
                        myChart8.setOption({
                            xAxis:{
                                data:ybx
                            },
                            series:[{
                                data:yby
                            }]
                        });
                }
            },
            error:function(){
                alert("error");
            }
           });
    }

 

 

 

</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iamlzjoco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值