鹤壁电销版 自用

default.aspx 48KB

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