echarts 数据展示模板

主要用来以后编写echarts折线图展示,可以使用这个模板进行(折现图,有标记,多条折现在一张图上,可鼠标缩放)
在这里插入图片描述

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>用户金币情况查询看板</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
    <script src="./jquery-3.1.1.min.js"></script>
</head>
<style>
    #button_div label{
        margin-left: 20px;
    }
    #button_div input:last-child{
        margin-left: 40px;
        background-color: green;
        width: 80px;
        height: 30px;
        color: white;
    }
    /* body{
        width: 100%;
        height: 100%;
    } */
    #main_1, #main_2, #main_3{
        width: 2000px;
        height: 800px;
        margin-top: 100px;
    }
</style>
<body>
    <h1>远洋组用户金币情况查询</h1>
    <div id="button_div"> 
        <label for="">查询的用户id: </label>
        <input id="user_id" type="text" value="" placeholder='请输入查询的id'>
        <label for="">查询的类型: </label>
        <!-- <select name="type_api" id="find_type">
            <option value="4">全部</option>
            <option value="1">用户充值</option>
            <option value="2">离开金币变化</option>
            <option value="3">离开身上金币</option>
        </select> -->
        <label for=""> 开始时间: </label>
        <input type="date" value="" min="20200101" id="start_time"/>
        <label for=""> 结束时间: </label>
        <input type="date" value="" min="20200101" id="end_time"/>
        <input id='chaxun' type="button" value="查询" onclick="click_chaxun()">
    </div>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main_1"></div>
    <div id="main_2"></div>
    <div id="main_3"></div>
</body>
<script type="text/javascript">

    $(document).ready(function () {
            var time = new Date();
            var day = ("0" + time.getDate()).slice(-2);
            var month = ("0" + (time.getMonth() + 1)).slice(-2);
            var today = time.getFullYear() + "-" + (month) + "-" + (day);
            
            var date2 = new Date(today);
            date2.setDate(date2.getDate() - 7 );
            var date_day = ("0" + date2.getDate()).slice(-2);
            var date_month = ("0" + (date2.getMonth() + 1)).slice(-2);
            var time2 = date2.getFullYear() + "-" + (date_month) + "-" + (date_day);
            $('#end_time').val(today);
            $("#start_time").val(time2);
        })


    //接口数据
    function click_chaxun(){
        $('#chaxun').css({'background-color':'black'});
        var userid = $("#user_id").val();
        // var find_type = $("#find_type").val();
        var start_time = $("#start_time").val();
        var end_time = $("#end_time").val();
        if(!userid){
            alert('请填写用户id');
        }
        // else if(!find_type){
        //     alert('请选择需要查询的类型');
        // }
        else if(!start_time){
            alert('请选择需要查询的开始时间');
        }else if(!end_time){
            alert('请选择需要查询的结束时间');
        };
        chuli_api(userid, start_time, end_time);
    }


    
    function get_data(url, data_dict){
        var data = [];
        $.ajax({
            type: "GET",
            url: url,
            dataType: 'json',
            async:false, 
            data: data_dict,
            success: function (e) {
                // console.log(e);
                if(e.length>0){
                    data = e
                };
                
            }
        });
        return data;
    }



    function chuli_api(userid, start_time, end_time){
        var gamerounds_url = 'http://****/indiagame/qryusergamerounds_admin_json.php';
        var payorder_url = 'http://******/indiagame/qryuserpayorder_admin_json.php';
        var payout_url = 'http://*****/indiagame/qryuserpayout_admin.php';
        var gameround_data_dict = {
                'userid': userid,
                'startTime': start_time,
                'endTime': end_time,
                'startid': 1,
                'endid':10000
            };
        var gamerounds_data = get_data(url=gamerounds_url, data_dict=gameround_data_dict);
        var two_data_dict = {
                'userid': userid,
                'begintime': start_time,
                'endtime': end_time,
                'startid': 1,
                'endid':10000
            };
        var payorder_data = get_data(url=payorder_url, data_dict=two_data_dict);
        // var payorder_data = [{"UserID":6635751,"PayChannel":7,"payfee":"200.0000","score":202000,"finishTime":"2021-06-14 19:56:14","TradeNO":"6635751_0_202105261132466019","Status":1,"Gold":"12700","source":"rummysunday_gp","mobile":"9725415732","username":"Sanjay","email":"Sanjay@gmail.com"},{"UserID":6635751,"PayChannel":7,"payfee":"200.0000","score":202000,"finishTime":"2021-06-14 19:00:14","TradeNO":"6635751_0_202105261132466019","Status":1,"Gold":"12700","source":"rummysunday_gp","mobile":"9725415732","username":"Sanjay","email":"Sanjay@gmail.com"}];
        var payout_data = get_data(url=payout_url, data_dict=two_data_dict);
        // var payout_data = [{"rid":31394,"userid":6237228,"cash":100,"status":2,"statusStr":"success","checkUser":"","username":null,"UPIID":null,"PhnoeNumber":null,"BankAccount":null,"IFSCCode":null,"rdate":"2021-06-14 19:28:54.977","updatetime":"2021-06-14 21:28:57.120"},{"rid":31393,"userid":6237228,"cash":100,"status":2,"statusStr":"success","checkUser":"","username":null,"UPIID":null,"PhnoeNumber":null,"BankAccount":null,"IFSCCode":null,"rdate":"2021-06-14 21:28:39.570","updatetime":"2021-06-14 21:28:41.600"},{"rid":31387,"userid":6237228,"cash":100,"status":2,"statusStr":"success","checkUser":"","username":null,"UPIID":null,"PhnoeNumber":null,"BankAccount":null,"IFSCCode":null,"rdate":"2021-06-14 21:06:26.430","updatetime":"2021-06-14 21:06:28.723"}];
        parser_json(gamerounds_data, payorder_data, payout_data);
    }

    function jiequ_str(time_str){
        if(time_str.length>19){
            time_str = time_str.substring(0, 19);
        };
        return time_str;
    }


    function parser_json(gamerounds_data, payorder_data, payout_data){
        var title_text = '用户金币曲线图';
        var linshi_list_1 = [];
        var linshi_list_2 = [];
        var linshi_list_3 = [];
        var linshi_list_4 = [];
        var max_num = 200;


        for(var item in gamerounds_data){
            var sub_list = Array();
            if(gamerounds_data[item]['score_body'] == null){
                var sub_list = [jiequ_str(gamerounds_data[item]['rdate']), 0];
            }else{
                var sub_list = [jiequ_str(gamerounds_data[item]['rdate']), gamerounds_data[item]['score_body']];
                if(parseInt(gamerounds_data[item]['score_body']) > max_num ){
                    max_num = parseInt(gamerounds_data[item]['score_body']);
                };
            };
            // if(item%5==0){
            //     var sub_dict = {'name':'游戏记录', 'yAxis':gamerounds_data[item]['score_body'], 'xAxis':jiequ_str(gamerounds_data[item]['rdate']), value:'嗨点'};
            //     linshi_list_4.push(sub_dict);
            // };
            if(gamerounds_data[item]['happy'] == 1){
                var sub_dict = {'name':'游戏记录', 'yAxis':gamerounds_data[item]['score_body'], 'xAxis':jiequ_str(gamerounds_data[item]['rdate']), value:'嗨点'};
                linshi_list_4.push(sub_dict);
            };
            linshi_list_3.push(sub_list);
            
        };
        linshi_list_3.sort();
        linshi_list_4.sort();
        for(var item in payorder_data){
            var sub_list = Array();
            var sub_list = [jiequ_str(payorder_data[item]['finishTime']), max_num];
            linshi_list_1.push(sub_list);
        };
        linshi_list_1.sort();

        for(var item in payout_data){
            var sub_list = Array();
            var sub_list = [jiequ_str(payout_data[item]['rdate']), max_num];
            linshi_list_2.push(sub_list);
        };
        linshi_list_2.sort();

        var div_id = 'main_1';
        zexian(title_text, div_id, linshi_list_1, linshi_list_2, linshi_list_3, linshi_list_4);
    }


    function zexian(title_text, div_id, data_y1, data_y2, data_y3, line_biaoji_data){
        //一条x轴,多个y值,具体意思请看https://blog.csdn.net/qq_43033251/article/details/110163387
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById(div_id));
        // 指定图表的配置项和数据
        var option = {
            title: {
                text: title_text,
                x: 'center'
            },
            tooltip: {
                trigger: 'axis'
            },
            grid:{
                left:'5%',
                bottom: '15%'
            },
            legend: {
                orient: 'vertical',     //垂直放置,水平放置默认
                left: 200,      //存放位置
                data:['充值', '提现', '游戏记录']
            },
            xAxis: {
                // data: data_x,
                axisLabel:{
                    interval:0,//0:全部显示,1:间隔为1显示对应类目,2:依次类推,(简单试一下就明白了,这样说是不是有点抽象)
                    rotate:60,//倾斜显示,-:顺时针旋转,+或不写:逆时针旋转
                },
                type: 'time',   //x轴的时间类型,如果是时间,最好加上
                // boundaryGap: false,
            },
            yAxis: {},
            //处理x轴数据,可以伸缩
            dataZoom: [{                 // 内置于坐标系中,使用户可以在坐标系上通过鼠标拖拽、鼠标滚轮、手指滑动(触屏上)来缩放或漫游坐标系 
                type: 'inside',
                start: 0,
                end: 10
            }, {
                start: 0,
                end: 10,                  // handleIcon 手柄的 icon 形状,支持路径字符串
                handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
                handleSize: '80%',        //  控制手柄的尺寸,可以是像素大小,也可以是相对于 dataZoom 组件宽度的百分比,默认跟 dataZoom 宽度相同。
                handleStyle: {
                    color: 'pink',
                    shadowBlur: 3,      // shadowBlur图片阴影模糊值,shadowColor阴影的颜色
                    shadowColor: 'red',
                    shadowOffsetX: 2,
                    shadowOffsetY: 2
                }
            }],
            series:[
                {
                    name: '充值',
                    type: 'bar',
                    barWidth:1,
                    // type: 'line',
                    data: data_y1,
                    // itemStyle : { normal: {label : {show: true}}},
                },
                {
                    name: '提现',
                    type: 'bar',
                    barWidth:1,
                    // type: 'line',
                    data: data_y2,
                    // itemStyle : { normal: {label : {show: true}}},
                },
                {
                    name: '游戏记录',
                    // type: 'bar',
                    type: 'line',
                    data: data_y3,
                    //加标记内容:line_biaoji_data = [{'name':'游戏记录', 'yAxis':gamerounds_data[item]['score_body'], 'xAxis':jiequ_str(gamerounds_data[item]['rdate']), value:'嗨点'}];
                    markPoint: {
                        data: line_biaoji_data
                    },
                    // itemStyle : { normal: {label : {show: true}}},
                }
            ],
            
        };

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
        $('#chaxun').css({'background-color':'green'});
    }


</script>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值