信阳市12345演示系统-前端代码

zxKong.html 21KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <script src="../Script/Common/huayi.load.js"></script>
  6. <script src="../Script/Common/huayi.config.js"></script>
  7. <!--<link rel="stylesheet" href="../css/layer/need/layer.css" />-->
  8. <link rel="stylesheet" href="../js/zTree/zTreeStyle.css" />
  9. <link rel="stylesheet" href="../css/init.css" />
  10. <title>坐席监控</title>
  11. <style>
  12. .toolBar {
  13. padding: 15px 0;
  14. border-bottom: 1px solid #ccc;
  15. }
  16. .jc {
  17. background: #9E9E9E;
  18. }
  19. .toolRight {
  20. /*float: right;*/
  21. padding: 22px 13px;
  22. }
  23. ul li {
  24. /*float: left;*/
  25. }
  26. .zx-title {
  27. background-color: #2e4050;
  28. display: block;
  29. color: #FFFFFF;
  30. padding: 5px 0;
  31. width: 100%;
  32. text-align: center;
  33. border-top-left-radius: 5px;
  34. border-top-right-radius: 5px;
  35. letter-spacing: 3px;
  36. }
  37. ul {
  38. overflow: hidden;
  39. }
  40. ul li {
  41. list-style: none;
  42. }
  43. .fenxian {
  44. list-style: none;
  45. width: 136px;
  46. padding: 0;
  47. height: 7px;
  48. }
  49. .fenxian li {
  50. width: 50%;
  51. list-style: none;
  52. height: 8px;
  53. float: left;
  54. }
  55. .left_red {
  56. background: #65c2ca;
  57. }
  58. .rg_green {
  59. background: #F95A83;
  60. }
  61. .zx-box {
  62. background: #F5F5F5;
  63. /*height: 200px;*/
  64. /*border-radius: 5px;*/
  65. box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
  66. margin-bottom: 30px;
  67. overflow: hidden;
  68. }
  69. .m-b {
  70. margin-bottom: 0;
  71. }
  72. /*坐席数量*/
  73. .zt-content ul {
  74. width: 100%;
  75. overflow: hidden;
  76. padding-left: 0px;
  77. padding-top: 20px;
  78. }
  79. .zt-content ul li {
  80. /*width: 40%;*/
  81. font-size: 14px;
  82. /*float: left;*/
  83. margin-bottom: 15px;
  84. /*text-align: center;*/
  85. margin-left: 10%;
  86. }
  87. .zt-content ul li i {
  88. display: inline-block;
  89. width: 20px;
  90. height: 21px;
  91. vertical-align: middle;
  92. margin-right: 10px;
  93. background: url(../img/zuoxiIcon.png) no-repeat;
  94. }
  95. .hc {
  96. background-position: 0 0 !important;
  97. }
  98. .ml {
  99. background-position: 0 -24px !important;
  100. }
  101. .kx {
  102. background-position: 0 -68px !important;
  103. }
  104. .zl {
  105. background-position: 0 -93px !important;
  106. }
  107. .qc {
  108. background-position: 0 -116px !important;
  109. }
  110. .lx {
  111. background-position: 0 -138px !important;
  112. }
  113. .hh {
  114. background-position: 0 -46px !important;
  115. }
  116. /*坐席监控*/
  117. .bg_person {
  118. background: url(../img/bg-person.png)no-repeat;
  119. width: 65px;
  120. height: 65px;
  121. text-align: -webkit-center;
  122. background-position: center center;
  123. margin: 0 auto;
  124. }
  125. .zx_people {
  126. padding: 0;
  127. }
  128. .zx_content ul:after {
  129. content: "";
  130. display: block;
  131. clear: both;
  132. }
  133. .people_list p {
  134. margin-bottom: 5px !important;
  135. }
  136. .zx_content ul {
  137. height: 800px;
  138. overflow: auto;
  139. }
  140. .zx_content ul li {
  141. width: 14%;
  142. text-align: center;
  143. float: left;
  144. cursor: pointer;
  145. }
  146. .zx_content ul li>div {
  147. width: 100%;
  148. position: relative;
  149. }
  150. #table1 i {
  151. display: block;
  152. height: 22px;
  153. width: 20px;
  154. background: url(../img/zuoxiIcon.png) no-repeat;
  155. /*position: absolute;
  156. right: 25px;
  157. top: 25px;*/
  158. }
  159. /*坐席状态*/
  160. .ztsm {
  161. width: 100%;
  162. overflow: hidden;
  163. padding-left: 0px;
  164. padding-top: 20px;
  165. }
  166. .ztsm b {
  167. padding: 3px 15px;
  168. border-radius: 10px;
  169. color: #FFFFFF;
  170. }
  171. .ztsm2 ul li {
  172. width: 33%;
  173. font-size: 14px;
  174. float: left;
  175. margin-bottom: 25px;
  176. text-align: center;
  177. cursor: pointer;
  178. }
  179. .zx {
  180. /*background: #989898;*/
  181. background: #61b960;
  182. }
  183. .jt {
  184. background: #5ed7b7;
  185. }
  186. .dj {
  187. background: #bed75b;
  188. }
  189. .qca {
  190. background: #d75e7c;
  191. }
  192. .lj {
  193. background: #5daed8;
  194. }
  195. .qc {
  196. background: #d8988f;
  197. }
  198. .kqc {
  199. background: #44af3c;
  200. }
  201. .jqc {
  202. background: #d91e06;
  203. }
  204. .dis {
  205. background: #989898;
  206. }
  207. /*坐席弹屏*/
  208. .toolLeft ul li {
  209. float: left;
  210. }
  211. .zx_photo {
  212. padding: 10px;
  213. }
  214. .zx_photo p {
  215. text-align: center;
  216. }
  217. .zx-box_ul {
  218. display: none;
  219. }
  220. .zx-box_ul>ul {
  221. padding-left: 0px;
  222. }
  223. .zx-box_ul>ul>li {
  224. /*width: 33% !important;*/
  225. padding: 22px 13px;
  226. text-align: -webkit-center;
  227. font-size: 15px;
  228. cursor: pointer;
  229. }
  230. .zx-box_ul>ul>li b {
  231. padding: 7px 15px;
  232. border-radius: 10px;
  233. color: #FFFFFF;
  234. }
  235. .zxtp {
  236. position: absolute;
  237. display: none;
  238. }
  239. .shows {
  240. display: block;
  241. }
  242. .hides {
  243. display: block;
  244. }
  245. </style>
  246. </head>
  247. <body class="gray-bg">
  248. <div class="container-fluid wrapper wrapper-content animated fadeInRight">
  249. <div class="daoHang clearfix">
  250. <div class="dhLeft">
  251. <sapn><i class="syIcon"></i>位置:
  252. <a id="ReIndex">首页</a>&gt;
  253. <a href="javaScript:;">话务管理</a>&gt;
  254. <a href="" class="nowPosition">坐席监控</a>
  255. </sapn>
  256. </div>
  257. <div class="dhRight">
  258. <a href="" title="刷新"><i class="fa fa-refresh"></i></a>
  259. </div>
  260. </div>
  261. <div class="toolBar clearfix">
  262. <div class="toolLeft">
  263. <div class="zx-box_ul row" zxtp-code="">
  264. <ul>
  265. <li><b class="zx" item="ForceAgentState">置闲</b></li>
  266. <li><b class="jt" item="Listen">监听</b></li>
  267. <li><b class="dj" item="Instead">代接</b></li>
  268. <li><b class="qca" item="Insert">强插</b></li>
  269. <li><b class="lj" item="Intercept">拦截</b></li>
  270. <li><b class="qc" item="Break">强拆</b></li>
  271. </ul>
  272. </div>
  273. </div>
  274. <div class="toolRight">
  275. <button class="btns kqc">开始监测</button>
  276. <button class="btns jqc dis">停止监测</button>
  277. </div>
  278. </div>
  279. <div class="treeTable clearfix">
  280. <div class="tableCon" style="float: left; width: 88%;">
  281. <table id="table1" class="table">
  282. <thead>
  283. <tr>
  284. <th>选择</th>
  285. <th>主叫号码</th>
  286. <th>被叫号码</th>
  287. <th>状态</th>
  288. <th>实时时间</th>
  289. <th>工号</th>
  290. <th>姓名</th>
  291. <th>分机号</th>
  292. <th>空闲时长</th>
  293. <th>置忙时长 </th>
  294. <th>通话时长 </th>
  295. <th>话后处理时长 </th>
  296. <th>置忙次数</th>
  297. <th>登录次数 </th>
  298. <th>签入时间 </th>
  299. <th>当前签入时长 </th>
  300. <th>呼入量</th>
  301. <th>呼出量</th>
  302. </tr>
  303. </thead>
  304. <tbody>
  305. </tbody>
  306. </table>
  307. </div>
  308. <div style="float: right; width: 12%;">
  309. <!--<div class="zx_top">
  310. <span class="zx-title">监控操作</span>
  311. <ul class="m-b fenxian" style="width:104px;">
  312. <li class="left_red"></li>
  313. <li class="rg_green"></li>
  314. </ul>
  315. <div class="zx-box">
  316. <div class="ztsm2 w_3">
  317. <ul class="ztsm">
  318. <li style="width: 50%;"><b class="kqc">开始监测</b></li>
  319. <li style="width: 50%;"><b class="jqc dis">停止监测</b></li>
  320. </ul>
  321. </div>
  322. </div>
  323. </div>-->
  324. <div class="zx_top">
  325. <span class="zx-title">状态说明</span>
  326. <ul class="m-b fenxian" style="width:100%;">
  327. <li class="left_red"></li>
  328. <li class="rg_green"></li>
  329. </ul>
  330. <div class="zx-box">
  331. <div class="zt-content w_5">
  332. <ul>
  333. <li><i class="hc"></i>通话中</li>
  334. <li><i class="ml"></i>置忙</li>
  335. <li><i class="kx"></i>空闲</li>
  336. <li><i class="zl"></i>振铃</li>
  337. <!--<li><i class="qc"></i>&nbsp;签出</li>-->
  338. <li><i class="lx"></i>离线</li>
  339. <li><i class="hh"></i>话后处理</li>
  340. </ul>
  341. </div>
  342. </div>
  343. </div>
  344. <div class="zx_top">
  345. <span class="zx-title">实时统计</span>
  346. <ul class="m-b fenxian" style="width:100%;">
  347. <li class="left_red"></li>
  348. <li class="rg_green"></li>
  349. </ul>
  350. <div class="zx-box">
  351. <div class="zt-content w_5">
  352. <ul class="tjcount">
  353. <li>登录坐席:<b>0</b></li>
  354. <li>离线人数:<b>0</b></li>
  355. <li>空闲人数:<b>0</b></li>
  356. <li>通话人数:<b>0</b></li>
  357. <li>系统呼入:<b>0</b></li>
  358. <li>置忙坐席:<b>0</b></li>
  359. <!--<li>签出坐席:<b>100</b></li>-->
  360. <li>全部坐席:<b>0</b></li>
  361. </ul>
  362. </div>
  363. </div>
  364. </div>
  365. </div>
  366. </div>
  367. </div>
  368. <script src="../css/layer/layer.js"></script>
  369. <script src="../js/zTree/jquery.ztree.core.js"></script>
  370. <script>
  371. $(document).ready(function() {
  372. var zxsx,sssx;
  373. //=================================================================
  374. if(!top.ws) {
  375. top.Connect();
  376. }
  377. $.getJSON(huayi.config.callcenter_url + 'SeatMonitoring/getlist', {
  378. "token": $.cookie("token")
  379. }, function(result) {
  380. if(result.state.toLowerCase() == "success") {
  381. $(".tjcount li").eq(6).find("b").text(result.data.length);
  382. }
  383. }) //判断socket是否连上
  384. if(top.ws.readyState != 1) {
  385. $(".kqc").addClass("dis")
  386. } else {
  387. $(".kqc").removeClass("dis") //开始监测
  388. $(".kqc").click(function() {
  389. // alert(1)
  390. if(!$(this).hasClass("dis")) {
  391. Ajax(1);
  392. zxsx=setInterval(Ajax, 10000);
  393. sssx=setInterval(addTime, 1000);
  394. }
  395. })
  396. }
  397. //停止监测
  398. $(".jqc").click(function() {
  399. if(!$(this).hasClass("dis")) {
  400. top.obj.Type = "SubScribeCancel";
  401. top.obj.SubParmer = "-1";
  402. top.obj.SubType = "0"; //根据工号取消订阅坐席状态
  403. top.Send();
  404. top.obj.SubType = "1"; //根据工号取消订阅线路状态
  405. top.Send();
  406. clearInterval(zxsx);
  407. clearInterval(sssx);
  408. }
  409. }) //班长操作坐席
  410. $(".zx-box_ul b").click(function() {
  411. if(!$(this).hasClass("dis")) {
  412. // alert(1)
  413. var wn = $(".zx-box_ul").attr('zxtp-code');
  414. var type = $(this).attr("item");
  415. // console.log(type);
  416. top.obj.Type = type;
  417. top.obj.AgentID = $.cookie("zx_user"); //操作人工号
  418. top.obj.AgentExten = $.cookie("extno"); //操作人分机号
  419. top.obj.TargetAgentID = wn * 1; //被操作人工号
  420. top.Send();
  421. }
  422. });
  423. localStorage.setItem("userss", "");
  424. }
  425. ) //坐席表格
  426. var userss = [];
  427. function Ajax(jc) {
  428. $.ajax({
  429. type: "get",
  430. url: huayi.config.callcenter_url + "SeatMonitoring/GetAgentList",
  431. async: true,
  432. dataType: 'json',
  433. data: {
  434. "token": $.cookie("token")
  435. },
  436. success: function(data) {
  437. var user = data.data;
  438. $(".tjcount li").eq(0).find("b").text(user.length);
  439. if(localStorage.getItem("userss")) {
  440. userss = JSON.parse(localStorage.getItem("userss"));
  441. }
  442. if(data.state.toLowerCase() == 'success') {
  443. $("#table1 tbody").html('');
  444. $(user).each(function(i, n) {
  445. var bl = 0;
  446. var ss = 0;
  447. var sts = 'lx';
  448. $(userss).each(function(j, m) {
  449. if(m.code == n.UserCode) {
  450. bl = 1;
  451. ss = m.s;
  452. sts = m.sts;
  453. }
  454. })
  455. if(bl == 0) {
  456. var users = {
  457. code: n.UserCode,
  458. s: 0,
  459. sts: 'lx'
  460. };
  461. userss.push(users);
  462. }
  463. if(localStorage.getItem(n.UserCode + "telnum")) {
  464. var telNum = localStorage.getItem(n.UserCode + "telnum");
  465. var beiTelnum = localStorage.getItem(n.UserCode + "beiTelnum");
  466. } else {
  467. var telNum = '';
  468. var beiTelnum = '';
  469. }
  470. var html = '<tr>' + '<td><input type="radio" name="seatSelect" zx_item="0" xl_item="0" user-code="' + n.UserCode + '" /></td>' //序号
  471. +
  472. '<td class=" ' + n.UserCode + 'telnum">' + telNum + '</td>' //主叫号码
  473. +
  474. '<td class=" ' + n.UserCode + 'beiTelnum">' + beiTelnum + '</td>' //被叫号码
  475. +
  476. '<td class=" ' + n.UserCode + 'state"><i class="' + sts + '" zx_item="0" xl_item="0"></i></td>' //状态
  477. +
  478. '<td class=" ' + n.UserCode + 'time" ></td>' //实时时间
  479. +
  480. '<td>' + n.UserCode + '</td>' //工号
  481. +
  482. '<td>' + n.UserName + '</td>' //姓名
  483. +
  484. '<td>' + n.ExtNumber + '</td>' //分机号
  485. +
  486. '<td class=" ' + n.UserCode + 'kxTime">' + turnMin(n.free) + '</td>' //空闲时长
  487. +
  488. '<td class=" ' + n.UserCode + 'zmTime">' + turnMin(n.repose) + '</td>' //置忙时长
  489. +
  490. '<td class=" ' + n.UserCode + 'thTime" >' + turnMin(n.talking) + '</td>' //通话时长
  491. +
  492. '<td class=" ' + n.UserCode + 'hhTime">' + turnMin(n.postprocess) + '</td>' //话后处理时长
  493. +
  494. '<td>' + n.reposeconut + '</td>' //置忙次数
  495. +
  496. '<td>' + n.logcount + '</td>' //登陆次数
  497. +
  498. '<td>' + n.logintime + '</td>' //签入时间
  499. +
  500. '<td>' + turnMin(n.logtimes) + '</td>' //当前签入时长
  501. +
  502. '<td>' + n.callincount + '</td>' //呼入量
  503. +
  504. '<td>' + n.calloutcount + '</td>' //呼出量
  505. +
  506. '</tr>';
  507. $(html).appendTo($("#table1 tbody"));
  508. intervalTime(ss, $('.' + n.UserCode + 'time'));
  509. $('input:radio[name="seatSelect"]').click(function(event) {
  510. event.stopPropagation();
  511. if(top.obj.AgentID != $(this).attr("user-code")) {
  512. $('.zx-box_ul').attr('zxtp-code', $(this).attr("user-code"));
  513. $(".zx-box_ul").show();
  514. UpdateSelState($(this).parent().siblings().find("i").attr("zx_item"), $(this).parent().siblings().find("i").attr("xl_item"));
  515. } else {
  516. layer.confirm('不能操作自己的坐席!', {
  517. btn: ['确定']
  518. });
  519. $(this).prop("checked", false);
  520. }
  521. });
  522. if(jc) {
  523. top.obj.Type = "SubScribe";
  524. top.obj.SubParmer = n.UserCode * 1;
  525. top.obj.SubType = "0"; //根据工号订阅坐席状态
  526. top.Send();
  527. top.obj.SubType = "1"; //根据工号订阅线路状态
  528. top.Send();
  529. }
  530. })
  531. localStorage.setItem("userss", JSON.stringify(userss));
  532. }
  533. }
  534. });
  535. }
  536. //开始监测成功后
  537. function Start() {
  538. $(".kqc").addClass("dis");
  539. $(".jqc").removeClass("dis");
  540. }
  541. //停止监测成功后
  542. function Stop() {
  543. $(".jqc").addClass("dis");
  544. $(".kqc").removeClass("dis");
  545. $("#table1 i").removeClass().addClass("lx").attr("zx_item", "0").attr("xl_item", "0");
  546. }
  547. //计算数量
  548. var tj;
  549. function tjcount() {
  550. tj = {
  551. hr: 0,
  552. tx: 0,
  553. kx: 0,
  554. lx: 0,
  555. zm: 0,
  556. dl: 0
  557. };
  558. $('#table1 tbody i').each(function() {
  559. var zx = $(this).attr("zx_item");
  560. var xl = $(this).attr("xl_item");
  561. switch(zx) {
  562. case "0":
  563. tj.lx = tj.lx + 1;
  564. break; //离线
  565. case "5":
  566. tj.zm = tj.zm + 1;
  567. break; //小休
  568. }
  569. switch(xl) {
  570. case "5":
  571. tj.hr = tj.hr + 1;
  572. break; //来电振铃
  573. case "6":
  574. tj.tx = tj.tx + 1;
  575. break; //通话中
  576. }
  577. if(zx == '2' && xl == '1') {
  578. tj.kx = tj.kx + 1;
  579. } //空闲
  580. if(zx != '0' && zx != '7' && xl != '0' && xl != '9') {
  581. tj.dl = tj.dl + 1;
  582. }
  583. }) // $(".tjcount li").eq(0).find("b").text(tj.dl);
  584. $(".tjcount li").eq(1).find("b").text(tj.lx);
  585. $(".tjcount li").eq(2).find("b").text(tj.kx);
  586. $(".tjcount li").eq(3).find("b").text(tj.tx);
  587. $(".tjcount li").eq(4).find("b").text(tj.hr);
  588. $(".tjcount li").eq(5).find("b").text(tj.zm);
  589. }
  590. //坐席状态
  591. function UpdateAgentState(WorkNumber, State) {
  592. var sts = "";
  593. switch(State) {
  594. case "0":
  595. sts = "lx";
  596. break; //离线
  597. case "1":
  598. break; //登录中
  599. case "2":
  600. sts = "kx";
  601. break; //空闲
  602. case "3":
  603. sts = "th";
  604. break; //通话中
  605. case "4":
  606. sts = "hh";
  607. break; //话后处理中
  608. case "5":
  609. sts = "ml";
  610. break; //小休
  611. case "6":
  612. sts = "zl";
  613. break; //被请求
  614. case "7":
  615. sts = "lx";
  616. break; //注销
  617. }
  618. if(WorkNumber * 1 < 10) {
  619. WorkNumber = '0' + WorkNumber;
  620. }
  621. if(localStorage.getItem("userss")) {
  622. userss = JSON.parse(localStorage.getItem("userss"));
  623. $(userss).each(function(j, m) {
  624. if(m.code == WorkNumber) {
  625. m.s = 0;
  626. m.sts = sts;
  627. }
  628. var ele = $('.' + m.code + 'time');
  629. intervalTime(m.s, ele);
  630. })
  631. localStorage.setItem("userss", JSON.stringify(userss));
  632. }
  633. var ele = $("." + WorkNumber + "state").find("i");
  634. if(sts) {
  635. ele.removeClass().addClass(sts);
  636. }
  637. ele.attr("zx_item", State);
  638. if($(".zx-box_ul").attr('zxtp-code') == WorkNumber) {
  639. UpdateSelState(State, ele.attr("xl_item"))
  640. }
  641. tjcount();
  642. }
  643. //线路状态
  644. function UpdateLineState(WorkNumber, State) {
  645. // console.log("线路状态"+WorkNumber+","+State);
  646. var sts = "";
  647. var arr = [];
  648. if(State.indexOf("|") != -1) {
  649. arr = State.split("|");
  650. localStorage.setItem(WorkNumber + "telnum", arr[1]);
  651. localStorage.setItem(WorkNumber + "beiTelnum", arr[2]);
  652. // $('.'+WorkNumber+"telnum").html(arr[1])
  653. // $('.'+WorkNumber+"beiTelnum").html(arr[2])
  654. State = arr[0];
  655. if(State == "6") {
  656. sts = "th";
  657. }
  658. }
  659. switch(State) {
  660. case "0":
  661. sts = "lx";
  662. break; //分机不可用
  663. //case "1": sts = "kx"; break;//空闲
  664. case "2":
  665. sts = "ml";
  666. break; //摘机等待拨号
  667. case "3":
  668. sts = "ml";
  669. break; //正在拨号
  670. case "4":
  671. sts = "hc";
  672. break; //呼出振铃
  673. case "5":
  674. sts = "zl";
  675. break; //来电振铃
  676. case "6":
  677. sts = "th";
  678. break; //通话中
  679. case "7":
  680. sts = "ml";
  681. break; //播放忙音中
  682. case "8":
  683. sts = "th";
  684. break; //通话保持中
  685. case "9":
  686. break; //话机移除
  687. case "10":
  688. break; //保持/空闲
  689. case "11":
  690. break; //保持/摘机等待拨号
  691. case "12":
  692. break; //保持/正在拨号
  693. case "13":
  694. break; //保持/呼出振铃
  695. case "14":
  696. break; //保持/通话中
  697. }
  698. if(WorkNumber * 1 < 10) {
  699. WorkNumber = '0' + WorkNumber;
  700. }
  701. if(sts) {
  702. if(localStorage.getItem("userss")) {
  703. userss = JSON.parse(localStorage.getItem("userss"));
  704. $(userss).each(function(j, m) {
  705. if(m.code == WorkNumber) {
  706. m.s = 0;
  707. m.sts = sts;
  708. }
  709. var ele = $('.' + m.code + 'time');
  710. intervalTime(m.s, ele);
  711. })
  712. localStorage.setItem("userss", JSON.stringify(userss));
  713. }
  714. }
  715. var ele = $("." + WorkNumber + "state").find("i");
  716. if(sts) {
  717. ele.removeClass().addClass(sts);
  718. }
  719. ele.attr("xl_item", State);
  720. if($(".zx-box_ul").attr('zxtp-code') == WorkNumber) {
  721. UpdateSelState(ele.attr("zx_item"), State)
  722. }
  723. tjcount();
  724. }
  725. //更新选中坐席的可操作
  726. function UpdateSelState(zxState, xlState) {
  727. // console.log("更新选中坐席的可操作:"+zxState+"第二个:"+xlState);
  728. $(".zx-box_ul b").addClass("dis");
  729. if(zxState == '5' && xlState == '1') {
  730. $(".zx-box_ul .zx").removeClass("dis");
  731. }
  732. if(zxState == '3' && xlState == '6') {
  733. $(".zx-box_ul .jt").removeClass("dis");
  734. $(".zx-box_ul .qca").removeClass("dis");
  735. $(".zx-box_ul .qc").removeClass("dis");
  736. $(".zx-box_ul .lj").removeClass("dis");
  737. }
  738. if(zxState == '2' && xlState == '5') {
  739. $(".zx-box_ul .dj").removeClass("dis");
  740. }
  741. }
  742. var flag;
  743. function intervalTime(t, ele) {
  744. var hour = Math.floor(t / 60 / 60);
  745. var minute = Math.floor(t / 60 % 60);
  746. var second = Math.floor(t % 60);
  747. if(hour < 10) {
  748. hour = "0" + hour;
  749. }
  750. if(minute < 10) {
  751. minute = "0" + minute;
  752. }
  753. if(second < 10) {
  754. second = "0" + second;
  755. }
  756. $(ele).text(hour + ":" + minute + ":" + second);
  757. };
  758. function addTime() {
  759. if(localStorage.getItem("userss")) {
  760. userss = JSON.parse(localStorage.getItem("userss"));
  761. $(userss).each(function(j, m) {
  762. m.s = m.s * 1 + 1;
  763. var ele = $('.' + m.code + 'time');
  764. intervalTime(m.s, ele);
  765. })
  766. localStorage.setItem("userss", JSON.stringify(userss));
  767. }
  768. }
  769. function turnMin(t) {
  770. hour = Math.floor(t / 60 / 60);
  771. minute = Math.floor(t / 60 % 60);
  772. second = Math.floor(t % 60);
  773. if(hour < 10) {
  774. hour = "0" + hour;
  775. }
  776. if(minute < 10) {
  777. minute = "0" + minute;
  778. }
  779. if(second < 10) {
  780. second = "0" + second;
  781. }
  782. return hour + ":" + minute + ":" + second;
  783. };
  784. </script>
  785. </body>
  786. </html>