Geen omschrijving

count.js 7.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. /**
  2. * Created by TT on 2018/2/1.
  3. */
  4. ;
  5. spa_define(function () {
  6. return $.use(["spa", "code", "form", "util", "dict"], function (spa, code, form, util, dict) {
  7. return {
  8. modal: function (data) {
  9. var root = spa.findInModal(".sys_answer_count");
  10. // var cr = code.parseCode(root.find(".dt-tpl"));
  11. var myChart = echarts.init(document.getElementById('type'));
  12. var tableData = {data: []},
  13. allData = [];
  14. var $data = {tn: "ans", id:data.id};
  15. root.find(".modal-ctrl .icon-times").on("click", function () {
  16. spa.closeModal();
  17. });
  18. var dayList = function () {
  19. var dayList = [];
  20. var now = new Date();
  21. var day1 = new Date();
  22. day1.setMonth(now.getMonth() - 1);
  23. day1.setDate(1);
  24. var day2 = new Date();
  25. day2.setDate(day2.getDate());
  26. // var s1 = day1.format("yyyy-MM-dd");
  27. // var s2 = day2.format("yyyy-MM-dd");
  28. // console.log(s1, s2);
  29. var days = (day2 - day1) / (24 * 60 * 60 * 1000);
  30. dayList[0] = {time: day1.format("yyyy-MM-dd")};
  31. for (var i = 1; i < days + 1; i++) {
  32. day1.setDate(day1.getDate() + 1);
  33. dayList[i] = {time: day1.format("yyyy-MM-dd")};
  34. }
  35. return dayList;
  36. };
  37. var load = function () {
  38. $.ajax({
  39. type: "GET",
  40. url: "http://www.ekexiu.com:8082/log/jsonp/qm",
  41. data:$data,
  42. dataType: "jsonp",
  43. success: function (data) {
  44. allData = dayList();
  45. allData.forEach(function (day) {
  46. var time = (JSON.stringify(day.time)).replace(/\-|^\"|\"$/g, "");
  47. day.pc = 0;
  48. day.app = 0;
  49. day.h5 = 0;
  50. day.wx = 0;
  51. data.data.forEach(function (log) {
  52. if (time == log.day) {
  53. if (log.source == 1) {
  54. day.pc = log.pv;
  55. }
  56. if (log.source == 2) {
  57. day.app = log.pv;
  58. }
  59. if (log.source == 3) {
  60. day.h5 = log.pv;
  61. }
  62. if (log.source == 4) {
  63. day.wx = log.pv;
  64. }
  65. }
  66. day.num = day.pc + day.app + day.h5 + day.wx;
  67. })
  68. });
  69. var colors = ["#660099", '#c23531', "#91C7AE",'#FFDE33','#003366'];
  70. var option = {
  71. color: colors,
  72. title: {
  73. text: '回答流量分析',
  74. subtext: '分渠道'
  75. },
  76. tooltip: {
  77. trigger: 'axis'
  78. },
  79. legend: {
  80. data: ['PC端', '移动端APP', '移动端H5','小程序','合计']
  81. },
  82. xAxis: {
  83. data: allData.map(function (item) {
  84. return item.time;
  85. }),
  86. boundaryGap: false
  87. },
  88. yAxis: {
  89. splitLine: {
  90. show: false
  91. },
  92. boundaryGap: false,
  93. type: "value",
  94. // interval: 1,
  95. min: 0
  96. },
  97. toolbox: {
  98. show: true,
  99. feature: {
  100. dataZoom: {
  101. yAxisIndex: 'none'
  102. },
  103. dataView: {readOnly: false},
  104. magicType: {type: ['line', 'bar']},
  105. restore: {},
  106. saveAsImage: {}
  107. }
  108. },
  109. dataZoom: [{
  110. startValue: allData[allData.length - 7].time
  111. }, {
  112. type: 'inside'
  113. }],
  114. visualMap: {
  115. top: 10,
  116. right: 10
  117. },
  118. series: [
  119. {
  120. name: 'PC端',
  121. type: 'line',
  122. data: allData.map(function (item) {
  123. return item.pc;
  124. })
  125. }, {
  126. name: '移动端APP',
  127. type: 'line',
  128. data: allData.map(function (item) {
  129. return item.app;
  130. })
  131. }, {
  132. name: '移动端H5',
  133. type: 'line',
  134. data: allData.map(function (item) {
  135. return item.h5;
  136. })
  137. },{
  138. name:'小程序',
  139. type:'line',
  140. data:allData.map(function (item) {
  141. return item.wx;
  142. })
  143. }, {
  144. name: '合计',
  145. type: 'line',
  146. label: {
  147. normal: {
  148. show: true,
  149. position: 'top'
  150. }
  151. },
  152. data: allData.map(function (item) {
  153. return item.num;
  154. })
  155. }
  156. ]
  157. };
  158. myChart.setOption(option);
  159. }
  160. });
  161. };
  162. // cr.listen(dict.doTransfer);
  163. load();
  164. }
  165. };
  166. });
  167. });