郑州第一人民医院UI

callScreen.js 28KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014
  1. /**
  2. * 来电弹屏
  3. * */
  4. //来电时传输的数据
  5. var phoneNumber = helper.request.queryString("Number");
  6. var CallID = helper.request.queryString("CallID");
  7. //录音的路径
  8. var recordpath = '';
  9. //测试数据
  10. // var phoneNumber = "15235457486";
  11. // var CallID = "148";
  12. $(function() {
  13. //初始化一些数据
  14. $(".tel").text(phoneNumber); //左侧来电号码
  15. $("#head_form_tel").val(phoneNumber); //左侧电话
  16. $("#order_tel").val(phoneNumber); //右侧工单电话
  17. $(".ldtime").text(helper.DateFormat.getNowDateTime()); //左侧来电时间
  18. $(".thsc").text("00:00"); //通话时间
  19. autosize($('textarea'));
  20. //初始化时间
  21. laydate.render({
  22. elem: '#old_scTime',
  23. theme: '#249fea',
  24. range: '~',
  25. calendar: true
  26. });
  27. laydate.render({
  28. elem: '#con_scTime',
  29. theme: '#249fea',
  30. range: '~',
  31. calendar: true
  32. });
  33. /*左侧 部分*/
  34. //获取电话所属地
  35. if(phoneNumber) {
  36. getPhoneLocation(); //获取来电归属地
  37. }
  38. //保存来电客户信息
  39. $('#head_form_btn_save').on('click', headFormSave);
  40. //清空来电客户信息
  41. $('#head_form_btn_reset').on('click', headFormClean);
  42. //点击IVR
  43. $('#head_black_ivr').click(function() {
  44. top.scoketDatas = {
  45. "Type": "TurnIvr",
  46. "AgentID": window.localStorage.getItem('userCode'),
  47. "AgentExten": window.localStorage.getItem("extno"),
  48. "IvrName": "MYD",//
  49. "IvrPos": "1" //
  50. };
  51. top.Send();
  52. });
  53. //点击拉黑 加入黑名单
  54. $('#head_black_btn').click(function() {
  55. if(!phoneNumber) {
  56. layer.confirm('来电号码为空!', {
  57. icon: 2,
  58. btn: ['确定']
  59. });
  60. return;
  61. }
  62. $("#time-word").val('');
  63. $('.ldtp-con .hei-list').show();
  64. });
  65. //拉黑 关闭
  66. $('.hei-list .bacha').click(function() {
  67. $('.ldtp-con .hei-list').hide();
  68. $("#time-word").val('');
  69. });
  70. //拉黑 保存
  71. $('#bc').on('click', saveBlack);
  72. //取消黑名单
  73. $('.retur').on('click', cancelBlack);
  74. /*右侧 部分*/
  75. //加载历史记录、历史工单
  76. loadOldOrComplain('0');
  77. //获取知识库
  78. // loadZSK();
  79. //弹屏右侧切换效果
  80. $(".ldtp-cr ul.ld-service li").click(function() {
  81. var tabIndex = $(this).index() + '';
  82. $(this).addClass("cr-click").siblings().removeClass("cr-click");
  83. loadOldOrComplain(tabIndex);
  84. });
  85. //省市、项目、楼、楼层联动
  86. getProvinceCity($('#province'));
  87. //新增工单创建
  88. $('#save_order').on('click', saveOrder);
  89. //知识库查询
  90. $(".searIcon").click(function() {
  91. // loadZSK();
  92. });
  93. //历史记录/历史工单 查询
  94. $(".searchbtn").click(function() {
  95. var tabIndex = $(this).attr('itemtype');
  96. loadOldOrComplain(tabIndex);
  97. });
  98. });
  99. //获取电话所属地
  100. function getPhoneLocation() {
  101. $.getJSON(huayi.config.callcenter_url + 'callcenterapi/api/callinscreen/getphonelocation', {
  102. "tel": phoneNumber,
  103. }, function(result) {
  104. if(result.state.toLowerCase() == "success") {
  105. $(".khgsd").text(result.data);
  106. }
  107. });
  108. }
  109. //保存来电客户信息
  110. function headFormSave() {
  111. if(!$.trim($('#head_form_name').val())) {
  112. layer.confirm('请输入姓名!', {
  113. icon: 2,
  114. btn: ['确定']
  115. });
  116. return;
  117. }
  118. if(!regexs.phone.test($.trim($('#head_form_tel').val()))) {
  119. layer.confirm('请输入正确的电话!', {
  120. icon: 2,
  121. btn: ['确定']
  122. });
  123. return;
  124. }
  125. $.ajax({
  126. type: "post",
  127. url: huayi.config.callcenter_url + "callcenterapi/api/CusUser/add",
  128. dataType: 'json',
  129. async: true,
  130. beforeSend: function() { //触发ajax请求开始时执行
  131. $('#head_form_btn_save').attr("disabled", true);
  132. $('#head_form_btn_save').text('保存中...');
  133. $(document).off('click', '#head_form_btn_save', headFormSave);
  134. },
  135. data: {
  136. // typeid: // 否 string 类型id
  137. name: $('#head_form_name').val(),// 否 string 姓名
  138. mobilephone: $('#head_form_tel').val(),// 是 string 手机号码
  139. telephone: $('#head_form_phone').val(),// 是 string 固话号码
  140. sex: $('#head_form_sex').find('input[type="radio"]:checked').val(),// 否 string 性别
  141. // province: ,// 否 string 省code
  142. // city: ,// 否 string 市code
  143. // address: ,// 否 string 地址
  144. // qq: ,// 否 string qq
  145. // email: ,// 否 string 邮箱
  146. // companyname: ,// 是 string 公司名称
  147. // companyphone: ,// 是 string 公司号码
  148. // companyposition: ,// 否 string 公司职位
  149. },
  150. success: function(result) {
  151. if(result.state.toLowerCase() === "success") {
  152. // $('#head_form_customer_id').val(result.data.F_CustomerId); //客户id
  153. //进入历史工单 新增工单页面
  154. //$('.ld-service').find('li.KF').trigger('click');
  155. //赋值
  156. var h_sex = $('#head_form_sex').find('input[type="radio"]:checked').val();
  157. $('#order_name').val($('#head_form_name').val()); //客户姓名
  158. $('#order_tel').val($('#head_form_tel').val()); //电话
  159. layer.msg("保存成功");
  160. }
  161. },
  162. error: function(textStatus) {
  163. layer.confirm('网络繁忙,请稍后再试...', {
  164. icon: 7,
  165. closeBtn: 0,
  166. btn: ['确定'] //按钮
  167. });
  168. $('#head_form_btn_save').text('保存');
  169. $('#head_form_btn_save').attr("disabled", false);
  170. $(document).off('click', '#head_form_btn_save', headFormSave);
  171. $(document).on('click', '#head_form_btn_save', headFormSave);
  172. },
  173. complete: function(XMLHttpRequest, textStatus) {
  174. if(textStatus == 'timeout') {
  175. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  176. xmlhttp.abort();
  177. layer.confirm('网络超时,请稍后再试...', {
  178. icon: 7,
  179. closeBtn: 0,
  180. btn: ['确定'] //按钮
  181. });    
  182. }
  183. $('#head_form_btn_save').text('保存');
  184. $('#head_form_btn_save').attr("disabled", false);
  185. $(document).off('click', '#head_form_btn_save', headFormSave);
  186. $(document).on('click', '#head_form_btn_save', headFormSave);
  187. },
  188. });
  189. }
  190. //清空来单客户信息
  191. function headFormClean() {
  192. //左侧信息清空;
  193. // $('#head_form_customer_id').val('');
  194. $('.head_form').find('.form-control').val('');
  195. $('#head_form_tel').val(phoneNumber);
  196. $('#head_form_sex').find('input[type="radio"][value="男"]').prop('checked', true);
  197. //右侧信息清空
  198. $('#order_name').val(''); //姓名
  199. $('#order_sex').find('input[type="radio"][value="男"]').prop('checked', true);
  200. }
  201. //获取知识库
  202. function loadZSK() {
  203. $.getJSON(huayi.config.callcenter_url + 'callcenterapi/api/Knowledge/getlistbypage', {
  204. pageindex: 1,// 否 string 当前页
  205. pagesize: 10,// 否 string 每页记录数
  206. key: $(".search").val(),// 否 string 模糊查询(标题内容)
  207. // typeid 否 string 类型id
  208. // stime 否 string 开始时间 (2018-09-15)
  209. // etime 否 string 结束时间 (2018-09-15)
  210. }, function(result) {
  211. if(result.state.toLowerCase() == "success") {
  212. $(".ldcr-bottom .detail-con ul").empty();
  213. $(result.data.rows).each(function(i, n) {
  214. var html = '<li>' +
  215. ' <div class="zhishi-title clearfix">' +
  216. ' <a href="javascript:void(0);" >' + n.title + '</a>' +
  217. ' <em >' + n.createtime + '</em>' +
  218. ' </div>' +
  219. ' <div class="explancon">' +
  220. n.content +
  221. ' </div>' +
  222. '</li>';
  223. $(html).appendTo($(".ldcr-bottom .detail-con ul")).find(".zhishi-title").click(function(event) {
  224. event.stopPropagation();
  225. if($(this).hasClass("active")) {
  226. $(this).removeClass("active")
  227. } else {
  228. $(".zhishi-title").removeClass("active");
  229. $(this).addClass("active");
  230. }
  231. })
  232. })
  233. }
  234. })
  235. }
  236. //加载 历史记录或历史工单
  237. function loadOldOrComplain(tabIndex) {
  238. $(".complain").hide();
  239. switch(tabIndex) {
  240. case '0':
  241. $(".complain").eq(0).show();
  242. break;
  243. case '1':
  244. getOldList()
  245. break;
  246. case '2':
  247. getComplainList()
  248. break;
  249. default:
  250. break;
  251. }
  252. }
  253. //获取历史记录
  254. function getOldList() {
  255. $(".complain").eq(1).show();
  256. //先销毁表格
  257. $('#oldlist').bootstrapTable('destroy');
  258. //初始化表格,动态从服务器加载数据
  259. $("#oldlist").bootstrapTable({
  260. method: "get", //使用get请求到服务器获取数据
  261. url: huayi.config.callcenter_url + "callcenterapi/api/CallRecords/getlistbypage", //获取数据的Servlet地址
  262. contentType: 'application/x-www-form-urlencoded',
  263. striped: true, //表格显示条纹
  264. pagination: true, //启动分页
  265. pageSize: 5, //每页显示的记录数
  266. pageNumber: 1, //当前第几页
  267. pageList: [5, 10, 50, 100], //记录数可选列表
  268. search: false, //是,//否启用查询
  269. showColumns: false, //显示下拉框勾选要显示的列
  270. showRefresh: false, //显示刷新按钮
  271. sidePagination: "server", //表示服务端请求
  272. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  273. //设置为limit可以获取limit, offset, search, sort, order
  274. queryParamsType: "undefined",
  275. queryParams: function queryParams(params) { //设置查询参数
  276. var param = {
  277. pageindex: params.pageNumber,//否 string 当前页
  278. pagesize: params.pageSize,//否 string 每页记录数
  279. keyword: phoneNumber,// 否 string 模糊查询(呼叫号码)
  280. stime: $("#old_scTime").val() && $("#old_scTime").val().split(' ~ ')[0], //否 string 工单起止时间
  281. etime: $("#old_scTime").val() && $("#old_scTime").val().split(' ~ ')[1], //否 string 工单起止时间
  282. };
  283. return param;
  284. },
  285. onLoadSuccess: function(res) { //加载成功时执行
  286. //layer.msg("加载成功");
  287. if(res.state.toLowerCase() === "success") {
  288. var newData = {};
  289. newData.state = res.state;
  290. newData.message = res.message;
  291. newData.rows = res.data.rows;
  292. newData.total = res.data.total;
  293. recordpath = res.data.recordpath;
  294. $('#oldlist').bootstrapTable('load', newData);
  295. }
  296. //$('.tool_down').authorizeOperateButton();
  297. },
  298. onLoadError: function() { //加载失败时执行
  299. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  300. }
  301. });
  302. }
  303. //格式化序号
  304. function setCode(val, row, index) {
  305. return ++index;
  306. }
  307. //格式化 呼叫类型
  308. function formatterCalltype(val, row) {
  309. //(0:呼入,1:呼出)
  310. var str = '-';
  311. if(val === 0) {
  312. str = '呼入';
  313. } else {
  314. str = '呼出';
  315. }
  316. return str;
  317. }
  318. //格式化 呼叫状态
  319. function formatterCallstate(val, row) {
  320. //(0:未接通,1:已接通)
  321. var str = '-';
  322. var stateClass = 'timeout_default';
  323. if(val === 0) {
  324. str = '未接通';
  325. stateClass = 'timeout_termination';
  326. } else {
  327. str = '已接通';
  328. stateClass = 'timeout_success';
  329. }
  330. return '<span class="' + stateClass + '">' + str + '</span>';
  331. }
  332. //格式化处理方式
  333. function formatterDealtype(val, row) {
  334. //(0:IVR处理 1:骚扰电话 2:自助服务 3:转值班电话 4:留言 5:呼损 6:人工处理)
  335. var str = '-';
  336. switch (val){
  337. case 0:
  338. str="IVR处理"
  339. break;
  340. case 1:
  341. str="骚扰电话"
  342. break;
  343. case 2:
  344. str="自助服务"
  345. break;
  346. case 3:
  347. str="转值班电话"
  348. break;
  349. case 4:
  350. str="留言"
  351. break;
  352. case 5:
  353. str="呼损"
  354. break;
  355. case 6:
  356. str="人工处理"
  357. break;
  358. default:
  359. str="-"
  360. break;
  361. }
  362. return str;
  363. }
  364. //格式化外呼类型
  365. function formatterCallopttype(val, row) {
  366. //( 0:拨号外呼 1:回访外呼)
  367. var str = '-';
  368. switch (val){
  369. case 0:
  370. str="拨号外呼"
  371. break;
  372. case 1:
  373. str="回访外呼"
  374. break;
  375. default:
  376. str="-"
  377. break;
  378. }
  379. return str;
  380. }
  381. //音频
  382. function formatterAudio(val) {
  383. var audioUrl = recordpath + val;
  384. if(val && val.length > 0) {
  385. return '<div class="imgs" style="cursor: pointer;">' +
  386. '<img src="../img/vice.png" alt="录音" onclick="seeAudio(\'' + audioUrl + '\')" />' +
  387. '</div>';
  388. } else {
  389. return '-';
  390. }
  391. }
  392. //查看录音详情
  393. function seeAudio(audioUrl) {
  394. layer.open({
  395. type: 2,
  396. content: "../templateHtml/audioPlayer.html?audioUrl=" + audioUrl, //iframe的url,no代表不显示滚动条
  397. title: '录音详情',
  398. area: ['50%', '280px'], //宽高
  399. });
  400. }
  401. //获取历史工单
  402. function getComplainList() {
  403. $(".complain").eq(2).show();
  404. //先销毁表格
  405. $('#orderlist').bootstrapTable('destroy');
  406. //初始化表格,动态从服务器加载数据
  407. $("#orderlist").bootstrapTable({
  408. method: "get", //使用get请求到服务器获取数据
  409. url: huayi.config.callcenter_url + "equipmentapi/api/worepairbase/getlistbypage", //获取数据的Servlet地址
  410. contentType: 'application/x-www-form-urlencoded',
  411. striped: true, //表格显示条纹
  412. pagination: true, //启动分页
  413. pageSize: 5, //每页显示的记录数
  414. pageNumber: 1, //当前第几页
  415. pageList: [5, 10, 50, 100], //记录数可选列表
  416. search: false, //是,//否启用查询
  417. showColumns: false, //显示下拉框勾选要显示的列
  418. showRefresh: false, //显示刷新按钮
  419. sidePagination: "server", //表示服务端请求
  420. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  421. //设置为limit可以获取limit, offset, search, sort, order
  422. queryParamsType: "undefined",
  423. queryParams: function queryParams(params) { //设置查询参数
  424. var param = {
  425. pageindex: params.pageNumber,// 否 string 当前页
  426. pagesize: params.pageSize,// 否 string 每页记录数
  427. phone: phoneNumber, //否 string 模糊查询(号码)
  428. stime: $("#con_scTime").val() && $("#con_scTime").val().split(' ~ ')[0],// 否 string 开始时间 (2018-09-15)
  429. etime: $("#con_scTime").val() && $("#con_scTime").val().split(' ~ ')[1],// 否 string 结束时间 (2018-09-15)
  430. state: '', //工单状态
  431. // wocode: $("#wocode").val(), //工单编号
  432. // province: $('#province').val(),
  433. // city: $('#city').val(),
  434. // protypeid: $('#protype').val(), //项目类型
  435. // projectid: $('#proname').val(), //项目名称
  436. // buildid: $('#build').val(), //楼名称
  437. // floorid: $('#floor').val(), //楼层名称
  438. // systemid: $('#sysname').val(), //系统名称
  439. // equipmentid: $('#equipname').val(), //设备名称
  440. // usercode: $('#usercode').val(), //维修工账号
  441. // replace: getReplice(),//保修地点
  442. };
  443. return param;
  444. },
  445. responseHandler: function(res){
  446. return {
  447. "total": res.data && res.data.total,
  448. "rows": res.data && res.data.rows
  449. }
  450. },
  451. onLoadSuccess: function() { //加载成功时执行
  452. //layer.msg("加载成功");
  453. },
  454. onLoadError: function() { //加载失败时执行
  455. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  456. }
  457. });
  458. }
  459. //格式化工单编号
  460. function formatterWorkOrderID(val, row) {
  461. return '<div class="imgs" ><a class="xg" onclick="btn_detail(\'' + row.id + '\')">' + val + '</a></div>'
  462. }
  463. //渠道来源
  464. function formatterChannel(val, row) {
  465. var str = '';
  466. switch(val + '') {
  467. case '1':
  468. str = '电话';
  469. break;
  470. case '2':
  471. str = "安卓";
  472. break;
  473. case '3':
  474. str = "IOS";
  475. break;
  476. case '4':
  477. str = "微信";
  478. break;
  479. default:
  480. str = "其他"
  481. }
  482. return str;
  483. }
  484. //省市
  485. function formatterLocation(val, row) {
  486. return '<div>' + val + '' + row.city + '</div>'
  487. }
  488. //格式化报修人
  489. function formatterCreateuser(val, row){
  490. var str = '';
  491. if(row.channel == 4) {
  492. str = row.repairman + '<br>' + '(' + row.createusername + ')'
  493. } else {
  494. str = row.repairman + '<br>' + '(' + val + ')'
  495. }
  496. return '<span>'+ str +'</span>'
  497. }
  498. // 格式化报修地点
  499. function formatterRepairPlace(val, row){
  500. return val + ' ' + (row.repairoom || '')
  501. }
  502. //格式化接单人
  503. function formatterToUser(val, row) {
  504. var toUserStr = '';
  505. var touser = row.touser;
  506. var tousername = row.tousername;
  507. // var touser = ["AA000", "AA001", "AA002"];
  508. // var tousername = ["张山", "李四", "王五"];
  509. if(touser.length < 1) {
  510. toUserStr = '-';
  511. } else {
  512. var toUsers = touser.concat(tousername);
  513. var toUsersLength = toUsers.length;
  514. if(toUsersLength === 2) {
  515. toUserStr = toUsers[0] + '-' + toUsers[1];
  516. } else{
  517. for(var i = 0; i < toUsersLength; i++) {
  518. if(i < toUsersLength / 2) {
  519. toUserStr += toUsers[i] + '-' + toUsers[toUsersLength / 2 + i] + ','
  520. toUserStr.substring(0, toUserStr.length - 1);
  521. } else {
  522. break;
  523. }
  524. }
  525. }
  526. }
  527. return toUserStr;
  528. }
  529. //格式化满意度
  530. function formatterScore(val){
  531. //1 差、2 不满意、3 一般、4 满意、5 很满意
  532. var stateClass = 'timeout_default';
  533. var stateTxt = '-';
  534. switch (val){
  535. case 1:
  536. stateClass = 'timeout_termination';
  537. stateTxt = '差';
  538. break;
  539. case 2:
  540. stateClass = 'timeout_refuse';
  541. stateTxt = '不满意';
  542. break;
  543. case 3:
  544. stateClass = 'timeout_wait';
  545. stateTxt = '一般';
  546. break;
  547. case 4:
  548. stateClass = 'timeout_doned';
  549. stateTxt = '满意';
  550. break;
  551. case 5:
  552. stateClass = 'timeout_success';
  553. stateTxt = '很满意';
  554. break;
  555. default:
  556. stateClass = 'timeout_default';
  557. stateTxt = '-';
  558. break;
  559. }
  560. return '<span class="' + stateClass + '">' + stateTxt + '</span>';
  561. }
  562. //查看工单详情
  563. function btn_detail(ids) {
  564. layer.open({
  565. type: 2,
  566. content: "../equipmentOperationManage/template/seeEquipmentRepair.html?ids=" + ids, //iframe的url,no代表不显示滚动条
  567. title: '查看详情',
  568. resize: false,
  569. area: ['80%', '90%'], //宽高
  570. });
  571. }
  572. //格式化内容
  573. function formatterContent(val) {
  574. if(val) {
  575. var codeContent = decodeURIComponent(val);
  576. codeContent = helper.filter.delHtmlTag(codeContent);
  577. codeContent = $.trim(codeContent);
  578. var cc = codeContent.length > 12 ? codeContent.substr(0, 12) + '...' : codeContent;
  579. return '<div title="' + codeContent + '">' + cc + '</div>';
  580. } else {
  581. return '-';
  582. }
  583. }
  584. //格式化 工单状态
  585. function formatterState(val) {
  586. var str = '',
  587. className = '';
  588. switch(val) {
  589. case 0:
  590. str = '新工单';
  591. className = 'state_audit_wait';
  592. break;
  593. case 1: //已抢单
  594. str = "已接单";
  595. className = 'state_audit_doned';
  596. break;
  597. case 2:
  598. str = "已处理";
  599. className = 'state_audit_refuse';
  600. break;
  601. case 3:
  602. str = "已完结";
  603. className = 'state_audit_done';
  604. break;
  605. case 7:
  606. str = "挂起";
  607. className = 'state_audit_revoke';
  608. break;
  609. case 8:
  610. str = "已取消";
  611. className = 'state_audit_hang';
  612. break;
  613. default:
  614. str = "其他";
  615. className = 'state_audit_other';
  616. break;
  617. }
  618. return '<a href="javaScript:;" class="state_audit ' + className + '">' + str + '</a>';
  619. }
  620. //新建工单 保存
  621. function saveOrder() {
  622. if(!regexs.userNameReg.test($.trim($('#order_name').val()))) {
  623. layer.confirm('请输入有效的报修人(2-20位汉字可以包含·•)!', {
  624. icon: 2,
  625. btn: ['确定']
  626. });
  627. return;
  628. }
  629. if(!regexs.phone.test($.trim($('#order_tel').val()))) {
  630. layer.confirm('请输入正确的电话!', {
  631. icon: 2,
  632. btn: ['确定']
  633. });
  634. return;
  635. }
  636. if (!$("#province").val() || !$("#city").val()) {
  637. layer.confirm('请选择所在省!', {
  638. icon: 2,
  639. btn: ['确定'] //按钮
  640. });
  641. return;
  642. }
  643. if (!$("#city").val()) {
  644. layer.confirm('请选择所在市!', {
  645. icon: 2,
  646. btn: ['确定'] //按钮
  647. });
  648. return;
  649. }
  650. if (!$("#floor").val()) {
  651. layer.confirm('请选择报修地点!', {
  652. icon: 2,
  653. btn: ['确定'] //按钮
  654. });
  655. return;
  656. }
  657. if (!$.trim($("#order_reception").val())) {
  658. layer.confirm('故障说明不能为空!', {
  659. icon: 2,
  660. btn: ['确定'] //按钮
  661. });
  662. return;
  663. }
  664. var repairplaceStr = $("#build option:selected").text() + " " + $("#floor option:selected").text();
  665. $.ajax({
  666. type: "post",
  667. url: huayi.config.callcenter_url + "equipmentapi/api/worepairbase/add",
  668. dataType: 'json',
  669. async: true,
  670. beforeSend: function() { //触发ajax请求开始时执行
  671. $('#save_order').attr("disabled", true);
  672. $('#save_order').text('创建中...');
  673. $(document).off('click', '#save_order', saveOrder);
  674. loadIndex = layer.load();
  675. },
  676. data: {
  677. callid: CallID, //否 string 通话标志ID
  678. channel: $('#order_source').val(), // 是 渠道来源 1表示PC 2表示安卓 3表示IOS 4表示微信
  679. province: $('#province').val(),//省
  680. city: $('#city').val(),//市
  681. projectid: $('#proname').val(), // 项目名称
  682. buildid: $("#build option:selected").val(),//楼
  683. floorid: $("#floor option:selected").val(),//楼层
  684. repairreplace: repairplaceStr, // 报修地点
  685. repairoom: $('#repairoom').val(), // 房间号
  686. repairtime: helper.DateFormat.getNowDateTime(), // 报修时间
  687. repairman: $('#order_name').val(), // 是 string 报修人
  688. contactway: $('#order_tel').val(), // 是 string 联系方式
  689. faultdescripe: helper.filter.delHtmlTag($('#order_reception').val()), // 否 string 故障说明
  690. },
  691. success: function(result) {
  692. if(result.state.toLowerCase() === "success") {
  693. cleanOrderForm(); //清空新增工单的数据
  694. $('.ld-service').find('li.KF').trigger('click'); //进入历史工单页面
  695. layer.msg("创建成功");
  696. }
  697. },
  698. error: function(textStatus) {
  699. layer.close(loadIndex);
  700. layer.confirm('网络繁忙,请稍后再试...', {
  701. icon: 7,
  702. closeBtn: 0,
  703. btn: ['确定'] //按钮
  704. });
  705. $('#save_order').text('创建');
  706. $('#save_order').attr("disabled", false);
  707. $(document).off('click', '#save_order', saveOrder);
  708. $(document).on('click', '#save_order', saveOrder);
  709. },
  710. complete: function(XMLHttpRequest, textStatus) {
  711. layer.close(loadIndex);
  712. if(textStatus == 'timeout') {
  713. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  714. xmlhttp.abort();
  715. layer.confirm('网络超时,请稍后再试...', {
  716. icon: 7,
  717. closeBtn: 0,
  718. btn: ['确定'] //按钮
  719. });    
  720. }
  721. $('#save_order').text('创建');
  722. $('#save_order').attr("disabled", false);
  723. $(document).off('click', '#save_order', saveOrder);
  724. $(document).on('click', '#save_order', saveOrder);
  725. },
  726. });
  727. }
  728. //清空新增工单的数据
  729. function cleanOrderForm() {
  730. $('#order_form').find('input.form-control').val('');
  731. $('#order_form').find('textarea.form-control').val('');
  732. $('#order_form').find('select.form-control').val('');
  733. $('#province').selectpicker('destroy');
  734. $('#province').empty();
  735. $('#province').append('<option value="">请选择省</option>');
  736. $('#province').selectpicker('refresh');
  737. $('#city').selectpicker('destroy');
  738. $('#city').empty();
  739. $('#city').append('<option value="">请选择市</option>');
  740. $('#city').selectpicker('refresh');
  741. $('#proname').selectpicker('destroy');
  742. $('#proname').empty();
  743. $('#proname').append('<option value="">请选择项目</option>');
  744. $('#proname').selectpicker('refresh');
  745. $('#build').selectpicker('destroy');
  746. $('#build').empty();
  747. $('#build').append('<option value="">请选择楼</option>');
  748. $('#build').selectpicker('refresh');
  749. $('#floor').selectpicker('destroy');
  750. $('#floor').empty();
  751. $('#floor').append('<option value="">请选择楼层</option>');
  752. $('#floor').selectpicker('refresh');
  753. $('#order_form').find('.selectpicker.form-control').selectpicker('val', '').trigger('change');
  754. $('#order_source').selectpicker('val', '1');
  755. }
  756. //拉黑 保存
  757. function saveBlack() {
  758. var reg = /^\+?[1-9][0-9]*$/;
  759. var val = $("input[name='time']:checked").val();
  760. if($("#time-word").val()) {
  761. if(!(reg.test($("#time-word").val()))) {
  762. layer.confirm('请输入整数时间!', {
  763. icon: 2,
  764. btn: ['确定']
  765. });
  766. return;
  767. }
  768. } else {
  769. if(val == '4') {
  770. // $("#time-word").val() = 0;
  771. $("#time-word").val('0');
  772. } else {
  773. layer.confirm('请输入整数时间!', {
  774. icon: 2,
  775. btn: ['确定']
  776. });
  777. return;
  778. }
  779. }
  780. $.post(huayi.config.callcenter_url + 'callcenterapi/api/callinscreen/addblack', {
  781. phone: phoneNumber,// 是 string 电话号码
  782. //des 否 string 说明备注
  783. type: val,// 是 int 类型:1为按天拉黑,2为按时长拉黑,3为按分钟拉黑,4永远拉黑
  784. num: $("#time-word").val(), //是 int 拉黑数值
  785. }, function(result) {
  786. result = $.parseJSON(result);
  787. if(result.state.toLowerCase() == "success") {
  788. layer.msg("拉入黑名单成功");
  789. $('.head_black_btn').text('取消');
  790. $('.ldtp-con .hei-list').hide();
  791. $('.la-before').hide();
  792. $('.retur').show();
  793. }
  794. })
  795. }
  796. //取消黑名单
  797. function cancelBlack() {
  798. $.post(huayi.config.callcenter_url + 'callcenterapi/api/callinscreen/delblack', {
  799. phone: phoneNumber, //是 string 电话号码
  800. }, function(result) {
  801. result = $.parseJSON(result);
  802. if(result.state.toLowerCase() === "success") {
  803. layer.msg("取消黑名单成功");
  804. $('.head_black_btn').text('黑名单');
  805. $('.retur').hide();
  806. $('.la-before').show();
  807. }
  808. })
  809. }
  810. /**
  811. * 获取接收部门 获取投诉类型
  812. * el1, 树形结构元素id名 reginsTreeView
  813. * el2, 搜索框元素id名 order_transfer_dept
  814. * */
  815. function getDepts(el1, el2) {
  816. //初始化 样式
  817. $('#' + el2).on('focus click', function() {
  818. $('#' + el1).removeClass('hidden').addClass('show');
  819. });
  820. $('#' + el2).on('keyup', function() {
  821. if($(this).val() == '') {
  822. $('#' + el1).treeview('uncheckAll', {
  823. silent: true
  824. });
  825. $(this).attr('data-id', '');
  826. }
  827. });
  828. $('#' + el2 + ' .caret').on('click', function() {
  829. $('#' + el1).removeClass('hidden').addClass('show');
  830. });
  831. $('#' + el1).mouseleave(function() {
  832. $(this).removeClass('show').addClass('hidden');
  833. });
  834. $.getJSON(huayi.config.callcenter_url + 'Department/GetDeptListbyReceive', {
  835. token: $.cookie("token")
  836. }, function(result) {
  837. if(result.state.toLowerCase() == "success") {
  838. var defaultDatas = helper.methods.buildTree(result.data);
  839. var sortChildrenArr = helper.methods.objToArray(defaultDatas[0].children);
  840. sortChildrenArr.sort(helper.methods.compare('sort'));
  841. var sortChildrenObj = helper.methods.arrayToObj(sortChildrenArr);
  842. defaultDatas[0].children = sortChildrenObj;
  843. if(defaultDatas) {
  844. var $sTree = $('#' + el1).treeview({
  845. color: "#249fea",
  846. selectedBackColor: '#249fea',
  847. expandIcon: 'glyphicon glyphicon-chevron-right',
  848. collapseIcon: 'glyphicon glyphicon-chevron-down',
  849. nodeIcon: 'fa fa-folder-o',
  850. //selectedIcon: "glyphicon glyphicon-stop",
  851. //icon: "glyphicon glyphicon-stop",
  852. //emptyIcon: 'glyphicon',
  853. //showCheckbox: true,
  854. selectable: true,
  855. state: {
  856. selected: true
  857. },
  858. data: defaultDatas,
  859. onNodeSelected: function(event, node) {
  860. $sTree.treeview('clearSearch');
  861. $('#' + el2).val(node.text);
  862. $('#' + el2).attr('data-id', node.id);
  863. $('#' + el1).removeClass('show').addClass('hidden');
  864. if(el1 === 'reginsTreeView'){
  865. //获取接收人员
  866. getReceiveUser($('#order_receiveUser'), node.id);
  867. }else{
  868. if(node.id === 561) { //工程类
  869. $('.is_quality_assurance').show();
  870. } else {
  871. $('.is_quality_assurance').hide();
  872. }
  873. //获取受理人下拉
  874. getOrderResponsible(node.id);
  875. }
  876. },
  877. onNodeUnselected: function(event, node) {
  878. if(el1 === 'reginsTreeView'){
  879. $('#' + el2).attr('data-id', '');
  880. $('#' + el2).attr('placeholder', '请选择接收部门');
  881. $('#order_receiveUser').empty();
  882. $('#order_receiveUser').append('<option value="0">请选择接收人</option>');
  883. $('#order_receiveUser').selectpicker('refresh');
  884. }else{
  885. $('#complaintOrder_type').attr('placeholder', '请选择投诉类型');
  886. $('#complaintOrder_type').attr('data-id', '');
  887. $('#order_responsible').empty();
  888. $('#order_responsible').append('<option value="0">请选择受理人</option>');
  889. $('#order_responsible').selectpicker('refresh');
  890. }
  891. }
  892. });
  893. $('#' + el1).treeview('collapseAll', {
  894. silent: true
  895. });
  896. var findSNodes = function() {
  897. return $sTree.treeview('search', [$('#' + el2).val(), {
  898. ignoreCase: false,
  899. exactMatch: false
  900. }]);
  901. };
  902. $('#' + el2).on('keyup focus', function(e) {
  903. var selectableNodes = findSNodes();
  904. //var m = $('#' + el1).treeview('getParent', selectableNodes);
  905. //$('#' + el1).treeview('selectNode', [ m, { silent: true } ]);
  906. });
  907. }
  908. }
  909. })
  910. }
  911. //获取接收人员
  912. function getReceiveUser(obj, deptid) {
  913. if($('#order_pro').val() === '0') {
  914. layer.confirm('您还没有保存左侧客户信息,请先保存左侧客户信息。', {
  915. icon: 7,
  916. btn: ['确定']
  917. });
  918. return;
  919. }
  920. $.ajax({
  921. url: huayi.config.callcenter_url + 'UserAccount/GetDeptUserList',
  922. type: 'get',
  923. data: {
  924. proid: $('#order_pro').val(),//项目id
  925. deptid: deptid,
  926. token: $.cookie("token")
  927. },
  928. dataType: "json",
  929. async: true,
  930. success: function(res) {
  931. obj.empty();
  932. if(res.state.toLowerCase() === "success") {
  933. res = res.data;
  934. if(res && res.length > 0) {
  935. obj.append('<option value="0">请选择接收人</option>');
  936. res.forEach(function(v, i) {
  937. obj.append('<option value="' + v.F_UserId + '" data-code="'+ v.F_UserCode +'">' + v.F_UserName + '('+ v.F_UserCode +')</option>');
  938. });
  939. obj.selectpicker('refresh');
  940. }
  941. }
  942. },
  943. });
  944. }