Brak opisu

seeEqupRunOrderDetails.js 11KB

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