diagram.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. $(function(){
  2. var flow=[];
  3. var tipLabel=new Array("PV","UV","Impression","Click","Income");
  4. var pv=tipLabel[0];
  5. $.ajax({
  6. type : 'post',
  7. url : '/ssp_operator/main/dashboard/list',
  8. async : false,
  9. cache : false,
  10. dataType : 'json',
  11. success : function(data){
  12. var pvArray = [];
  13. var uvArray = [];
  14. var impressionArray = [];
  15. var clickArray = [];
  16. var incomeArray = [];
  17. $.each(data,function(n,value) {
  18. pvArray[n] = value.pv;
  19. uvArray[n] = value.uv;
  20. impressionArray[n] = value.impression;
  21. clickArray[n] = value.click;
  22. incomeArray[n] = value.income;
  23. });
  24. flow[0] = pvArray;
  25. flow[1] = uvArray;
  26. flow[2] = impressionArray;
  27. flow[3] = clickArray;
  28. flow[4] = incomeArray;
  29. },
  30. error : function (XMLHttpRequest, textStatus, errorThrown) {
  31. // 通常 textStatus 和 errorThrown 之中
  32. // 只有一个会包含信息
  33. alert('error');
  34. this; // 调用本次AJAX请求时传递的options参数
  35. }
  36. });
  37. var data = [
  38. {
  39. name : 'PV',
  40. value:flow[0],
  41. color:'#68ba31',
  42. line_width:2
  43. }
  44. ];
  45. drawDiagram(data,pv);
  46. $('#data_number td').click(function(){
  47. $('#data_number td').css({"background-color":"#ffffff","color":"black"});
  48. $(this).css({"background-color":"#344c67","color":"#ffffff"});
  49. var n = $(this).index();
  50. pv=tipLabel[n];
  51. var data = [
  52. {
  53. name : 'UV',
  54. value:flow[n],
  55. color:'#68ba31',
  56. line_width:2
  57. }
  58. ];
  59. $('#baseTitle').text('近7天全部广告位' + pv);
  60. drawDiagram(data,pv);
  61. });
  62. });
  63. function drawDiagram(data,pv){
  64. //设置日期,当前日期的前七天
  65. var myDate = new Date(); //获取今天日期
  66. var myYear = myDate.getFullYear();//获取年份
  67. myDate.setDate(myDate.getDate() - 7);
  68. var labels = [];
  69. var dateTemp;
  70. var flag = 1;
  71. for (var i = 0; i < 7; i++) {
  72. dateTemp = myDate.getFullYear() + "/" + (myDate.getMonth() + 1) + "/" + myDate.getDate();
  73. labels.push(dateTemp);
  74. myDate.setDate(myDate.getDate() + flag);
  75. }
  76. var verticalLine = 6;//图表垂直线的数量
  77. var chart = new iChart.LineBasic2D({
  78. background_color:'#ffffff',//组件中背景颜色(填充色)的值。(默认为'FEFEFE')
  79. border:{ //Object, 此处设置了开启边框配置项。
  80. enable:false,//无边框
  81. width:1,
  82. color:'red'
  83. },
  84. color :'#adadad',//String 组件中字体颜色的值。(默认为'black')
  85. data : data,//Array 必需属性,图表的数据源。
  86. width : 1289,//Number 图表的宽度,单位px。
  87. height : 330,//图表的高度,单位px。
  88. //id : 'canvas'// String 组件的唯一id。(默认自动分配一个字符串).
  89. //padding : '0 0 10 10',// Number 组件中内边框的值,规则与css中的一致,单位像素。(默认为10)
  90. render : 'diagram',//String 图表渲染的HTML DOM的id。(默认为'').
  91. //title:{ //Object/String 标题的配置项,若给出字符串,则用默认配置进行渲染标题,若给出对象,则配置为 iChart.Text对象。如果text属性为空则不显示标题。
  92. //text:'近7天全部广告位PV',
  93. //offsety:100
  94. //},
  95. //z_index Number 设置绘图区的组件的显示层级为999,使其在最上层显示。
  96. //提示框的配置项.详情请参考 iChart.Tip Note:设置为false表示禁用提示框。(默认为false)
  97. tip:{ //Object 提示框的配置项.详情请参考 iChart.Tip Note:设置为false表示禁用提示框。(默认为false)
  98. enable:true,
  99. border:{
  100. enable:true,
  101. radius : 5,
  102. width:2,
  103. color:'#344c68'
  104. },
  105. style:"background-color:#344c68;color:#ffffff;text-align:center;",//String 指定此dom的css值。
  106. //text String 提示框中的文本值。(默认为'')
  107. listeners:{
  108. //tip:提示框对象、name:数据名称、value:数据值、text:当前文本、i:数据点的索引
  109. parseText:function(tip,name,value,text,i){
  110. return "<span >"+labels[i]+""+
  111. "</span><br/><span>"+ pv +":"+value+"</span>";
  112. }
  113. }
  114. },
  115. //配置十字线
  116. crosshair:{ //Object 十字线的配置(默认的enable为false).请参考iChart.CrossHair
  117. //说明:
  118. //1.此配置有一个额外的属性enable表示是否开去十字线(默认为false)
  119. //2.此配置会自动覆盖coordinate中的crosshair配置。配置十字线应该用此配置。
  120. enable:true,
  121. line_color:'#0072c6',
  122. //border Object 此组件中边框的属性样式。
  123. //此属性是一个对象,可用的属性如下:
  124. //@Option enable {boolean} 是否边框可用。(默认为false)
  125. //@Option color {String} 边框的颜色。(默认为'#BCBCBC')
  126. //@Option width {Number/String} 边框的宽度,单位px。如果为字符串,其宽度值解析方式与css的padding一致。且radius将会设置为0。(默认为1)
  127. //@Option radius {Number/String} 边框的圆角值.如果给出字符串,解析方式与css的padding一致。(默认为0)
  128. //line_width Number 十字线的宽度。单位px。(默认为1)
  129. //style String 组件的自定义css。(默认为 '') 类似:'padding:10px;font-size:12px'
  130. },
  131. sub_option : { //图中折线段的配置项。
  132. label:false,
  133. hollow:true,
  134. hollow_color:'#ffffff',
  135. hollow_inside:true,
  136. intersection:true,
  137. sign:'round',
  138. point_size:12,
  139. },
  140. coordinate:{ //Object 坐标系的配置项。请参考iChart.Coordinate2D
  141. border:false,
  142. width:"95%",
  143. height:"90%",
  144. grid_color:'#adadad',//String 网格的颜色值。(默认为'#dbe1e1')
  145. //grid_line_width Number 网格的宽度值。(默认为1)
  146. axis:{ //坐标轴轴线的配置项。可配置属性值:@Option enable {Boolean} 是否启用轴配置(默认为 true)
  147. color:'#adadad', //@Option color {String} 轴的颜色.(默认为 '#666666')
  148. width:[0,0,1,1] //@Option width {Number/Array} 轴的宽度, 如果给出数组,则为四个边的宽度,例如:[1,0,0,1](上-右-下-左).(默认为1)
  149. },
  150. grids:{ //配置自定义网格线。提供水平和垂直网格的配置。水平方向由horizontal指定,垂直方向由vertical指定。
  151. vertical:{
  152. way:'share_alike',//网格生成方式
  153. value:verticalLine,//指定网格的数量(线条数-1)。
  154. }
  155. },
  156. scale:[{
  157. position:'left',
  158. textAlign:'center',
  159. //end_scale:100,//Number 结束刻度值。这个值若没有给定,则用max_scale作为结束的刻度值。(默认为undefined)
  160. //scale_space:20,//刻度值的间距值,要小于(最大值-最小值)。(默认为undefined)
  161. scale_enable:false,
  162. label : {color:'#344c67',fontsize:11},//标签的配置项。
  163. },{
  164. position:'bottom',
  165. textAlign:'center',
  166. scale_enable:false,//是否显示刻度线。(默认为true)
  167. label : {color:'#344c67',fontsize:11},
  168. labels:labels,//Array 自定义的标签文本。(默认为空数组)
  169. }]
  170. }
  171. })
  172. //利用自定义组件构造左侧说明文本
  173. /*chart.plugin(new iChart.Custom({
  174. drawFn:function(){
  175. //计算位置
  176. var coo = chart.getCoordinate(),
  177. x = coo.get('originx'),
  178. y = coo.get('originy'),
  179. w = coo.width,
  180. h = coo.height;
  181. //在左上侧的位置,渲染一个单位的文字
  182. chart.target.textAlign('start')
  183. .textBaseline('top')
  184. .textFont('#adadad')
  185. .fillText(myYear,x-12,y+h+20,false,'#9d987a')
  186. .textBaseline('top')
  187. .fillText(myYear,x+w-12,y+h+20,false,'#9d987a');
  188. }
  189. }));*/
  190. //开始画图
  191. chart.draw();
  192. }