Nav apraksta

callDataStatistics.js 5.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. /**
  2. * 呼叫数据图形分析
  3. * */
  4. var token = $.cookie("token");
  5. var tabIndex = 0;
  6. var endyear = helper.DateFormat.getNowYear(); //初始化当前年份
  7. var beginyear = endyear - 1;
  8. var hjCompaer; //图形
  9. var legendCon; //图形legend
  10. $(document).ready(function() {
  11. $('#chooseTime').val(beginyear + ' ~ ' + endyear);
  12. layui.use('laydate', function() {
  13. var laydate = layui.laydate;
  14. laydate.render({
  15. elem: '#chooseTime',
  16. format: 'yyyy',
  17. range: "~",
  18. type: 'year',
  19. theme: '#1ab394',
  20. });
  21. });
  22. //tab切换
  23. $('.hu-tab li').click(function() {
  24. $(this).addClass('active')
  25. .siblings().removeClass('active');
  26. tabIndex = $(this).index();
  27. $('.hu-content >div').eq(tabIndex).show()
  28. .siblings().hide();
  29. loadDatas();
  30. });
  31. //初始化图形
  32. initChart();
  33. //加载数据
  34. loadDatas();
  35. //搜索事件
  36. $(".sear").click(function() {
  37. loadDatas();
  38. });
  39. //导出
  40. $('.export').click(function() {
  41. dcexcel(this);
  42. })
  43. });
  44. //初始化图形
  45. function initChart() {
  46. hjCompaer = echarts.init(document.getElementById('hjCompaer'));
  47. hjCompaer.clear();
  48. hjCompaer.showLoading();
  49. option = {
  50. tooltip: {
  51. trigger: 'axis',
  52. },
  53. legend: {
  54. data: legendCon,
  55. bottom: 0
  56. },
  57. xAxis: [{
  58. type: 'category',
  59. data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
  60. axisPointer: {
  61. type: ''
  62. }
  63. }],
  64. yAxis: [{
  65. type: 'value',
  66. name: '电话数量',
  67. nameLocation: 'end',
  68. nameGap: 40,
  69. axisLabel: {
  70. formatter: '{value} '
  71. }
  72. }, {
  73. type: 'value',
  74. name: '百分比',
  75. nameLocation: 'end',
  76. nameGap: 35,
  77. interval: 10,
  78. axisLabel: {
  79. formatter: '{value} '
  80. }
  81. }],
  82. series: [{
  83. name: '',
  84. type: 'bar',
  85. data: []
  86. }, {
  87. name: '',
  88. type: 'bar',
  89. data: []
  90. }, {
  91. name: '',
  92. type: 'line',
  93. yAxisIndex: 1,
  94. data: []
  95. }, {
  96. name: '',
  97. type: 'bar',
  98. data: []
  99. }, {
  100. name: '',
  101. type: 'bar',
  102. data: []
  103. }, {
  104. name: '',
  105. type: 'line',
  106. yAxisIndex: 1,
  107. data: []
  108. }],
  109. color: ['#1ab394', '#adcbfd', '#fbbe5b', '#f26ea2', '#88ebc4', '#fa957f']
  110. };
  111. hjCompaer.setOption(option);
  112. }
  113. //获取图形数据
  114. function getDataList() {
  115. $.ajax({
  116. type: 'get',
  117. url: huayi.config.callcenter_url + 'YearContrast/GetDataList',
  118. dataType: 'json',
  119. data: {
  120. token: token,
  121. beginyear: $('#chooseTime').val() && $('#chooseTime').val().split(' ~ ')[0],
  122. endyear: $('#chooseTime').val() && $('#chooseTime').val().split(' ~ ')[1],
  123. },
  124. async: true,
  125. success: function(res) {
  126. hjCompaer.hideLoading();
  127. var arr = [];
  128. var allData = [];
  129. var content = res.data;
  130. if(content && content.length > 0) {
  131. $.each(content, function(index, ele) {
  132. arr.push(content[index].key);
  133. allData.push(content[index].value) //console.log(allData);
  134. });
  135. option.legend.data = arr; //图例
  136. option.series[0].name = arr[0]; //图例
  137. //添加数据name
  138. for(var i = 0; i < arr.length; i++) {
  139. option.series[i].name = arr[i];
  140. }
  141. //添加图形数据
  142. for(var j = 0; j < allData.length; j++) {
  143. option.series[j].data = allData[j];
  144. }
  145. hjCompaer.setOption(option);
  146. }
  147. }
  148. });
  149. }
  150. //获取表格
  151. function getTableDataList() {
  152. var colsArr = [];
  153. var dataArr = [];
  154. var loadindex;
  155. $.ajax({
  156. type: 'get',
  157. url: huayi.config.callcenter_url + "YearContrast/GetDataList",
  158. async: true,
  159. dataType: 'json',
  160. beforeSend: function() {
  161. loadindex = layer.load()
  162. },
  163. data: {
  164. beginyear: $('#chooseTime').val() && $('#chooseTime').val().split(' ~ ')[0],
  165. endyear: $('#chooseTime').val() && $('#chooseTime').val().split(' ~ ')[1],
  166. token: token,
  167. },
  168. success: function(data) {
  169. if(data.state.toLowerCase() == "success") {
  170. var res = data.data;
  171. if(res && res.length > 0) {
  172. var newArr = [];
  173. newArr.push({
  174. field: '月份',
  175. title: '月份',
  176. align: 'center',
  177. fixed: true,
  178. width: 150,
  179. });
  180. for(var l = 0; l < res.length; l++) {
  181. newArr.push({
  182. field: res[l].key,
  183. title: res[l].key,
  184. align: 'center',
  185. });
  186. }
  187. colsArr.push(newArr);
  188. for(var i = 0; i < 12; i++) {
  189. var newobj = {};
  190. newobj.月份 = (i + 1) + '月份';
  191. $.each(res, function(j, k) {
  192. newobj[k.key] = k.value[i];
  193. });
  194. dataArr.push(newobj);
  195. }
  196. }
  197. layui.use('table', function() {
  198. var table = layui.table;
  199. //方法级渲染
  200. table.render({
  201. elem: '#t_callTotal',
  202. skin: 'row', //line (行边框风格) row (列边框风格) nob (无边框风格)
  203. even: true, //开启隔行背景
  204. size: 'md', //sm,lg,md尺寸的表格
  205. page: false, //是否显示分页
  206. limit: 20, //每页默认显示的数量
  207. cellMinWidth: 100,
  208. cols: colsArr,
  209. data: dataArr,
  210. //height: 'full-132'
  211. });
  212. });
  213. }
  214. },
  215. }).then(function() {
  216. layer.close(loadindex);
  217. });
  218. }
  219. //导出功能
  220. function dcexcel(obj) {
  221. if($('#chooseTime').val() && $('#chooseTime').val().split(' ~ ')[0] == $('#chooseTime').val().split(' ~ ')[1]){
  222. layer.msg('请选择不同的年份');
  223. return
  224. }
  225. var url = huayi.config.callcenter_url + "YearContrast/ExptList?token=" + token;
  226. url += "&beginyear=" + ($('#chooseTime').val() && $('#chooseTime').val().split(' ~ ')[0]) + "&endyear=" + ($('#chooseTime').val() && $('#chooseTime').val().split(' ~ ')[1]);
  227. obj.href = url;
  228. }
  229. function loadDatas() {
  230. if(tabIndex == 0) {
  231. getDataList(); //加载图形
  232. } else if(tabIndex == 1) {
  233. getTableDataList(); //加载表格
  234. }
  235. }