Нет описания

autoCallMonitor.js 8.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. /**
  2. * 自动外呼监控
  3. * */
  4. $(function() {
  5. var t_id = helper.request.queryString("t_id");
  6. //获取任务监控信息
  7. getTaskDetails(t_id);
  8. //获取参与任务的坐席
  9. getTaskSeats(t_id);
  10. //返回上一级
  11. $('.reback').click(function() {
  12. top.$("iframe:visible")[0].src = "outcryManage/callTaskManage.html";
  13. })
  14. //修改并发数
  15. $('#HY_edit').on('click', btn_edit);
  16. refreshMonitorDatas(huayi.config.monitorPlatformTime); //刷新 监控数据
  17. });
  18. /**
  19. * 获取任务监控信息
  20. * tid 任务id
  21. * */
  22. function getTaskDetails(tid) {
  23. $.getJSON(huayi.config.callcenter_url + "callcenterapi/api/autocallouttask/getmonitor", {
  24. id: tid, //是 string 任务id
  25. }, function(res) {
  26. if(res.state.toLowerCase() === "success") {
  27. $('#createtime').text(helper.DateFormat.timestampToTime(Date.parse(res.createtime))); //创建时间
  28. //$('#').text(res.);//坐席队列
  29. $('#totalnum').text(res.totalnum); //总号码数
  30. $('#call_total_times').text(res.hjzsc); //呼叫总时长(秒)
  31. $('#starttime').text(res.starttime); //任务开始日期
  32. $('#call_online').text(res.zxrs + '人'); //在线坐席
  33. $('#callnum').text(res.yhnum); //已呼个数
  34. $('#call_doned').text(res.ywc); //已完成
  35. $('#endtime').text(res.endtime); //任务结束日期
  36. $('#call_caliing').text(res.thrs + '人'); //通话人数
  37. $('#call_applys').text(res.zyds); //总应答数
  38. $('#call_apply_rate').text(res.ydl); //应答率
  39. $('#worktimes1').text(res.workstarttimes1 + ' ~ ' + res.workendtimes1); //工作时段一
  40. $('#call_frees').text(res.kxrs); //空闲人数
  41. $('#call_tranfer_seat').text(res.zzzxs); //总转坐席数
  42. $('#call_tranfer_seat_rate').text(res.zzxl); //转坐席率
  43. $('#worktimes2').text(res.workstarttimes2 + ' ~ ' + res.workendtimes2); //工作时段二
  44. $('#bfnum').text(res.bfnum); // 并发数
  45. $('#bfnum_input').val(res.bfnum); //并发数
  46. if(res.bftype) {
  47. $('#bftype').find('input[name="bftype_radio"][value="' + res.bftype + '"]').prop('checked', true); // 否 int 并发类型
  48. $('#hideBftype').val(res.bftype);
  49. }
  50. $('#call_now_calling').text(res.dqhhs); //当前会话数
  51. $('#call_now_recording').text(res.fys); //当前听录音数
  52. }
  53. });
  54. }
  55. /**
  56. * 获取参与任务的坐席
  57. * tid 任务id
  58. * */
  59. function getTaskSeats(tid) {
  60. $.ajax({
  61. type: "get",
  62. url: huayi.config.callcenter_url + "callcenterapi/api/autocallouttask/getfplist",
  63. async: true,
  64. dataType: 'json',
  65. data: {
  66. joinflag: 1, //传值1获取在参与的
  67. taskid: tid, // 是 string 任务id
  68. },
  69. success: function(data) {
  70. if(data.state.toLowerCase() === "success") {
  71. data = data.data;
  72. if(data && data.length > 0) {
  73. $('#seat_lists_body').html('');
  74. $.each(data, function(i, v) {
  75. $('#seat_lists_body').append('<div class="col-md-3 clearfix">' +
  76. '<div class="seat_item">' +
  77. '<ul class="seat_content clearfix">' +
  78. '<li><span>参与坐席:</span><span>' + v.usercode + '</span></li>' +
  79. '<li><span>分配者:</span><span>' + v.createusercode + '</span></li>' +
  80. '<li style="width:100%"><span>分配时间:</span><span>' + v.createtime + '</span></li>' +
  81. '</ul>' +
  82. '<div class="seat_btns">' +
  83. '<input type="button" onclick="cancleJoin(\'' + v.usercode + '\')" class="btn btn-primary btn-xs" value="取消参与" />' +
  84. '</div>' +
  85. '</div>' +
  86. '</div>');
  87. });
  88. } else {
  89. $('#seat_lists_body').html('<p class="text-center col-md-12">暂无坐席参与。。。</p>');
  90. }
  91. }
  92. }
  93. });
  94. }
  95. /**
  96. * 修改并发数
  97. *
  98. * */
  99. function btn_edit() {
  100. var t_id = helper.request.queryString("t_id");
  101. var loadIndex;
  102. if($.trim($('#bfnum_input').val()) === $('#bfnum').text()) {
  103. if($('#bftype').find('input[name="bftype_radio"]:checked').val() === $('#hideBftype').val()) {
  104. layer.confirm('您输入的并发数/进号速率与原来的值一样,请重新输入!', {
  105. icon: 7,
  106. btn: ['确定'] //按钮
  107. });
  108. return;
  109. }
  110. }
  111. if(!regexs.num.test($.trim($('#bfnum_input').val()))) {
  112. layer.confirm('并发数/进号速率(只能输入数字)!', {
  113. icon: 2,
  114. btn: ['确定'] //按钮
  115. });
  116. return;
  117. }
  118. $.ajax({
  119. type: "post",
  120. url: huayi.config.callcenter_url + "callcenterapi/api/autocall/setbfnum",
  121. dataType: 'json',
  122. async: true,
  123. beforeSend: function() { //触发ajax请求开始时执行
  124. loadIndex = layer.load();
  125. },
  126. data: {
  127. taskid: t_id, // 是 string 任务id
  128. bfnum: $('#bfnum_input').val(), //是 int 并发数
  129. },
  130. success: function(data) {
  131. layer.close(loadIndex);
  132. if(data.state.toLowerCase() === "success") {
  133. layer.msg("修改成功!");
  134. //获取任务监控信息
  135. getTaskDetails(t_id);
  136. }
  137. },
  138. error: function(textStatus) {
  139. layer.close(loadIndex);
  140. layer.confirm('网络繁忙,请稍后再试...', {
  141. icon: 7,
  142. closeBtn: 0,
  143. btn: ['确定'] //按钮
  144. });
  145. },
  146. complete: function(XMLHttpRequest, textStatus) {
  147. layer.close(loadIndex);
  148. if(textStatus == 'timeout') {
  149. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  150. xmlhttp.abort();
  151. layer.confirm('网络超时,请稍后再试...', {
  152. icon: 7,
  153. closeBtn: 0,
  154. btn: ['确定'] //按钮
  155. });    
  156. }
  157. },
  158. });
  159. }
  160. /**
  161. * 取消参与
  162. * agentid 坐席usercode
  163. * joinflag 参与标志(1为参与,0为不参与)
  164. */
  165. function cancleJoin(agentid) {
  166. var loadIndex;
  167. var t_id = helper.request.queryString("t_id");
  168. layer.confirm('您确定要取消当前坐席的参与资格吗?', {
  169. icon: 7,
  170. btn: ['是', '否'] //按钮
  171. }, function() {
  172. $.ajax({
  173. type: "post",
  174. url: huayi.config.callcenter_url + "callcenterapi/api/autocall/joinprecall",
  175. dataType: 'json',
  176. async: true,
  177. beforeSend: function() { //触发ajax请求开始时执行
  178. loadIndex = layer.load();
  179. },
  180. data: {
  181. taskid: t_id, // 是 string 任务id
  182. agentid: agentid, // 是 string 坐席工号
  183. joinflag: 0, // 是 int 参与标志(1为参与,0为不参与)
  184. },
  185. success: function(data) {
  186. layer.close(loadIndex);
  187. if(data.state.toLowerCase() === "success") {
  188. layer.msg("坐席:" + agentid + "的参与资格取消成功!");
  189. //获取参与任务的坐席
  190. getTaskSeats(t_id);
  191. //获取任务监控信息
  192. getTaskDetails(t_id);
  193. //更新右上角信息
  194. if(top.$('#task_real_info').is(":visible")) {
  195. if(agentid === window.localStorage.getItem("userCode")) {
  196. top.getTaskRealInfo();
  197. }
  198. }
  199. }
  200. },
  201. error: function(textStatus) {
  202. layer.close(loadIndex);
  203. layer.confirm('网络繁忙,请稍后再试...', {
  204. icon: 7,
  205. closeBtn: 0,
  206. btn: ['确定'] //按钮
  207. });
  208. },
  209. complete: function(XMLHttpRequest, textStatus) {
  210. layer.close(loadIndex);
  211. if(textStatus == 'timeout') {
  212. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  213. xmlhttp.abort();
  214. layer.confirm('网络超时,请稍后再试...', {
  215. icon: 7,
  216. closeBtn: 0,
  217. btn: ['确定'] //按钮
  218. });    
  219. }
  220. },
  221. });
  222. });
  223. }
  224. /**
  225. * 刷新 工单数据
  226. * repairPlatformTime 刷新时间的间隔;
  227. *
  228. * */
  229. function refreshMonitorDatas(repairPlatformTime) {
  230. var t_id = helper.request.queryString("t_id");
  231. var objTime = {
  232. init: 0,
  233. time: function() {
  234. if(top.$("iframe:visible").contents().find('.layui-layer').length === 0) {
  235. objTime.init += 1000;
  236. //console.log(objTime.init);
  237. //当页面没有click、keydown、mousemove、mousewheel 并且没有layer 弹窗时;每间隔 huayi.config.repairPlatformTime 刷新数据;
  238. if(objTime.init == repairPlatformTime) {
  239. //获取任务监控信息
  240. getTaskDetails(t_id);
  241. //获取参与任务的坐席
  242. getTaskSeats(t_id);
  243. objTime.init = 0;
  244. }
  245. }
  246. },
  247. eventFun: function() {
  248. clearInterval(testUser);
  249. objTime.init = 0;
  250. testUser = setInterval(objTime.time, 1000);
  251. }
  252. }
  253. var testUser = setInterval(objTime.time, 1000);
  254. var body = document.querySelector('html');
  255. body.addEventListener("click", objTime.eventFun);
  256. body.addEventListener("keydown", objTime.eventFun);
  257. body.addEventListener("mousemove", objTime.eventFun);
  258. body.addEventListener("mousewheel", objTime.eventFun);
  259. }