jfinal + eCharts 餅圖的數據交互 (數據庫中讀取數據)

    

    前一段時間碰到了一個小功能,利用echarts餅圖顯示數據庫中部門員工的值,我們使用的java框架是 jfinal 。

    話不多說先看效果圖吧。


                                       


引入JS文件:echarts.min.js    echarts.js       jquery.min.js

html代碼:<div id="echarts" style="width: 600px; height: 600px; margin: 0 auto;"></div>

js代碼:function loadOneColumn() {
        // 基於準備好的dom,初始化echarts實例
        var myeChart = echarts.init(document.getElementById('echarts'));


        // 指定圖表的配置項和數據
        myeChart.setOption({
        title: {
                text: '崗位員工人數展示',
                // subtext: '崗位員工人數',
                x:'center'
            },
            tooltip: {
            trigger: 'item',
           formatter: "{a} <br/>{b} : {c} ({d}%)"
            },
            legend: {
            orient: 'vertical',
           left: 'left',
                data: []
            },
            toolbox: {
                show: true,
                feature: {
                    mark: { show: true },
                    dataView: { show: true, readOnly: true }, // 數據視圖工具,可以展現當前圖表所用的數據
                    restore: { show: true }, // 配置項還原
                    saveAsImage: { show: true }  // 把圖表保存爲圖片
                }
            },
            series: [{
                name: '員工人數',
                type: 'pie',
                radius: '65%',
                center: ['50%', '50%'],
                itemStyle: {
               emphasis: {
                   shadowBlur: 10,
                   shadowOffsetX: 0,
                   shadowColor: 'rgba(0, 0, 0, 0.5)'
               }
           },
                data: []
            }]

        });

        myeChart.showLoading();    //數據加載完之前先顯示一段簡單的loading動畫
        var names = [];    //類別數組(用於存放餅圖的類別)
        var brower = [];
        
        $.ajax({
            type: 'post',
            url: '/admin/echarts/selectEcharts',//請求數據的地址
            dataType: "json",        //返回數據形式爲json
            success: function (result) {
                //請求成功時執行該函數內容,result即爲服務器返回的json對象  result.list,
                $.each(result, function (index,item) {
                    names.push(item.name);    //挨個取出類別並填入類別數組 
                    brower.push({
                        name: item.name,
                        value: item.value
                    });
                });
                myeChart.hideLoading();    //隱藏加載動畫
                myeChart.setOption({        //加載數據圖表
                    legend: {
                        data: names
                    },
                    series: [{
                        data: brower
                    }]
                });
            },
            error: function (errorMsg) {
                //請求失敗時執行該函數
                alert("圖表請求數據失敗!");
                myeChart.hideLoading();
            }
        });
      };
      

     loadOneColumn();

js部分代碼完畢。legend 裏面的data顯示的是有哪些部門,series 裏面的data接收的是從後臺傳過來的json數據。

data數據格式:[{name: "會計組", value: 1}, {name: "系統集成組", value: 1}, {name: "軟件開發組", value: 12}]

java 代碼很簡單,只需要返回數據庫的值就行了。   renderJson(Db.find(sql)); 


拓展:

       toolbox(工具欄)學習。內置有導出圖片、數據視圖、動態類型切換、數據區域縮放、重置五個工具。 最主要的是 feature。

        下面來分別介紹這五個工具


         saveAsImage:這個工具可以把圖表保存爲圖片。裏面有些常用的參數,type->保存圖片的格式,

                               name->保存文件的名字,backgroundColor->保存圖片的背景色,

                               show->是否顯示該工具,還有一些別的屬性可以自己再使用的時候查詢API文檔。

         restore:配置項還原。主要屬性是show->是否顯示該工具。

         dataView:數據視圖工具,可以展現當前圖表所用的數據,編輯後可以動態更新。show->是否顯示該工具,

                          readOnly->是否不可編輯,optionToContent->自定義 dataView 展現函數,

                          用以取代默認的 textarea 使用更豐富的數據編輯。可以返回 dom 對象或者 html 字符串,

                          backgroundColor->數據視圖浮層背景色。

        dataZoom:數據區域縮放。目前只支持直角座標系的縮放(這裏的含義就是柱狀體,折線圖可以縮放,

                            但是像餅狀圖就不能縮放)。show->是否顯示該工具。

       magicType:動態類型切換。show->是否顯示該工具,type->這是個數組,啓用的動態類型,

                         包括'line'(切換爲折線圖), 'bar'(切換爲柱狀圖), 'stack'(切換爲堆疊模式), 'tiled'(切換爲平鋪模式)。

      代碼部分:

            toolbox: { //可視化的工具箱
                show: true,
                feature: {
                    dataView: { //數據視圖
                        show: true
                    },
                    restore: { //重置
                        show: true
                    },
                    dataZoom: { //數據縮放視圖
                        show: true
                    },
                    saveAsImage: {//保存圖片
                        show: true
                    },
                    magicType: {//動態類型切換
                        type: ['bar', 'line']
                    }
                }

            }

第一次使用echarts,不好的地方請多指教。

源代碼地址: https://download.csdn.net/download/evloutionplus/10446331

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章