Нет описания

seeEqupMaintainOrders.js 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  1. /**
  2. * 查看保养工单
  3. * */
  4. var timeRules = ''; //超时时长规则 暂时定5、10、 15 (分钟)三个阶段;展示不同的颜色
  5. $(function() {
  6. var pro_id = helper.request.queryString("edit_id");
  7. //获取超时时长的规则
  8. timeoutRules().then(function() {
  9. getProjectDetail(pro_id);
  10. });
  11. });
  12. //获取单个
  13. function getProjectDetail(ids) {
  14. $.getJSON(huayi.config.callcenter_url + "equipmentapi/api/womaintainbase/getsingle", {
  15. id: ids,
  16. }, function(data) {
  17. if(data.state == "success") {
  18. var res = data.data;
  19. var lastcheckresult = res.lastmaintainresult; //上次保养结果
  20. var quipmentstate = res.equipstate; //设备状态
  21. var wostate = res.wostate; //工单状态
  22. $('#wocode').html('工单编号:' + res.wocode); //工单编号
  23. $('#plan_woname').html(res.woname); //工单名称
  24. $('#plan_title').html(res.planname); //计划名称
  25. $('#project_detail_title').html(res.projectname); //项目名称
  26. if(res.matternames){
  27. $('#sys_title').html(res.matternames.join(',')); //检查事项名称
  28. }
  29. // if(res.systemname) {
  30. // $('#sys_title').html(res.systemname); //系统名称
  31. // }
  32. // if(res.equipmentname && res.equipmentname[0] != '') {
  33. // $('#eqp_title').html(res.equipmentname.join(',')); //设备名称
  34. // }
  35. $('#lastchecktime').html(formatterCheckTime(res.lastmaintaintime)); //上次保养时间
  36. if($('#lastchecktime').text() != '-') {
  37. $('#lastmaintainresult').text(ftype(lastcheckresult).stateTxt); //上次保养结果
  38. $('#lastmaintainresult').addClass(ftype(lastcheckresult).stateClass);
  39. } else {
  40. $('#lastmaintainresult').text('-');
  41. }
  42. //创建人
  43. if(res.createby && res.createbyuser){
  44. $('#createby').html(res.createby + '-' + res.createbyuser);
  45. }
  46. $('#createTime').html(res.createtime); //创建时间
  47. $('#plan_planclaim').html(helper.filter.content(res.maintainclim)); //工单要求
  48. $('#abnormalcontent').html(helper.filter.content(res.maintaincontent)); //工单内容
  49. $('#wostart').html(res.starttime); //工单开始时间
  50. $('#woend').html(res.endtime); //工单结束时间
  51. $('#overLongTime').html(formatterTimeoutlong(res.timeoutlong)); //超时时长
  52. //保养人
  53. $('#checkby').html(formatterName(res.maintainuser, res.maintainusername));
  54. //设备状态
  55. $('#quipmenttype').text(ftype(quipmentstate).stateTxt);
  56. $('#quipmenttype').addClass(ftype(quipmentstate).stateClass);
  57. //工单状态
  58. $('#wostate').text(formatterWostate(wostate).stateName);
  59. $('#wostate').addClass(formatterWostate(wostate).stateClass);
  60. //处理人
  61. $('#dealby').html(formatterName(res.dealuser, res.dealusername));
  62. //处理提交时间
  63. $('#dealSubmitTime').html(formatterCheckTime(res.dealtime));
  64. //更换说明
  65. $('#replacedes').html(helper.filter.content(res.replacedes));
  66. //处理异常说明
  67. $('#checkcontent').html(helper.filter.content(res.exceptiondes));
  68. //自定义字段
  69. var customfields = res.extensionlist;
  70. if(customfields && customfields.length > 0) {
  71. $.each(customfields, function(i, v) {
  72. $('#customfields').append('<li><div id="extension_'+ i +'" class="extension_con file_imgs clearfix"><div class="extension_txt">' + v.name + ':<span id="userCode">' + (v.value == null ? '' : v.value) + '</div></span>'+
  73. '</div></li>');
  74. if(v.picfiles && v.picfiles.length > 0){
  75. var $list = $('#extension_' + i);
  76. $.each(v.picfiles, function(j, m) {
  77. if(m.filesmallurl) {
  78. //图片
  79. var $li = $(
  80. '<li><span class="img_mask"><a href="' + m.fileurl + '" download="filename" title="点击下载"><i class="glyphicon glyphicon-download-alt" aria-hidden="true"></i></a></span>' +
  81. '<img layer-src="' + m.fileurl + '" alt="' + m.filename + '" src="' + m.filesmallurl + '" title="图片"/>' +
  82. '<span class="file_name">' + m.filename + '</span>' +
  83. '</li>'
  84. );
  85. $list.append($li);
  86. } else {
  87. var $liFile = $(
  88. '<li><span class="img_mask"><a href="' + m.fileurl + '" download="filename" title="点击下载"><i class="glyphicon glyphicon-download-alt" aria-hidden="true"></i></a></span>' +
  89. '<div class="noThumb" title="文件"><i class="glyphicon glyphicon-paperclip"></i><p>无法预览</p></div>' +
  90. '<span class="file_name">' + m.filename + '</span>' +
  91. '</li>'
  92. );
  93. $list.append($liFile);
  94. }
  95. });
  96. layer.photos({
  97. photos: '#extension_' + i,
  98. anim: 5, //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数)
  99. title: '查看图片',
  100. move: '.layui-layer-title',
  101. shadeClose: false,
  102. closeBtn: 1,
  103. area: ['80%', '90%'],
  104. tab: function(pic, layero) {
  105. $('.layui-layer-content').on("mousewheel", function(e, d) {
  106. helper.methods.zoomImg($('#layui-layer-photos').find('img[alt="' + pic.alt + '"]'), d);
  107. $('#layui-layer-photos').find('img[alt="' + pic.alt + '"]').dragging({
  108. move: "both", //拖动方向,x y both
  109. randomPosition: false //初始位置是否随机
  110. });
  111. return false;
  112. });
  113. helper.methods.initLayerPhotos('#layui-layer-photos', pic, layero);
  114. },
  115. });
  116. }
  117. });
  118. } else {
  119. $("#customfields").html("暂无内容。。。");
  120. }
  121. //转派流程
  122. var transferLines = res.itemlist;
  123. if(transferLines && transferLines.length > 0) {
  124. transferLines.sort(helper.methods.compare('createtime', -1));
  125. $('#transferLines').empty();
  126. $.each(transferLines, function(i, v) {
  127. //工单状态:0创建工单,1已转派,2已接收,3已处理,6挂起
  128. var timelineHtml = '';
  129. if(i === 0) {
  130. timelineHtml = creatTimeLineHtml(v, 'layui-item_active');
  131. } else {
  132. timelineHtml = creatTimeLineHtml(v, 'layui-item_default');
  133. }
  134. $('#transferLines').append(timelineHtml);
  135. });
  136. }
  137. //附件
  138. var EnclosureList = res.maintainpic;
  139. if(EnclosureList && EnclosureList.length > 0) {
  140. var $list = $("#fileList");
  141. $.each(EnclosureList, function(i, v) {
  142. if(v.filesmallurl) {
  143. //原来的图片
  144. var $li = $(
  145. '<li><span class="img_mask"><a href="' + v.fileurl + '" download="filename" title="点击下载"><i class="glyphicon glyphicon-download-alt" aria-hidden="true"></i></a></span>' +
  146. '<img layer-src="' + v.fileurl + '" alt="' + v.filename + '" src="' + v.filesmallurl + '" title="图片"/>' +
  147. '<span class="file_name">' + v.filename + '</span>' +
  148. '</li>'
  149. );
  150. $list.append($li);
  151. } else {
  152. var $liFile = $(
  153. '<li><span class="img_mask"><a href="' + v.fileurl + '" download="filename" title="点击下载"><i class="glyphicon glyphicon-download-alt" aria-hidden="true"></i></a></span>' +
  154. '<div class="noThumb" title="文件"><i class="glyphicon glyphicon-paperclip"></i><p>无法预览</p></div>' +
  155. '<span class="file_name">' + v.filename + '</span>' +
  156. '</li>'
  157. );
  158. $list.append($liFile);
  159. }
  160. });
  161. layer.photos({
  162. photos: '#fileList',
  163. anim: 5, //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数)
  164. title: '查看图片',
  165. move: '.layui-layer-title',
  166. shadeClose: false,
  167. closeBtn: 1,
  168. area: ['80%', '90%'],
  169. tab: function(pic, layero) {
  170. $('.layui-layer-content').on("mousewheel", function(e, d) {
  171. helper.methods.zoomImg($('#layui-layer-photos').find('img[alt="' + pic.alt + '"]'), d);
  172. $('#layui-layer-photos').find('img[alt="' + pic.alt + '"]').dragging({
  173. move: "both", //拖动方向,x y both
  174. randomPosition: false ,//初始位置是否随机
  175. });
  176. return false;
  177. });
  178. helper.methods.initLayerPhotos('#layui-layer-photos', pic, layero);
  179. },
  180. });
  181. } else {
  182. $("#fileList").html("暂无内容。。。");
  183. }
  184. }
  185. });
  186. }
  187. /**
  188. * 创建时间线 内容
  189. * v 数据
  190. * vC class名
  191. * */
  192. function creatTimeLineHtml(v, vC) {
  193. var timelineHtml = '';
  194. if(v.wostate === 0) {
  195. timelineHtml += '<li class="layui-timeline-item ' + vC + '">' +
  196. '<i class="layui-icon layui-timeline-axis"></i>' +
  197. '<div class="layui-timeline-content layui-text">' +
  198. '<h3 class="layui-timeline-title">创建工单</h3>' +
  199. '<p>' + v.createtime + '</p>' +
  200. '<p>' + v.detail + '</p>' +
  201. '</div>' +
  202. '</li>';
  203. } else {
  204. timelineHtml += '<li class="layui-timeline-item ' + vC + '">' +
  205. '<i class="layui-icon layui-timeline-axis"></i>' +
  206. '<div class="layui-timeline-content layui-text">' +
  207. '<h3 class="layui-timeline-title">' + formatterWostate(v.wostate).stateName + '</h3>' +
  208. '<p>' + v.createtime + '</p>' +
  209. '<p>' + v.detail + '</p>' +
  210. '</div>' +
  211. '</li>';
  212. }
  213. return timelineHtml;
  214. }
  215. //格式化时间
  216. function formatterCheckTime(val) {
  217. if(val == "0001-01-01 00:00:00" || val == "" || val == null || val == undefined) {
  218. return "-";
  219. } else {
  220. return val;
  221. }
  222. }
  223. //获取超时时长的规则
  224. function timeoutRules() {
  225. var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
  226. $.ajax({
  227. type: "get",
  228. url: huayi.config.callcenter_url + "configurationapi/api/dictionary/getdicvaluelistdrop",
  229. dataType: 'json',
  230. async: true,
  231. data: {
  232. code: 'GDCSSC',
  233. },
  234. success: function(data) {
  235. if(data.state.toLowerCase() === 'success') {
  236. data = data.data;
  237. if(data && data.length > 0) {
  238. timeRules = data[0].name;
  239. }
  240. }
  241. dtd.resolve(); // 改变Deferred对象的执行状态
  242. }
  243. });
  244. return dtd.promise(); // 返回promise对象
  245. }
  246. //格式化超时时长 暂时定5、10、 15 (分钟)三个阶段;展示不同的颜色
  247. function formatterTimeoutlong(val) {
  248. if(val < 0){
  249. return val;
  250. }
  251. var stateClass = 'timeout_default';
  252. if(timeRules) {
  253. var rule1 = (timeRules.split('|')[0] - 0) * 60;
  254. var rule2 = (timeRules.split('|')[1] - 0) * 60;
  255. var rule3 = (timeRules.split('|')[2] - 0) * 60;
  256. if(val === 0) {
  257. stateClass = 'timeout_default';
  258. } else if((val > 0) && (val <= rule1)) {
  259. stateClass = 'timeout_wait';
  260. } else if((val > rule1) && (val <= rule2)) {
  261. stateClass = 'timeout_refuse';
  262. } else if((val > rule2) && (val <= rule3)) {
  263. stateClass = 'timeout_revoke';
  264. } else {
  265. stateClass = 'timeout_termination';
  266. }
  267. }
  268. return '<span class="' + stateClass + '" href="javascript:;">' + helper.DateFormat.getDuring(val) + '</span>';
  269. }
  270. //格式化状态
  271. function formatterWostate(wostate) {
  272. //0创建工单,1已转派,2已接收,3已处理,6挂起
  273. var stateClass, stateName;
  274. switch(wostate) {
  275. case 0:
  276. stateClass = 'state_audit state_audit_wait';
  277. stateName = '新工单';
  278. break;
  279. case 1:
  280. stateClass = 'state_audit state_audit_refuse';
  281. stateName = '已转派';
  282. break;
  283. case 2:
  284. stateClass = 'state_audit state_audit_doned';
  285. stateName = '已接收';
  286. break;
  287. case 3:
  288. stateClass = 'state_audit state_audit_done';
  289. stateName = '已处理';
  290. break;
  291. case 6:
  292. stateClass = 'state_audit state_audit_revoke';
  293. stateName = '挂起';
  294. break;
  295. default:
  296. stateClass = '';
  297. stateName = '-';
  298. break;
  299. }
  300. return {
  301. 'stateClass': stateClass,
  302. 'stateName': stateName
  303. };
  304. }
  305. //格式化状态
  306. function ftype(val) {
  307. //1正常,0异常
  308. var stateClass = 'timeout_default';
  309. var stateTxt = '-';
  310. if(val === 1) {
  311. stateClass = 'timeout_success';
  312. stateTxt = '正常';
  313. } else {
  314. stateClass = 'timeout_termination';
  315. stateTxt = '异常';
  316. }
  317. return {
  318. "stateClass": stateClass,
  319. "stateTxt": stateTxt
  320. };
  321. }
  322. //格式化保养人 处理人
  323. function formatterName(touser, tousername){
  324. var toUserStr = '';
  325. // var touser = ["AA000", "AA001", "AA002"];
  326. // var tousername = ["张山", "李四", "王五"];
  327. if(touser.length < 1) {
  328. toUserStr = '-';
  329. } else {
  330. var toUsers = touser.concat(tousername);
  331. var toUsersLength = toUsers.length;
  332. if(toUsersLength === 2) {
  333. toUserStr = toUsers[0] + '-' + toUsers[1];
  334. } else{
  335. for(var i = 0; i < toUsersLength; i++) {
  336. if(i < toUsersLength / 2) {
  337. toUserStr += toUsers[i] + '-' + toUsers[toUsersLength / 2 + i] + ','
  338. toUserStr.substring(0, toUserStr.length - 1);
  339. } else {
  340. break;
  341. }
  342. }
  343. }
  344. }
  345. return toUserStr;
  346. }