开封利通水务前端

WorkOrder.js 33KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996
  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 formatterOprateWchart(val, row) {
  266. return '<ul class="tool_downs">' +
  267. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_auditor_' + row.ID + '" onclick="btn_auditor(\'' + val + '\')" title="审核">审核</a></li>' +
  268. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_delete_' + row.ID + '" onclick="btn_delete(\'' + row.ID + '\')" title="删除">删除</a></li>' +
  269. '</ul>';
  270. }
  271. //格式化操作 (待处理)
  272. function formatterOprateDispose(val, row) {
  273. return '<ul class="tool_downs">' +
  274. // '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_delete_' + row.ID + '" onclick="btn_delete(\'' + row.ID + '\')" title="删除">删除</a></li>' +
  275. // '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_transfer_' + row.ID + '" onclick="btn_transfer(\'' + row.ID + '\', false, \''+ row.IsAdminSend +'\')" title="分配">分配</a></li>' +
  276. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_end_' + row.ID + '" onclick="btn_end(\'' + row.ID + '\', false)" title="处理">处理</a></li>' +
  277. // '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_abnormal_back_' + row.ID + '" onclick="btn_abnormal_back(\'' + row.ID + '\')" title="异常退回">异常退回</a></li>' +
  278. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_back_' + row.ID + '" onclick="btn_back(\'' + row.ID + '\')" title="退回">退回</a></li>' +
  279. '</ul>';
  280. }
  281. //格式化操作 (已处理)
  282. function formatterOprateParty(val, row) {
  283. return '<ul class="tool_downs">' +
  284. // '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_delete_' + row.ID + '" onclick="btn_delete(\'' + row.ID + '\')" title="删除">删除</a></li>' +
  285. // '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_comment_' + row.ID + '" onclick="btn_comment(\'' + val + '\')" title="评论">评论</a></li>' +
  286. '</ul>';
  287. }
  288. //格式化操作 (工单催办 超期工单)
  289. function formatterOprateExpedite(val, row) {
  290. return '<ul class="tool_downs">' +
  291. // '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_edit_' + row.ID + '" onclick="btn_edit(\'' + row.ID + '\')" title="修改">修改</a></li>' +
  292. // '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_delete_' + row.ID + '" onclick="btn_delete(\'' + row.ID + '\')" title="删除">删除</a></li>' +
  293. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_remind_' + row.ID + '" onclick="btn_remind(\'' + row.ID + '\')" title="催办">催办</a></li>' +
  294. '</ul>';
  295. }
  296. //格式化操作 (修改记录)
  297. function formatterOprateLogs(val, row) {
  298. return '<ul class="tool_downs">' +
  299. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_deleteLogs_' + row.Id + '" onclick="btn_deleteLogs(' + row.Id + ')" title="删除">删除</a></li>' +
  300. '</ul>';
  301. }
  302. //格式化操作 (待回访)
  303. function formatterOprateHuiF(val, row) {
  304. return '<ul class="tool_downs">' +
  305. '<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_deleteLogs_' + row.ID + '" onclick="btn_hifang(' + row.ID + ')" title="回访">回访</a></li>' +
  306. '</ul>';
  307. }
  308. //格式化工单编号
  309. function formatterOrderId(val, row) {
  310. return '<div class="imgs" ><a class="xg" onclick=btn_detail("' + row.ID + '") >' + val + '</a></div>'
  311. }
  312. //附件下载
  313. function formatfujian(val, row) {
  314. // alert(JSON.stringify(row.FileUrl.F_FileUrl))
  315. // return
  316. if(row.FileUrl ==null) {
  317. return '-';
  318. } else {
  319. return '<div class="imgs" ><a href="'+ row.FileUrl[0].F_FileUrl +'" class="xg">' + row.FileUrl[0].F_FileName.slice(18) + '</a></div>';
  320. }
  321. }
  322. // function formaudigong(val,row) {
  323. // if(row.FileUrl[0] === null) {
  324. // return '-';
  325. // } else {
  326. // return row;
  327. // }
  328. // }
  329. //格式化 工单状态
  330. function formatterState(val) {
  331. //工单状态0待指派,1待处理,2已处理 原来的状态 不用!!!!
  332. // 0新工单待指派,1已指派待接单,2已接单待处理,3已退回待处理,4异常退回待处理,5处理中,10已完结
  333. var stateStr = '-';
  334. var stateClass = '';
  335. switch(val) {
  336. case 0:
  337. stateStr = '待指派';
  338. stateClass = 'audit_wait';
  339. break;
  340. case 1:
  341. stateStr = '待接单';
  342. stateClass = 'audit_refuse';
  343. break;
  344. case 2:
  345. stateStr = '待处理';
  346. stateClass = 'audit_revoke';
  347. break;
  348. case 3:
  349. stateStr = '已退回';
  350. stateClass = 'audit_termination';
  351. break;
  352. case 4:
  353. stateStr = '异常退回';
  354. stateClass = 'audit_termination';
  355. break;
  356. case 5:
  357. stateStr = '处理中';
  358. stateClass = 'audit_doned';
  359. break;
  360. case 10:
  361. stateStr = '已完结';
  362. stateClass = 'audit_done';
  363. break;
  364. case 12:
  365. stateStr = '已完结';
  366. stateClass = 'audit_doneti';
  367. break;
  368. default:
  369. break;
  370. }
  371. return '<div class="' + stateClass + '">' + stateStr + '</div>';
  372. }
  373. //格式化 工单有效性
  374. function formatterIsEffective(val) {
  375. var stateStr = '-';
  376. var stateClass = '';
  377. switch(val) { //是否有效工单项(0有效,1无效)
  378. case 0:
  379. stateStr = '有效';
  380. stateClass = 'audit_done';
  381. break;
  382. case 1:
  383. stateStr = '无效';
  384. stateClass = 'audit_revoke';
  385. break;
  386. default:
  387. break;
  388. }
  389. return '<div class="' + stateClass + '">' + stateStr + '</div>';
  390. }
  391. //格式化 反馈内容
  392. function formatterDetail(val) {
  393. if(val) {
  394. var strD = decodeURIComponent(val);
  395. strD = helper.filter.filterHTMLTag(strD);
  396. if(strD.length > 10) {
  397. strD = strD.substring(0, 10) + '...';
  398. }
  399. return strD;
  400. }
  401. }
  402. //格式化接收人
  403. function formatterAuditUser(val) {
  404. if(val === "0") {
  405. return '-';
  406. } else {
  407. return val;
  408. }
  409. }
  410. /**
  411. * 修改
  412. * oid工单id
  413. * isDetail 是否是详情页面的处理
  414. * */
  415. function btn_edit(oid, isDetail) {
  416. layer.open({
  417. type: 2,
  418. title: '修改工单',
  419. maxmin: true, //开启最大化最小化按钮
  420. area: ['80%', '90%'],
  421. content: '../commonTpl/addOrEditWorkOrder.html?oid=' + oid + '&isDetail=' + isDetail
  422. });
  423. }
  424. // 回访
  425. // function btn_hifang(oid) {
  426. // layer.open({
  427. // type: 2,
  428. // title: '工单回访',
  429. // maxmin: true, //开启最大化最小化按钮
  430. // area: ['40%', '50%'],
  431. // content: '../commonTpl/addOrHuifang.html?oid=' + oid
  432. // });
  433. // }
  434. function btn_hifang(oid) {
  435. layer.prompt({
  436. formType: 2,
  437. value: '',
  438. title: '请输入回访内容',
  439. area: ['800px', '240px'] //自定义文本域宽高
  440. }, function(value, index, elem) {
  441. $.post(huayi.config.callcenter_url + 'WorkOrder/RBakWorkOrder', {
  442. orderid: oid,// 工单ID
  443. cont: value, //
  444. token: $.cookie("token")
  445. }, function(result) {
  446. result = $.parseJSON(result);
  447. if(result.state.toLowerCase() == "success") {
  448. $('#workorderlist').bootstrapTable('refresh');
  449. top.workcount();
  450. $('.Closed').trigger('click');
  451. layer.close(index);
  452. layer.msg("回访成功!");
  453. }
  454. })
  455. });
  456. }
  457. /**
  458. * 这个是原来的处理 包含转派和处理;已经不用
  459. * 处理
  460. * oid 工单ID
  461. * idDeal 是否待处理的标志
  462. * isDetail 是否是详情页面的处理
  463. * proid 项目id
  464. * */
  465. function btn_deal(oid, isDeal, isDetail, proid) {
  466. layer.open({
  467. type: 2,
  468. title: '处理工单',
  469. maxmin: true, //开启最大化最小化按钮
  470. area: ['80%', '90%'],
  471. content: "../commonTpl/WorkOrderDeal.html?oid=" + oid + "&isDeal=" + isDeal + "&isDetail=" + isDetail + "&proid=" + proid
  472. });
  473. }
  474. /**
  475. * 处理(结束)
  476. * oid 工单ID
  477. * isDetail 是否是详情页面的处理
  478. * */
  479. function btn_end(oid, isDetail) {
  480. layer.open({
  481. type: 2,
  482. title: '处理工单',
  483. maxmin: true, //开启最大化最小化按钮
  484. area: ['80%', '90%'],
  485. content: "../commonTpl/WorkOrderEnd.html?oid=" + oid + "&isDetail=" + isDetail,
  486. });
  487. }
  488. /**
  489. * 分配
  490. * oid 工单ID
  491. * isDetail 是否是详情页面的处理
  492. * proid 项目id
  493. * */
  494. function btn_transfer(oid, isDetail, proid) {
  495. layer.open({
  496. type: 2,
  497. title: '分配工单',
  498. maxmin: true, //开启最大化最小化按钮
  499. area: ['80%', '90%'],
  500. content: "../commonTpl/WorkOrderTransfer.html?oid=" + oid + "&isDetail=" + isDetail + "&proid=" + proid,
  501. });
  502. }
  503. //接单
  504. function btn_receive(oid) {
  505. layer.confirm('您确认要接单吗?', {
  506. icon: 7,
  507. btn: ['接单', '取消'] //按钮
  508. }, function() {
  509. $.post(huayi.config.callcenter_url + 'WorkOrder/SureWorkOrder', {
  510. orderid: oid,
  511. token: $.cookie("token")
  512. }, function(result) {
  513. result = $.parseJSON(result);
  514. if(result.state.toLowerCase() == "success") {
  515. $('#workorderlist').bootstrapTable('refresh');
  516. top.workcount();
  517. $('.Closed').trigger('click');
  518. layer.msg("接单成功");
  519. }
  520. })
  521. });
  522. }
  523. //退回
  524. function btn_back(oid) {
  525. layer.prompt({
  526. formType: 2,
  527. value: '',
  528. title: '请输入退回原因',
  529. area: ['800px', '240px'] //自定义文本域宽高
  530. }, function(value, index, elem) {
  531. $.post(huayi.config.callcenter_url + 'WorkOrder/backWorkOrder', {
  532. orderid: oid,// 工单ID
  533. cont: value, // 退回原因
  534. type: 0, // 0退回,1异常退回
  535. token: $.cookie("token")
  536. }, function(result) {
  537. result = $.parseJSON(result);
  538. if(result.state.toLowerCase() == "success") {
  539. $('#workorderlist').bootstrapTable('refresh');
  540. top.workcount();
  541. $('.Closed').trigger('click');
  542. layer.close(index);
  543. layer.msg("退回成功!");
  544. }
  545. })
  546. });
  547. }
  548. //异常退回
  549. function btn_abnormal_back(oid) {
  550. layer.prompt({
  551. formType: 2,
  552. value: '',
  553. title: '请输入异常退回原因',
  554. area: ['800px', '240px'] //自定义文本域宽高
  555. }, function(value, index, elem) {
  556. $.post(huayi.config.callcenter_url + 'WorkOrder/backWorkOrder', {
  557. orderid: oid,// 工单ID
  558. cont: value, // 退回原因
  559. type: 1, // 0退回,1异常退回
  560. token: $.cookie("token")
  561. }, function(result) {
  562. result = $.parseJSON(result);
  563. if(result.state.toLowerCase() == "success") {
  564. $('#workorderlist').bootstrapTable('refresh');
  565. top.workcount();
  566. $('.Closed').trigger('click');
  567. layer.close(index);
  568. layer.msg("退回成功!");
  569. }
  570. })
  571. });
  572. }
  573. //审核
  574. function btn_auditor(oid) {
  575. layer.confirm('确认要审核通过该工单吗?', {
  576. icon: 7,
  577. btn: ['有效', '无效'] //按钮
  578. }, function() {
  579. auditWorkOrder(oid, 0);
  580. layer.msg("审核成功!");
  581. },
  582. function() {
  583. layer.prompt({
  584. formType: 2,
  585. value: '',
  586. title: '无效原因',
  587. area: ['600px', '200px'] //自定义文本域宽高
  588. }, function(value, index, elem) {
  589. auditWorkOrder(oid, 1, value);
  590. layer.close(index);
  591. layer.msg("审核成功!");
  592. });
  593. });
  594. }
  595. /**
  596. * 审核
  597. * oid 工单id
  598. * isvalid 0有效,1无效
  599. * oval 不通过原因
  600. * */
  601. function auditWorkOrder(oid, isvalid, oval) {
  602. $.post(huayi.config.callcenter_url + 'WorkOrder/AuditWorkOrder', {
  603. orderid: oid,
  604. iseffective: isvalid, //否 int 工单有效性 默认0 是否有效工单项(0有效,1无效)
  605. note: oval, // 否 string 无效原因
  606. token: $.cookie("token")
  607. }, function(result) {
  608. result = $.parseJSON(result);
  609. if(result.state.toLowerCase() == "success") {
  610. $('#workorderlist').bootstrapTable('refresh');
  611. top.workcount();
  612. $('.Closed').trigger('click');
  613. }
  614. });
  615. }
  616. //评论
  617. function btn_comment(oid) {
  618. layer.prompt({
  619. formType: 2,
  620. value: '',
  621. title: '请输入评论内容',
  622. area: ['800px', '240px'] //自定义文本域宽高
  623. }, function(value, index, elem) {
  624. $.post(huayi.config.callcenter_url + 'WorkOrder/AddWorkOrderComment', {
  625. orderid: oid,
  626. cont: value,
  627. token: $.cookie("token")
  628. }, function(result) {
  629. result = $.parseJSON(result);
  630. if(result.state.toLowerCase() == "success") {
  631. layer.msg("评论工单成功!");
  632. $('#workorderlist').bootstrapTable('refresh');
  633. top.workcount();
  634. $('.Closed').trigger('click');
  635. layer.close(index);
  636. }
  637. })
  638. });
  639. }
  640. //催办
  641. function btn_remind(oid) {
  642. layer.prompt({
  643. formType: 2,
  644. value: '',
  645. title: '请输入催办内容',
  646. area: ['800px', '240px'] //自定义文本域宽高
  647. }, function(value, index, elem) {
  648. $.post(huayi.config.callcenter_url + 'WorkOrder/AddWorkOrderRemind', {
  649. orderid: oid,
  650. cont: value,
  651. token: $.cookie("token")
  652. }, function(result) {
  653. result = $.parseJSON(result);
  654. if(result.state.toLowerCase() == "success") {
  655. layer.msg("催办工单成功!");
  656. $('#workorderlist').bootstrapTable('refresh');
  657. top.workcount();
  658. $('.Closed').trigger('click');
  659. layer.close(index);
  660. }
  661. })
  662. });
  663. }
  664. //删除
  665. function btn_delete(oid) {
  666. layer.confirm('确定删除当前记录?', {
  667. icon: 7,
  668. btn: ['是', '否'] //按钮
  669. }, function(index) {
  670. /*执行删除*/
  671. $.ajax({
  672. type: "post",
  673. url: huayi.config.callcenter_url + "WorkOrder/DelWorkOrder",
  674. dataType: 'json',
  675. async: true,
  676. data: {
  677. ids: oid,
  678. token: $.cookie("token")
  679. },
  680. success: function(data) {
  681. layer.msg("删除成功!");
  682. $('#workorderlist').bootstrapTable('refresh');
  683. top.workcount();
  684. $('.Closed').trigger('click');
  685. layer.close(index);
  686. }
  687. });
  688. });
  689. }
  690. //修改记录删除
  691. function btn_deleteLogs(oid) {
  692. layer.confirm('确定删除当前记录?', {
  693. icon: 7,
  694. btn: ['是', '否'] //按钮
  695. }, function(index) {
  696. /*执行删除*/
  697. $.ajax({
  698. type: "post",
  699. url: huayi.config.callcenter_url + "WorkOrderLogs/Delete",
  700. dataType: 'json',
  701. async: true,
  702. data: {
  703. ids: oid,
  704. token: $.cookie("token")
  705. },
  706. success: function(data) {
  707. layer.msg("删除成功!");
  708. $('#itemTableList4').bootstrapTable('refresh');
  709. layer.close(index);
  710. }
  711. });
  712. });
  713. }
  714. /**
  715. * 查看详情
  716. * oid 工单id
  717. * isCallScreen 是否是来单弹屏中的工单详情
  718. * */
  719. function btn_detail(oid, isCallScreen) {
  720. if(!isCallScreen){
  721. $('#order_details').load('./template/orderDetails.html');
  722. }else{
  723. $('#order_details').load('../WorkOrder/template/orderDetails.html');
  724. }
  725. $("#order_details").removeClass("Hidens");
  726. detailOrderNum = oid;
  727. }
  728. //获取工单详情
  729. function getWorkOrderDetails() {
  730. $.getJSON(huayi.config.callcenter_url + 'WorkOrder/GetWorkOrder', {
  731. "orderid": detailOrderNum,
  732. "token": $.cookie("token")
  733. }, function(result) {
  734. if(result.state.toLowerCase() == "success") {
  735. if(result.data.data && result.data.data.length > 0) {
  736. var data = result.data.data[0];
  737. $("#xq_gdbh").text(data.WorkOrderID);
  738. $("#xq_gdlx").text(data.GDLXName); //工单类型
  739. $("#xq_cjsj").text(data.CreateTime); //创建时间
  740. $("#xq_gdzt").html(formatterState(data.State)); //工单状态
  741. $("#xq_khxm").text(data.Customer); //客户姓名
  742. $("#xq_khdh").text(data.CustomerTel); //客户电话
  743. $("#xq_company").text(data.County); //公司名称
  744. $("#xq_iseffective").html(formatterIsEffective(data.IsEffective)); //工单有效性
  745. $("#xq_source").text(data.GDLYName); //工单来源
  746. $('#xq_handle').text(data.YWLXName); //业务办理(业务类型)
  747. $("#xq_fkdep").text(data.ResponDeptName); //接收部门
  748. $("#xq_responseUser").text(data.AuditUserNameRel); //接收人
  749. $("#xq_zxgh").text(data.CreateUserName1); //创建人
  750. $("#xq_clcontent").text(data.clcontent); //处理内容
  751. $("#xq_gdnr").html(decodeURIComponent(data.Detail)); //反馈内容
  752. if(data.IsEffective === 0) {
  753. $('.xq_notes').hide();
  754. } else {
  755. $('.xq_notes').show();
  756. $("#xq_note").text(data.Province); //无效原因
  757. }
  758. }
  759. }
  760. });
  761. }
  762. //获取修改记录
  763. function initTableLogs() {
  764. //先销毁表格
  765. $('#itemTableList4').bootstrapTable('destroy');
  766. //初始化表格,动态从服务器加载数据
  767. $("#itemTableList4").bootstrapTable({
  768. method: "get", //使用get请求到服务器获取数据
  769. url: huayi.config.callcenter_url + "WorkOrderLogs/GetList", //获取数据的Servlet地址
  770. contentType: 'application/x-www-form-urlencoded',
  771. striped: true, //表格显示条纹
  772. pagination: true, //启动分页
  773. pageSize: 10, //每页显示的记录数
  774. pageNumber: 1, //当前第几页
  775. pageList: [10, 20, 50, 100], //记录数可选列表
  776. search: false, //是否启用查询
  777. showColumns: false, //显示下拉框勾选要显示的列
  778. showRefresh: false, //显示刷新按钮
  779. sidePagination: "server", //表示服务端请求
  780. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  781. //设置为limit可以获取limit, offset, search, sort, order
  782. queryParamsType: "undefined",
  783. queryParams: function queryParams(params) { //设置查询参数
  784. var param = {
  785. page: params.pageNumber, //否 int 当前页
  786. pagesize: params.pageSize, //否 int 每页数
  787. orderid: $("#xq_gdbh").text(), //否 string 工单编号
  788. //keyword: detailOrderNum, //否 string 模糊搜索(之前反馈内容,修改的反馈内容,工单编号)
  789. //starttime: $('#sc_time').val() && $('#sc_time').val().split(' ~ ')[0], //否 string 工单起止时间
  790. //endtime: $('#sc_time').val() && $('#sc_time').val().split(' ~ ')[1], //否 string 工单起止时间
  791. token: $.cookie("token"),
  792. };
  793. return param;
  794. },
  795. onLoadSuccess: function() { //加载成功时执行
  796. //layer.msg("加载成功");
  797. authorizeOperateButton();
  798. },
  799. onLoadError: function() { //加载失败时执行
  800. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  801. }
  802. });
  803. }
  804. //获取 处理记录 催办记录 评论记录
  805. function getItemList(type) {
  806. //先销毁表格
  807. var table = $("#itemTableList" + type);
  808. table.bootstrapTable('destroy');
  809. //初始化表格,动态从服务器加载数据
  810. table.bootstrapTable({
  811. method: "get", //使用get请求到服务器获取数据
  812. url: huayi.config.callcenter_url + "WorkOrder/GetItemList", //获取数据的Servlet地址
  813. contentType: 'application/x-www-form-urlencoded',
  814. striped: true, //表格显示条纹
  815. pagination: true, //启动分页
  816. pageSize: 10, //每页显示的记录数
  817. pageNumber: 1, //当前第几页
  818. pageList: [10, 20, 50, 100], //记录数可选列表
  819. search: false, //是否启用查询
  820. showColumns: false, //显示下拉框勾选要显示的列
  821. showRefresh: false, //显示刷新按钮
  822. sidePagination: "server", //表示服务端请求
  823. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  824. //设置为limit可以获取limit, offset, search, sort, order
  825. queryParamsType: "undefined",
  826. queryParams: function queryParams(params) { //设置查询参数
  827. var param = {
  828. page: params.pageNumber,
  829. pagesize: params.pageSize,
  830. type: type,
  831. // id: $("#xq_gdbh").text(), // 工单编号
  832. orderid: detailOrderNum, // 工单ID
  833. token: $.cookie("token")
  834. };
  835. return param;
  836. },
  837. onLoadSuccess: function() { //加载成功时执行
  838. //layer.msg("加载成功");
  839. },
  840. onLoadError: function() { //加载失败时执行
  841. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  842. }
  843. });
  844. }
  845. //格式化处理详情
  846. function formatterDealDetail(val, row) {
  847. var str = '';
  848. if(!row.IsLast && !row.DealTime && !row.SureUserName && !row.ToDeptName){
  849. str = str + formatterUserName(row.CreateUser, row.CreateUserName) + " 创建了工单。" + "<br>";
  850. }
  851. if(row.IsLast) {
  852. str = str + formatterUserName(row.CreateUser, row.CreateUserName) + " 完结工单。" + "<br>";
  853. }
  854. if(row.DealTime) {
  855. str = str + formatterUserName(row.CreateUser, row.CreateUserName) + " 处理工单:" + "<br>";
  856. str = str + row.Detail + "<br>";
  857. }
  858. if(row.SureUserName) {
  859. str = str + formatterUserName(row.SureUser, row.SureUserName) + " 接单。" + "<br>";
  860. }
  861. if(row.ToDeptName) {
  862. if(row.State != 6){
  863. str = str + formatterUserName(row.CreateUser, row.CreateUserName) + " 指派工单给 " + row.ToDeptName + ":";
  864. if(row.ToUserName) {
  865. str = str + formatterUserName(row.ToUser, row.ToUserName);
  866. }
  867. }
  868. if(row.State === 6){
  869. str = str + row.ToDeptName + ":" + formatterUserName(row.ToUser, row.ToUserName) + " 将工单退回给 " + formatterUserName(row.CreateUser, row.CreateUserName);
  870. }
  871. str = str + "<br>";
  872. }
  873. if(row.IsStart) {
  874. str = str + formatterUserName(row.CreateUser, row.CreateUserName) + " 重新开启工单。" + "<br>";
  875. }
  876. return str;
  877. }
  878. /**
  879. * 格式化名称 返回(8000)管理员
  880. * @user_code 工号
  881. * @user_name 名称
  882. * */
  883. function formatterUserName(user_code, user_name){
  884. var str = '';
  885. if(user_code){
  886. str = '(' + user_code + ')' + user_name;
  887. }else{
  888. str = user_name;
  889. }
  890. return str;
  891. }
  892. function dcexcel(obj) {
  893. var orderMenu = top.$("iframe:visible")[0].src.split('/WorkOrder/')[1];
  894. //console.log(orderMenu);
  895. //工单状态(0待指派 1待接单的 2待完成的(待处理) 3已完成的 4我参与的 5超期工单)
  896. var ltype = ''; //否 string 工单状态
  897. var isaudit = '-1'; //微信列表(0未审核微信列表,1已审核微信列表)
  898. switch(orderMenu) {
  899. case "WorkOrderAppoint.html": //待指派
  900. ltype = '0';
  901. break;
  902. case "WorkOrderReceive.html": //待接单
  903. ltype = '1';
  904. break;
  905. case "WorkOrderDispose.html": //待处理
  906. ltype = '2';
  907. break;
  908. case "WorkOrderParty.html": //已处理
  909. ltype = '3';
  910. break;
  911. case "WorkOrderPartake.html": //已参与
  912. ltype = '4';
  913. break;
  914. case "WorkOrderOverdue.html": //超期
  915. ltype = '5';
  916. break;
  917. case "WorkOrderWchartList.html": //微信工单
  918. isaudit = '0';
  919. break;
  920. default:
  921. break;
  922. }
  923. var url = huayi.config.callcenter_url + "WorkOrder/ExportList?token=" + $.cookie("token");
  924. url += "&keyword=" + $("#sc_key").val();
  925. url += "&ltype=" + ltype;
  926. url += "&states=" + $('#sc_state').val();
  927. url += "&type=" + $("#sc_source").val();
  928. url += "&typeclass=" + $("#sc_type").val();
  929. url += "&starttime=" + ($('#sc_time').val() && $('#sc_time').val().split(' ~ ')[0]);
  930. url += "&endtime=" + ($('#sc_time').val() && $('#sc_time').val().split(' ~ ')[1]);
  931. url += "&areaid=" + $("#sc_rengin").val();
  932. url += "&regionid=" + $("#sc_pro").val();
  933. url += "&buldingid=" + $("#sc_floor").val();
  934. url += "&isaudit=" + isaudit;
  935. obj.href = url;
  936. }
  937. //催办的 导出
  938. function dcexcels(obj) {
  939. var url = huayi.config.callcenter_url + "WorkOrder/ExportList?token=" + $.cookie("token");
  940. url += "&keyword=" + $("#sc_key").val();
  941. url += "&type=" + $("#sc_source").val();
  942. url += "&typeclass=" + $("#sc_type").val();
  943. url += "&starttime=" + ($('#sc_time').val() && $('#sc_time').val().split(' ~ ')[0]);
  944. url += "&endtime=" + ($('#sc_time').val() && $('#sc_time').val().split(' ~ ')[1]);
  945. url += "&areaid=" + $("#sc_rengin").val();
  946. url += "&regionid=" + $("#sc_pro").val();
  947. url += "&buldingid=" + $("#sc_floor").val();
  948. obj.href = url;
  949. }