Bez popisu

callScreen.1.js 26KB

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