开封利通水务前端

WorkOrder.js 34KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004
  1. /**
  2. * 工单管理
  3. * */
  4. var detailOrderNum = ''; //获取工单详情的工单ID
  5. $(document).ready(function() {
  6. //初始化时间
  7. laydate.render({
  8. elem: '#sc_time',
  9. range: '~',
  10. theme: '#1ab394',
  11. calendar: true
  12. });
  13. //获取工单来源
  14. helper.getDropList.getlistDropByDic($('#sc_source'), 'GDLY');
  15. //获取工单类型
  16. helper.getDropList.getlistDropByDic($('#sc_type'), 'GDLX');
  17. //获取业务办理
  18. helper.getDropList.getlistDropByDic($('#sc_handle'), 'YWLX');
  19. initTable();
  20. $("#sc_btns").click(function() {
  21. initTable();
  22. $(".Closed").trigger('click');
  23. });
  24. });
  25. //工单管理内的列表
  26. function initTable() {
  27. var orderMenu = top.$("iframe:visible")[0].src.split('/WorkOrder/')[1];
  28. // console.log(orderMenu);
  29. //工单状态(0待指派 1待接单的 2待完成的(待处理) 3已完成的 4我参与的 5超期工单)
  30. var ltype = ''; //否 string 工单状态
  31. var isaudit = '-1'; //微信列表(0未审核微信列表,1已审核微信列表,-1是所有)
  32. switch(orderMenu) {
  33. case "WorkOrderAppoint.html": //待指派
  34. ltype = '0';
  35. isaudit = '1';
  36. break;
  37. case "WorkOrderReceive.html": //待接单
  38. ltype = '1';
  39. isaudit = '1';
  40. break;
  41. case "WorkOrderDispose.html": //待处理
  42. ltype = '2';
  43. isaudit = '1';
  44. break;
  45. case "WorkOrderParty.html": //已处理
  46. ltype = '3';
  47. isaudit = '1';
  48. break;
  49. case "WorkOrderPartake.html": //已参与
  50. ltype = '4';
  51. isaudit = '1';
  52. break;
  53. case "WorkOrderOverdue.html": //超期
  54. ltype = '5';
  55. isaudit = '1';
  56. break;
  57. case "WorkOrderAssigned.html": //已指派工单
  58. ltype = '6';
  59. isaudit = '1';
  60. break;
  61. case "WorkOrderAwaitVist.html": //待回访工单
  62. ltype = '7';
  63. isaudit = '1';
  64. break;
  65. case "WorkOrderBeen.html": //已回访工单
  66. ltype = '8';
  67. isaudit = '1';
  68. break;
  69. case "WorkOrderWchartList.html": //微信工单
  70. isaudit = '0';
  71. break;
  72. case "WorkOrderExpedite.html": //工单催办
  73. initTableExpedite();
  74. return;
  75. break;
  76. default:
  77. break;
  78. }
  79. //先销毁表格
  80. $('#workorderlist').bootstrapTable('destroy');
  81. //初始化表格,动态从服务器加载数据
  82. $("#workorderlist").bootstrapTable({
  83. method: "get", //使用get请求到服务器获取数据
  84. url: huayi.config.callcenter_url + "WorkOrder/GetList", //获取数据的Servlet地址
  85. contentType: 'application/x-www-form-urlencoded',
  86. striped: true, //表格显示条纹
  87. pagination: true, //启动分页
  88. pageSize: 5, //每页显示的记录数
  89. pageNumber: 1, //当前第几页
  90. pageList: [5, 20, 50, 100], //记录数可选列表
  91. search: false, //是否启用查询
  92. showColumns: false, //显示下拉框勾选要显示的列
  93. showRefresh: false, //显示刷新按钮
  94. sidePagination: "server", //表示服务端请求
  95. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  96. //设置为limit可以获取limit, offset, search, sort, order
  97. queryParamsType: "undefined",
  98. queryParams: function queryParams(params) { //设置查询参数
  99. var param = {
  100. page: params.pageNumber,
  101. pagesize: params.pageSize,
  102. keyword: $('#sc_key').val(), //string 关键字:可输入客户姓名,电话,工单号,反馈内容
  103. ltype: ltype ,//string 状态列表:"0"://待指派的、"1"://待接单的、"2"://待完成的(待处理)、"3"://已完成的、"4"://我参与的、"5"://超期工单
  104. isaudit: isaudit,//int 微信列表(0未审核微信列表,1已审核微信列表)
  105. states: $('#sc_state').val(),//int 工单状态
  106. source: $('#sc_source').val(),//int 工单来源
  107. type: $('#sc_type').val(),//int 工单类型
  108. typeclass: $('#sc_handle').val(),// int 业务类型
  109. starttime: $('#sc_time').val() && $('#sc_time').val().split(' ~ ')[0],//string 工单开始时间
  110. endtime: $('#sc_time').val() && $('#sc_time').val().split(' ~ ')[1],//string 工单结束时间
  111. token: $.cookie("token")
  112. };
  113. return param;
  114. },
  115. onLoadSuccess: function() { //加载成功时执行
  116. //layer.msg("加载成功");
  117. authorizeOperateButton(); //获取 userRoleCode 判断按钮权限
  118. },
  119. onLoadError: function() { //加载失败时执行
  120. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  121. }
  122. });
  123. }
  124. //工单催办
  125. function initTableExpedite() {
  126. //先销毁表格
  127. $('#workorderlist').bootstrapTable('destroy');
  128. //初始化表格,动态从服务器加载数据
  129. $("#workorderlist").bootstrapTable({
  130. method: "get", //使用get请求到服务器获取数据
  131. url: huayi.config.callcenter_url + "WorkOrder/GetNotDoneWorkList", //获取数据的Servlet地址
  132. contentType: 'application/x-www-form-urlencoded',
  133. striped: true, //表格显示条纹
  134. pagination: true, //启动分页
  135. pageSize: 5, //每页显示的记录数
  136. pageNumber: 1, //当前第几页
  137. pageList: [5, 20, 50, 100], //记录数可选列表
  138. search: false, //是否启用查询
  139. showColumns: false, //显示下拉框勾选要显示的列
  140. showRefresh: false, //显示刷新按钮
  141. sidePagination: "server", //表示服务端请求
  142. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  143. //设置为limit可以获取limit, offset, search, sort, order
  144. queryParamsType: "undefined",
  145. queryParams: function queryParams(params) { //设置查询参数
  146. var param = {
  147. page: params.pageNumber,
  148. pagesize: params.pageSize,
  149. keyword: $('#sc_key').val(), //否 string 模糊搜索(客户姓名,电话,房间号,工单号)
  150. type: $('#sc_source').val(), //否 string 工单来源
  151. typeclass: $('#sc_type').val(), //否 string 工单类型
  152. starttime: $('#sc_time').val() && $('#sc_time').val().split(' ~ ')[0], //否 string 工单起止时间
  153. endtime: $('#sc_time').val() && $('#sc_time').val().split(' ~ ')[1], //否 string 工单起止时间
  154. areaid: $('#sc_rengin').val(), //否 string 区域id
  155. regionid: $('#sc_pro').val(), //否 string 项目id
  156. buldingid: $('#sc_floor').val(), //否 string 期号id
  157. isaudit: '1', //微信列表(0未审核微信列表,1已审核微信列表,-1所有)
  158. token: $.cookie("token"),
  159. };
  160. return param;
  161. },
  162. onLoadSuccess: function() { //加载成功时执行
  163. //layer.msg("加载成功");
  164. authorizeOperateButton(); //获取 userRoleCode 判断按钮权限
  165. },
  166. onLoadError: function() { //加载失败时执行
  167. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  168. }
  169. });
  170. }
  171. //获取 userRoleCode 判断按钮权限
  172. function authorizeOperateButton() {
  173. var userRoleCode = $.cookie("userRoleCode");
  174. // userRoleCode = "";//测试数据
  175. //所有人均有创建和查询的功能,XTGLY-系统维护、CJGLY-超级管理员拥有所有权限
  176. // $('.tool_downs').find('[authorize=yes]').hide();
  177. $('#workorderlist').find('.workOprate').hide();
  178. switch(userRoleCode) {
  179. case "XTGLY": // 系统维护
  180. case "CJGLY": // 超级管理员
  181. $('.tool_downs').find('[authorize=yes]').show();
  182. $('#workorderlist').find('.workOprate').show();
  183. break;
  184. case "JDYPTZX": // 普通坐席 派单(分配)、处理、接单、删除、催办
  185. case "JDYBZZX": // 坐席班长 派单(分配)、处理、接单、删除、催办
  186. $('.tool_downs').find('[id*="HY_transfer"]').show();
  187. $('.tool_downs').find('[id*="HY_end"]').show();
  188. $('.tool_downs').find('[id*="HY_receive"]').show();
  189. $('.tool_downs').find('[id*="HY_delete"]').show();
  190. $('.tool_downs').find('[id*="HY_remind"]').show();
  191. $('#workorderlist').find('.workOprate1').show(); //待指派
  192. $('#workorderlist').find('.workOprate2').show(); //待处理
  193. $('#workorderlist').find('.workOprate6').show(); //待接单
  194. $('#workorderlist').find('.workOprate3').show(); //工单催办
  195. $('#workorderlist').find('.workOprate4').show(); //超期工单
  196. break;
  197. case "JG": // JG-监管 退回/接单、分配、处理、催办
  198. $('.tool_downs').find('[id*="HY_back"]').show();
  199. $('.tool_downs').find('[id*="HY_receive"]').show();
  200. $('.tool_downs').find('[id*="HY_transfer"]').show();
  201. $('.tool_downs').find('[id*="HY_end"]').show();
  202. $('.tool_downs').find('[id*="HY_remind"]').show();
  203. $('#workorderlist').find('.workOprate6').show(); //待接单
  204. // $('#workorderlist').find('.workOprate1').show(); //待指派
  205. $('#workorderlist').find('.workOprate2').show(); //待处理
  206. $('#workorderlist').find('.workOprate3').show(); //工单催办
  207. $('#workorderlist').find('.workOprate4').show(); //超期工单
  208. break;
  209. case "BLRY": //BLRY-办理人员 退回/接单、处理 异常退回
  210. $('.tool_downs').find('[id*="HY_back"]').show();
  211. $('.tool_downs').find('[id*="HY_receive"]').show();
  212. $('.tool_downs').find('[id*="HY_end"]').show();
  213. $('.tool_downs').find('[id*="HY_abnormal_back"]').show();
  214. $('#workorderlist').find('.workOprate6').show(); //待接单
  215. $('#workorderlist').find('.workOprate2').show(); //待处理
  216. break;
  217. // case "1": //接待部(400接待员) (创建、分配、处理、修改、催办 、评论、审核微信工单 ,删除)
  218. //
  219. // $('.tool_downs').find('[id*="HY_edit"]').show();
  220. // $('.tool_downs').find('[id*="HY_remind"]').show();
  221. // $('.tool_downs').find('[id*="HY_comment"]').show();
  222. // $('.tool_downs').find('[id*="HY_auditor"]').show();
  223. //
  224. // $('#workorderlist').find('.workOprate5').show(); //已处理
  225. // $('#workorderlist').find('.workOprate7').show(); //综合查询
  226. // $('#workorderlist').find('.workOprate8').show(); //微信工单
  227. // break;
  228. default:
  229. break;
  230. }
  231. }
  232. //格式化操作(综合查询)
  233. function formatterOprate(val, row) {
  234. //工单状态0待指派,1待处理,2已处理
  235. // 0新工单待指派,1已指派待接单,2已接单待处理,3已退回待处理,4处理中,5已完结
  236. if(row.State === 2) {
  237. return '<ul class="tool_downs">' +
  238. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_delete_' + row.ID + '" onclick="btn_delete(' + val + ')" title="删除">删除</a></li>' +
  239. '</ul>';
  240. } else {
  241. return '<ul class="tool_downs">' +
  242. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_edit_' + row.ID + '" onclick="btn_edit(\'' + row.ID + '\')" title="修改">修改</a></li>' +
  243. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_delete_' + row.ID + '" onclick="btn_delete(' + val + ')" title="删除">删除</a></li>' +
  244. '</ul>';
  245. }
  246. }
  247. //格式化操作 (待指派)
  248. function formatterOprateDeal(val, row) {
  249. return '<ul class="tool_downs">' +
  250. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_edit_' + row.ID + '" onclick="btn_edit(\'' + row.ID + '\')" title="修改">修改</a></li>' +
  251. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_transfer_' + row.ID + '" onclick="btn_transfer(\'' + row.ID + '\', false, \''+ row.IsAdminSend +'\')" title="分配">分配</a></li>' +
  252. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_end_' + row.ID + '" onclick="btn_end(\'' + row.ID + '\', false)" title="处理">处理</a></li>' +
  253. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_delete_' + row.ID + '" onclick="btn_delete(\'' + row.ID + '\')" title="删除">删除</a></li>' +
  254. '</ul>';
  255. }
  256. //格式化操作 (待接单)
  257. function formatterOprateReceive(val, row) {
  258. // alert(JSON.stringify(row));
  259. return '<ul class="tool_downs">' +
  260. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_receive_' + row.ID + '" onclick="btn_receive(\'' + row.ID + '\')" title="接单">接单</a></li>' +
  261. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_back_' + row.ID + '" onclick="btn_back(\'' + row.ID + '\')" title="退回">退回</a></li>' +
  262. '</ul>';
  263. }
  264. //格式化操作 (已指派)
  265. function formatterYizpai(val, row) {
  266. // alert(JSON.stringify(row));
  267. return '<ul class="tool_downs">' +
  268. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_back_' + row.ID + '" onclick="btn_back(\'' + row.ID + '\')" title="退回">退回</a></li>' +
  269. '</ul>';
  270. }
  271. //格式化操作 (微信工单 审核)
  272. function formatterOprateWchart(val, row) {
  273. return '<ul class="tool_downs">' +
  274. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_auditor_' + row.ID + '" onclick="btn_auditor(\'' + val + '\')" title="审核">审核</a></li>' +
  275. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_delete_' + row.ID + '" onclick="btn_delete(\'' + row.ID + '\')" title="删除">删除</a></li>' +
  276. '</ul>';
  277. }
  278. //格式化操作 (待处理)
  279. function formatterOprateDispose(val, row) {
  280. return '<ul class="tool_downs">' +
  281. // '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_delete_' + row.ID + '" onclick="btn_delete(\'' + row.ID + '\')" title="删除">删除</a></li>' +
  282. // '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_transfer_' + row.ID + '" onclick="btn_transfer(\'' + row.ID + '\', false, \''+ row.IsAdminSend +'\')" title="分配">分配</a></li>' +
  283. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_end_' + row.ID + '" onclick="btn_end(\'' + row.ID + '\', false)" title="处理">处理</a></li>' +
  284. // '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_abnormal_back_' + row.ID + '" onclick="btn_abnormal_back(\'' + row.ID + '\')" title="异常退回">异常退回</a></li>' +
  285. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_back_' + row.ID + '" onclick="btn_back(\'' + row.ID + '\')" title="退回">退回</a></li>' +
  286. '</ul>';
  287. }
  288. //格式化操作 (已处理)
  289. function formatterOprateParty(val, row) {
  290. return '<ul class="tool_downs">' +
  291. // '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_delete_' + row.ID + '" onclick="btn_delete(\'' + row.ID + '\')" title="删除">删除</a></li>' +
  292. // '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_comment_' + row.ID + '" onclick="btn_comment(\'' + val + '\')" title="评论">评论</a></li>' +
  293. '</ul>';
  294. }
  295. //格式化操作 (工单催办 超期工单)
  296. function formatterOprateExpedite(val, row) {
  297. return '<ul class="tool_downs">' +
  298. // '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_edit_' + row.ID + '" onclick="btn_edit(\'' + row.ID + '\')" title="修改">修改</a></li>' +
  299. // '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_delete_' + row.ID + '" onclick="btn_delete(\'' + row.ID + '\')" title="删除">删除</a></li>' +
  300. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_remind_' + row.ID + '" onclick="btn_remind(\'' + row.ID + '\')" title="催办">催办</a></li>' +
  301. '</ul>';
  302. }
  303. //格式化操作 (修改记录)
  304. function formatterOprateLogs(val, row) {
  305. return '<ul class="tool_downs">' +
  306. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_deleteLogs_' + row.Id + '" onclick="btn_deleteLogs(' + row.Id + ')" title="删除">删除</a></li>' +
  307. '</ul>';
  308. }
  309. //格式化操作 (待回访)
  310. function formatterOprateHuiF(val, row) {
  311. return '<ul class="tool_downs">' +
  312. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_deleteLogs_' + row.ID + '" onclick="btn_hifang(' + row.ID + ')" title="回访">回访</a></li>' +
  313. '</ul>';
  314. }
  315. //格式化工单编号
  316. function formatterOrderId(val, row) {
  317. return '<div class="imgs" ><a class="xg" onclick=btn_detail("' + row.ID + '") >' + val + '</a></div>'
  318. }
  319. //附件下载
  320. function formatfujian(val, row) {
  321. // alert(JSON.stringify(row.FileUrl.F_FileUrl))
  322. // return
  323. if(row.FileUrl ==null) {
  324. return '-';
  325. } else {
  326. return '<div class="imgs" ><a href="'+ row.FileUrl[0].F_FileUrl +'" class="xg">' + row.FileUrl[0].F_FileName.slice(18) + '</a></div>';
  327. }
  328. }
  329. // function formaudigong(val,row) {
  330. // if(row.FileUrl[0] === null) {
  331. // return '-';
  332. // } else {
  333. // return row;
  334. // }
  335. // }
  336. //格式化 工单状态
  337. function formatterState(val) {
  338. //工单状态0待指派,1待处理,2已处理 原来的状态 不用!!!!
  339. // 0新工单待指派,1已指派待接单,2已接单待处理,3已退回待处理,4异常退回待处理,5处理中,10已完结
  340. var stateStr = '-';
  341. var stateClass = '';
  342. switch(val) {
  343. case 0:
  344. stateStr = '待指派';
  345. stateClass = 'audit_wait';
  346. break;
  347. case 1:
  348. stateStr = '待接单';
  349. stateClass = 'audit_refuse';
  350. break;
  351. case 2:
  352. stateStr = '待处理';
  353. stateClass = 'audit_revoke';
  354. break;
  355. case 3:
  356. stateStr = '已退回';
  357. stateClass = 'audit_termination';
  358. break;
  359. case 4:
  360. stateStr = '异常退回';
  361. stateClass = 'audit_termination';
  362. break;
  363. case 5:
  364. stateStr = '处理中';
  365. stateClass = 'audit_doned';
  366. break;
  367. case 10:
  368. stateStr = '已完结';
  369. stateClass = 'audit_done';
  370. break;
  371. case 12:
  372. stateStr = '已完结';
  373. stateClass = 'audit_doneti';
  374. break;
  375. default:
  376. break;
  377. }
  378. return '<div class="' + stateClass + '">' + stateStr + '</div>';
  379. }
  380. //格式化 工单有效性
  381. function formatterIsEffective(val) {
  382. var stateStr = '-';
  383. var stateClass = '';
  384. switch(val) { //是否有效工单项(0有效,1无效)
  385. case 0:
  386. stateStr = '有效';
  387. stateClass = 'audit_done';
  388. break;
  389. case 1:
  390. stateStr = '无效';
  391. stateClass = 'audit_revoke';
  392. break;
  393. default:
  394. break;
  395. }
  396. return '<div class="' + stateClass + '">' + stateStr + '</div>';
  397. }
  398. //格式化 反馈内容
  399. function formatterDetail(val) {
  400. if(val) {
  401. var strD = decodeURIComponent(val);
  402. strD = helper.filter.filterHTMLTag(strD);
  403. if(strD.length > 10) {
  404. strD = strD.substring(0, 10) + '...';
  405. }
  406. return strD;
  407. }
  408. }
  409. //格式化接收人
  410. function formatterAuditUser(val) {
  411. if(val === "0") {
  412. return '-';
  413. } else {
  414. return val;
  415. }
  416. }
  417. /**
  418. * 修改
  419. * oid工单id
  420. * isDetail 是否是详情页面的处理
  421. * */
  422. function btn_edit(oid, isDetail) {
  423. layer.open({
  424. type: 2,
  425. title: '修改工单',
  426. maxmin: true, //开启最大化最小化按钮
  427. area: ['80%', '90%'],
  428. content: '../commonTpl/addOrEditWorkOrder.html?oid=' + oid + '&isDetail=' + isDetail
  429. });
  430. }
  431. // 回访
  432. function btn_hifang(oid) {
  433. layer.open({
  434. type: 2,
  435. title: '工单回访',
  436. maxmin: true, //开启最大化最小化按钮
  437. area: ['70%', '80%'],
  438. content: '../commonTpl/LookMessage.html?oid=' + oid
  439. });
  440. }
  441. //function btn_hifang(oid) {
  442. // layer.prompt({
  443. // formType: 2,
  444. // value: '',
  445. // title: '请输入回访内容',
  446. // area: ['800px', '240px'] //自定义文本域宽高
  447. // }, function(value, index, elem) {
  448. // $.post(huayi.config.callcenter_url + 'WorkOrder/RBakWorkOrder', {
  449. // orderid: oid,// 工单ID
  450. // cont: value, //
  451. // token: $.cookie("token")
  452. // }, function(result) {
  453. // result = $.parseJSON(result);
  454. // if(result.state.toLowerCase() == "success") {
  455. // $('#workorderlist').bootstrapTable('refresh');
  456. // top.workcount();
  457. // $('.Closed').trigger('click');
  458. // layer.close(index);
  459. // layer.msg("回访成功!");
  460. // }
  461. // })
  462. // });
  463. //}
  464. /**
  465. * 这个是原来的处理 包含转派和处理;已经不用
  466. * 处理
  467. * oid 工单ID
  468. * idDeal 是否待处理的标志
  469. * isDetail 是否是详情页面的处理
  470. * proid 项目id
  471. * */
  472. function btn_deal(oid, isDeal, isDetail, proid) {
  473. layer.open({
  474. type: 2,
  475. title: '处理工单',
  476. maxmin: true, //开启最大化最小化按钮
  477. area: ['80%', '90%'],
  478. content: "../commonTpl/WorkOrderDeal.html?oid=" + oid + "&isDeal=" + isDeal + "&isDetail=" + isDetail + "&proid=" + proid
  479. });
  480. }
  481. /**
  482. * 处理(结束)
  483. * oid 工单ID
  484. * isDetail 是否是详情页面的处理
  485. * */
  486. function btn_end(oid, isDetail) {
  487. layer.open({
  488. type: 2,
  489. title: '处理工单',
  490. maxmin: true, //开启最大化最小化按钮
  491. area: ['80%', '90%'],
  492. content: "../commonTpl/WorkOrderEnd.html?oid=" + oid + "&isDetail=" + isDetail,
  493. });
  494. }
  495. /**
  496. * 分配
  497. * oid 工单ID
  498. * isDetail 是否是详情页面的处理
  499. * proid 项目id
  500. * */
  501. function btn_transfer(oid, isDetail, proid) {
  502. layer.open({
  503. type: 2,
  504. title: '分配工单',
  505. maxmin: true, //开启最大化最小化按钮
  506. area: ['80%', '90%'],
  507. content: "../commonTpl/WorkOrderTransfer.html?oid=" + oid + "&isDetail=" + isDetail + "&proid=" + proid,
  508. });
  509. }
  510. //接单
  511. function btn_receive(oid) {
  512. layer.confirm('您确认要接单吗?', {
  513. icon: 7,
  514. btn: ['接单', '取消'] //按钮
  515. }, function() {
  516. $.post(huayi.config.callcenter_url + 'WorkOrder/SureWorkOrder', {
  517. orderid: oid,
  518. token: $.cookie("token")
  519. }, function(result) {
  520. result = $.parseJSON(result);
  521. if(result.state.toLowerCase() == "success") {
  522. $('#workorderlist').bootstrapTable('refresh');
  523. top.workcount();
  524. $('.Closed').trigger('click');
  525. layer.msg("接单成功");
  526. }
  527. })
  528. });
  529. }
  530. //退回
  531. function btn_back(oid) {
  532. layer.prompt({
  533. formType: 2,
  534. value: '',
  535. title: '请输入退回原因',
  536. area: ['800px', '240px'] //自定义文本域宽高
  537. }, function(value, index, elem) {
  538. $.post(huayi.config.callcenter_url + 'WorkOrder/backWorkOrder', {
  539. orderid: oid,// 工单ID
  540. cont: value, // 退回原因
  541. type: 0, // 0退回,1异常退回
  542. token: $.cookie("token")
  543. }, function(result) {
  544. result = $.parseJSON(result);
  545. if(result.state.toLowerCase() == "success") {
  546. $('#workorderlist').bootstrapTable('refresh');
  547. top.workcount();
  548. $('.Closed').trigger('click');
  549. layer.close(index);
  550. layer.msg("退回成功!");
  551. }
  552. })
  553. });
  554. }
  555. //异常退回
  556. function btn_abnormal_back(oid) {
  557. layer.prompt({
  558. formType: 2,
  559. value: '',
  560. title: '请输入异常退回原因',
  561. area: ['800px', '240px'] //自定义文本域宽高
  562. }, function(value, index, elem) {
  563. $.post(huayi.config.callcenter_url + 'WorkOrder/backWorkOrder', {
  564. orderid: oid,// 工单ID
  565. cont: value, // 退回原因
  566. type: 1, // 0退回,1异常退回
  567. token: $.cookie("token")
  568. }, function(result) {
  569. result = $.parseJSON(result);
  570. if(result.state.toLowerCase() == "success") {
  571. $('#workorderlist').bootstrapTable('refresh');
  572. top.workcount();
  573. $('.Closed').trigger('click');
  574. layer.close(index);
  575. layer.msg("退回成功!");
  576. }
  577. })
  578. });
  579. }
  580. //审核
  581. function btn_auditor(oid) {
  582. layer.confirm('确认要审核通过该工单吗?', {
  583. icon: 7,
  584. btn: ['有效', '无效'] //按钮
  585. }, function() {
  586. auditWorkOrder(oid, 0);
  587. layer.msg("审核成功!");
  588. },
  589. function() {
  590. layer.prompt({
  591. formType: 2,
  592. value: '',
  593. title: '无效原因',
  594. area: ['600px', '200px'] //自定义文本域宽高
  595. }, function(value, index, elem) {
  596. auditWorkOrder(oid, 1, value);
  597. layer.close(index);
  598. layer.msg("审核成功!");
  599. });
  600. });
  601. }
  602. /**
  603. * 审核
  604. * oid 工单id
  605. * isvalid 0有效,1无效
  606. * oval 不通过原因
  607. * */
  608. function auditWorkOrder(oid, isvalid, oval) {
  609. $.post(huayi.config.callcenter_url + 'WorkOrder/AuditWorkOrder', {
  610. orderid: oid,
  611. iseffective: isvalid, //否 int 工单有效性 默认0 是否有效工单项(0有效,1无效)
  612. note: oval, // 否 string 无效原因
  613. token: $.cookie("token")
  614. }, function(result) {
  615. result = $.parseJSON(result);
  616. if(result.state.toLowerCase() == "success") {
  617. $('#workorderlist').bootstrapTable('refresh');
  618. top.workcount();
  619. $('.Closed').trigger('click');
  620. }
  621. });
  622. }
  623. //评论
  624. function btn_comment(oid) {
  625. layer.prompt({
  626. formType: 2,
  627. value: '',
  628. title: '请输入评论内容',
  629. area: ['800px', '240px'] //自定义文本域宽高
  630. }, function(value, index, elem) {
  631. $.post(huayi.config.callcenter_url + 'WorkOrder/AddWorkOrderComment', {
  632. orderid: oid,
  633. cont: value,
  634. token: $.cookie("token")
  635. }, function(result) {
  636. result = $.parseJSON(result);
  637. if(result.state.toLowerCase() == "success") {
  638. layer.msg("评论工单成功!");
  639. $('#workorderlist').bootstrapTable('refresh');
  640. top.workcount();
  641. $('.Closed').trigger('click');
  642. layer.close(index);
  643. }
  644. })
  645. });
  646. }
  647. //催办
  648. function btn_remind(oid) {
  649. layer.prompt({
  650. formType: 2,
  651. value: '',
  652. title: '请输入催办内容',
  653. area: ['800px', '240px'] //自定义文本域宽高
  654. }, function(value, index, elem) {
  655. $.post(huayi.config.callcenter_url + 'WorkOrder/AddWorkOrderRemind', {
  656. orderid: oid,
  657. cont: value,
  658. token: $.cookie("token")
  659. }, function(result) {
  660. result = $.parseJSON(result);
  661. if(result.state.toLowerCase() == "success") {
  662. layer.msg("催办工单成功!");
  663. $('#workorderlist').bootstrapTable('refresh');
  664. top.workcount();
  665. $('.Closed').trigger('click');
  666. layer.close(index);
  667. }
  668. })
  669. });
  670. }
  671. //删除
  672. function btn_delete(oid) {
  673. layer.confirm('确定删除当前记录?', {
  674. icon: 7,
  675. btn: ['是', '否'] //按钮
  676. }, function(index) {
  677. /*执行删除*/
  678. $.ajax({
  679. type: "post",
  680. url: huayi.config.callcenter_url + "WorkOrder/DelWorkOrder",
  681. dataType: 'json',
  682. async: true,
  683. data: {
  684. ids: oid,
  685. token: $.cookie("token")
  686. },
  687. success: function(data) {
  688. layer.msg("删除成功!");
  689. $('#workorderlist').bootstrapTable('refresh');
  690. top.workcount();
  691. $('.Closed').trigger('click');
  692. layer.close(index);
  693. }
  694. });
  695. });
  696. }
  697. //修改记录删除
  698. function btn_deleteLogs(oid) {
  699. layer.confirm('确定删除当前记录?', {
  700. icon: 7,
  701. btn: ['是', '否'] //按钮
  702. }, function(index) {
  703. /*执行删除*/
  704. $.ajax({
  705. type: "post",
  706. url: huayi.config.callcenter_url + "WorkOrderLogs/Delete",
  707. dataType: 'json',
  708. async: true,
  709. data: {
  710. ids: oid,
  711. token: $.cookie("token")
  712. },
  713. success: function(data) {
  714. layer.msg("删除成功!");
  715. $('#itemTableList4').bootstrapTable('refresh');
  716. layer.close(index);
  717. }
  718. });
  719. });
  720. }
  721. /**
  722. * 查看详情
  723. * oid 工单id
  724. * isCallScreen 是否是来单弹屏中的工单详情
  725. * */
  726. function btn_detail(oid, isCallScreen) {
  727. if(!isCallScreen){
  728. $('#order_details').load('./template/orderDetails.html');
  729. }else{
  730. $('#order_details').load('../WorkOrder/template/orderDetails.html');
  731. }
  732. $("#order_details").removeClass("Hidens");
  733. detailOrderNum = oid;
  734. }
  735. //获取工单详情
  736. function getWorkOrderDetails() {
  737. $.getJSON(huayi.config.callcenter_url + 'WorkOrder/GetWorkOrder', {
  738. "orderid": detailOrderNum,
  739. "token": $.cookie("token")
  740. }, function(result) {
  741. if(result.state.toLowerCase() == "success") {
  742. if(result.data.data && result.data.data.length > 0) {
  743. var data = result.data.data[0];
  744. $("#xq_gdbh").text(data.WorkOrderID);
  745. $("#xq_gdlx").text(data.GDLXName); //工单类型
  746. $("#xq_cjsj").text(data.CreateTime); //创建时间
  747. $("#xq_gdzt").html(formatterState(data.State)); //工单状态
  748. $("#xq_khxm").text(data.Customer); //客户姓名
  749. $("#xq_khdh").text(data.CustomerTel); //客户电话
  750. $("#xq_company").text(data.County); //公司名称
  751. $("#xq_iseffective").html(formatterIsEffective(data.IsEffective)); //工单有效性
  752. $("#xq_source").text(data.GDLYName); //工单来源
  753. $('#xq_handle').text(data.YWLXName); //业务办理(业务类型)
  754. $("#xq_fkdep").text(data.ResponDeptName); //接收部门
  755. $("#xq_responseUser").text(data.AuditUserNameRel); //接收人
  756. $("#xq_zxgh").text(data.CreateUserName1); //创建人
  757. $("#xq_clcontent").text(data.clcontent); //处理内容
  758. $("#xq_gdnr").html(decodeURIComponent(data.Detail)); //反馈内容
  759. if(data.IsEffective === 0) {
  760. $('.xq_notes').hide();
  761. } else {
  762. $('.xq_notes').show();
  763. $("#xq_note").text(data.Province); //无效原因
  764. }
  765. }
  766. }
  767. });
  768. }
  769. //获取修改记录
  770. function initTableLogs() {
  771. //先销毁表格
  772. $('#itemTableList4').bootstrapTable('destroy');
  773. //初始化表格,动态从服务器加载数据
  774. $("#itemTableList4").bootstrapTable({
  775. method: "get", //使用get请求到服务器获取数据
  776. url: huayi.config.callcenter_url + "WorkOrderLogs/GetList", //获取数据的Servlet地址
  777. contentType: 'application/x-www-form-urlencoded',
  778. striped: true, //表格显示条纹
  779. pagination: true, //启动分页
  780. pageSize: 10, //每页显示的记录数
  781. pageNumber: 1, //当前第几页
  782. pageList: [10, 20, 50, 100], //记录数可选列表
  783. search: false, //是否启用查询
  784. showColumns: false, //显示下拉框勾选要显示的列
  785. showRefresh: false, //显示刷新按钮
  786. sidePagination: "server", //表示服务端请求
  787. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  788. //设置为limit可以获取limit, offset, search, sort, order
  789. queryParamsType: "undefined",
  790. queryParams: function queryParams(params) { //设置查询参数
  791. var param = {
  792. page: params.pageNumber, //否 int 当前页
  793. pagesize: params.pageSize, //否 int 每页数
  794. orderid: $("#xq_gdbh").text(), //否 string 工单编号
  795. //keyword: detailOrderNum, //否 string 模糊搜索(之前反馈内容,修改的反馈内容,工单编号)
  796. //starttime: $('#sc_time').val() && $('#sc_time').val().split(' ~ ')[0], //否 string 工单起止时间
  797. //endtime: $('#sc_time').val() && $('#sc_time').val().split(' ~ ')[1], //否 string 工单起止时间
  798. token: $.cookie("token"),
  799. };
  800. return param;
  801. },
  802. onLoadSuccess: function() { //加载成功时执行
  803. //layer.msg("加载成功");
  804. authorizeOperateButton();
  805. },
  806. onLoadError: function() { //加载失败时执行
  807. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  808. }
  809. });
  810. }
  811. //获取 处理记录 催办记录 评论记录
  812. function getItemList(type) {
  813. //先销毁表格
  814. var table = $("#itemTableList" + type);
  815. table.bootstrapTable('destroy');
  816. //初始化表格,动态从服务器加载数据
  817. table.bootstrapTable({
  818. method: "get", //使用get请求到服务器获取数据
  819. url: huayi.config.callcenter_url + "WorkOrder/GetItemList", //获取数据的Servlet地址
  820. contentType: 'application/x-www-form-urlencoded',
  821. striped: true, //表格显示条纹
  822. pagination: true, //启动分页
  823. pageSize: 10, //每页显示的记录数
  824. pageNumber: 1, //当前第几页
  825. pageList: [10, 20, 50, 100], //记录数可选列表
  826. search: false, //是否启用查询
  827. showColumns: false, //显示下拉框勾选要显示的列
  828. showRefresh: false, //显示刷新按钮
  829. sidePagination: "server", //表示服务端请求
  830. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  831. //设置为limit可以获取limit, offset, search, sort, order
  832. queryParamsType: "undefined",
  833. queryParams: function queryParams(params) { //设置查询参数
  834. var param = {
  835. page: params.pageNumber,
  836. pagesize: params.pageSize,
  837. type: type,
  838. // id: $("#xq_gdbh").text(), // 工单编号
  839. orderid: detailOrderNum, // 工单ID
  840. token: $.cookie("token")
  841. };
  842. return param;
  843. },
  844. onLoadSuccess: function() { //加载成功时执行
  845. //layer.msg("加载成功");
  846. },
  847. onLoadError: function() { //加载失败时执行
  848. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  849. }
  850. });
  851. }
  852. //格式化处理详情
  853. function formatterDealDetail(val, row) {
  854. var str = '';
  855. if(!row.IsLast && !row.DealTime && !row.SureUserName && !row.ToDeptName){
  856. str = str + formatterUserName(row.CreateUser, row.CreateUserName) + " 创建了工单。" + "<br>";
  857. }
  858. if(row.IsLast) {
  859. str = str + formatterUserName(row.CreateUser, row.CreateUserName) + " 完结工单。" + "<br>";
  860. }
  861. if(row.DealTime) {
  862. str = str + formatterUserName(row.CreateUser, row.CreateUserName) + " 处理工单:" + "<br>";
  863. str = str + row.Detail + "<br>";
  864. }
  865. if(row.SureUserName) {
  866. str = str + formatterUserName(row.SureUser, row.SureUserName) + " 接单。" + "<br>";
  867. }
  868. if(row.ToDeptName) {
  869. if(row.State != 6){
  870. str = str + formatterUserName(row.CreateUser, row.CreateUserName) + " 指派工单给 " + row.ToDeptName + ":";
  871. if(row.ToUserName) {
  872. str = str + formatterUserName(row.ToUser, row.ToUserName);
  873. }
  874. }
  875. if(row.State === 6){
  876. str = str + row.ToDeptName + ":" + formatterUserName(row.ToUser, row.ToUserName) + " 将工单退回给 " + formatterUserName(row.CreateUser, row.CreateUserName);
  877. }
  878. str = str + "<br>";
  879. }
  880. if(row.IsStart) {
  881. str = str + formatterUserName(row.CreateUser, row.CreateUserName) + " 重新开启工单。" + "<br>";
  882. }
  883. return str;
  884. }
  885. /**
  886. * 格式化名称 返回(8000)管理员
  887. * @user_code 工号
  888. * @user_name 名称
  889. * */
  890. function formatterUserName(user_code, user_name){
  891. var str = '';
  892. if(user_code){
  893. str = '(' + user_code + ')' + user_name;
  894. }else{
  895. str = user_name;
  896. }
  897. return str;
  898. }
  899. function dcexcel(obj) {
  900. var orderMenu = top.$("iframe:visible")[0].src.split('/WorkOrder/')[1];
  901. //console.log(orderMenu);
  902. //工单状态(0待指派 1待接单的 2待完成的(待处理) 3已完成的 4我参与的 5超期工单)
  903. var ltype = ''; //否 string 工单状态
  904. var isaudit = '-1'; //微信列表(0未审核微信列表,1已审核微信列表)
  905. switch(orderMenu) {
  906. case "WorkOrderAppoint.html": //待指派
  907. ltype = '0';
  908. break;
  909. case "WorkOrderReceive.html": //待接单
  910. ltype = '1';
  911. break;
  912. case "WorkOrderDispose.html": //待处理
  913. ltype = '2';
  914. break;
  915. case "WorkOrderParty.html": //已处理
  916. ltype = '3';
  917. break;
  918. case "WorkOrderPartake.html": //已参与
  919. ltype = '4';
  920. break;
  921. case "WorkOrderOverdue.html": //超期
  922. ltype = '5';
  923. break;
  924. case "WorkOrderWchartList.html": //微信工单
  925. isaudit = '0';
  926. break;
  927. default:
  928. break;
  929. }
  930. var url = huayi.config.callcenter_url + "WorkOrder/ExportList?token=" + $.cookie("token");
  931. url += "&keyword=" + $("#sc_key").val();
  932. url += "&ltype=" + ltype;
  933. url += "&states=" + $('#sc_state').val();
  934. url += "&type=" + $("#sc_source").val();
  935. url += "&typeclass=" + $("#sc_type").val();
  936. url += "&starttime=" + ($('#sc_time').val() && $('#sc_time').val().split(' ~ ')[0]);
  937. url += "&endtime=" + ($('#sc_time').val() && $('#sc_time').val().split(' ~ ')[1]);
  938. url += "&areaid=" + $("#sc_rengin").val();
  939. url += "&regionid=" + $("#sc_pro").val();
  940. url += "&buldingid=" + $("#sc_floor").val();
  941. url += "&isaudit=" + isaudit;
  942. obj.href = url;
  943. }
  944. //催办的 导出
  945. function dcexcels(obj) {
  946. var url = huayi.config.callcenter_url + "WorkOrder/ExportList?token=" + $.cookie("token");
  947. url += "&keyword=" + $("#sc_key").val();
  948. url += "&type=" + $("#sc_source").val();
  949. url += "&typeclass=" + $("#sc_type").val();
  950. url += "&starttime=" + ($('#sc_time').val() && $('#sc_time').val().split(' ~ ')[0]);
  951. url += "&endtime=" + ($('#sc_time').val() && $('#sc_time').val().split(' ~ ')[1]);
  952. url += "&areaid=" + $("#sc_rengin").val();
  953. url += "&regionid=" + $("#sc_pro").val();
  954. url += "&buldingid=" + $("#sc_floor").val();
  955. obj.href = url;
  956. }