フロントエンド-「layuiのEcharts折れ線グラフアプリケーション

最近、データベースのデータを破線で表示したいのですが、とても使いやすいBaiduのechartsテーブルを使用しました。これが簡単なレコードです。

公式例:https//www.echartsjs.com/examples/zh/index.html

echarts.min.jsダウンロードリンク:https: //www.echartsjs.com/zh/builder.html

1.エフェクト画像。効果チャートは、1週間のデータ変化を示しています。x軸は時間、y軸は量です。y軸の数量単位は、バックグラウンドで返されたデータに応じて自動的に変更されます。

 

2.コード:

  1、html部分

<body>
<script type="text/html" id="echartsForm">
    <form lay-filter="echartsForm" class="layui-form" >
        <div id="speedChart" >
            <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
            <div id="speedChartMain" style="width: 700px; height: 450px;"></div>
        </div>
        <div class="layui-form-item text-right">
            <button class="layui-btn layui-btn-primary" style="margin-right: 4%;background-color:#6cb8a9" type="button" ew-event="closeDialog" >关闭</button>
        </div>
    </form>
</script>
</body>

  2.jsを紹介します。echartsはlayuiの組み込みコンポーネントではないため、継承して直接引用する必要はありません。

<script src="../assets/module/echarts.min.js"></script>

 3. echartsチャートをロードし、スクリプトにコードを記述します

        /*折线表的顶部类目名称集合*/
        var legendData=['提交量','入库量','成功量'];
        /*折线表数据,鼠标移动到折线表某个节点时也会展示*/
        var seriesData=[]; 

       /*获取num天之前的日期*/
        function getBeforeDateByNum(num) {
            var today = new Date();
            today.setTime(today.getTime()-(num*24*60*60*1000));
            var year= today.getFullYear();
            var month=today.getMonth();
            month = month + 1;
            var date =today.getDate();
            if (month < 10) month = "0" + month;
            if (date < 10) date = "0" + date;
           return  (year+"-" + month+"-" +date);
        }

        /*获取echarts图表x轴节点说明*/
        function getEchartsxAxis() {
            var data=[];
            for(var i=7;i>=1;i--){
                var beforDate=getBeforeDateByNum(i);
                beforDate=beforDate.replace(new Date().getFullYear()+"-","");
                data.push(beforDate)
            }
            return data;
        }

        /*echarts图表获取所有数据*/
        function getEchartAll(id) {
            var returnList = [];
            /*请求后台数据,这里封装了ajax*/
            admin.syncReq('xxx/xxx', {
                dataPipeId: id
            }, function (res) {
                seriesData = [
                    {
                        name: "提交量",
                        type: "line",
                        data: res.allCountList
                    },
                    {
                        name: "入库量",
                        type: "line",
                        data: res.incountList
                    }, {
                        name: "成功量",
                        type: "line",
                        data: res.succesedcountList
                    }
                ];
            }, 'POST', false);
            return returnList;
        }

        /*加载echarts图表*/
        function load() {
            // 基于准备好的dom,初始化echarts实例
            var myChart =echarts.init(document.getElementById("speedChartMain"));
            var option = {
                tooltip: {
                    trigger: 'axis'
                },
                legend: {
                    data:legendData
                },
                toolbox: {
                    feature: {
                        saveAsImage: {}
                    }
                },
                xAxis: {
                    type: 'category',
                    boundaryGap: false,
                    data: getEchartsxAxis()
                },
                yAxis: {
                    type: 'value'
                },
                series:seriesData
            };
            // 使用刚指定的配置项和数据显示图表。
            myChart.setOption(option)
        }

        /*操作栏点击事件显示折线图弹窗*/
        function showEcharts(data) {
            layer.open({
                type: 5,
                area: '55%',
                title:  '一周数据变化',
                offset: '5%',
                content: $('#echartsForm').html(),
                success: function (){
                    /*根据数据表id从后台获取数据*/
                    getEchartAll(data.id);
                    /*渲染表格*/
                    load();
                }
            });
        }

  

おすすめ

転載: blog.csdn.net/nienianzhi1744/article/details/105513272