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来绑定事件,动态地插入数据和改变名称。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值