鹤壁电销版 自用

default.aspx 51KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="HySoft.BaseCallCenter.Web._default" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <title>华谊科技呼叫中心管理系统</title>
  6. <link href="../scripts/ui/skins/Aqua/css/ligerui-all.css" rel="stylesheet" type="text/css" />
  7. <script src="../scripts/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
  8. <script src="../scripts/ui/js/ligerBuild.min.js" type="text/javascript"></script>
  9. <script src="../scripts/function.js" type="text/javascript"></script>
  10. <script src="../scripts/ui/js/ligerui.min.js" type="text/javascript"></script>
  11. <link href="../images/style.css" rel="stylesheet" type="text/css" />
  12. <script type="text/javascript" src="seatformjs/ocxopt.js"></script>
  13. <script src="seatformjs/formopt.js" type="text/javascript"></script>
  14. <script type="text/javascript">
  15. /*
  16. 操作ligerui控件 左侧菜单及tab页面操作
  17. */
  18. //框架操作
  19. var tab = null;
  20. var accordion = null;
  21. var tree = null;
  22. $(function () {
  23. //页面布局
  24. $("#global_layout").ligerLayout({ leftWidth: 180, height: '100%', topHeight: 65, bottomHeight: 24, allowTopResize: false, allowBottomResize: false, allowLeftCollapse: true, onHeightChanged: f_heightChanged });
  25. var height = $(".l-layout-center").height();
  26. //Tab
  27. $("#framecenter").ligerTab({ height: height });
  28. //左边导航面板
  29. $("#global_left_nav").ligerAccordion({ height: height - 25, speed: null });
  30. $(".l-link").hover(function () {
  31. $(this).addClass("l-link-over");
  32. }, function () {
  33. $(this).removeClass("l-link-over");
  34. });
  35. //快捷菜单
  36. var menu = $.ligerMenu({
  37. width: 120, items:
  38. [
  39. { text: '管理首页', click: itemclick },
  40. { text: '修改密码', click: itemclick },
  41. { line: true },
  42. { text: '关闭菜单', click: itemclick }
  43. ]
  44. });
  45. $("#tab-tools-nav").bind("click", function () {
  46. var offset = $(this).offset(); //取得事件对象的位置
  47. menu.show({ top: offset.top + 27, left: offset.left - 120 });
  48. return false;
  49. });
  50. InitTree();
  51. tab = $("#framecenter").ligerGetTabManager();
  52. accordion = $("#global_left_nav").ligerGetAccordionManager();
  53. $("#pageloading_bg,#pageloading").hide();
  54. });
  55. function InitTree() {
  56. var HdModuleFunIdCount = $("#HdModuleFunIdCount").val();
  57. for (var i = 1; i <= HdModuleFunIdCount; i++) {
  58. $("#tree" + i.toString() + "").ligerTree({
  59. checkbox: false,
  60. nodeWidth: 135,
  61. onClick: function (node) {
  62. if (!node.data.url) return;
  63. var tabid = $(node.target).attr("tabid");
  64. if (!tabid) {
  65. tabid = new Date().getTime();
  66. $(node.target).attr("tabid", tabid)
  67. }
  68. f_addTab("frame_" + node.data.id, node.data.text, node.data.url);
  69. // if (node.data.id == "zxjkgl") {
  70. // f_addTab("zxjkgl", node.data.text, node.data.url);
  71. // }
  72. // else {
  73. // f_addTab(tabid, node.data.text, node.data.url);
  74. // }
  75. }
  76. });
  77. }
  78. }
  79. //快捷菜单回调函数
  80. function itemclick(item) {
  81. switch (item.text) {
  82. case "管理首页":
  83. f_addTab('home', '管理中心', 'center.aspx');
  84. break;
  85. case "快捷导航":
  86. //调用函数
  87. break;
  88. case "修改密码":
  89. ChangePwd();
  90. break;
  91. default:
  92. //关闭窗口
  93. break;
  94. }
  95. }
  96. function ChangePwd() {
  97. //testfun();
  98. //f_addTab('manager_pwd', '修改密码', 'rightsmanage/userpsdedit.aspx');
  99. var ResetPass = document.getElementById("hfUserId").value;
  100. OpenWindowShow('sysmanage/userResetPasswod.aspx?ResetPass=' + ResetPass, '修改密码', 500, 380);
  101. }
  102. function OpenWindowShow(Url, Title, Width, Height) {
  103. $.ligerDialog.open({
  104. title: Title, url: Url, height: Height, width: Width, isResize: true, modal: true, buttons: [
  105. { text: '关闭', onclick: function (item, dialog) { dialog.close(); } }
  106. ], isResize: true
  107. });
  108. }
  109. function f_heightChanged(options) {
  110. if (tab)
  111. tab.addHeight(options.diff);
  112. if (accordion && options.middleHeight - 24 > 0)
  113. accordion.setHeight(options.middleHeight - 24);
  114. }
  115. //添加Tab,可传3个参数
  116. function f_addTab(tabid, text, url, iconcss) {
  117. if (!tab.isTabItemExist(tabid)) {
  118. if (arguments.length == 4) {
  119. tab.addTabItem({ tabid: tabid, text: text, url: url, iconcss: iconcss });
  120. } else {
  121. tab.addTabItem({ tabid: tabid, text: text, url: url });
  122. }
  123. }
  124. else {
  125. tab.selectTabItem(tabid);
  126. }
  127. }
  128. //删除Tab,通过tabid
  129. function f_removeTab(tabid) {
  130. if (tab.isTabItemExist(tabid)) {
  131. tab.removeTabItem(tabid);
  132. }
  133. }
  134. //提示Dialog并关闭Tab
  135. function f_errorTab(tit, msg) {
  136. $.ligerDialog.open({
  137. isDrag: false,
  138. allowClose: false,
  139. type: 'error',
  140. title: tit,
  141. content: msg,
  142. buttons: [{
  143. text: '确定',
  144. onclick: function (item, dialog, index) {
  145. //查找当前iframe名称
  146. var itemiframe = "#framecenter .l-tab-content .l-tab-content-item";
  147. var curriframe = "";
  148. $(itemiframe).each(function () {
  149. if ($(this).css("display") != "none") {
  150. curriframe = $(this).attr("tabid");
  151. return false;
  152. }
  153. });
  154. if (curriframe != "") {
  155. tab.removeTabItem(curriframe);
  156. dialog.close();
  157. }
  158. }
  159. }]
  160. });
  161. }
  162. function userExit() {
  163. $.ligerDialog.confirm("确定要退出吗?", "提示信息", function (result) {
  164. if (result) {
  165. try {
  166. if (document.getElementById("txtIsAgent").value == "true") {
  167. OCX_AgentLogOut();
  168. }
  169. }
  170. catch (e) {
  171. }
  172. __doPostBack('lbtnExit', '');
  173. }
  174. });
  175. }
  176. document.oncontextmenu = function (e) { return false; }
  177. </script>
  178. <script type="text/javascript">
  179. //图片操作
  180. //切换头部文件
  181. function backImgOver(num, obj) {
  182. var st = obj.attributes["ostate"].value;
  183. if (st == "1") {
  184. obj.src = "../images/totle/" + num + "1.png";
  185. }
  186. else {
  187. obj.src = "../images/totle/" + num + "3.png";
  188. }
  189. }
  190. function backOutImg(num, obj) {
  191. var st = obj.attributes["ostate"].value;
  192. if (st == "1") {
  193. obj.src = "../images/totle/" + num + "2.png";
  194. }
  195. else {
  196. obj.src = "../images/totle/" + num + "3.png";
  197. }
  198. }
  199. function setLinkStatus(str) {
  200. var imgServerState = document.getElementById("imgServerState");
  201. if (str == "True") {
  202. imgServerState.src = "../images/server1.png";
  203. imgServerState.alt = "签入";
  204. ServerResInfo("服务签入");
  205. }
  206. else {
  207. imgServerState.src = "../images/server0.png";
  208. imgServerState.alt = "未签入";
  209. ServerResInfo("服务未签入");
  210. //AutographJoin();
  211. }
  212. }
  213. function setAgentStatus(str) {
  214. var imgAgentState = document.getElementById("imgAgentState");
  215. switch (str) {
  216. case "离席":
  217. imgAgentState.src = "../images/zx2.png";
  218. imgAgentState.alt = "未登录";
  219. ServerResInfo("坐席未登录");
  220. break;
  221. case "空闲":
  222. imgAgentState.src = "../images/zx1.png";
  223. imgAgentState.alt = "空闲";
  224. ServerResInfo("坐席空闲");
  225. break;
  226. case "忙":
  227. imgAgentState.src = "../images/zx3.png";
  228. imgAgentState.alt = "忙";
  229. ServerResInfo("坐席忙");
  230. break;
  231. case "业务处理":
  232. imgAgentState.src = "../images/zx4.png";
  233. imgAgentState.alt = "业务处理";
  234. ServerResInfo("业务处理");
  235. break;
  236. }
  237. }
  238. function ServerResInfo(res) {
  239. //document.getElementById("spanServerRes").innerHTML = res;
  240. }
  241. //变换图标 挂断转满意度 .外乎。置忙。置闲。三方通话。转移。保持。接回
  242. function Form_setWinfromenble(begd, beMakeCall, bezm, bezx, behy, beTransfer, bebc, bejh, beqr, beqc) {
  243. if (begd == "True") {
  244. OptByName("gd");
  245. }
  246. else {
  247. OptNullByName("gd");
  248. }
  249. if (beMakeCall == "True") {
  250. OptByName("wh");
  251. }
  252. else {
  253. OptNullByName("wh");
  254. }
  255. if (bezm == "True") {//示忙可以用
  256. OptByName("zm");
  257. }
  258. else {
  259. OptNullByName("zm");
  260. }
  261. if (bezx == "True") {//示闲可以用
  262. OptByName("zx");
  263. }
  264. else {
  265. OptNullByName("zx");
  266. }
  267. if (behy == "True") {
  268. OptByName("dfth");
  269. }
  270. else {
  271. OptNullByName("dfth");
  272. }
  273. if (beTransfer == "True") {
  274. OptByName("zy");
  275. }
  276. else {
  277. OptNullByName("zy");
  278. }
  279. if (bebc == "True") {
  280. OptByName("bc");
  281. }
  282. else {
  283. OptNullByName("bc");
  284. }
  285. if (bejh == "True") {
  286. OptByName("jh");
  287. }
  288. else {
  289. OptNullByName("jh");
  290. }
  291. if (beqr == "True") {
  292. OptByName("qr");
  293. }
  294. else {
  295. OptNullByName("qr");
  296. }
  297. if (beqc == "True") {
  298. OptByName("qc");
  299. }
  300. else {
  301. OptNullByName("qc");
  302. }
  303. }
  304. function OptNull() {
  305. document.getElementById("gd").src = "../images/totle/gd3.png";
  306. document.getElementById("wh").src = "../images/totle/wh3.png";
  307. document.getElementById("zm").src = "../images/totle/zm3.png";
  308. document.getElementById("zx").src = "../images/totle/zx3.png";
  309. document.getElementById("dfth").src = "../images/totle/dfth3.png";
  310. document.getElementById("zy").src = "../images/totle/zy3.png";
  311. document.getElementById("bc").src = "../images/totle/bc3.png";
  312. document.getElementById("jh").src = "../images/totle/jh3.png";
  313. document.getElementById("qr").src = "../images/totle/qr3.png";
  314. document.getElementById("qc").src = "../images/totle/qc3.png";
  315. document.getElementById("gd").src = 0;
  316. document.getElementById("wh").src = 0;
  317. document.getElementById("zm").src = 0;
  318. document.getElementById("zx").src = 0;
  319. document.getElementById("dfth").src = 0;
  320. document.getElementById("zy").src = 0;
  321. document.getElementById("bc").src = 0;
  322. document.getElementById("jh").src = 0;
  323. document.getElementById("qr").src = 0;
  324. document.getElementById("qc").src = 0;
  325. document.getElementById("gd").style.cursor = "default";
  326. document.getElementById("wh").style.cursor = "default";
  327. document.getElementById("zm").style.cursor = "default";
  328. document.getElementById("zx").style.cursor = "default";
  329. document.getElementById("dfth").style.cursor = "default";
  330. document.getElementById("zy").style.cursor = "default";
  331. document.getElementById("bc").style.cursor = "default";
  332. document.getElementById("jh").style.cursor = "default";
  333. document.getElementById("qr").style.cursor = "default";
  334. document.getElementById("qc").style.cursor = "default";
  335. }
  336. function OptNullByName(name) {
  337. var obj = document.getElementById(name);
  338. obj.src = "../images/totle/" + name + "3.png";
  339. obj.attributes["ostate"].value = 0;
  340. //obj.ostate = 0;
  341. obj.style.cursor = "default";
  342. }
  343. function OptByName(name) {
  344. var obj = document.getElementById(name);
  345. obj.src = "../images/totle/" + name + "2.png";
  346. obj.attributes["ostate"].value = 1;
  347. //obj.ostate = 1;
  348. obj.style.cursor = "hand";
  349. }
  350. </script>
  351. <script type="text/javascript">
  352. ///转移
  353. function PhoneCallZY(tel) {
  354. try {
  355. var callinphone = document.getElementById("forZYnumber").value;
  356. //alert(tel+"----"+callinphone);
  357. OCX_TransferToPhone(tel, callinphone);
  358. }
  359. catch (e) {
  360. $.ligerDialog.error(e.message);
  361. }
  362. }
  363. ///多方通话
  364. function PhoneCallDFTH(tel) {
  365. try {
  366. var callinphone = document.getElementById("forZYnumber").value;
  367. //alert(tel+"----"+callinphone);
  368. OCX_ThirdParty(tel, callinphone);
  369. }
  370. catch (e) {
  371. $.ligerDialog.error(e.message);
  372. }
  373. }
  374. ///工单接单时候调用的外呼方法
  375. function PhoneCallOutJD(type, tel, workorderid) {
  376. becallout = true;
  377. becallcome = false;
  378. //添加外呼记录
  379. var userid = document.getElementById("txtAgentId").value;
  380. var usercode = document.getElementById("lblAgentCode").innerHTML;
  381. var username = document.getElementById("lblAgentName").innerHTML;
  382. var extnumber = document.getElementById("lblAgentExt").innerHTML;
  383. username = encodeURI(username);
  384. $.ligerDialog.waitting('开始呼叫...');
  385. $.ajax({
  386. type: 'get',
  387. url: '../telmanage/ajax/telrecords.ashx?action=callout&phone=' + tel + "&workorderid=" + workorderid + "&userid=" + userid + "&usercode=" + usercode + "&username=" + username + "&extnumber" + extnumber,
  388. dataType: 'html',
  389. success: function (res) {
  390. try {
  391. var DialIsOK = false;
  392. var arr = res.split('|');
  393. document.getElementById("CallHjbh").value = arr[2];
  394. //成功执行外呼叫
  395. if (arr[0] == "1") { //呼叫内部(座席)电话
  396. //2015-04-20
  397. becallout = true;
  398. becallcome = false;
  399. DialIsOK = OCX_CallOut(5, "", arr[1]);
  400. }
  401. else { //呼叫外部电话
  402. DialIsOK = OCX_CallOut(5, "", arr[1]);
  403. }
  404. if (DialIsOK != true) {
  405. $.ligerDialog.error('外呼失败');
  406. }
  407. } catch (e) {
  408. $.ligerDialog.error(e.message);
  409. }
  410. $.ligerDialog.closeWaitting();
  411. }
  412. });
  413. }
  414. ///外呼
  415. function PhoneCallOut(type, tel) {
  416. becallout = true;
  417. becallcome = false;
  418. //添加外呼记录
  419. var userid = document.getElementById("txtAgentId").value;
  420. var usercode = document.getElementById("lblAgentCode").innerHTML;
  421. var username = document.getElementById("lblAgentName").innerHTML;
  422. var extnumber = document.getElementById("lblAgentExt").innerHTML;
  423. username = encodeURI(username);
  424. $.ligerDialog.waitting('开始呼叫...');
  425. $.ajax({
  426. type: 'get',
  427. url: '../telmanage/ajax/telrecords.ashx?action=callout&phone=' + tel + "&userid=" + userid + "&usercode=" + usercode + "&username=" + username + "&extnumber" + extnumber,
  428. dataType: 'html',
  429. success: function (res) {
  430. try {
  431. var DialIsOK = false;
  432. var arr = res.split('|');
  433. document.getElementById("CallHjbh").value = arr[2];
  434. //成功执行外呼叫
  435. if (arr[0] == "1") { //呼叫内部(座席)电话
  436. //2015-04-20
  437. becallout = true;
  438. becallcome = false;
  439. DialIsOK = OCX_CallOut(5, "", arr[1]);
  440. }
  441. else { //呼叫外部电话
  442. DialIsOK = OCX_CallOut(5, "", arr[1]);
  443. }
  444. if (DialIsOK != true) {
  445. $.ligerDialog.error('外呼失败');
  446. }
  447. } catch (e) {
  448. $.ligerDialog.error(e.message);
  449. }
  450. $.ligerDialog.closeWaitting();
  451. }
  452. });
  453. }
  454. var hfcallstate = false;
  455. var outtype = "";
  456. function SetCallState(state) {
  457. hfcallstate = state;
  458. }
  459. function GetCallOutHFRes() {
  460. if (hfcallstate) {
  461. hfcallstate = false;
  462. return true;
  463. }
  464. else {
  465. return false;
  466. }
  467. }
  468. ///外呼
  469. function PhoneCallOutHF(type, tel, hfid) {
  470. becallout = true;
  471. becallcome = false;
  472. hfcallstate = false;
  473. outtype = "hf";
  474. //添加外呼记录
  475. var userid = document.getElementById("txtAgentId").value;
  476. var usercode = document.getElementById("lblAgentCode").innerHTML;
  477. var username = document.getElementById("lblAgentName").innerHTML;
  478. var extnumber = document.getElementById("lblAgentExt").innerHTML;
  479. var timeno = new Date().getTime();
  480. username = encodeURI(username);
  481. $.ligerDialog.waitting('开始呼叫...');
  482. $.ajax({
  483. type: 'get',
  484. url: '../telmanage/ajax/telrecords.ashx?action=callouthf&hfid=' + hfid + '&phone=' + tel + "&userid=" + userid + "&usercode=" + usercode + "&username=" + username + "&extnumber" + extnumber + "&timeno=" + timeno,
  485. dataType: 'html',
  486. success: function (res) {
  487. try {
  488. var DialIsOK = false;
  489. var arr = res.split('|');
  490. document.getElementById("CallHjbh").value = arr[2];
  491. //成功执行外呼叫
  492. if (arr[0] == "1") { //呼叫内部(座席)电话
  493. //2015-04-20
  494. becallout = true;
  495. becallcome = false;
  496. DialIsOK = OCX_CallOut(5, "", arr[1]);
  497. }
  498. else { //呼叫外部电话
  499. DialIsOK = OCX_CallOut(5, "", arr[1]);
  500. }
  501. if (DialIsOK != true) {
  502. $.ligerDialog.error('外呼失败');
  503. }
  504. } catch (e) {
  505. $.ligerDialog.error(e.message);
  506. }
  507. $.ligerDialog.closeWaitting();
  508. }
  509. });
  510. }
  511. function OpenWindowShow1(Url, Title, Width, Height) {
  512. $.ligerDialog.open({
  513. title: Title, url: Url, height: Height, width: Width, isResize: true, modal: true, buttons: [
  514. { text: '关闭', onclick: function (item, dialog) { dialog.close(); AgentFree(); } }
  515. ], isResize: true
  516. });
  517. }
  518. function OptClick(name) {
  519. var obj = document.getElementById(name);
  520. if (obj.attributes["ostate"].value != 0) {
  521. switch (name) {
  522. case "gd":
  523. button_ReleaseAnswer();
  524. //挂断
  525. break;
  526. case "wh":
  527. //外呼先示忙
  528. //AgentBusy();
  529. //otype 1外呼 2转移 3多方通话
  530. OpenWindowShow1('telmanage/calloutopt.aspx?otype=1', '电话外呼', 800, 500);
  531. break;
  532. case "zm":
  533. //示忙
  534. AgentBusy();
  535. break;
  536. case "zx":
  537. AgentFree();
  538. break;
  539. case "dfth":
  540. //多方会话
  541. OpenWindowShow1('telmanage/calloutopt.aspx?otype=3', '多方通话', 800, 500);
  542. break;
  543. case "zy":
  544. //转移
  545. OpenWindowShow1('telmanage/calloutopt.aspx?otype=2', '电话转移', 800, 500);
  546. break;
  547. case "bc":
  548. //保持
  549. button_KeepCall(); //保持方法
  550. break;
  551. case "jh":
  552. //接回
  553. button_GetKeepCall();
  554. break;
  555. case "qr":
  556. //签入
  557. button_QRCall();
  558. break;
  559. case "qc":
  560. //签出
  561. button_QCCall();
  562. break;
  563. }
  564. }
  565. }
  566. //签入
  567. function button_QRCall() {
  568. Init();
  569. }
  570. //签出
  571. function button_QCCall() {
  572. try {
  573. var result = OCX_AgentLogOut();
  574. }
  575. catch (e) {
  576. document.getElementById("spanServerRes").innerHTML = e.message;
  577. }
  578. }
  579. //转移
  580. function ZYhj(callnumber) {
  581. var zyzj = document.getElementById("forZYnumber").value;
  582. if (zyzj != "") {
  583. Form_setWinfromenble("false", "false", "false", "false", "false", "false", "false", "false", "false", "false");
  584. }
  585. else {
  586. alert("转移失败!");
  587. }
  588. }
  589. //释放呼叫 2.1.8
  590. function button_ReleaseAnswer() {//挂机
  591. try {
  592. //MydTransToIVR();
  593. }
  594. catch (e) { }
  595. try {
  596. var rtn = OCX_Hangup();
  597. }
  598. catch (e) { }
  599. }
  600. //满意度
  601. function MydTransToIVR() {
  602. var rtn = OCX_TransferToIVR("8897", "");
  603. }
  604. //座席示忙 2.1.12
  605. function AgentBusy() {
  606. //将座席状态设置为忙态。
  607. var rtn = OCX_SetBusy();
  608. //2014-10-22
  609. becallout = true;
  610. becallcome = false;
  611. }
  612. //座席示闲 2.1.13
  613. function AgentFree() {
  614. //将座席状态设置为闲态。
  615. var rtn = OCX_SetFree();
  616. //2014-10-22
  617. becallout = false;
  618. becallcome = true;
  619. return rtn;
  620. }
  621. //保持呼叫 2.1.17
  622. function button_KeepCall() {
  623. //该方法把座席正在通话的普通语音呼叫保持(只对语音呼叫有效)。
  624. var rtn = OCX_Hold();
  625. }
  626. //取保持 2.1.18
  627. function button_GetKeepCall() {
  628. //查询座席当前保持的所有语音呼叫
  629. var rtn = OCX_UnHold();
  630. }
  631. function buttonCallNew(telNum) {
  632. becallout = true;
  633. becallcome = false;
  634. var strHjbhout = AjaxPost("../WinIVR/GetAjaxPageInf.aspx?PgType=3&tel=" + telNum); //呼叫编号
  635. document.getElementById("CallHjbh").value = strHjbhout;
  636. //判断电话是本地还是外地的
  637. var callNumberNew = "";
  638. var res = _framepage_headframe.getPhone(telNum);
  639. if (res != "") {
  640. callNumberNew = res.value;
  641. }
  642. button_CallOut(callNumberNew, strHjbhout);
  643. }
  644. //外呼事件 2.1.7
  645. function button_CallOut(callnumber, hjbh) {
  646. var res = true;
  647. var cssok = 0;
  648. cssok = OCX_CallOut(5, "", callnumber);
  649. if (cssok == "0") {
  650. res = true;
  651. }
  652. else {
  653. res = false;
  654. }
  655. return res;
  656. }
  657. //修改密码
  658. function updatePwd() {
  659. window.showModalDialog('../SysSettings/UserChangePassword.aspx', window, 'dialogWidth:350px;dialogHeight:200px;status:off;help:no;scrollbas:no;');
  660. }
  661. //重新登录
  662. function resetlogin() {
  663. var bol = window.confirm("确定要重新登录吗?");
  664. if (bol) {
  665. if (document.getElementById("txtIsAgent").value == "true") {
  666. //button_QCCallNew();
  667. }
  668. window.open("../SignIn.aspx", "_top");
  669. }
  670. }
  671. //退出方法
  672. function relogout() {
  673. var bol = window.confirm("确定要退出登录吗?");
  674. if (bol) {
  675. AjaxPost("../WinIVR/GetAjaxPageInf.aspx?PgType=14");
  676. _framepage_headframe.UpdateLoginOutInfo(document.getElementById("hfUserId").value);
  677. top.close();
  678. }
  679. }
  680. </script>
  681. <script type="text/javascript">
  682. //电话操作
  683. var becallout = false; //呼出
  684. var becallcome = true; //来电
  685. var CallOutRecordIsWrite = false; //呼出记录是否已写入
  686. //
  687. var Phone = document.getElementById("Phone");
  688. //测试方法
  689. function testfun() {
  690. fun();
  691. //1000 * 60 * 5 是五分钟
  692. setInterval(fun, 1000 * 15);
  693. }
  694. var i = 0;
  695. function fun() {
  696. i++;
  697. if (i > 3)
  698. { return; }
  699. Form_callCommingCaller('13335140729', '1402107209-5226' + i); //13335140729
  700. }
  701. //20150324薛广兴
  702. var oPopup = window.createPopup();
  703. function PopUpNotify() {
  704. var oPopupBody = oPopup.document.body;
  705. var HTMLBody = document.getElementById("emessagecontent").innerHTML;
  706. oPopupBody.innerHTML = HTMLBody;
  707. }
  708. function popupShow() {
  709. oPopup.show(screen.availWidth - 275, screen.availHeight - 161, 267, 160);
  710. }
  711. function popupHide() {
  712. oPopup.hide();
  713. }
  714. var showLong = null; //计时器,弹出框显示多久后关闭
  715. function showMsg() {
  716. var res;
  717. $.ajax({
  718. async: false,
  719. type: "Post",
  720. url: "default.aspx/Get",
  721. //方法传参的写法一定要对,str为形参的名字,str2为第二个形参的名字
  722. data: "{'id':'" + document.getElementById("UserID").value + "'}",
  723. contentType: "application/json; charset=utf-8",
  724. dataType: "json",
  725. success: function (data) {
  726. var pandaun = data.d;
  727. GetMsg_CallBack(pandaun);
  728. },
  729. error: function (err) {
  730. }
  731. });
  732. }
  733. function show() {
  734. showMsg();
  735. //1000 * 60 * 5 是五分钟
  736. setInterval(showMsg, 1000 * 60 * 5);
  737. }
  738. function GetMsg_CallBack(res) {
  739. if (res != null) {
  740. if (res != "0") {
  741. document.getElementById("countspan").innerHTML = "你有" + res + "个工单未处理。";
  742. PopUpNotify();
  743. popupShow();
  744. if (showLong != null) {
  745. clearTimeout(showLong);
  746. }
  747. showLong = setTimeout(popupHide, 1000 * 30);
  748. }
  749. }
  750. res = null;
  751. }
  752. //初始化页面
  753. function Init() {
  754. //show();
  755. var typed = document.getElementById("HdIswin"); //是否是坐席用户
  756. if (typed.value == "true") {
  757. $.ligerDialog.waitting('电话服务连接中...');
  758. $.ajax({
  759. type: 'get',
  760. url: '../telmanage/ajax/telrecords.ashx?action=insertCallLogs&serverip=' + document.getElementById("txtMostlyAddress").value + '&ctiusercode=' + document.getElementById("txtLabourNo").value,
  761. dataType: 'html',
  762. success: function (res) {
  763. InitPhoneBack();
  764. }
  765. });
  766. }
  767. else {
  768. document.getElementById("spanServerRes").innerHTML = "非坐席登录";
  769. }
  770. }
  771. function InitPhoneBack() {
  772. Initialize();
  773. }
  774. function Initialize() {
  775. try {
  776. // alert("ip" + document.getElementById("txtMostlyAddress").value + "服务器类型" + document.getElementById("ServerType").value + "工号" + document.getElementById("txtLabourNo").value + "密码" + document.getElementById("pwd").value + "通讯进程号" + document.getElementById("txtPhoneID").value + "备用ip" + document.getElementById("txtSubordinationAddress").value);
  777. var result = OCX_AgentLogin(document.getElementById("txtMostlyAddress").value, document.getElementById("txtServerPort").value, document.getElementById("txtLabourNo").value, document.getElementById("txtAgentGroup").value, document.getElementById("txtPhoneNum").value);
  778. }
  779. catch (e) {
  780. document.getElementById("spanServerRes").innerHTML = e.message;
  781. }
  782. $.ligerDialog.closeWaitting();
  783. }
  784. </script>
  785. </head>
  786. <body onload="Init();" style="margin: 0px; padding: 0px; overflow: hidden;" scroll="no">
  787. <form id="form1" runat="server">
  788. <!-- 功能模块Id -->
  789. <input id="HdModuleFunIdCount" runat="server" style="display: none;" value="0" /><asp:HiddenField ID="ismonitoring" runat="server" Value="false" />
  790. <asp:HiddenField ID="HdIswin" runat="server" Value="fase" />
  791. <asp:HiddenField ID="UserID" runat="server" Value="fase" />
  792. <asp:HiddenField ID="hfUserId" runat="server" />
  793. <%--(用于初始化用的信息)--%>
  794. <input id="txtMostlyAddress" runat="server" type="hidden" value="192.168.172.50" /><%--(主用CTI服务器IP)--%>
  795. <input id="ServerType" type="hidden" runat="server" value="20" /><%--(服务器类型)--%>
  796. <input id="txtLabourNo" runat="server" type="hidden" value="8011" /><%--<%=Request.Cookies["ID"].Value %>(工号)--%>
  797. <input id="pwd" type="hidden" runat="server" value="000000" /><%--<%=Request.Cookies["ID"].Value %>(密码)--%>
  798. <input id="txtPhoneID" runat="server" type="hidden" value="43" /><%--(通讯进程号)--%>
  799. <input id="txtSubordinationAddress" runat="server" type="hidden" value="192.168.172.50" /><%--(备用CTI服务器IP)--%>
  800. <input id="txtIsAgent" runat="server" style="display: none;" value="" />
  801. <!-- 是否具有话务功能,是否坐席登录 -->
  802. <input id="txtAgentId" runat="server" style="display: none;" value="0" /><!-- 坐席ID -->
  803. <input id="txtAgentName" runat="server" style="display: none;" value="" />
  804. <input id="txtAgentRight" runat="server" style="display: none;" value="" />
  805. <input id="txtAgentGroup" runat="server" style="display: none;" value="10" />
  806. <input id="txtServerPort" runat="server" style="display: none;" value="" />
  807. <!-- 坐席权限 -->
  808. <%--(用于登录的信息)--%>
  809. <input id="SeatType" type="hidden" runat="server" value="4" /><%--<%=Request.Cookies["SkillSet"].Value %>(坐席类型)--%>
  810. <input id="txtPhoneNum" runat="server" type="hidden" value="86010" /><%--<%=Request.Cookies["ExtNum"].Value %>(分机号)--%>
  811. <input id="keepcall" type="hidden" value="" />
  812. <%--(keep号码)--%>
  813. <input id="txtLabourwork" runat="server" type="hidden" value="" /><%--(登录工号)--%>
  814. <input id="passwd" runat="server" type="hidden" value="" /><%--(登录坐席密码)--%>
  815. <input id="hjbh" type="hidden" runat="server" value="" /><%--(外乎呼叫编号)--%>
  816. <input id="CallHjbh" type="hidden" runat="server" value="" /><%--(来电呼叫编号)--%>
  817. <input id="forZYnumber" type="hidden" runat="server" value="" /><%--(用来存储来电号码--%>
  818. <input id="callnum" type="hidden" runat="server" value="" /><%--(来电主叫号码)--%>
  819. <div class="pageloading_bg" id="pageloading_bg">
  820. </div>
  821. <div id="pageloading">
  822. 数据加载中,请稍等...
  823. </div>
  824. <div id="global_layout" class="layout" style="width: 100%">
  825. <!--头部-->
  826. <div position="top">
  827. <div style="width: 100%;" class="header">
  828. <div class="header_box">
  829. <table cellpadding="0" cellspacing="0" border="0" width="100%">
  830. <tr>
  831. <td align="left">
  832. <div style="float: left;">
  833. <a class="logo">Logo</a>
  834. </div>
  835. </td>
  836. <td align="center">
  837. <div style="float: left; padding-top: 5px; font-size: 15pt; color: White; font-weight: bold; padding-left: 10px; padding-left: 10px;"
  838. id="TelToolBar">
  839. <span id="spanTel"><a style="cursor: pointer">
  840. <img id="gd" ostate="0" src="../images/totle/gd3.png" onclick="OptClick('gd')" onmouseout="backOutImg('gd',this)"
  841. onmouseover="backImgOver('gd',this)" /></a> <a style="cursor: pointer; margin-left: 5px">
  842. <img id="wh" ostate="0" src="../images/totle/wh3.png" onclick="OptClick('wh')" onmouseout="backOutImg('wh',this)"
  843. onmouseover="backImgOver('wh',this)" /></a> <a style="cursor: pointer; margin-left: 5px">
  844. <img id="zm" ostate="0" src="../images/totle/zm3.png" onclick="OptClick('zm')" onmouseout="backOutImg('zm',this)"
  845. onmouseover="backImgOver('zm',this)" /></a> <a style="cursor: pointer; margin-left: 5px">
  846. <img id="zx" ostate="0" src="../images/totle/zx3.png" onclick="OptClick('zx')" onmouseout="backOutImg('zx',this)"
  847. onmouseover="backImgOver('zx',this)" /></a> <a style="cursor: pointer; margin-left: 5px">
  848. <img id="dfth" ostate="0" src="../images/totle/dfth3.png" onclick="OptClick('dfth')"
  849. onmouseout="backOutImg('dfth',this)" onmouseover="backImgOver('dfth',this)" /></a>
  850. <a style="cursor: pointer; margin-left: 5px">
  851. <img id="zy" ostate="0" src="../images/totle/zy3.png" onclick="OptClick('zy')" onmouseout="backOutImg('zy',this)"
  852. onmouseover="backImgOver('zy',this)" /></a> <a style="cursor: pointer; margin-left: 5px">
  853. <img id="bc" ostate="0" src="../images/totle/bc3.png" onclick="OptClick('bc')" onmouseout="backOutImg('bc',this)"
  854. onmouseover="backImgOver('bc',this)" />
  855. </a><a style="cursor: pointer; margin-left: 5px">
  856. <img id="jh" ostate="0" src="../images/totle/jh3.png" onclick="OptClick('jh')" onmouseout="backOutImg('jh',this)"
  857. onmouseover="backImgOver('jh',this)" /></a> <a style="cursor: pointer;">
  858. <img id="qr" ostate="0" src="../images/totle/qr3.png" onclick="OptClick('qr')" onmouseout="backOutImg('qr',this)"
  859. onmouseover="backImgOver('qr',this)" /></a> <a style="cursor: pointer;">
  860. <img id="qc" ostate="0" src="../images/totle/qc3.png" onclick="OptClick('qc')" onmouseout="backOutImg('qc',this)"
  861. onmouseover="backImgOver('qc',this)" /></a>
  862. </span>
  863. </div>
  864. </td>
  865. <td align="center">
  866. <div id="autocallplan">
  867. </div>
  868. </td>
  869. <td align="right">
  870. <div class="header_right">
  871. <span class="member"><b id="userInfo" runat="server"></b></span>工号:<asp:Label ID="lblAgentCode"
  872. runat="server" Text="0000" ForeColor="Red"></asp:Label>
  873. &nbsp;&nbsp; 姓名:<asp:Label ID="lblAgentName" runat="server" Text=""></asp:Label>
  874. <%--&nbsp;&nbsp; 分机号:--%><asp:Label ID="lblAgentExt" runat="server" Text="0000" Style="display: none;" ForeColor="Red"></asp:Label>
  875. <br />
  876. <a href="javascript:f_addTab('home','管理中心','center.aspx')">管理中心</a> | <a href="javascript:ChangePwd();">修改密码</a> |
  877. <asp:LinkButton ID="lbtnExit" runat="server" OnClick="lbtnExit_Click"></asp:LinkButton>
  878. <a style="cursor: pointer" onclick="userExit()">安全退出</a>
  879. </div>
  880. </td>
  881. </tr>
  882. </table>
  883. </div>
  884. </div>
  885. </div>
  886. <!--左边-->
  887. <div position="left" title="管理菜单" id="global_left_nav">
  888. <%=GetFunTree() %>
  889. </div>
  890. <div position="center" id="framecenter" toolsid="tab-tools-nav">
  891. <div tabid="home" title="管理中心" iconcss="tab-icon-home" style="height: 300px">
  892. <iframe frameborder="0" name="sysMain" src="center.aspx"></iframe>
  893. </div>
  894. </div>
  895. <div position="bottom" class="footer">
  896. <div style="float: left; padding-left: 8px;" id="TelState">
  897. <div style="float: left; padding-top: 4px;">
  898. 服务状态:
  899. </div>
  900. <div style="float: left; padding-top: 3px;">
  901. <img id="imgServerState" src="/images/server0.png" alt="未连接" />
  902. </div>
  903. <div style="float: left; padding-top: 3px;">
  904. &nbsp;&nbsp;坐席状态:
  905. </div>
  906. <div style="float: left; padding-top: 3px;">
  907. <img id="imgAgentState" src="/images/zx2.png" alt="未登录" />
  908. </div>
  909. <div style="float: left; padding-top: 3px;">
  910. &nbsp;&nbsp;<span id="spanServerRes" style="color: Red"></span>
  911. </div>
  912. </div>
  913. <div class="copyright" style="float: right; width: ">
  914. <span id="spanIVRInTelCount" style="color: Red;"></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copyright
  915. &copy; 华谊科技 All Rights Reserved.
  916. </div>
  917. <%-- 20150324薛广兴--%>
  918. <div id="emessagecontent" style="display: none;">
  919. <div style="width: 250px; height: 150px; font-size: 12px; font-family: '宋体'; background: url(images/kkback.gif) repeat-x 0px 0px; text-align: left; padding: 5px; border: 1px solid #8EC6D8;">
  920. <div style="width: 248px; height: 149px; background: url(images/kk_01.gif) repeat-x 0px 0px; border: 1px solid #C9C9C9; float: left;">
  921. <div style="width: 245px; height: 145px;">
  922. <div style="width: 245px; height: 25px; text-align: left; padding: 5px 0px 0px 5px; margin-bottom: 15px; float: left;">
  923. <ul style="height: 18px; color: #E9B709; display: block; list-style-type: none; padding: 0px; margin: 0px;">
  924. <li style="display: inline; list-style-type: none; padding-right: 5px; font-size: 14px; font-weight: bold; width: 150px; padding: 2px 0px 0px 10px; float: left;">提示</li>
  925. <li style="display: inline; list-style-type: none; padding-right: 5px; font-size: 14px; font-weight: bold; width: 9px; height: 9px; padding-top: 2px; float: right;">
  926. <img src="images/close.gif" style="cursor: hand;" onclick="parent.oPopup.hide();"
  927. alt="关闭" /></li>
  928. </ul>
  929. </div>
  930. <div style="width: 220px; margin: 0px 10px 5px 13px; line-height: 18px;">
  931. <table border="0" cellpadding="0" cellspacing="0" width="230px" height="70px">
  932. <tr>
  933. <td align="center" style="color: Red;">
  934. <b><span id="countspan"></span></b>
  935. </td>
  936. </tr>
  937. </table>
  938. </div>
  939. </div>
  940. </div>
  941. </div>
  942. </div>
  943. <%-- 20150324薛广兴--%>
  944. </div>
  945. </div>
  946. <script type="text/javascript">
  947. function telajaxopt(opturl) {
  948. var r = "";
  949. try {
  950. $.ajax({
  951. type: 'get',
  952. url: opturl,
  953. dataType: 'html',
  954. async: false,
  955. cache: false,
  956. success: function (res) {
  957. r = res;
  958. }
  959. });
  960. }
  961. catch (e) {
  962. $.ligerDialog.error(e.message);
  963. }
  964. return r;
  965. }
  966. //电话操作事件
  967. //话机状态改变事件
  968. function OnPhoneStatusNotify(status) {
  969. try {
  970. var _UserNo = document.getElementById("txtLabourNo").value;
  971. var _CallId = "";
  972. try {
  973. Phone.QueryCallIDOnAgentEx(_UserNo);
  974. for (i = 0; i < Phone.CallIDNum; i++) {
  975. _CallId = Phone.GetCallIDByIdx(i);
  976. // alert(_CallId);
  977. }
  978. Phone.QueryCallInfoEx(_CallId);
  979. }
  980. catch (e) {
  981. }
  982. /*
  983. 0; //振铃
  984. 1; //摘机
  985. 2; //挂机
  986. */
  987. if (status == 0) {
  988. if (becallcome) {
  989. var telphone = Phone.CallInfoEx_Ani;
  990. try {
  991. var userid = document.getElementById("txtAgentId").value;
  992. var usercode = document.getElementById("lblAgentCode").innerHTML;
  993. var username = document.getElementById("lblAgentName").innerHTML;
  994. var extnumber = document.getElementById("lblAgentExt").innerHTML;
  995. //获取呼叫编号
  996. var callid = telajaxopt("../telmanage/ajax/telrecords.ashx?action=getCallIdByPhone&telphone=" + telphone);
  997. document.getElementById("CallHjbh").value = callid;
  998. username = encodeURI(username);
  999. telajaxopt("../telmanage/ajax/telrecords.ashx?action=zhenlingEvent&callid=" + callid + "&userid=" + userid + "&usercode=" + usercode + "&username=" + username + "&extnumber" + extnumber); //更新摘机事件
  1000. } catch (e) {
  1001. }
  1002. Form_callCommingCaller(telphone, callid);
  1003. }
  1004. becallout = false;
  1005. becallcome = true;
  1006. }
  1007. else if (status == 1) {
  1008. //改变按钮图片
  1009. telajaxopt("../telmanage/ajax/telrecords.ashx?action=zhaijiEvent&callid=" + document.getElementById("CallHjbh").value); //更新摘机事件
  1010. Form_setWinfromenble("True", "false", "false", "false", "True", "True", "True", "false", "false", "false");
  1011. setAgentStatus("忙");
  1012. }
  1013. else if (status == 2) {
  1014. telajaxopt("../telmanage/ajax/telrecords.ashx?action=guajiEvent&callid=" + document.getElementById("CallHjbh").value); //更新挂机事件
  1015. Form_setWinfromenble("false", "True", "True", "false", "false", "false", "false", "false", "false", "false");
  1016. setAgentStatus("空闲");
  1017. //2014-10-22
  1018. becallout = false;
  1019. becallcome = true;
  1020. }
  1021. }
  1022. catch (e) {
  1023. $.ligerDialog.error(e.message);
  1024. }
  1025. //document.getElementById("spanServerRes").innerHTML = "状态:" + status;
  1026. }
  1027. //来电弹屏事件
  1028. function Form_callCommingCaller(callerNum, CBnumber) {
  1029. becallout = false;
  1030. becallcome = true;
  1031. document.getElementById("forZYnumber").value = callerNum;
  1032. document.getElementById("callnum").value = callerNum;
  1033. f_addTab('callin_' + CBnumber + callerNum, callerNum, '../calloutmanage/callout.aspx?callid=' + CBnumber + "&phone=" + callerNum);
  1034. }
  1035. //录音成功
  1036. function Form_callComming(callerNum, parth) {
  1037. telajaxopt("../telmanage/ajax/telrecords.ashx?action=luyinEvent&callid=" + document.getElementById("CallHjbh").value + "&path=" + parth); //录音开始事件
  1038. Form_setWinfromenble("True", "false", "false", "false", "True", "True", "True", "false", "false", "false");
  1039. }
  1040. function getCallerNum() {
  1041. var calnum = document.getElementById("callnum").value;
  1042. return calnum;
  1043. }
  1044. function clearCallerNum() {
  1045. document.getElementById("callnum").value = "";
  1046. }
  1047. function getCallHjbh() {
  1048. var cid = document.getElementById("CallHjbh").value;
  1049. return cid;
  1050. }
  1051. function clearCallHjbh() {
  1052. document.getElementById("CallHjbh").value = "";
  1053. }
  1054. $(function () {
  1055. setInterval(function () {
  1056. var userid = document.getElementById("txtAgentId").value;
  1057. $.ajax({
  1058. url: "/calloutmanage/ajax/callplan.ashx?action=getcurrentplan",
  1059. type: "POST",
  1060. data: { userId: userid },
  1061. success: function (res) {
  1062. if (res.length > 0) {
  1063. $("#autocallplan").html("当前正在参与的预测外呼任务为:" + res);
  1064. }
  1065. else {
  1066. $("#autocallplan").html("");
  1067. }
  1068. }
  1069. });
  1070. }, 5000);
  1071. })
  1072. </script>
  1073. <iframe src="iframeocx.aspx" name="iframeocx" frameborder="0" height="0" width="0" style="display: none;"></iframe>
  1074. </form>
  1075. </body>
  1076. </html>