三元财务UI

index.js 26KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916
  1. var isFirstShowTopMsg = true;
  2. $(document).ready(function() {
  3. if (/mobile/i.test(navigator.userAgent) || /android/i.test(navigator.userAgent)) {
  4. $(".title-box").hide();
  5. }
  6. if ($.cookie("token") == null) {
  7. window.location.href = "login.html";
  8. }
  9. obj.AgentExten = $.cookie("extno");
  10. if (obj.AgentExten == undefined) {
  11. $(".Gnumbox").hide();
  12. }
  13. $(".Gnum").text(obj.AgentExten);
  14. // 获取顶部获取消息
  15. getTopMsgs();
  16. setInterval(function() {
  17. getTopMsgs();
  18. }, huayi.config.topMsgTime);
  19. $.getJSON(huayi.config.callcenter_url + 'UserAccount/GetNowUser', {
  20. "token": $.cookie("token")
  21. }, function(result) {
  22. if (result.state.toLowerCase() == "success") {
  23. // console.log(result);
  24. // $.cookie("userType", result.data.usertype, {
  25. // expires: 7
  26. // });
  27. console.log(result.data);
  28. $.cookie("userRoleId", result.data.role.F_RoleId, {
  29. expires: 7
  30. });
  31. $.cookie("userRoleCode", result.data.role.F_RoleCode, {
  32. expires: 7
  33. });
  34. $(".username").text(result.data.user.F_UserName);
  35. $('.user_code').text(result.data.user.F_UserCode);
  36. localStorage.setItem('F_UserCode', result.data.user.F_UserCode)
  37. $('.group').text(result.data.user.F_SeartGroup);
  38. if (result.data.role) {
  39. // console.log(result.data);
  40. $(".rolename").text(result.data.role.F_RoleName);
  41. }
  42. $(".yhtx").attr("src", huayi.config.callcenter_url.substr(0, huayi.config.callcenter_url.length - 1) + result.data
  43. .user.F_See);
  44. obj.AgentGroup = result.data.user.F_SeartGroupID;
  45. obj.AgentID = result.data.user.F_UserCode;
  46. //obj.AgentExten = result.data.user.F_WorkNumber;
  47. if (result.data.user.F_SeatFlag) {
  48. Connect();
  49. $("#top-search").show();
  50. $(".phoneBZ").show();
  51. $(".zts").show();
  52. }
  53. }
  54. })
  55. //分机号
  56. //话务相关
  57. $("#top-search li").click(function() {
  58. if ($(this).find("i").hasClass("active")) {
  59. if (obj.AgentID) {
  60. var fun = $(this).attr("datafun");
  61. obj.Type = fun;
  62. switch (fun) {
  63. case "Login":
  64. // obj.AgentGroup = "364";
  65. obj.AgentType = "0";
  66. Send();
  67. break; //签入
  68. case "MakeCall":
  69. obj.Type = "SayFree";
  70. Send(); //备注:用户要求外呼立刻置闲
  71. $(".hidCallID").val("");
  72. $("#hidwhtype").val(fun);
  73. whtp();
  74. //obj.DestinationNumber = "1012";
  75. break; //外呼
  76. case "Meeting":
  77. $("#hidwhtype").val(fun);
  78. whtp();
  79. //obj.DestinationNumber = "1012";
  80. break; //多方通话
  81. case "Transfer":
  82. $("#hidwhtype").val(fun);
  83. whtp();
  84. //obj.DestinationNumber = "1012";
  85. break; //转移
  86. default:
  87. Send();
  88. break;
  89. }
  90. }
  91. }
  92. });
  93. //关闭外呼弹屏
  94. $(".closes").click(function() {
  95. $(".WH").removeClass("fadeInDown").addClass("fadeOutUp");
  96. $(".WH").addClass("hidens");
  97. })
  98. //键盘事件外呼
  99. document.onkeydown = function(e) {
  100. var theEvent = window.event || e;
  101. var code = theEvent.keyCode || theEvent.which;
  102. if (code == 13) {
  103. $(".CallOut").click();
  104. }
  105. }
  106. //外呼呼出
  107. $(".CallOut").click(function(event) {
  108. event.stopPropagation();
  109. if ($("#Result").val()) {
  110. $.ajax({
  111. type: "get",
  112. url: huayi.config.callcenter_url + "CallOutOpt/GetCallOutprefix",
  113. async: true,
  114. dataType: 'json',
  115. data: {
  116. token: $.cookie("token"),
  117. phone: $("#Result").val()
  118. },
  119. success: function(result) {
  120. // result = $.parseJSON(result);
  121. if (result.state.toLowerCase() == "success") {
  122. var guid = uuid();
  123. obj.Type = $("#hidwhtype").val();
  124. obj.DestinationNumber = result.data.phone;
  125. obj.Header = result.data.fix;
  126. top.obj.TaskType = "0"; //0:拨号外呼;1:95005回访外呼;2:电销回访外呼
  127. top.obj.TaskPhoneID = ""; //回访的电话ID
  128. top.obj.TaskID = guid; //回访记录编号
  129. Send();
  130. $('#Result').val('');
  131. $(".WH").addClass("hidens");
  132. }
  133. }
  134. });
  135. // obj.Type = $("#hidwhtype").val();
  136. // obj.DestinationNumber = $("#Result").val();
  137. // Send();
  138. }
  139. })
  140. //外呼弹屏数字键盘样式
  141. $(".Num_ul div").mousedown(function() {
  142. $(this).addClass("actives");
  143. $(".img").removeClass("hidens");
  144. }).mouseup(function() {
  145. $(this).removeClass("actives");
  146. })
  147. //外呼弹屏数字键盘号码输入
  148. $(".Num_ul li div").click(function() {
  149. var rt = $("#Result").val() + "";
  150. if (rt.length < 18) {
  151. rt = rt + $(this).find("a").text();
  152. $("#Result").val(rt);
  153. }
  154. });
  155. //外呼弹屏数字键盘号码截取
  156. $(".img").click(function() {
  157. var Result = $("#Result").val() + "";
  158. Result = Result.substr(0, Result.length - 1);
  159. $("#Result").val(Result);
  160. if (Result.length == 0) {
  161. $(".img").addClass("hidens");
  162. }
  163. })
  164. //外呼电话列表
  165. $(".bg_title li").click(function() {
  166. $(this).addClass("lactive").siblings().removeClass("lactive");
  167. loadWH();
  168. })
  169. $(".ty").click(function() {
  170. loadWH();
  171. });
  172. //加载左侧导航菜单
  173. loadMenu();
  174. workcount();
  175. setInterval(function() {
  176. workcount();
  177. }, huayi.config.menuworktime);
  178. //修改密码开始
  179. $('.shezhi').click(function() {
  180. Dialog('dialogDrag', 'dialogMove');
  181. showDialog();
  182. //侦听浏览器窗口大小变化
  183. window.onresize = function() {
  184. if ($('#dialogMove').is(':visible')) {
  185. showDialog();
  186. }
  187. }
  188. $.ajax({
  189. type: "get",
  190. url: huayi.config.callcenter_url + "UserAccount/GetNowUser",
  191. async: true,
  192. dataType: 'json',
  193. data: {
  194. token: $.cookie("token")
  195. },
  196. success: function(result) {
  197. if (result.state.toLowerCase() == "success") {
  198. var con = result.data.user;
  199. console.log(con)
  200. $('.mgh').val(con.F_UserId);
  201. $('.mn').val(con.F_UserName);
  202. $('.mobile').val(con.F_Mobile);
  203. $('.fenji').val($.cookie("extno"));
  204. //$('.wxno').val(con.F_WXNo);
  205. // $('.spwd').val(con.F_Password);
  206. }
  207. }
  208. });
  209. })
  210. //tab切换
  211. $('.perTab li').click(function() {
  212. $(this).addClass('sel').siblings().removeClass('sel');
  213. var index = $(this).index();
  214. $('.perTab_con').children('div').eq(index).show().siblings().hide();
  215. })
  216. //编辑个人资料
  217. $('.grzl tbody>tr>td input.zhidu').attr('readonly', true);
  218. $('.grbj').click(function() {
  219. $('.grzl tbody>tr>td input.zhidu').attr('readonly', false);
  220. $('.grzl tbody>tr>td input.zhidu').css('border-bottom', "1px solid #b3b3b3");
  221. $('.grbtn').attr('disabled', false);
  222. })
  223. //取消编辑
  224. $('.grqx').click(function() {
  225. $('.grzl tbody>tr>td input.zhidu').attr('readonly', true);
  226. $('.grzl tbody>tr>td input.zhidu').css('border-bottom', "none");
  227. $('.grbtn').attr('disabled', true);
  228. })
  229. //关闭按钮
  230. $('.ptr').click(function() {
  231. hideDialog();
  232. })
  233. $('.grbtn').click(function() {
  234. var gh = $('.mgh').val();
  235. var xm = $('.mn').val();
  236. var ymm = $('.spwd').val();
  237. var xmm = $('.npwd').val();
  238. var qmm = $('.epwd').val();
  239. if (xmm !== qmm) {
  240. $('.wrong').show();
  241. $('.npwd').val('')
  242. $('.epwd').val('')
  243. } else if (xmm == '') {
  244. layer.msg("密码不允许为空!");
  245. } else {
  246. $('.wrong').hide();
  247. $('.grzl tbody>tr>td input').attr('readonly', true);
  248. $('.grzl tbody>tr>td input').css('border-bottom', "none");
  249. $.ajax({
  250. type: "post",
  251. url: huayi.config.callcenter_url + "UserAccount/UpdatePwd",
  252. async: true,
  253. dataType: 'json',
  254. data: {
  255. token: $.cookie("token"),
  256. usercode: gh,
  257. pwd: xmm,
  258. oldpwd: ymm,
  259. mobile: $('.mobile').val()
  260. },
  261. success: function(result) {
  262. // result = $.parseJSON(result);
  263. if (result.state.toLowerCase() == "success") {
  264. layer.msg("修改成功!");
  265. }
  266. }
  267. });
  268. }
  269. })
  270. //图片裁剪
  271. var o = $(".image-crop > img");
  272. $(o).cropper({
  273. aspectRatio: 1 / 1,
  274. resizable: false,
  275. dragCrop: false,
  276. preview: ".img-preview",
  277. done: function() {}
  278. });
  279. var r = $("#inputImage");
  280. if (window.FileReader) {
  281. r.change(function() {
  282. var e, i = new FileReader,
  283. t = this.files;
  284. if (t.length && (e = t[0], /^image\/\w+$/.test(e.type))) {
  285. i.readAsDataURL(e);
  286. i.onload = function() {
  287. r.val("");
  288. o.cropper("reset", !0).cropper("replace", this.result);
  289. }
  290. } else {
  291. alert("请选择图片文件");
  292. }
  293. });
  294. $("#setDrag").click(function() {
  295. o.cropper("setDragMode", "crop");
  296. var img = o.cropper("getDataURL");
  297. $.post(huayi.config.callcenter_url + "Index/UploadTX64", {
  298. dataurl: encodeURIComponent(img),
  299. "token": $.cookie("token")
  300. }, function(result) {
  301. result = $.parseJSON(result);
  302. if (result.state.toLowerCase() == "success") {
  303. $(".yhtx").attr("src", huayi.config.callcenter_url.substr(0, huayi.config.callcenter_url.length - 1) +
  304. result.data);
  305. layer.msg("上传成功");
  306. hideDialog();
  307. }
  308. })
  309. });
  310. $("#zoomIn").click(function() {
  311. o.cropper("zoom", .1)
  312. });
  313. $("#zoomOut").click(function() {
  314. o.cropper("zoom", -.1)
  315. });
  316. $("#rotateLeft").click(function() {
  317. o.cropper("rotate", 45)
  318. });
  319. $("#rotateRight").click(function() {
  320. o.cropper("rotate", -45)
  321. });
  322. } else {
  323. r.addClass("hide");
  324. }
  325. })
  326. //菜单数字
  327. function workcount() {
  328. $.getJSON(huayi.config.callcenter_url + 'Index/GetWorkOrderCount', {
  329. "token": $.cookie("token")
  330. }, function(result) {
  331. if (result.state.toLowerCase() == "success") {
  332. $(".dpd").text(result.data.dpd); //待指派
  333. $(".djd").text(result.data.djd); //待接单
  334. $(".dcl").text(result.data.dcl); //待处理
  335. $(".ycl").text(result.data.ycl); //已处理
  336. $(".wyc").text(result.data.wyc); //已参与
  337. $(".cq").text(result.data.cq); //超期工单
  338. $(".wx").text(result.data.wx); //微信工单
  339. //"dpd":2,"djd":0,"dcl":0,"ycl":2,"wyc":6,"cq":0
  340. }
  341. })
  342. }
  343. //上传头像
  344. function uploadtx() {
  345. if (document.getElementById("upFile").files.length > 0) {
  346. var formData = new FormData();
  347. formData.append("upFile", document.getElementById("upFile").files[0]);
  348. formData.append("token", $.cookie("token"));
  349. $.ajax({
  350. url: huayi.config.callcenter_url + "Index/UploadTX",
  351. type: "POST",
  352. data: formData,
  353. /**
  354. *必须false才会自动加上正确的Content-Type
  355. */
  356. contentType: false,
  357. /**
  358. * 必须false才会避开jQuery对 formdata 的默认处理
  359. * XMLHttpRequest会对 formdata 进行正确的处理
  360. */
  361. processData: false,
  362. success: function(result) {
  363. document.getElementById("upFile").outerHTML = document.getElementById("upFile").outerHTML;
  364. $("#upFile").change(function() {
  365. uploadtx();
  366. });
  367. var r = $.parseJSON(result);
  368. if (r.state.toLowerCase() == "success") {
  369. $(".yhtx").attr("src", huayi.config.callcenter_url.substr(0, huayi.config.callcenter_url.length - 1) + r.data);
  370. layer.msg("上传成功");
  371. }
  372. }
  373. });
  374. } else {
  375. layer.confirm('请上传文件!', {
  376. btn: ['确定']
  377. });
  378. }
  379. }
  380. //格式化呼叫状态
  381. function GetCallState(val) {
  382. if (val == '1') {
  383. return '已接通';
  384. } else {
  385. return '未接通';
  386. }
  387. }
  388. //外呼弹屏
  389. function whtp() {
  390. $("#Result").val("");
  391. if ($(".WH").hasClass("fadeOutUp")) {
  392. $(".WH").removeClass("fadeOutUp").addClass("fadeInDown");
  393. }
  394. $(".WH").removeClass("hidens");
  395. $('.first').removeClass('first');
  396. $('.WH').addClass('first');
  397. loadWH();
  398. }
  399. //加载外呼电话列表
  400. function loadWH() {
  401. $(".phonediv").hide();
  402. var n = $(".bg_title .lactive").attr("itemid");
  403. switch (n) {
  404. case '0':
  405. var obj = $(".phonediv").eq(0);
  406. obj.show();
  407. //先销毁表格
  408. var table = obj.find(".phonelist");
  409. table.bootstrapTable('destroy');
  410. //初始化表格,动态从服务器加载数据
  411. table.bootstrapTable({
  412. method: "get", //使用get请求到服务器获取数据
  413. url: huayi.config.callcenter_url + "CallOutScreen/GetPhoneList", //获取数据的Servlet地址
  414. contentType: 'application/x-www-form-urlencoded',
  415. striped: true, //表格显示条纹
  416. pagination: true, //启动分页
  417. pageSize: 10, //每页显示的记录数
  418. pageNumber: 1, //当前第几页
  419. pageList: [10, 20, 50, 100], //记录数可选列表
  420. search: false, //是否启用查询
  421. showColumns: false, //显示下拉框勾选要显示的列
  422. showRefresh: false, //显示刷新按钮
  423. sidePagination: "server", //表示服务端请求
  424. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  425. //设置为limit可以获取limit, offset, search, sort, order
  426. queryParamsType: "undefined",
  427. queryParams: function queryParams(params) { //设置查询参数
  428. var param = {
  429. page: params.pageNumber,
  430. pagesize: params.pageSize,
  431. tel: $("#lastphone").val(),
  432. token: $.cookie("token")
  433. };
  434. return param;
  435. },
  436. onLoadSuccess: function() { //加载成功时执行
  437. //layer.msg("加载成功");
  438. },
  439. onLoadError: function() { //加载失败时执行
  440. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  441. }
  442. });
  443. break;
  444. case '1':
  445. var obj = $(".phonediv").eq(1);
  446. obj.show();
  447. getDepts(); //获取部门下拉
  448. var table = obj.find(".phonelist");
  449. table.bootstrapTable('destroy');
  450. //初始化表格,动态从服务器加载数据
  451. table.bootstrapTable({
  452. method: "get", //使用get请求到服务器获取数据
  453. url: huayi.config.callcenter_url + "CallOutScreen/GetUserList", //获取数据的Servlet地址
  454. contentType: 'application/x-www-form-urlencoded',
  455. striped: true, //表格显示条纹
  456. pagination: true, //启动分页
  457. pageSize: 10, //每页显示的记录数
  458. pageNumber: 1, //当前第几页
  459. pageList: [10, 20, 50, 100], //记录数可选列表
  460. search: false, //是否启用查询
  461. showColumns: false, //显示下拉框勾选要显示的列
  462. showRefresh: false, //显示刷新按钮
  463. sidePagination: "server", //表示服务端请求
  464. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  465. //设置为limit可以获取limit, offset, search, sort, order
  466. queryParamsType: "undefined",
  467. queryParams: function queryParams(params) { //设置查询参数
  468. var param = {
  469. page: params.pageNumber,
  470. pagesize: params.pageSize,
  471. zxzid: $('#s_department').val(),
  472. tel: $("#gsphone").val(),
  473. name: $("#gsname").val(),
  474. token: $.cookie("token")
  475. };
  476. return param;
  477. },
  478. onLoadSuccess: function() { //加载成功时执行
  479. //layer.msg("加载成功");
  480. },
  481. onLoadError: function() { //加载失败时执行
  482. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  483. }
  484. });
  485. break;
  486. case '2':
  487. var obj = $(".phonediv").eq(2);
  488. obj.show();
  489. var table = obj.find(".phonelist");
  490. table.bootstrapTable('destroy');
  491. //初始化表格,动态从服务器加载数据
  492. table.bootstrapTable({
  493. method: "get", //使用get请求到服务器获取数据
  494. url: huayi.config.callcenter_url + "CallOutScreen/GetCustomerList", //获取数据的Servlet地址
  495. contentType: 'application/x-www-form-urlencoded',
  496. striped: true, //表格显示条纹
  497. pagination: true, //启动分页
  498. pageSize: 10, //每页显示的记录数
  499. pageNumber: 1, //当前第几页
  500. pageList: [10, 20, 50, 100], //记录数可选列表
  501. search: false, //是否启用查询
  502. showColumns: false, //显示下拉框勾选要显示的列
  503. showRefresh: false, //显示刷新按钮
  504. sidePagination: "server", //表示服务端请求
  505. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  506. //设置为limit可以获取limit, offset, search, sort, order
  507. queryParamsType: "undefined",
  508. queryParams: function queryParams(params) { //设置查询参数
  509. var param = {
  510. page: params.pageNumber,
  511. pagesize: params.pageSize,
  512. tel: $("#khphone").val(),
  513. name: $("#khname").val(),
  514. token: $.cookie("token")
  515. };
  516. return param;
  517. },
  518. onLoadSuccess: function() { //加载成功时执行
  519. //layer.msg("加载成功");
  520. },
  521. onLoadError: function() { //加载失败时执行
  522. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  523. }
  524. });
  525. break;
  526. }
  527. }
  528. //格式化最近电话处理方式
  529. function formatterDealType(val, row) {
  530. //处理方式0:IVR处理1骚扰电话2自助服务3转值班电话4留言5呼损6人工处理
  531. var str = '-';
  532. switch (val) {
  533. case 0:
  534. str = 'IVR处理';
  535. break;
  536. case 1:
  537. str = '骚扰电话';
  538. break;
  539. case 2:
  540. str = '自助服务';
  541. break;
  542. case 3:
  543. str = '转值班电话';
  544. break;
  545. case 4:
  546. str = '留言';
  547. break;
  548. case 5:
  549. str = '呼损';
  550. break;
  551. case 6:
  552. str = '人工处理';
  553. break;
  554. }
  555. return str;
  556. }
  557. //获取外呼公司电话下 部门下拉
  558. function getDepts() {
  559. $.getJSON(huayi.config.callcenter_url + "SeatGroup/GetList", {
  560. token: $.cookie("token"),
  561. }, function(data) {
  562. if (data.rows && data.rows.length > 0) {
  563. $('#s_department').html('');
  564. $('#s_department').append('<option value="">请选择</option>');
  565. $.each(data.rows, function(i, v) {
  566. $('<option value="' + v.F_ZXZID + '">' + v.F_ZXZName + '</option>').appendTo($('#s_department'));
  567. });
  568. }
  569. });
  570. }
  571. //格式化 电话号码 分机号
  572. function view(val) {
  573. var str = '';
  574. if (val) {
  575. str = '<a onclick="call(\'' + val + '\')">' + val + '</a>';
  576. }
  577. return str;
  578. }
  579. function call(val) {
  580. $("#Result").val(val);
  581. $(".img").removeClass("hidens");
  582. }
  583. function logout() {
  584. if (!$('.Logout').hasClass('active')) {
  585. $.ajax({
  586. url: huayi.config.callcenter_url + "Login/Logout",
  587. data: {
  588. token: $.cookie("token")
  589. },
  590. dataType: "json",
  591. success: function(res) {
  592. if (res.state) {
  593. location.href = "./login.html";
  594. }
  595. }
  596. });
  597. } else {
  598. layer.msg("退出失败!");
  599. }
  600. }
  601. //加载左侧导航菜单
  602. function loadMenu() {
  603. $.ajaxSettings.async = false;
  604. $.getJSON(huayi.config.callcenter_url + 'Index/GetMenu', {
  605. "token": $.cookie("token")
  606. }, function(result) {
  607. $.ajaxSettings.async = true;
  608. if (result.state.toLowerCase() == "success") {
  609. var data = result.data;
  610. data[3].ChildNodes.splice(1,1);
  611. data[3].ChildNodes.splice(2,1);
  612. data[3].ChildNodes.splice(1,1);
  613. var _html = "";
  614. $.each(data, function(i) {
  615. var row = data[i];
  616. if (row.F_ParentID == "0") {
  617. _html += '<li>';
  618. _html += '<a class="Click"data-id="Menu_' + row.F_ModuleId + '" href="' + row.F_OptUrl +
  619. '"><i class="fa iconfont">' + row.F_ImgUrl + '</i><span class="nav-label">' + row.F_ModuleName +
  620. '</span><span class="fa arrow"></span></a>';
  621. var childNodes = row.ChildNodes; //二级
  622. if (childNodes.length > 0) {
  623. _html += '<ul class="nav nav-second-level">';
  624. $.each(childNodes, function(i) {
  625. var subrow = childNodes[i];
  626. var childNodsThird = subrow.ChildNodes; //三级
  627. if (childNodsThird.length > 0) {
  628. _html += '<li>';
  629. _html += '<a href="' + subrow.F_OptUrl + '">';
  630. _html += '<span class="nav-label">' + subrow.F_ModuleName + '</span>';
  631. _html += '<span class="fa arrow"></span>';
  632. _html += '</a>';
  633. _html += '<ul class="nav nav-third-level">';
  634. $.each(childNodsThird, function(i) {
  635. var subrowThird = childNodsThird[i];
  636. _html += '<li>';
  637. _html += '<a class="J_menuItem" data-id="Menu_' + subrowThird.F_ModuleId + '" href="' + subrowThird.F_OptUrl +
  638. '" >' + subrowThird.F_ModuleName + '</a>';
  639. _html += '</li>';
  640. });
  641. _html += '</ul>';
  642. } else {
  643. _html += '<li>';
  644. _html += '<a class="J_menuItem" data-id="Menu_' + subrow.F_ModuleId + '" href="' + subrow.F_OptUrl +
  645. '" >' + subrow.F_ModuleName + '</a>';
  646. if (subrow.F_Button != '') {
  647. _html += '<span class="' + subrow.F_Button + '"></span>';
  648. }
  649. _html += '</li>';
  650. }
  651. });
  652. _html += '</ul>';
  653. }
  654. _html += '</li>';
  655. }
  656. });
  657. // $("#sidebar-nav ul").prepend(_html);
  658. $(_html).appendTo("#side-menu");
  659. //绑定点击事件 添加点击的样式
  660. $('#side-menu').find('.J_menuItem').on('click', function() {
  661. $(this).parent().addClass('sub_active').siblings().removeClass('sub_active');
  662. });
  663. } else {
  664. window.location.href = "/login.html";
  665. }
  666. })
  667. }
  668. //跳转
  669. function Jumps() {
  670. //window.parent.frames[ "iframe0"].location.reload();
  671. $("iframe:visible")[0].src = "widgets.html"
  672. $(".J_menuTab").eq(0).addClass("active").text('首页');
  673. $(".J_menuTab").eq(0).attr("data-id", 'widgets.html');
  674. $(".J_mainContent .J_iframe0").attr("data-id", "widgets.html");
  675. }
  676. // 顶部消息
  677. function showTopMsgs() {
  678. $('#top_notices_lists').toggle();
  679. // if ($('#top_notices_lists').is(':visible')) {
  680. // $('#top_notices_lists').hide();
  681. // } else {
  682. // $('#top_notices_lists').show();
  683. // }
  684. }
  685. // 获取顶部消息(只展示未读消息 0未读 1已读)
  686. function getTopMsgs() {
  687. $.getJSON(huayi.config.callcenter_url + 'Msg/GetServerMsg', {
  688. token: $.cookie("token")
  689. }, function(result) {
  690. if(result.state.toLowerCase() === 'success'){
  691. $('#top_notices_lists').empty();
  692. result = result.data;
  693. var str = '';
  694. if (result && result.length) {
  695. if(isFirstShowTopMsg){
  696. $('#top_notices_lists').show();
  697. isFirstShowTopMsg = false;
  698. }
  699. $('#top_notices_num').text(result.length);
  700. for (var i = 0; i < result.length; i++) {
  701. str += '<li class="top_notices_item">' +
  702. '<span class="top_notices_con">'+ result[i].Detail +'</span>' +
  703. '<button type="button" class="btn btn-primary btn-sm" onclick="signRead('+ result[i].ID +', event)">未读</button>' +
  704. '</li>' +
  705. '<li class="divider"></li>';
  706. }
  707. } else {
  708. str = '<li class="top_notices_item">' +
  709. '<span class="top_notices_con divider">暂无消息!</span>' +
  710. '</li>';
  711. $('#top_notices_num').text(0);
  712. }
  713. $('#top_notices_lists').append(str);
  714. $('#top_notices_lists').find('.divider:last').remove();
  715. }
  716. }).then(function () {
  717. // 获取 日程消息
  718. getTopScheduleMsgs()
  719. });
  720. }
  721. // 标记消息状态
  722. function signRead(signid, e) {
  723. e.stopPropagation();
  724. layer.confirm('确认已读后该条消息将不再提示,请慎重', {
  725. icon: 7,
  726. btn: ['确认', '取消'] //按钮
  727. }, function(index) {
  728. $.ajax({
  729. type: "get",
  730. url: huayi.config.callcenter_url + "Msg/UpdateState",
  731. dataType: 'json',
  732. async: true,
  733. data: {
  734. ids: signid,
  735. state: 1, //状态,0未读 1已读
  736. token: $.cookie("token")
  737. },
  738. success: function(data) {
  739. if (data.state.toLowerCase() === "success") {
  740. // 更新顶部消息内容和数量
  741. deleteCacheData(signid);// 清除缓存的数据
  742. getTopMsgs();
  743. $('#top_notices_lists').hide();
  744. layer.close(index);
  745. }
  746. }
  747. });
  748. });
  749. }
  750. // 获取顶部日程提醒消息(只展示未读消息 0未读 1已读)
  751. function getTopScheduleMsgs() {
  752. $.getJSON(huayi.config.callcenter_url + 'Workcalendar/GetTXList', {
  753. token: $.cookie("token")
  754. }, function (result) {
  755. if (result.state.toLowerCase() === 'success') {
  756. result = result.data;
  757. var str = '';
  758. var topNoticeN = Number($('#top_notices_num').text());
  759. $('#top_notices_num').text(result.length + topNoticeN);
  760. if (result && result.length) {
  761. for (var i = 0; i < result.length; i++) {
  762. str += '<li class="top_notices_item">' +
  763. '<span class="top_notices_con">' + result[i].F_Content + '</span>' +
  764. '<button type="button" class="btn btn-primary btn-sm" onclick="scheduleSignRead(' + result[i].F_ID + ', event)">未读</button>' +
  765. '</li>' +
  766. '<li class="divider"></li>';
  767. //判断是否是新的日程提醒
  768. if (isNewScheduleHandler(result[i])) {
  769. alertScheduleHandler(result[i]);// 日程提醒 存储数据
  770. //右下角弹出 日程提醒
  771. if ($("#top_notices_lists").is(":hidden")) {
  772. layer.alert(result[0].F_Content, {
  773. icon: 6,
  774. title: '日程提醒',
  775. offset: 'rb' // 快捷设置右下角
  776. }, function (index) {
  777. layer.close(index);
  778. });
  779. }
  780. }
  781. }
  782. } else {
  783. str = '<li class="top_notices_item">' +
  784. '<span class="top_notices_con">暂无消息!</span>' +
  785. '</li>';
  786. }
  787. $('#top_notices_lists').prepend(str);
  788. if (topNoticeN === 0) {
  789. $('#top_notices_lists').find('.divider:last').remove();
  790. }
  791. }
  792. });
  793. }
  794. // 标记日程消息状态
  795. function scheduleSignRead(signid, e) {
  796. e.stopPropagation();
  797. layer.confirm('确认已读后该条消息将不再提示,请慎重', {
  798. icon: 7,
  799. btn: ['确认', '取消'] //按钮
  800. }, function (index) {
  801. $.ajax({
  802. type: "get",
  803. url: huayi.config.callcenter_url + "Workcalendar/UpdateFlag",
  804. dataType: 'json',
  805. async: true,
  806. data: {
  807. id: signid, // 日程信息id
  808. isread: 1, //状态,0未读 1已读 日程信息是否已读
  809. token: $.cookie("token")
  810. },
  811. success: function (data) {
  812. if (data.state.toLowerCase() === "success") {
  813. deleteCacheData(signid);// 清除缓存的数据
  814. // 更新顶部消息内容和数量
  815. getTopMsgs();
  816. $('#top_notices_lists').hide();
  817. layer.close(index);
  818. }
  819. }
  820. });
  821. });
  822. }
  823. $(document).click(function(e) {
  824. if($(e.target).is($('.top_notices_lists')) || $(e.target).is($('.top_notices_item')) || $(e.target).is($('.top_notices_con')) || $(e.target).is($('.divider'))) {
  825. $('#top_notices_lists').show();
  826. }
  827. })
  828. /**
  829. * 右下角弹出 日程提醒 存储数据
  830. * @cuData 当前信息
  831. */
  832. function alertScheduleHandler(cuData) {
  833. //缓存当前信息
  834. var oldLocalDatas = window.localStorage.getItem('newScheduleData');
  835. var newScheduleData = oldLocalDatas === null ? [] : JSON.parse(oldLocalDatas);
  836. newScheduleData.unshift({
  837. "content": cuData.F_Content,
  838. "id": cuData.F_ID
  839. });
  840. window.localStorage.setItem('newScheduleData', JSON.stringify(newScheduleData));
  841. }
  842. /**
  843. * 判断是否是新的日程
  844. * @cuData 当前信息
  845. * @return boolean false(缓存中有这个日程,不是新日程) true(缓存中没有这日程,是新日程)
  846. */
  847. function isNewScheduleHandler(cuData) {
  848. var oldLocalDatas = window.localStorage.getItem('newScheduleData');
  849. var isTrue = [];
  850. if (oldLocalDatas) {
  851. oldLocalDatas = JSON.parse(oldLocalDatas);
  852. for (var j = 0, len = oldLocalDatas.length; j < len; j++) {
  853. if (oldLocalDatas[j].id === cuData.F_ID) {
  854. isTrue.push(false); // 缓存中有这个日程
  855. }
  856. }
  857. } else {
  858. isTrue.push(true); // 缓存中没有这日程
  859. }
  860. return isTrue.indexOf(false) === -1 ? true : false;
  861. }
  862. /**
  863. * 清除缓存数据
  864. * @cuDataId 当前信息id
  865. */
  866. function deleteCacheData(cuDataId) {
  867. var oldLocalDatas = window.localStorage.getItem('newScheduleData');
  868. oldLocalDatas = oldLocalDatas === null ? [] : JSON.parse(oldLocalDatas);
  869. if (oldLocalDatas.length > 0) {
  870. for (var i = 0; i < oldLocalDatas.length; i++) {
  871. if (oldLocalDatas[i].id === cuDataId) {
  872. oldLocalDatas.splice(i, 1);
  873. window.localStorage.setItem('newScheduleData', JSON.stringify(oldLocalDatas));
  874. }
  875. }
  876. }
  877. }