Нет описания

index.js 30KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176
  1. var newData=[] //数据倒序
  2. var floag=true
  3. WEB_SOCKET_SWF_LOCATION = "./js/websocket/WebSocketMain.swf";
  4. // 开启flash的websocket debug
  5. WEB_SOCKET_DEBUG = true;
  6. var ws, n = 0,
  7. timer;
  8. var lockReconnect = false; //避免重复连接
  9. var obj = {};
  10. var Statess;
  11. var cls = 0;
  12. var lasttime = new Date().getTime();
  13. var cons;
  14. var person='';
  15. // var areaOneVal = helper.cookies.get("areaOneVal");
  16. // var areaOneText = helper.cookies.get("areaOneText");
  17. // if (areaOneVal) {
  18. // var areaOneVal = helper.cookies.get("areaOneVal");
  19. // } else{
  20. // var areaOneVal="sqs12345"
  21. // }
  22. //创建scoket连接
  23. createWebSocket()
  24. function createWebSocket() {
  25. try {
  26. Connect();
  27. } catch (e) {
  28. reconnect();
  29. }
  30. }
  31. //连接
  32. function Connect() {
  33. ws = new WebSocket("ws://" + huayi.config.socket_ip + ":" + huayi.config.socket_port);
  34. ws.onopen = function () {
  35. console.log(new Date() + " " + "建立连接");
  36. //心跳检测重置
  37. heartCheck.reset().start();
  38. cls = 0;
  39. lasttime = new Date().getTime();
  40. join()
  41. SayBusy()
  42. };
  43. //接收到消息的回调方法
  44. ws.onmessage = function (evt) {
  45. //如果获取到消息,心跳检测重置
  46. //拿到任何消息都说明当前连接是正常的
  47. heartCheck.reset().start();
  48. var myDate = new Date();
  49. console.log(myDate + " receive " + evt.data);
  50. var data = JSON.parse(evt.data)[0];
  51. if (data) {
  52. var rlt = data.Result;
  53. var type = data.Type;
  54. if (rlt == true) {
  55. switch (type.toLowerCase()) {
  56. case "login":
  57. LoginBack();
  58. break; //签入
  59. }
  60. } else {
  61. if (rlt == false) {
  62. $(".hwzt").text('操作失败!');
  63. } else {
  64. $(".hwzt").text(rlt);
  65. if(type.toLowerCase()=='waitcount') {
  66. backstageQueue(data);
  67. }
  68. }
  69. }
  70. }
  71. };
  72. //连接关闭的回调方法
  73. ws.onclose = function (evt) {
  74. if (cls == 0) {
  75. cls = 1;
  76. $(".hwzt").text('连接关闭!');
  77. $("#top-search li i").removeClass("active");
  78. reconnect();
  79. }
  80. };
  81. //连接发生错误的回调方法
  82. ws.onerror = function (evt) {
  83. //产生异常
  84. $(".hwzt").text('连接出现异常!');
  85. console.log(ws);
  86. if (ws == null || ws.readyState != ws.OPEN) {
  87. console.log(new Date() + "开始重连");
  88. reconnect();
  89. }
  90. };
  91. }
  92. //重连
  93. function reconnect() {
  94. if (lockReconnect) return;
  95. lockReconnect = true;
  96. //没连接上会一直重连,设置延迟避免请求过多
  97. setTimeout(function () {
  98. console.log(new Date() + " " + "重连中……");
  99. createWebSocket("ws://" + huayi.config.socket_ip + ":" + huayi.config.socket_port);
  100. lockReconnect = false;
  101. SayBusy()
  102. }, 2000);
  103. }
  104. //发送
  105. function Send() {
  106. if (ws.readyState != ws.OPEN) {
  107. reconnect();
  108. }
  109. if (ws.readyState == ws.OPEN) {
  110. console.log(new Date() + " send " + JSON.stringify(obj));
  111. ws.send(JSON.stringify(obj));
  112. }
  113. }
  114. //心跳检测
  115. var heartCheck = {
  116. timeout: 25000, //25秒
  117. timeoutObj: null,
  118. serverTimeoutObj: null,
  119. reset: function () {
  120. clearTimeout(this.timeoutObj);
  121. clearTimeout(this.serverTimeoutObj);
  122. return this;
  123. },
  124. start: function () {
  125. var self = this;
  126. this.timeoutObj = setTimeout(function () {
  127. //这里发送一个心跳,后端收到后,返回一个心跳消息,
  128. //onmessage拿到返回的心跳就说明连接正常
  129. obj.Type = "Heart";
  130. Send();
  131. self.serverTimeoutObj = setTimeout(function () { //如果超过一定时间还没重置,说明后端主动断开了
  132. ws.close(); //如果onclose会执行reconnect,我们执行ws.close()就行了.如果直接执行reconnect 会触发onclose导致重连两次
  133. }, self.timeout)
  134. }, this.timeout)
  135. }
  136. }
  137. // 签入
  138. function SayBusy() {
  139. obj.Type = "SayBusy";
  140. Send();
  141. console.log('置忙')
  142. }
  143. //签入
  144. function LoginBack() {
  145. obj.Type = "SayBusy";
  146. Send();
  147. console.log('置忙')
  148. }
  149. // 点击签入
  150. function join(){
  151. obj.Type ='Login',
  152. obj.AgentID='9898',
  153. obj.AgentExten='1015',
  154. obj.AgentType='0',
  155. obj.AgentGroup='364'
  156. // console.log(scoketDatas)
  157. Send()
  158. }
  159. //监测
  160. function SubScribeBack() {
  161. var obj = $("iframe:visible")
  162. if (obj.attr("data-id") == "./TelCall/SeatMonitor.html") {
  163. window.frames[obj.attr("name")].Start();
  164. }
  165. if (obj.attr("data-id") == "./TelCall/zxKong.html") {
  166. window.frames[obj.attr("name")].Start();
  167. }
  168. }
  169. //取消监测
  170. function SubScribeCancelBack() {
  171. $('.yuan_one').addClass("lx")
  172. $('.yuan_two').addClass("lx")
  173. }
  174. //后台排队
  175. function backstageQueue(data) {
  176. person=data.WaitCount
  177. console.log(person)
  178. }
  179. $(function() {
  180. loginTimeLimit(); //登录
  181. var mySwiper = new Swiper('.swiper-container', {
  182. pagination: { /* 分页器*/
  183. el: '.swiper-pagination',
  184. clickable: true,
  185. },
  186. navigation: {
  187. nextEl: '.swiper-button-next',
  188. prevEl: '.swiper-button-prev',
  189. },
  190. on: {
  191. init: function() {
  192. swiperAnimateCache(this); //隐藏动画元素
  193. swiperAnimate(this); //初始化完成开始动画
  194. },
  195. transitionEnd: function() {
  196. swiperAnimate(this); //每个slide切换结束时也运行当前slide动画
  197. },
  198. }
  199. })
  200. // 跳轉
  201. $(".nav_middle").click(function(){
  202. window.open('index.html','_self')
  203. })
  204. $("#department").click(function(){
  205. window.open('receiptDepartment.html','_self')
  206. })
  207. $("#sourceChannel").click(function(){
  208. window.open('sourceChannel.html','_self')
  209. })
  210. $("#call").click(function(){
  211. window.open('TelephoneDetails.html','_self')
  212. })
  213. $("#complaint").click(function(){
  214. window.open('complaintsReport.html','_self')
  215. })
  216. // 選項卡
  217.  $(".smallimg").click(function ()
  218.   {
  219.     //获取点击的元素给其添加样式,讲其兄弟元素的样式移除
  220.     $(this).addClass("activeBox").siblings().removeClass("activeBox");
  221.     //获取选中元素的下标
  222.     var index = $(this).index();
  223.     $(".slideCon_bg").eq(index).addClass("slideCon_bg_block")
  224.     .siblings().removeClass("slideCon_bg_block");
  225.   });
  226. Ajax();
  227. deprtment();// 第五屏部门下拉
  228. laydate.render({
  229. elem: '#time1',
  230. range: '~',
  231. format: 'yyyy-MM-dd',
  232. theme: '#114a97',
  233. done: function(value, date) {
  234. oneScreen(value && value.split(' ~ ')[0], value && value.split(' ~ ')[1])
  235. }
  236. });
  237. laydate.render({
  238. elem: '#time2',
  239. range: '~',
  240. format: 'yyyy-MM-dd',
  241. theme: '#114a97',
  242. done: function(value, date) {
  243. twoScreen(value && value.split(' ~ ')[0], value && value.split(' ~ ')[1],$(".areaTwo").val())
  244. satisfaction(value && value.split(' ~ ')[0], value && value.split(' ~ ')[1],$(".areaTwo").val())
  245. }
  246. });
  247. laydate.render({
  248. elem: '#time3',
  249. format: 'yyyy-MM-dd',
  250. theme: '#114a97',
  251. done: function(value) {
  252. threeScreen(value,$(".areaThree").val())
  253. }
  254. });
  255. laydate.render({
  256. elem: '#test6',
  257. range: '~',
  258. format: 'yyyy-MM-dd',
  259. theme: '#114a97',
  260. done: function(value, date) {
  261. fiveScreen(value && value.split(' ~ ')[0], value && value.split(' ~ ')[1],$(".areaFive").val())
  262. }
  263. });
  264. })
  265. var cityObj = {
  266. ele1: "sqs_count",
  267. ele2: "syq_count",
  268. ele3: "lyq_count",
  269. ele4: "ycs_count",
  270. ele5: "mqx_count",
  271. ele6: "sx_count",
  272. ele7: "nlx_count",
  273. ele8: "zcx_count",
  274. ele9: "ycx_count",
  275. ele10: "xyx_count",
  276. ele11: "cxyt_count",
  277. ele12: "lhpz_count",
  278. ele13: "saz_count",
  279. ele14: "djbl_count"
  280. }
  281. var vars = {};
  282. getCountUp(cityObj)
  283. function getCountUp(obj1) {
  284. var options = {  
  285. useEasing: true,
  286.   useGrouping: true,
  287.   separator: ',',
  288.   decimal: '.',
  289. };
  290. $.each(obj1, function(k, v) {
  291. new CountUp(v, 0, 0, 0, 2, options).start()
  292. vars[v] = new CountUp(v, 0, 0, 0, 2, options)
  293. })
  294. }
  295. var myDate = new Date();
  296. function turn(aa) {
  297. if(aa < 10) {
  298. aa = "0" + aa;
  299. }
  300. return aa
  301. }
  302. // 第三屏 第四屏 发光外框 定时
  303. (function() {
  304. var i = 0;
  305. var length = $(".orderState_ul >li").length;
  306. var j = 0;
  307. var length_1 = $(".orderTtype_Con li").length;
  308. setInterval(function() {
  309. if(i == length) {
  310. i = 0;
  311. $(".orderState_ul >li").removeClass('active');
  312. }
  313. $(".orderState_ul >li").eq(i).addClass('active').siblings().removeClass('active');
  314. if(i == 5) {
  315. $(".orderState_ul >li").eq(4).removeClass('active');
  316. }
  317. i++;
  318. if(j == length_1) {
  319. j = 0;
  320. }
  321. $(".orderTtype_Con li").eq(j).addClass('active').siblings().removeClass('active');
  322. j++;
  323. }, 2000);
  324. })();
  325. //对数组进行排序
  326. function compare(property) {
  327. return (firstobj, secondobj) => {
  328. const firstValue = firstobj[property];
  329. const secondValue = secondobj[property];
  330. return secondValue - firstValue; //降序
  331. };
  332. }
  333. //第一屏幕 开始
  334. function oneScreen(sd,ed) {
  335. $.ajax({
  336. type: "get",
  337. url: huayi.config.callcenter_url + "/info/GetAreaCountByDateNew",
  338. async: true,
  339. dataType: 'json',
  340. data: {
  341. start: sd,
  342. end: ed,
  343. },
  344. success: function(data) {
  345. if(data.state.toLowerCase() == 'success') {
  346. var con = data.data;
  347. newData = con.sort(compare("SLCount"));
  348. console.log(1)
  349. $(newData).each(function(i, n) {
  350. if(n.AreaName=='安阳市'){
  351. n.AreaName="市区"
  352. }
  353. // if(n.AreaName.indexOf('安阳市') != -1) {
  354. // $(".AY_num").html(n.SLCount)
  355. // }
  356. // if(n.AreaName.indexOf('文峰区') != -1) {
  357. // $(".WFQ_num").html(n.SLCount)
  358. // }
  359. // if(n.AreaName.indexOf('北关区') != -1) {
  360. // $(".BGQ_num").html(n.SLCount)
  361. // }
  362. // if(n.AreaName.indexOf('殷都区') != -1) {
  363. // $(".YDQ_num").html(n.SLCount)
  364. // }
  365. // if(n.AreaName.indexOf('龙安区') != -1) {
  366. // $(".LAQ_num").html(n.SLCount)
  367. // }
  368. // if(n.AreaName.indexOf('安阳县') != -1) {
  369. // $(".AYX_num").html(n.SLCount)
  370. // }
  371. // if(n.AreaName.indexOf('汤阴县') != -1) {
  372. // $(".TYX_num").text(n.SLCount)
  373. // }
  374. // if(n.AreaName.indexOf('内黄县') != -1) {
  375. // $(".NHX_num").html(n.SLCount)
  376. // }
  377. // if(n.AreaName.indexOf('滑县') != -1) {
  378. // $(".HX_num").html(n.SLCount)
  379. // }
  380. // if(n.AreaName.indexOf('林州市') != -1) {
  381. // $(".LZS_num").html(n.SLCount)
  382. // }
  383. if(floag==true){
  384. $("#det_ult").html('')
  385. $(newData).each(function(i, n) {
  386. if(i<10){
  387. var str=' <li class="orderli"><img src="img/num_icon.png" alt="" /><p class="num_word"><span>'+n.AreaName+'</span><span class="AY_num">'+n.SLCount+'</span></p></li>';
  388. var a=$(str)
  389. a.appendTo($("#det_ult"))
  390. }
  391. })
  392. floag=false
  393. }
  394. if(n.AreaName.indexOf('总计') != -1) {
  395. $(".allSLCount").html(n.SLCount); //受理量
  396. $(".allJACount").html(n.JACount); //结案量
  397. //$(".allJARate").html(n.JARate); //结案量
  398. $(".allJARate").html("93%"); //结案量
  399. $(".allMYRate").html('94.09%'); //满意度
  400. }
  401. })
  402. }
  403. }
  404. });
  405. }
  406. function aa(){
  407. }
  408. //第二屏
  409. function twoScreen(start, end, areaTwoVal) {
  410. // if(!areaTwoVal) {
  411. // areaTwoVal = "sqs12345"
  412. // }
  413. $.ajax({
  414. type: "get",
  415. url: huayi.config.callcenter_url + "info/GetSourceByDateNew",
  416. async: true,
  417. dataType: 'json',
  418. data: {
  419. start: start,
  420. end: end,
  421. branchcode: areaTwoVal
  422. },
  423. success: function(data) {
  424. if(data.state.toLowerCase() == 'success') {
  425. //layer.close(index);
  426. $('.orderSource ul li .rectangle').remove();
  427. var con = data.data;
  428. var obj=con[0];
  429. var con_list=[];
  430. con_list=con.shift();
  431. con.splice(3,0,obj);
  432. var Percent;
  433. $(con).each(function(i, n) {
  434. // if(n.Source.indexOf('信箱') != -1) {
  435. // n.Source = '市长信箱'
  436. // }
  437. // if(n.Source.indexOf('APP') != -1) {
  438. // n.Source = 'APP'
  439. // }
  440. // if(n.Source.indexOf('政务') != -1) {
  441. // n.Source = '政务网'
  442. // }
  443. var str = '<div class="source_kuang rectangle">' +
  444. '<div class="pbout">' +
  445. '<div class="percent_box">' +
  446. '<div class="percent_out"></div> ' +
  447. ' <div class="percent_in"></div>' +
  448. ' <div class="percent_word"><p>' + n.Rate.split('%')[0] + '%' +'</p><p style="margin-top: 30px;">占总量</p>' +
  449. '</div>' +
  450. '</div>' +
  451. '</div>' +
  452. '<p class="num_word nw">' +
  453. '<span>' + n.Source + '</span><span>' + n.Count + '</span>' +
  454. '</p>' +
  455. '</div>'
  456. $('.orderSource ul li').eq(i).prepend(str)
  457. })
  458. }
  459. }
  460. });
  461. }
  462. //第三屏
  463. function threeScreen(sd,areaTwoVal) {
  464. //alert(sd)
  465. $.ajax({
  466. type: "get",
  467. url: huayi.config.callcenter_url + "Info/GetTypeCountNew",
  468. async: true,
  469. dataType: 'json',
  470. data: {
  471. date: sd,
  472. branchcode: areaTwoVal
  473. },
  474. success: function(data) {
  475. if(data.state.toLowerCase() == 'success') {
  476. $('.orderTtype_Con ul').html('');
  477. // layer.close(index);
  478. var newDatas =data.data ;
  479. var con =newDatas.sort(compare("TotalCount"))
  480. var img_name = '';
  481. $(con).each(function(i, n) {
  482. if(n.TypeName.indexOf('咨询') != -1) {
  483. img_name = 'order_ZX.png'
  484. }
  485. if(n.TypeName.indexOf('求助') != -1) {
  486. img_name = 'order_QZ.png'
  487. }
  488. if(n.TypeName.indexOf('投诉') != -1) {
  489. img_name = 'order_TS.png'
  490. }
  491. if(n.TypeName.indexOf('建议') != -1) {
  492. img_name = 'order_JY.png'
  493. }
  494. if(n.TypeName.indexOf('表扬') != -1) {
  495. img_name = 'order_BY.png'
  496. }
  497. if(n.TypeName.indexOf('其他') != -1) {
  498. img_name = 'order_QT.png'
  499. }
  500. $('<li>' +
  501. '<div class="typeWord">' + n.TypeName + '</div>' +
  502. '<img src="img/' + img_name + '" alt="" />' +
  503. '<p class="typeWord_line">数据展示</p>' +
  504. '<p class="order_count">' + n.DayCount + '</p>' +
  505. '<p class="typeWord_line">今日' + n.TypeName + '量</p>' +
  506. '<p class="order_count">' + n.MonthCount + '</p>' +
  507. '<p class="typeWord_line">本月' + n.TypeName + '量</p>' +
  508. '<p class="order_count">' + n.TotalCount + '</p>' +
  509. '<p class="typeWord_line">' + n.TypeName + '总量</p>' +
  510. '<div class="persent_box">' +
  511. '<div class="persent_kuang">' + n.Percent + '</div>' +
  512. '</div>' +
  513. '<p class="persent_word">总量占比</p>' +
  514. '</li>').appendTo('.orderTtype_Con ul');
  515. })
  516. }
  517. }
  518. });
  519. }
  520. //第五屏js
  521. function fiveScreen(sd,ed,areaTwoVal) {
  522. // if(!sd){
  523. // sd="2019-11-01"
  524. // }if(!ed){
  525. // ed="2019-11-30"
  526. // }
  527. keyWord(sd, ed,areaTwoVal);
  528. }
  529. $(".depart").change(function() {
  530. keyWordDetail($('#test6').val() && $('#test6').val().split(' ~ ')[0], $('#test6').val() && $('#test6').val().split(' ~ ')[1],$(".areaFive").val());
  531. })
  532. // 第二屏
  533. $(".areaTwo").change(function() {
  534. var areaTwoVal=$(this).val();
  535. twoScreen($('#time2').val() && $('#time2').val().split(' ~ ')[0], $('#time2').val() && $('#time2').val().split(' ~ ')[1],areaTwoVal);
  536. satisfaction($('#time2').val() && $('#time2').val().split(' ~ ')[0], $('#time2').val() && $('#time2').val().split(' ~ ')[1],areaTwoVal)
  537. });
  538. //第三屏
  539. $(".areaThree").change(function() {
  540. var areaTwoVal=$(this).val();
  541. threeScreen($('#time3').val(),areaTwoVal);
  542. });
  543. //第五屏
  544. $(".areaFive").change(function() {
  545. var areaTwoVal=$(this).val();
  546. fiveScreen($('#test6').val() && $('#test6').val().split(' ~ ')[0], $('#test6').val() && $('#test6').val().split(' ~ ')[1],areaTwoVal);
  547. deprtment ()
  548. });
  549. //部门下拉框
  550. function deprtment () {
  551. $.getJSON( huayi.config.callcenter_url +"info/GetDeptList",
  552. {
  553. branchcode: $(".areaFive").val()
  554. },
  555. function(result) {
  556. if(result.state.toLowerCase() == "success") {
  557. goodslist = result.data;
  558. $(".depart").empty();
  559. $('<option value="">请选择部门</option>').appendTo($(".depart"));
  560. $(goodslist).each(function(i, n) {
  561. $('<option value="' + n.F_DeptId
  562. + '">' + n.F_DeptName
  563. + '</option>').appendTo($(".depart"));
  564. })
  565. }
  566. });
  567. }
  568. //区县筛选
  569. //areaSelect ();
  570. function areaSelect () {
  571. $.getJSON( huayi.config.callcenter_url +"CountyBranch/GetBranchListS", function(result) {
  572. if(result.state.toLowerCase() == "success") {
  573. goodslist = result.data;
  574. // 第五屏
  575. $(".areaFive").empty();
  576. $(goodslist).each(function(i, n) {
  577. $('<option value="' + n.F_Code
  578. + '">' + n.F_Name
  579. + '</option>').appendTo($(".areaFive"));
  580. });
  581. //第3屏
  582. $(".areaThree").empty();
  583. $(goodslist).each(function(i, n) {
  584. $('<option value="' + n.F_Code
  585. + '">' + n.F_Name
  586. + '</option>').appendTo($(".areaThree"));
  587. });
  588. //第2屏
  589. $(".areaTwo").empty();
  590. $(goodslist).each(function(i, n) {
  591. $('<option value="' + n.F_Code
  592. + '">' + n.F_Name
  593. + '</option>').appendTo($(".areaTwo"));
  594. });
  595. }
  596. });
  597. }
  598. // 左侧关键词
  599. function keyWord(sd, ed,areaTwoVal) {
  600. $.ajax({
  601. type: "get",
  602. url: huayi.config.callcenter_url + "info/GetKeyCountRankByDate",
  603. async: true,
  604. dataType: 'json',
  605. data: {
  606. start: sd,
  607. end: ed,
  608. branchcode: areaTwoVal
  609. },
  610. success: function(data) {
  611. if(data.state.toLowerCase() == 'success') {
  612. var con = data.data.reverse();
  613. if (con.length>0) {
  614. // $(".keyW_t").text(con[0].TypeName)
  615. $('.tagcloud').html('');
  616. $(con).each(function(k, j) {
  617. if(k < 19) {
  618. var strs = '<div index="'+j.Id+'" class="tagcloud_bj">' +
  619. '<p class="tag_title">' + j.TypeName + '</p>' +
  620. '<p class="imgs">' + j.Count + '</p>' +
  621. '</div>'
  622. $('.tagcloud').append(strs);
  623. }
  624. })
  625. $(".tagcloud div:first-child").removeClass("tagcloud_bj");
  626. $(".tagcloud div:first-child").addClass("tagcloud_bjShine");
  627. keyWordDetail(sd, ed,areaTwoVal);
  628. }else{
  629. $('.tagcloud').html('');
  630. }
  631. }
  632. }
  633. });
  634. }
  635. // 右侧部门
  636. function keyWordDetail(sd, ed,areaTwoVal) {
  637. $.ajax({
  638. type: "get",
  639. url: huayi.config.callcenter_url + "info/GetDeptKeyCountByDateNew",
  640. async: true,
  641. dataType: 'json',
  642. data: {
  643. start: sd,
  644. end: ed,
  645. branchcode: areaTwoVal,
  646. deptid: $('.depart').val(),
  647. keyid: $(".tagcloud_bjShine").eq(0).attr("index")
  648. },
  649. success: function(data) {
  650. if(data.state.toLowerCase() == 'success') {
  651. $('.scroll_table tbody').html('');
  652. var con = data.data;
  653. $(con).each(function (j, n) {
  654. var rate = '';
  655. if (n.rate) { rate = n.rate;}
  656. var str = '<tr><td>' + n.deptname + '</td><td>' + n.acceptcount + '</td><td>' + rate + '</td></tr>'
  657. $('.scroll_table tbody').append(str);
  658. })
  659. $(".scroll_table").Scroll({
  660. line: 1,
  661. speed: 500,
  662. timer: 2000
  663. });
  664. }
  665. }
  666. });
  667. }
  668. $(".tagcloud").on("click","div",function(){
  669. $(".tagcloud div").addClass("tagcloud_bj");
  670. $(".tagcloud div").removeClass("tagcloud_bjShine");
  671. $(this).removeClass("tagcloud_bj");
  672. $(this).addClass("tagcloud_bjShine");
  673. keyWordDetail($('#test6').val() && $('#test6').val().split(' ~ ')[0], $('#test6').val() && $('#test6').val().split(' ~ ')[1],$(".areaFive").val());
  674. });
  675. function Ajax() {
  676. oneScreen($('#time1').val() && $('#time1').val().split(' ~ ')[0], $('#time1').val() && $('#time1').val().split(' ~ ')[1])
  677. twoScreen($('#time2').val() && $('#time2').val().split(' ~ ')[0], $('#time2').val() && $('#time2').val().split(' ~ ')[1])
  678. satisfaction($('#time2').val() && $('#time2').val().split(' ~ ')[0], $('#time2').val() && $('#time2').val().split(' ~ ')[1])
  679. threeScreen($('#time3').val(),$(".areaThree").val());
  680. fiveScreen($('#test6').val() && $('#test6').val().split(' ~ ')[0], $('#test6').val() && $('#test6').val().split(' ~ ')[1],$(".areaFive").val())
  681. //第五 屏 渠道来源
  682. var areaOneVal = helper.cookies.get("areaOneVal");
  683. var areaOneText = helper.cookies.get("areaOneText");
  684. partThree($('#time3').val() && $('#time3').val().split(' ~ ')[0], $('#time3').val() && $('#time3').val().split(' ~ ')[1],areaOneVal)
  685. // 接单 部门
  686. partTwo($('#phone_time').val() && $('#phone_time').val().split(' ~ ')[0], $('#phone_time').val() && $('#phone_time').val().split(' ~ ')[1],areaOneVal);
  687. // 话务数量
  688. parthuawu($('#time3').val(),areaOneVal);
  689. // 投诉举报
  690. partcomplain($('#time3').val() && $('#time3').val().split(' ~ ')[0], $('#time3').val() && $('#time3').val().split(' ~ ')[1],areaOneVal)
  691. }
  692. function loginTimeLimit(){
  693. $.ajax({
  694. type:"get",
  695. url: huayi.config.callcenter_url + "Login/GetAuAuthDate",
  696. async:false,
  697. success:function(res){
  698. var res=$.parseJSON(res)
  699. if(res.state== "success") {
  700. } else {
  701. layer.confirm(res.message, {
  702. icon: 2,
  703. btn: ['确定'],
  704. yes: function(index, layero) {
  705. $("#wrap").hide()
  706. $(".timeLimit-wrapper").show()
  707. $(".nav_middle ul a").attr('href', '#')
  708. layer.close(index)
  709. },
  710. });
  711. }
  712. }
  713. });
  714. }
  715. // 渠道来源
  716. var part3 = echarts.init(document.getElementById('part3'));
  717. part3.setOption({
  718. color: ['#6ce7ac', '#6a91e0', '#ceba5f', '#cb5f79', '#ae765a', '#569d4e', '#7d55ba', '#ce5aba', '#355cdd', '#44c1c6', '#ceba5e', '#c64444'],
  719. title: {
  720. text: '各班组占比',
  721. x: 'center',
  722. y: '45%',
  723. textStyle: {
  724. fontWeight: 'normal',
  725. fontSize: 16,
  726. color: '#fff'
  727. }
  728. },
  729. tooltip: {
  730. trigger: 'item',
  731. formatter: "{a} <br/>{b} : {c} ({d}%)",
  732. axisPointer: {
  733. crossStyle: {
  734. color: '#fff'
  735. }
  736. }
  737. },
  738. legend: {
  739. // orient: 'vertical',
  740. bottom: 'bottom',
  741. data: ['安阳县','北关区','林州市','龙安区','内黄县','市区','汤阴县','安阳县','文峰区','殷都区','滑县'],
  742. textStyle: {
  743. color: '#fff'
  744. }
  745. },
  746. series: [{
  747. name: '数据',
  748. type: 'pie',
  749. radius: ['30%', '60%'],
  750. center: ['50%', '50%'],
  751. data: [],
  752. itemStyle: {
  753. emphasis: {
  754. shadowBlur: 10,
  755. shadowOffsetX: 0,
  756. shadowColor: 'rgba(0, 0, 0, 0.5)'
  757. },
  758. normal: {
  759. label: {
  760. show: true,
  761. // formatter: '{b} : {c} ({d}%)'
  762. formatter: '{d}%'
  763. },
  764. labelLine: {
  765. show: true
  766. }
  767. }
  768. },
  769. label: {
  770. normal: {
  771. textStyle: {
  772. color: '#fff'
  773. }
  774. }
  775. }
  776. }]
  777. });
  778. function partThree(start, end,areaOneVal) {
  779. // var index = layer.load(1, {
  780. // shade: [0.5, '#030303'] //0.1透明度的白色背景
  781. // });
  782. $.ajax({
  783. type: "get",
  784. url: huayi.config.callcenter_url + "info/GetAreaCountByDate",
  785. async: true,
  786. dataType: 'json',
  787. data: {
  788. start: start,
  789. end: end,
  790. branchcode:areaOneVal
  791. },
  792. success: function(data) {
  793. if(data.state.toLowerCase() == 'success') {
  794. // layer.close(index);
  795. $('.complaint_typeL').html('');
  796. $('.complaint_typeR').html('');
  797. var con = data.data;
  798. var part_1_legend = [];
  799. var part_1_ser = [];
  800. $(con).each(function(i, n) {
  801. part_1_legend.push(n.AreaName)
  802. var part_1_obj = {};
  803. part_1_obj.value = n.Count;
  804. part_1_obj.name = n.AreaName;
  805. part_1_ser.push(part_1_obj)
  806. if(n.AreaName.indexOf('城乡一体') != -1) {
  807. n.AreaName = "城乡示范"
  808. }
  809. var str = '<li>' +
  810. '<span class="type_name">' + n.AreaName + '</span> <span class="type_count">' + n.Count + '</span>' +
  811. '</li>'
  812. if(i <= 5) {
  813. $(str).appendTo('.complaint_typeL');
  814. } else if(i <= 11&&i >5){
  815. $(str).appendTo('.complaint_typeR');
  816. }
  817. })
  818. part3.setOption({
  819. // legend: {
  820. // selected: {
  821. // '当即办理': false
  822. // }
  823. // },
  824. series: [{
  825. data: part_1_ser
  826. }]
  827. })
  828. }
  829. }
  830. });
  831. }
  832. // 接单部门
  833. //表格滚动
  834. var area = document.getElementById('scroll_table');
  835. var iliHeight = 34; //单行滚动的高度
  836. var speed = 20; //滚动的速度
  837. var time;
  838. var delay = 1000;
  839. area.scrollTop = 0;
  840. area.innerHTML += area.innerHTML; //克隆一份一样的内容
  841. function startScroll() {
  842. time = setInterval("scrollUp()", speed);
  843. area.scrollTop++;
  844. console.log(area.scrollTop);
  845. }
  846. function scrollUp() {
  847. if(area.scrollTop % iliHeight == 0) {
  848. clearInterval(time);
  849. setTimeout(startScroll, delay);
  850. } else {
  851. area.scrollTop++;
  852. if(area.scrollTop >= area.scrollHeight / 2) {
  853. area.scrollTop = 0;
  854. }
  855. }
  856. }
  857. setTimeout(startScroll, delay)
  858. function partTwo() {
  859. $.ajax({
  860. type: "get",
  861. url: huayi.config.callcenter_url + "/equipmentapi/api/worepairbase/gettjlists",
  862. dataType: 'json',
  863. async: true,
  864. headers: {
  865. "content-type": "application/json;charset=utf-8",
  866. "Authorization": "Bearer " + window.localStorage.getItem('token')
  867. }, //请求头类型
  868. data: {
  869. daytype: $('#timeType').val(),
  870. isdjtype: '动态',
  871. Jwocode: $('#bzdatas').val(),
  872. stime: $('#phone_time').val() && $('#phone_time').val().split(' ~ ')[0], //开始时间
  873. etime: $('#phone_time').val() && $('#phone_time').val().split(' ~ ')[1], //结束时间
  874. },
  875. success: function(data) {
  876. if(data.state.toLowerCase() == 'success') {
  877. $('.thead_six tr').html('');
  878. $('#scroll_table tbody').html('');
  879. var con = data.data;
  880. var thead_six = con[0];
  881. console.log(thead_six)
  882. $.each(thead_six, function(k, val) {
  883. $('<td >' + k + '</td>').appendTo('.thead_six tr');
  884. })
  885. $(con).each(function(j, n) {
  886. var str = '<tr>'
  887. $.each(thead_six, function(j, m) {
  888. $.each(n, function(k, val) {
  889. if(j == k) {
  890. if(val == '') {
  891. val = 0;
  892. }
  893. str += '<td ">' + val + '</td>'
  894. }
  895. })
  896. })
  897. str += '</tr>';
  898. $('#scroll_table tbody').append(str);
  899. })
  900. }
  901. }
  902. });
  903. }
  904. // 话务数量
  905. //part3
  906. var todyPhoneCount = echarts.init(document.getElementById('todyPhoneCount'));
  907. todyPhoneCount.setOption({
  908. tooltip: {
  909. trigger: 'axis',
  910. axisPointer: {
  911. type: false,
  912. label: {
  913. show: true,
  914. backgroundColor: '#030917'
  915. }
  916. },
  917. },
  918. xAxis: {
  919. name: '类型',
  920. data: ["话务量(通)", "来电(通)", "接通量(通)", "平均通话时长(秒)","排队人数"],
  921. axisLine: {
  922. lineStyle: {
  923. color: '#3061a2'
  924. }
  925. },
  926. axisTick: {
  927. alignWithLabel: true,
  928. show: false
  929. },
  930. axisLabel: { //横轴字体颜色
  931. show: true,
  932. textStyle: {
  933. color: '#ffffff'
  934. }
  935. }
  936. },
  937. yAxis: {
  938. name: '数量',
  939. splitLine: {
  940. show: false
  941. },
  942. axisLine: {
  943. lineStyle: {
  944. color: '#3061a2'
  945. }
  946. },
  947. axisLabel: { //横轴字体颜色
  948. show: true,
  949. textStyle: {
  950. color: '#eff0f4'
  951. }
  952. }
  953. },
  954. series: [{
  955. name: '数量',
  956. type: 'bar',
  957. barWidth: 18,
  958. itemStyle: {
  959. normal: {
  960. color: function(params) {
  961. // build a color map as your need.
  962. var colorList = [
  963. '#368cab', '#54b793', '#4b6ab0', '#2531a9','#a93d19'
  964. ];
  965. return colorList[params.dataIndex]
  966. }
  967. }
  968. },
  969. label: {
  970. normal: {
  971. show: true,
  972. position: 'top', //顶部数据显示位置
  973. textStyle: {
  974. color: '#fff' //顶部数据颜色
  975. },
  976. formatter: '{c}' // 这里是数据展示的时候显示的数据
  977. }
  978. },
  979. data: []
  980. }]
  981. });
  982. function parthuawu(dates,areaOneVal) {
  983. $.ajax({
  984. type: "get",
  985. url: huayi.config.callcenter_url + "info/GetTelCountByDate",
  986. async: true,
  987. dataType: "json",
  988. data: {
  989. date: dates,
  990. branchcode:areaOneVal
  991. },
  992. success: function(data) {
  993. if(data.state.toLowerCase() == "success") {
  994. var con = data.data;
  995. con.person=person
  996. todyPhoneCount.setOption({
  997. series: [{
  998. data: [con.hwcon, con.lhcon, con.jtcon, con.pjthtimes,con.person]
  999. }]
  1000. })
  1001. }
  1002. }
  1003. });
  1004. }
  1005. // 投诉举报
  1006. var partcom = echarts.init(document.getElementById('partcom'));
  1007. partcom.setOption({
  1008. color: ['#6ce7ac', '#6a91e0', '#ceba5f', '#cb5f79', '#ae765a', '#569d4e'],
  1009. title: {
  1010. text: '各类型占比',
  1011. x: '28%',
  1012. y: '45%',
  1013. textStyle: {
  1014. fontWeight: 'normal',
  1015. fontSize: 16,
  1016. color: '#fff'
  1017. }
  1018. },
  1019. tooltip: {
  1020. trigger: 'item',
  1021. formatter: "{a} <br/>{b} : {c} ({d}%)",
  1022. axisPointer: {
  1023. crossStyle: {
  1024. color: '#fff'
  1025. }
  1026. }
  1027. },
  1028. legend: {
  1029. // orient: 'vertical',
  1030. bottom: 'bottom',
  1031. data: ['表扬','建议','投诉','举报','其他','求助','咨询'],
  1032. textStyle: {
  1033. color: '#fff'
  1034. }
  1035. },
  1036. series: [{
  1037. name: '数据',
  1038. type: 'pie',
  1039. radius: ['30%', '60%'],
  1040. center: ['40%', '50%'],
  1041. data: [],
  1042. itemStyle: {
  1043. emphasis: {
  1044. shadowBlur: 10,
  1045. shadowOffsetX: 0,
  1046. shadowColor: 'rgba(0, 0, 0, 0.5)'
  1047. },
  1048. normal: {
  1049. label: {
  1050. show: true,
  1051. // formatter: '{b} : {c} ({d}%)'
  1052. formatter: '{d}%'
  1053. },
  1054. labelLine: {
  1055. show: true
  1056. }
  1057. }
  1058. },
  1059. label: {
  1060. normal: {
  1061. textStyle: {
  1062. color: '#fff'
  1063. }
  1064. }
  1065. }
  1066. }]
  1067. });
  1068. function partcomplain(start, end,areaOneVal) {
  1069. // var index = layer.load(1, {
  1070. // shade: [0.5, '#030303'] //0.1透明度的白色背景
  1071. // });
  1072. $.ajax({
  1073. type: "get",
  1074. url: huayi.config.callcenter_url + "info/GetTypeCountByDate",
  1075. async: true,
  1076. dataType: 'json',
  1077. data: {
  1078. start: start,
  1079. end: end,
  1080. branchcode:areaOneVal
  1081. },
  1082. success: function(data) {
  1083. if(data.state.toLowerCase() == 'success') {
  1084. // layer.close(index);
  1085. $('.complaint_type').html('');
  1086. var con = data.data;
  1087. var part_1_legend = [];
  1088. var part_1_ser = [];
  1089. $(con).each(function(i, n) {
  1090. part_1_legend.push(n.TypeName)
  1091. var part_1_obj = {};
  1092. part_1_obj.value = n.Count;
  1093. part_1_obj.name = n.TypeName;
  1094. part_1_ser.push(part_1_obj)
  1095. $('<li>' +
  1096. '<span class="type_name">' + n.TypeName + '</span> <span class="type_count">' + n.Count + '</span>' +
  1097. '</li>').appendTo('.complaint_type')
  1098. })
  1099. partcom.setOption({
  1100. // legend: {
  1101. // data: part_1_legend
  1102. // },
  1103. series: [{
  1104. data: part_1_ser
  1105. }]
  1106. })
  1107. }
  1108. }
  1109. });
  1110. }