Echarts小感

使用過Echarts之後,感覺Echarts算是個比較好用,API詳細的插件,畢竟百度,也遇到幾個問題,有需要注意的地方。

第一個是折線圖和柱狀圖的區別,其中比較重要的除了bar和line之外,還有一點:

柱狀圖:
type : 'category',
data : [ '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月',
'十月', '十一月', '十二月' ]
折線圖:
type : 'category',
boundaryGap : false,
 data : ['週一','週二','週三','週四','週五','週六','週日']
關於x軸點線的問題

boundaryGap這個屬性,其實決定了,折線圖和柱狀圖的不同,柱狀圖的特點是在兩個端點之間建圖,而折線圖是在端點處建圖。


其二:

關於Echarts的綁定事件:

 

// 路徑配置
     require.config({
           paths : {
                echarts : 'http://echarts.baidu.com/build/dist'
           }
     });
     //金額圖表 使用
     require([ 'echarts', 'echarts/chart/bar'// 使用柱狀圖就加載bar模塊,按需加載
     ], DrawEChart2);
     //顯示設置
     var option2 = {
           title : {
                text : '交易金額統計(單位:元)' ,
                subtext : ''
           },
           tooltip : {
                trigger : 'axis'
           },
           toolbox : {
                show : true,
                feature : {
                     saveAsImage : {
                           show : true
                     }
                }
           },
           legend : {
                data : [ '發包金額', '支付金額' ]
           },
           calculable : true,
           xAxis : [ {
                type : 'category',
                data : [ '一月', '二月', '三月', '四月', '五月', '六月', '七月' , '八月' , '九月' ,
                            '十月', '十一月', '十二月' ]
           } ],
           yAxis : [ {
                type : 'value'
           } ],
           series : [ {
                name : '發包金額',
                type : 'bar',
                data : [ 0 ]
           }, {
                name : '支付金額',
                type : 'bar',
                data : [ 0 ]
           } ]
     };
     function DrawEChart2(ec, theme) {
            // 基於準備好的dom,初始化echarts圖表
            var myChart = ec.init(document.getElementById('main2' ), 'macarons' );
            //回調函數
           ajaxPostForm( "/uc.do?m=ajaxStatisDetails", {
                jude : $( "#jude").val()
           }, function(json) {
                 var options = myChart.getOption();
                 if (json.msg == "C") {
                     options.series[0].data = json.result.totalPrice.split("," );
                      //options.series[1].data =json.result.servicePrice.split(",");
                     options.series[1].data = json.result.compPrice.split("," );

                } else {
                     options.series[0].data = json.result.biddedMoneySum.split("," );
                      //options.series[1].data =json.result.payApplyMoneySum.split(",");
                     options.series[1].data = json.result.audPayMoneySum.split("," );
                }

                myChart.hideLoading();
                myChart.setOption(options);
           });
            var ecConfig = require( 'echarts/config');
            function eConsole(param) {
                $( "#role1").val($( "#jude").val());
                 if ($( "#jude").val() == 'C') {

                }
                 //              alert(option.series[param.seriesIndex].name);
                 //              alert(param.name);
                 //              alert(param.value);
                 else {
                      var month = 0;
                      switch (param.name) {
                      case "一月":
                           month = 0;
                            break;
                      case "二月":
                           month = 1;
                            break;
                      case "三月":
                           month = 2;
                            break;
                      case "四月":
                           month = 3;
                            break;
                      case "五月":
                           month = 4;
                            break;
                      case "六月":
                           month = 5;
                            break;
                      case "七月":
                           month = 6;
                            break;
                      case "八月":
                           month = 7;
                            break;
                      case "九月":
                           month = 8;
                            break;
                      case "十月":
                           month = 9;
                            break;
                      case "十一月":
                           month = 10;
                            break;
                      case "十二月":
                           month = 11;
                            break;
                      default:
                            break;
                     }
                      var url = null;
                      switch (option2.series[param.seriesIndex].name) {
                      case "發包金額":
                           url = "/uc.do?m=uc&d=toSelectedProjectDetailed"
                                     + $( "#jude").val();
                            break;
                      case "支付金額":
                           url = "/uc.do?m=uc&d=toSelectedProjectAudBalanceDetailed"
                                     + $( "#jude").val();
                            break;
                      case "接包金額":
                           url = "/uc.do?m=uc&d=toSelectedProjectDetailed"
                                     + $( "#jude").val();
                            break;
                      case "接包收入":
                           url = "/uc.do?m=uc&d=toSelectedProjectAudBalanceDetailed"
                                     + $( "#jude").val();
                            break;
                      default:
                            break;
                     }
                     openSelectedProjectDetailed( '0', 'A', url, month);
                }
           }
           myChart.on(ecConfig.EVENT.CLICK, eConsole);
            //顯示設置

            // 爲echarts對象加載數據
           myChart.setOption(option2);
           myChart.hideLoading();
     }

     function submitChart(jude, obj) {
           $( "#ul_data_all li").each(function () {
                $( this).removeClass( "selected");
           });
           $(obj).parent().attr( "class", "selected");
           $( "#jude").val(jude);
           $( "#role1").val(jude);
            if (jude == "A") {
                 //修改金額統計名稱
                option2.series[0].name = "發包金額";
                option2.series[1].name = "支付金額";
                option2.legend.data[0] = "發包金額";
                option2.legend.data[1] = "支付金額";
           } else if (jude == "B") {
                 //修改發包統計名稱
                 //修改金額統計名稱
                option2.series[0].name = "接包金額";
                option2.series[1].name = "接包收入";
                option2.legend.data[0] = "接包金額";
                option2.legend.data[1] = "接包收入";
           } else if (jude == "C") {
                 //修改發包統計名稱
                 //修改金額統計名稱
                 //option2.series[0].name="總成交金額";
                option2.series[0].name = "服務成交金額" ;
                option2.series[1].name = "構件成交金額" ;
                 //option2.legend.data[0]="總成交金額";
                option2.legend.data[0] = "服務成交金額" ;
                option2.legend.data[1] = "構件成交金額" ;
           }
            // 使用
           require([ 'echarts', 'echarts/chart/bar' // 使用柱狀圖就加載bar模塊,按需加載
           ], DrawEChart2);
     }

通過js的function來綁定事件,動態地插入數據和改變名稱。

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