taskCheckRecord.html 16 KB

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