县级12345前端

callTime.js 5.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. var token = $.cookie("token");
  2. var tabtu,
  3. legend = []; //图例
  4. $(document).ready(function() {
  5. laydate.render({
  6. elem: '#startTime',
  7. range: '~',
  8. theme: '#00a1cb',
  9. });
  10. //tab切换
  11. $('.th-tab li').click(function() {
  12. $(this).addClass('active')
  13. .siblings().removeClass('active');
  14. var index = $(this).index();
  15. $('.th-content >div').eq(index).show()
  16. .siblings().hide();
  17. })
  18. //搜索事件
  19. $(".sear").click(function() {
  20. $('.thTable tbody').html('');
  21. Ajax();
  22. });
  23. //导出功能
  24. $('.export').click(function() {
  25. dcexcel(this);
  26. })
  27. //图形
  28. tabtu = echarts.init(document.getElementById('tabtu'));
  29. tabtu.setOption({
  30. tooltip: {
  31. trigger: 'axis',
  32. },
  33. legend: {
  34. data: legend,
  35. bottom: 0
  36. },
  37. xAxis: [{
  38. type: 'category',
  39. data: [],
  40. axisPointer: {
  41. type: ''
  42. }
  43. }],
  44. yAxis: [{
  45. type: 'value',
  46. name: '通话次数(通)',
  47. nameLocation: 'middle',
  48. nameGap: 35,
  49. // interval: 50,
  50. axisLabel: {
  51. formatter: '{value} '
  52. }
  53. },
  54. {
  55. type: 'value',
  56. name: '通话时长(s)',
  57. nameLocation: 'middle',
  58. nameGap: 35,
  59. // interval: 100,
  60. axisLabel: {
  61. formatter: '{value} '
  62. }
  63. }
  64. ],
  65. series: [{
  66. type: 'bar',
  67. name: '呼入次数',
  68. data: []
  69. }, {
  70. type: 'line',
  71. name: '呼入时长',
  72. yAxisIndex: 1,
  73. data: []
  74. },
  75. {
  76. type: 'bar',
  77. name: '呼出次数',
  78. data: []
  79. }, {
  80. type: 'line',
  81. name: '呼出时长',
  82. yAxisIndex: 1,
  83. data: []
  84. }, {
  85. type: 'bar',
  86. name: '呼出未接通次数',
  87. data: []
  88. }, {
  89. type: 'line',
  90. name: '振铃时长',
  91. yAxisIndex: 1,
  92. data: []
  93. },
  94. {
  95. type: 'line',
  96. name: '通话总时长',
  97. yAxisIndex: 1,
  98. data: []
  99. },
  100. {
  101. type: 'line',
  102. name: '平均通话时长',
  103. yAxisIndex: 1,
  104. data: []
  105. }
  106. ],
  107. color: ['#1ab394', '#fbbe5b', '#88ebc4', '#fa957f', '#cddc39', '#ff5722', '#e91e63', '#673ab7']
  108. });
  109. Ajax();
  110. })
  111. //表头数据
  112. //var con;
  113. $.ajax({
  114. type: "get",
  115. url: huayi.config.callcenter_url + "TalkTime/GetColumnList",
  116. async: false,
  117. dataType: 'json',
  118. data: {
  119. token: token
  120. },
  121. success: function(res) {
  122. var con = res.data;
  123. $('#thead thead tr').html('');;
  124. for(var i = 0; i < con.length; i++) {
  125. $('<th>' + con[i]+ '</th>').appendTo('#thead thead tr');
  126. }
  127. legend=con;
  128. }
  129. });
  130. //legend = con;
  131. //导出
  132. function dcexcel(obj) {
  133. var url = huayi.config.callcenter_url + "TalkTime/ExptList?token=" + $.cookie("token");
  134. url += "&stime=" + ($('#startTime').val() && $('#startTime').val().split('~')[0]) + "&endtime=" + ($('#startTime').val() && $('#startTime').val().split('~')[1]);
  135. obj.href = url;
  136. }
  137. //表格数据
  138. function Ajax() {
  139. var zx_name = [],
  140. huru = [],
  141. huruTime = [],
  142. huchu = [],
  143. huchuTime = [],
  144. hcNo = [],
  145. zlTime = [],
  146. allCall = [],
  147. averange = [];
  148. $.ajax({
  149. type: 'get',
  150. url: huayi.config.callcenter_url + 'TalkTime/GetDataList',
  151. async: false,
  152. dataType: 'json',
  153. data: {
  154. token: token,
  155. stime: $('#startTime').val() && $('#startTime').val().split('~')[0],
  156. endtime: $('#startTime').val() && $('#startTime').val().split('~')[1]
  157. },
  158. success: function(data) {
  159. var tbodyCon = data.data;
  160. console.log(tbodyCon);
  161. for(var j = 0; j < tbodyCon.length; j++) {
  162. $('<tr><td>' + tbodyCon[j].坐席名称+ '</td><td>' + tbodyCon[j].呼入次数+ '</td><td>' + studyTime(tbodyCon[j].呼入时长)+ '</td><td>' + tbodyCon[j].呼出次数+ '</td><td>' + studyTime(tbodyCon[j].呼出时长)+ '</td><td>' + tbodyCon[j].呼出未接通次数+ '</td><td>' + studyTime(tbodyCon[j].振铃时长) + '</td><td>' + studyTime(tbodyCon[j].通话总时长)+ '</td><td>' + studyTime(tbodyCon[j].平均通话总时长)+ '</td></tr>').appendTo('.thTable tbody')
  163. zx_name.push(tbodyCon[j].坐席名称);
  164. huru.push(tbodyCon[j].呼入次数)
  165. huruTime.push(((tbodyCon[j].呼入时长/60).toFixed(2))*1)
  166. huchu.push(tbodyCon[j].呼出次数)
  167. huchuTime.push(((tbodyCon[j].呼出时长/60).toFixed(2))*1)
  168. hcNo.push(tbodyCon[j].呼出未接通次数)
  169. zlTime.push(((tbodyCon[j].振铃时长/60).toFixed(2))*1)
  170. allCall.push(((tbodyCon[j].通话总时长/60).toFixed(2))*1)
  171. averange.push(((tbodyCon[j].平均通话总时长/60).toFixed(2))*1)
  172. }
  173. tabtu.setOption({
  174. xAxis: {
  175. data: zx_name
  176. },
  177. series: [{
  178. data: huru
  179. }, {
  180. data: huruTime
  181. }, {
  182. data: huchu
  183. }, {
  184. data: huchuTime
  185. }, {
  186. data: hcNo
  187. }, {
  188. data: zlTime
  189. }, {
  190. data: allCall
  191. }, {
  192. data: averange
  193. }]
  194. })
  195. }
  196. });
  197. }
  198. var hour = 0,
  199. minute = 0,
  200. second = 0;
  201. function studyTime(t) {
  202. console.log(t)
  203. hour = Math.floor(t / 60 / 60);
  204. minute = Math.floor(t / 60 % 60);
  205. second = Math.floor(t % 60);
  206. if(hour < 10) {
  207. hour = "0" + hour;
  208. }
  209. if(minute < 10) {
  210. minute = "0" + minute;
  211. }
  212. if(second < 10) {
  213. second = "0" + second;
  214. }
  215. return hour +":"+ minute +":"+ second;
  216. }