关于echarts、layer.js和jqGrid的知识点

使用echarts和layer.js直接去官方文档,能解决大部分问题。

但是有些问题,解释不够清楚,在这里记录一下。

1、echarts的使用

     第一点:关于echarts的labelline在数据为零的时候,不显示的问题。

  调整option里面的data的内容为:

 1 { 
 2 name : 'xxx',
 3 value:" + xxx + ",
 4 itemStyle:{
 5   normal:{
 6     label:{
 7      show: true
 8     },
 9     labelLine: {
10      show: true
11     }
12  }
13 }
14 }此处为C#代码,可用循环来生成echarts需要的json,在原来的json类型中,加入itemStyle项,这样就能够调整label和labelLine,写在其它地方不可以。    

 在取得echarts的option以后,用js,进行判断是否显示

1 var opt = option.series[0];//有可能有多个series,根据需要选择调整哪个series
2 function hidePieline(opt) {
3    jQuery.each(opt.data, function (i, item) {
4    if (item.value == 0) {
5    item.itemStyle.normal.labelLine.show = false;
6    item.itemStyle.normal.label.show = false;
7    }
8  });
9 }  

  第二点:关于echarts的柱图,点击X轴label的问题

    

1 xAxis: [{
2  type: 'category',
3  data: arg.data.categories,
4  triggerEvent: true  //在echart3中,设置triggerEvent为true即可。这样柱子跟x轴label都可以点
5 }],

 

1 在echarts2中把clickable设为true的属性
2 xAxis: [{
3  type: 'category',
4  data: datas[0].categories,
5  axisLabel:{
6  clickable : true }
7 }],       

 

1 var xxx = echarts.init(document.getElementById('xxx'));
2 xxx.on('click', function (params) {
3  if (params.name == undefined) {
4    在这里根据params来判断是点击的柱子还是x轴label,可以用params里面的其他参数判断,不一定用name
5 } else {
6 }
7 });            

2、layer.js的使用。参看官方文档即可。

3、jqGrid的使用

     在使用jqGrid的时候,为colModel直接传递DateTime类型时,会直接识别为/Date(1446704778000)/,可以通过正则表达式来转换

1 eval(rowObject.PlanFinishDate.replace(/\/Date\((\d+)\)\//gi, "new Date($1)")).format('yyyy-M-d');

 format方式是用JS自定义的方法

 1 Date.prototype.format = function (fmt) {
 2 var o = {
 3  "M+": this.getMonth() + 1, //月份 
 4  "d+": this.getDate(), //
 5  "h+": this.getHours(), //小时 
 6  "m+": this.getMinutes(), //
 7  "s+": this.getSeconds(), //
 8  "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
 9  "S": this.getMilliseconds() //毫秒 
10 };
11 fmt = fmt || "yyyy-MM-dd";
12 if (/(y+)/.test(fmt))
13    fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
14 for (var k in o)
15    if (new RegExp("(" + k + ")").test(fmt))
16        fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
17 return fmt;
18  }

 

posted @ 2017-10-26 17:16  BOBO~  阅读(2081)  评论(0编辑  收藏  举报