Brak opisu

unCallBackRecord.html 9.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <script src="../Script/Common/huayi.load.js"></script>
  6. <script src="../Script/Common/huayi.config.js"></script>
  7. <link rel="stylesheet" href="../css/init.css" />
  8. <link rel="stylesheet" href="./css/search.css" />
  9. <title>工单列表</title>
  10. </head>
  11. <body>
  12. <div class="wrapper wrapper-content animated fadeInRight">
  13. <div class="daoHang clearfix">
  14. <div class="dhLeft">
  15. <sapn>
  16. <i class="syIcon"></i>位置:
  17. <a href="javaScript:;" id="ReIndex">首页</a>&gt;
  18. <a href="javaScript:;">话务管理</a>&gt;
  19. <a href="" class="nowPosition">未回拨记录</a>
  20. </sapn>
  21. </div>
  22. <div class="dhRight">
  23. <a href="" title="刷新"><i class="fa fa-refresh"></i></a>
  24. </div>
  25. </div>
  26. <div class="th-box">
  27. <div class="box_content">
  28. <table id="sqzx" style="width: 100%" border="0">
  29. <tbody>
  30. <tr>
  31. <th>电话号码:</th>
  32. <td><input id="tel" class="form-control" type="text" /></td>
  33. <th>电话类别:</th>
  34. <td>
  35. <select class="form-control" id="phoneType">
  36. <option value="">请选择</option>
  37. </select>
  38. </td>
  39. <td colspan="3">
  40. <a class="sc_btn Ss">搜索</a>
  41. </td>
  42. </tr>
  43. </tbody>
  44. </table>
  45. </div>
  46. </div>
  47. <div style="width: 100%;padding: 10px;">
  48. <table id="orderlist" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
  49. <thead>
  50. <tr>
  51. <th data-field="" data-align="center" data-formatter="Code">编号</th>
  52. <th data-field="CallNumber" data-align="center" data-formatter="formatterCallNum">电话号码</th>
  53. <th data-field="FilePath" data-formatter="setCode" data-align="center">录音</th>
  54. <th data-field="CallState" data-formatter="states" data-align="center">呼叫状态</th>
  55. <th data-field="UserCode" data-align="center">坐席工号</th>
  56. <th data-field="UserName1" data-align="center">坐席姓名</th>
  57. <th data-field="BeginTime" data-align="center">开始时间</th>
  58. <th data-field="TalkStartTime" data-align="center">通话开始时间</th>
  59. <th data-field="TalkEndTime" data-align="center">通话结束时间</th>
  60. <th data-field="EndTime" data-align="center">结束时间</th>
  61. <th data-field="CallNumber" data-align="center" data-formatter="operationFormatter">操作</th>
  62. </tr>
  63. </thead>
  64. <tbody class="list"></tbody>
  65. </table>
  66. </div>
  67. </div>
  68. <script src="../js/guid.js"></script>
  69. <script src="../js/sm2/sm2.js"></script>
  70. <script src="../js/sm2/decrypt.js"></script>
  71. <script src="../js/utils/localStorageCache.js"></script>
  72. <script>
  73. var callId = helper.request.queryString("callId");
  74. $(document).ready(function () {
  75. load();
  76. // 电话类别
  77. getPhoneType($("#phoneType"));
  78. });
  79. //搜索
  80. $(".Ss").click(function () {
  81. load();
  82. });
  83. //获取查询信息
  84. function load() {
  85. //先销毁表格
  86. $('#orderlist').bootstrapTable('destroy');
  87. //初始化表格,动态从服务器加载数据
  88. $("#orderlist").bootstrapTable({
  89. method: "get", //使用get请求到服务器获取数据
  90. url: huayi.config.callcenter_url + "Callrecords/GetCallBackList", //获取数据的Servlet地址
  91. contentType: "application/x-www-form-urlencoded",
  92. striped: true, //表格显示条纹
  93. pagination: true, //启动分页
  94. pageSize: 10, //每页显示的记录数
  95. pageNumber: 1, //当前第几页
  96. pageList: [10, 20, 50, 100], //记录数可选列表
  97. search: false, //是否启用查询
  98. showColumns: false, //显示下拉框勾选要显示的列
  99. showRefresh: false, //显示刷新按钮
  100. sidePagination: "server", //表示服务端请求
  101. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  102. //设置为limit可以获取limit, offset, search, sort, order
  103. queryParamsType: "undefined",
  104. queryParams: function queryParams(params) { //设置查询参数
  105. var param = {
  106. page: params.pageNumber,
  107. pagesize: params.pageSize,
  108. phone:$("#tel").val(),
  109. phoneType:$("#phoneType").val(),
  110. token: $.cookie("token")
  111. };
  112. return param;
  113. },
  114. responseHandler: function (res) {
  115. return {
  116. "total": res.total,
  117. "rows": res.rows,
  118. }
  119. },
  120. onLoadSuccess: function (data) { //加载成功时执行
  121. },
  122. onLoadError: function () { //加载失败时执行
  123. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  124. }
  125. });
  126. }
  127. //音频
  128. function setCode(val) {
  129. if (val) {
  130. return '<div class="imgs">' +
  131. '<img src="../img/vice.png" alt="" onclick="helper.luyin.view(this)" item="' + val + '" />' +
  132. '</div>';
  133. } else {
  134. return '';
  135. }
  136. }
  137. //编号
  138. function Code(val, row, index) {
  139. return index + 1;
  140. }
  141. // 电话号码
  142. function formatterCallNum(val, row) {
  143. var phoneNumber
  144. var callNumber = decryptFn(row.CallNumberShow)
  145. if (callNumber.length === 12) {
  146. callNumber = callNumber.slice(1)
  147. } else if (callNumber.length === 13) {
  148. callNumber = callNumber.slice(2)
  149. } else {
  150. callNumber = callNumber
  151. }
  152. if (callNumber) {
  153. return '<a class="operation" onclick="backDial(\'' + callNumber + '\',\'' + row.CallId +'\')" title="">'+
  154. '<img src="../img/phones.png" style="display:inline-block"></img>'+val+'</a>'
  155. }
  156. }
  157. function states(val, row) {
  158. if (val == 0) {
  159. if (row.CallType == 0 && !row.UserCode) {
  160. return '<div class="imgs">主动放弃</div>';
  161. } else {
  162. return '<div class="imgs">未接通</div>';
  163. }
  164. } else if (val == 1) {
  165. return '<div class="imgs">已接通</div>';
  166. } else if (val == 2) {
  167. return '<div class="imgs">接通未达</div>';
  168. }
  169. }
  170. // 操作
  171. function operationFormatter(val) {
  172. // CallType ===0呼入 row.CallState ===0 未接通
  173. if (val) {
  174. return '<a class="operation" onclick="updateCallback(\'' + val + '\')" title="">无需回拨</a>'
  175. }
  176. }
  177. function updateCallback(phone){
  178. $.ajax({
  179. type: "get",
  180. url: huayi.config.callcenter_url + "Callrecords/UpdateCallbackid",
  181. async: true,
  182. dataType: "json",
  183. data: {
  184. token: $.cookie("token"),
  185. phone:phone,
  186. type:1
  187. },
  188. success: function (result) {
  189. if (result.state.toLowerCase() == "success") {
  190. load();
  191. }
  192. },
  193. });
  194. }
  195. // 外呼
  196. function backDial(phoneNumber, callId) {
  197. $.ajax({
  198. type: "get",
  199. url: huayi.config.callcenter_url + "CallOutOpt/GetCallOutprefix",
  200. async: true,
  201. dataType: "json",
  202. data: {
  203. token: $.cookie("token"),
  204. phone: phoneNumber,
  205. },
  206. success: function (result) {
  207. if (result.state.toLowerCase() == "success") {
  208. top.callbackState = true
  209. var guid = uuid();
  210. top.obj.Type = "MakeCall";
  211. top.obj.DestinationNumber = result.data.phone;
  212. top.obj.Header = result.data.fix;
  213. top.obj.TaskType = "2"; //0:拨号外呼;1:未接来电外呼;2:回访外呼
  214. top.obj.TaskPhoneID = callId; //回访的电话ID
  215. top.obj.TaskID = guid; //回访记录编号
  216. top.obj.Callee = phoneNumber; //被叫号码
  217. top.obj.Caller = $.cookie("extno"); //操作人分机号
  218. top.Send();
  219. }
  220. },
  221. });
  222. }
  223. // 电话类别
  224. function getPhoneType(obj) {
  225. obj.empty();
  226. obj.append('<option selected="selected" value="">请选择</option>');
  227. cacheManager.fetchData('Dictionary2498',"Dictionary/GetDicValueListById",{id: 2498 }).then(data => {
  228. var content = data.data;
  229. $(content).each(function(i, n) {
  230. $("<option value='" +n.F_Value +"'>" +n.F_Value +"</option>").appendTo(obj);
  231. });
  232. }).catch(error => {
  233. console.log('Dictionary2498加载失败' + error.message, '2498');
  234. });
  235. }
  236. </script>
  237. </body>
  238. </html>