taskCheckRecord.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  7. <title>任务详情</title>
  8. <link rel="stylesheet" href="../../../assets/libs/layui/css/layui.css"/>
  9. <link rel="stylesheet" href="../../../assets/module/formSelects/formSelects-v4.css"/>
  10. <link rel="stylesheet" href="../../../assets/module/admin.css?v=312"/>
  11. <link rel="stylesheet" href="../../../assets/module/uParas.css?v=312"/>
  12. <link rel="stylesheet" href="../../../assets/module/icon/icon.css" media="all">
  13. <link rel="stylesheet" href="../../../assets/module/icon/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
  14. </head>
  15. <body>
  16. <style type="text/css">
  17. </style>
  18. <!-- 加载动画 -->
  19. <div class="page-loading">
  20. <div class="ball-loader">
  21. <span></span><span></span><span></span><span></span>
  22. </div>
  23. </div>
  24. <!-- 正文开始 -->
  25. <div class="layui-fluid">
  26. <div class="layui-card">
  27. <div class="layui-card-body">
  28. <div class="layui-card-header">
  29. 任务详情
  30. <div class="layui-inline pull-right">
  31. <button onclick="history.back()" class="layui-btn layui-btn-sm layui-btn-radius layui-btn-normal"><i
  32. class="layui-icon">&#xe65c;</i>返回
  33. </button>
  34. </div>
  35. </div>
  36. <div class="layui-tab layui-tab-brief" lay-filter="">
  37. <div class="layui-tab-content" style="height: auto;">
  38. <div class="layui-tab-item layui-show">
  39. <div class="layui-row">
  40. <div class="layui-col-xs12">
  41. <div class="layui-form">
  42. <table class="layui-table">
  43. <!--<colgroup>-->
  44. <!--<col width="150">-->
  45. <!--<col width="150">-->
  46. <!--<col width="200">-->
  47. <!--<col>-->
  48. <!--</colgroup>-->
  49. <thead>
  50. </thead>
  51. <tbody>
  52. <tr>
  53. <th width="150">任务名称</th>
  54. <td id="riskCheckDefTitle"></td>
  55. <th width="150">任务分类</th>
  56. <td id="checkMode">
  57. </td>
  58. </tr>
  59. <tr>
  60. <th width="150">执行部门</th>
  61. <td id="groupName"></td>
  62. <th width="150">执行岗位</th>
  63. <td id="positionName"></td>
  64. </tr>
  65. <tr>
  66. <th width="150">检查频率</th>
  67. <td id="checkType"></td>
  68. <th width="150">任务状态</th>
  69. <td id="status"></td>
  70. </tr>
  71. <tr>
  72. <th width="150">计划开始时间</th>
  73. <td id="startTime"></td>
  74. <th width="150">计划结束时间</th>
  75. <td id="endTime"></td>
  76. </tr>
  77. <tr>
  78. <th width="150">实际开始时间</th>
  79. <td id="executeTime"></td>
  80. <th width="150">实际完成时间</th>
  81. <td id="finishTime"></td>
  82. </tr>
  83. <tr>
  84. <th width="150">执行人员</th>
  85. <td id="executorName"></td>
  86. <th width="150">检查类型</th>
  87. <td id="riskCheckTypeName"></td>
  88. </tr>
  89. <tr>
  90. <th width="150">参与人员</th>
  91. <td id="riskCheckParticipantName" colspan="3"></td>
  92. </tr>
  93. <tr>
  94. <th width="150">描述</th>
  95. <td id="riskCheckDefDesc" colspan="3"></td>
  96. </tr>
  97. </tbody>
  98. </table>
  99. </div>
  100. </div>
  101. </div>
  102. <div class="layui-card-header">
  103. 检查记录
  104. </div>
  105. <!--检查记录-->
  106. <table class="layui-table text-left" id="datatable" lay-filter="datatable"></table>
  107. </div>
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. </div>
  113. <script type="text/html" id="lvTpl">
  114. {{# var imgs="../../../assets/images/lv/blue.png",title="较低"; var lv=d.riskPointLevel;}}
  115. {{# if(lv==1){ imgs="../../../assets/images/lv/red.png" ;title="重大" } }}
  116. {{# if(lv==2){ imgs="../../../assets/images/lv/orange.png";title="较大"} }}
  117. {{# if(lv==3){ imgs="../../../assets/images/lv/yellow.png";title="一般"} }}
  118. {{# if(lv==4){ imgs="../../../assets/images/lv/blue.png";title="较低"} }}
  119. {{# if(lv==1){ }}
  120. <div class='notify'><span class='heartbit'></span><span>
  121. <img style="display: inline-block; width: 28px;height: 28px;" src={{ imgs }}>&nbsp;{{ title }}
  122. </span>
  123. </div>
  124. {{# }else{ }}
  125. <span class='heartbit'>*不涉及风险点</span>
  126. {{# } }}
  127. </script>
  128. <!-- js部分 -->
  129. <script type="text/javascript" src="../../../assets/libs/layui/layui.js"></script>
  130. <script type="text/javascript" src="../../../assets/js/common.js?v=312"></script>
  131. <script>
  132. layui.use(['layer', 'form', 'table', 'util', 'zTree', 'admin', 'uParas', 'treetable'], function () {
  133. var $ = layui.jquery;
  134. var layer = layui.layer;
  135. var form = layui.form;
  136. var util = layui.util;
  137. var admin = layui.admin;
  138. var uParas = layui.uParas;
  139. var treetable = layui.treetable;
  140. var table = layui.table;
  141. var scheduleId = uParas.getUrlParam("scheduleId");
  142. var insTb;
  143. var bizCheckDefId = "";
  144. admin.req(uParas.baseUrl + '/ent/riskCheckedSchdule/myDetail/' + scheduleId, null, function (res) {
  145. if (res.code == 1) {
  146. var schduleDto = res.data.schduleDto;
  147. if (schduleDto != null) {
  148. $("#riskCheckDefTitle").text(schduleDto.riskCheckDefTitle);
  149. if (schduleDto.checkMode == '1') {
  150. if (schduleDto.checkType == 'fixed') {
  151. $("#checkMode").text("【常规】现场任务");
  152. } else if (schduleDto.checkType == 'random') {
  153. $("#checkMode").text("【临时】现场任务");
  154. }
  155. } else if (schduleDto.checkMode == '2') {
  156. if (schduleDto.checkType == 'fixed') {
  157. $("#checkMode").text("【常规】基础任务");
  158. } else if (schduleDto.checkType == 'random') {
  159. $("#checkMode").text("【临时】基础任务");
  160. }
  161. }
  162. $("#groupName").text(schduleDto.groupName);
  163. $("#positionName").text(schduleDto.riskCheckPositionName);
  164. //检查频率
  165. var checkCycle = "";
  166. if (schduleDto.checkType == 'random') {
  167. checkCycle = "临时性检查,无固定频率";
  168. } else {
  169. if (schduleDto.scheduleFrequency == 'year') {
  170. checkCycle = schduleDto.scheduleCount + "次/年";
  171. } else if (schduleDto.scheduleFrequency == 'half_year') {
  172. checkCycle = schduleDto.scheduleCount + "次/半年";
  173. } else if (schduleDto.scheduleFrequency == 'quarter') {
  174. checkCycle = schduleDto.scheduleCount + "次/季度";
  175. } else if (schduleDto.scheduleFrequency == 'month') {
  176. checkCycle = schduleDto.scheduleCount + "次/月";
  177. } else if (schduleDto.scheduleFrequency == 'week') {
  178. checkCycle = schduleDto.scheduleCount + "次/周";
  179. } else if (schduleDto.scheduleFrequency == 'day') {
  180. checkCycle = schduleDto.scheduleCount + "次/天";
  181. }
  182. }
  183. $("#checkType").text(checkCycle);
  184. //任务状态
  185. var statusStr = "";
  186. if (schduleDto.status === 2) {
  187. statusStr = "已检查";
  188. } else if (schduleDto.status === 1) {
  189. statusStr = "进行中";
  190. } else if (schduleDto.status === 0) {
  191. statusStr = "未检查";
  192. if (schduleDto.checkType === "random") {
  193. var curTime = new Date();
  194. var endtime = new Date(schduleDto.endTime);
  195. if (curTime >= endtime) {
  196. statusStr = "已逾期";
  197. }
  198. }
  199. } else if (schduleDto.status === 3) {
  200. statusStr = "已逾期";
  201. } else {
  202. statusStr = "未知"
  203. }
  204. $("#status").text(statusStr);
  205. $("#startTime").text(schduleDto.startTime);
  206. $("#endTime").text(schduleDto.endTime);
  207. if (schduleDto.executeTime != null) {
  208. $("#executeTime").text(schduleDto.executeTime);
  209. } else {
  210. $("#executeTime").text("未开始检查");
  211. }
  212. if (schduleDto.finishTime != null) {
  213. $("#finishTime").text(schduleDto.finishTime);
  214. } else {
  215. $("#finishTime").text("未完成检查");
  216. }
  217. //$("#finishTime").text(schduleDto.finishTime);
  218. $("#executorName").text(schduleDto.executorName); //检查人员
  219. $("#riskCheckParticipantName").text(schduleDto.riskCheckParticipantName);
  220. $("#riskCheckTypeName").text(schduleDto.riskCheckTypeName);
  221. $("#riskCheckDefDesc").text(schduleDto.riskCheckDefDesc);
  222. bizCheckDefId = schduleDto.bizCheckDefId;
  223. //debugger;
  224. initTable();
  225. }
  226. }
  227. }, 'get');
  228. function initTable() {
  229. // 渲染表格
  230. insTb = table.render({
  231. elem: '#datatable',
  232. url: uParas.baseUrl + '/ent/schduleChecked/taskCheckedRecordByPage',
  233. where: {
  234. "scheduleId": scheduleId
  235. },
  236. page: true,
  237. toolbar: true,
  238. title: '任务检查记录',
  239. cellMinWidth: 100,
  240. cols: [[
  241. {type: 'numbers', title: '序号'},
  242. {
  243. field: 'riskPointLevel', sort: false, title: '等级', width: 70, align: 'center',
  244. templet: function (d) {
  245. return setLevel(d.riskPointLevel);
  246. }
  247. },
  248. {
  249. field: 'isOutOfControl',
  250. sort: false,
  251. align: 'center',
  252. title: '状态',
  253. width: 70,
  254. templet: function (d) {
  255. if (d.isOutOfControl == 0) {
  256. return "<img src='../../../assets/images/icon/icon_shoukong@3x.png' style='width: 20px;'/>";
  257. } else if (d.isOutOfControl == 1) {
  258. return "<img src='../../../assets/images/icon/icon_shikong@3x.png' style='width: 20px;'/>";
  259. } else {
  260. return "*不涉及";
  261. }
  262. },
  263. },
  264. {field: 'riskPointName', sort: false, title: '风险点名称'},
  265. {field: 'bizCheckdefName', sort: false, title: '检查表名称'},
  266. {field: 'checkedGroupName', sort: false, title: '检查部门'},
  267. {field: 'checkedUserName', sort: false, title: '检查人员', width: 130},
  268. {field: 'checkedTime', sort: false, title: '检查时间'},
  269. {
  270. align: 'center', title: '检查结果', fixed: 'right', width: 120,
  271. templet: function (d) {
  272. return setCheckedResult(d.checkedResult);
  273. }
  274. },
  275. {
  276. align: 'center', title: '操作', width: 110, fixed: 'right', width: 100,
  277. templet: function (d) {
  278. return setOperation(d);
  279. }
  280. }
  281. ]]
  282. });
  283. }
  284. /*风险点等级*/
  285. function setLevel(Level) {
  286. var imgSrc = '';
  287. var title = '';
  288. if (Level == 1) {
  289. title = '';
  290. imgSrc = '../../../assets/images/lv/red.png'
  291. } else if (Level == 2) {
  292. title = '';
  293. imgSrc = '../../../assets/images/lv/orange.png'
  294. } else if (Level == 3) {
  295. title = '';
  296. imgSrc = '../../../assets/images/lv/yellow.png'
  297. } else if (Level == 4) {
  298. title = '';
  299. imgSrc = '../../../assets/images/lv/blue.png'
  300. } else {
  301. return '*不涉及';
  302. }
  303. return '<img style="display: inline-block;width: 28px;height: 28px;" src="' + imgSrc + '" >' + title
  304. }
  305. //操作
  306. function setOperation(row) {
  307. var html = '<a class="layui-btn layui-btn-xs bg-c-add" lay-event="liveDetail" >记录明细</a>';
  308. return html;
  309. }
  310. //检查结果
  311. function setCheckedResult(checkedResult) {
  312. if (checkedResult == 1) {
  313. return '<i class="fa fa-check-circle c-update"> 通过</i>';
  314. } else if (checkedResult == 2) {
  315. return '<i class="fa fa-times-circle c-submit" aria-hidden="true"> 不通过</i>';
  316. } else if (checkedResult == 3) {
  317. return '<i class="fa fa-exclamation-triangle c-orange" aria-hidden="true"> 存在隐患</i>';
  318. } else if (checkedResult == 4) {
  319. return '<i class="fa fa-ban c-back" aria-hidden="true"> 不涉及</i>';
  320. }
  321. return '不详';
  322. }
  323. // 工具条点击事件
  324. table.on('tool(datatable)', function (obj) {
  325. var data = obj.data;
  326. var layEvent = obj.event;
  327. if (layEvent == 'liveDetail') { // 详情
  328. //记录明细
  329. detail(data);
  330. }
  331. });
  332. //goto 记录明细
  333. function detail(data) {
  334. location.href = "./taskCheckRecordDetail.html" +
  335. "?scheduleId=" + scheduleId
  336. + "&checkRecordNo=" + data.checkRecordNo
  337. + "&bizCheckDefId=" + data.bizCheckDefId
  338. + "&riskPointId=" + data.riskPointId;
  339. }
  340. });
  341. </script>
  342. </body>
  343. </html>