controlCheckedItem.html 47 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006
  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/admin.css?v=312"/>
  10. <link rel="stylesheet" href="../../../assets/module/icon/icon.css" media="all">
  11. <link rel="stylesheet" href="../../../assets/module/icon/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
  12. <style>
  13. .wh {
  14. width: auto;
  15. height: auto;
  16. font-size: 10px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <!-- 页面加载loading -->
  22. <div class="page-loading">
  23. <div class="ball-loader">
  24. <span></span><span></span><span></span><span></span>
  25. </div>
  26. </div>
  27. <!-- 正文开始 -->
  28. <div class="layui-fluid">
  29. <div class="layui-row layui-col-space15">
  30. <!-- 左栏 -->
  31. <div class="layui-col-sm12 layui-col-md1 layui-col-lg2">
  32. <div class="layui-card overflow-y-710px">
  33. <div class="m-top20px m-left10px">
  34. <span class="font-weight font-size-14 schedule-name"></span>
  35. </div>
  36. <div class="m-top20px m-left10px">
  37. <span class="font-weight font-size-14 risk-point-name"></span>
  38. </div>
  39. <div class="layui-card-body mini-bar zTree">
  40. <ul id="dangerSrcTree" class="ztree"></ul>
  41. </div>
  42. </div>
  43. </div>
  44. <!-- 右栏 -->
  45. <div class="layui-col-sm12 layui-col-md11 layui-col-lg10">
  46. <div class="layui-card">
  47. <div class="layui-card-body">
  48. <div class="layui-form toolbar">
  49. <div class="layui-form-item text-right">
  50. <!--检查表数据-->
  51. <div class="layui-inline pull-left">
  52. <!--检查频率-->
  53. <span class="font-weight layui-badge bg-c-add font-size-14 scheduleCurrentCount"></span>
  54. <!--统计开始-->
  55. <span class="m-left20px ">
  56. <!--存在隐患-->
  57. <i class="fa fa-exclamation-triangle c-orange" aria-hidden="true"></i>
  58. <span class="font-weight c-orange CZYHhcount"></span>
  59. </span>
  60. <span class="m-left20px">
  61. <!--通过-->
  62. <i class="fa fa-check-circle c-update"></i>
  63. <span class="font-weight c-update JCTGcount"></span>
  64. </span>
  65. <span class="m-left20px">
  66. <!--不通过-->
  67. <i class="fa fa-times-circle c-submit" aria-hidden="true"></i>
  68. <span class="font-weight c-submit JCBTGcount"></span>
  69. </span>
  70. <span class="m-left20px ">
  71. <!--不涉及-->
  72. <i class="fa fa-ban c-back" aria-hidden="true"></i>
  73. <span class="font-weight c-back BSJcount"></span>
  74. </span>
  75. <span class="m-left20px">
  76. <!--未检查-->
  77. <i class="fa fa-minus-circle c-add" aria-hidden="true"></i>
  78. <span class="font-weight c-add WJCcount"></span>
  79. </span>
  80. <span class="m-left20px">
  81. <!--合计-->
  82. <!-- <i class="fa fa-minus-circle c-add" aria-hidden="true"></i>-->
  83. <span class="font-weight CHECKSUM"></span>
  84. </span>
  85. <!--统计结束-->
  86. </div>
  87. <div class="layui-inline">
  88. <button id="checkedAll" class="layui-btn icon-btn layui-btn-sm bg-c-update wh">全部通过
  89. </button>
  90. </div>
  91. <div class="layui-inline">
  92. <button id="selectedCheckedAll" class="layui-btn icon-btn layui-btn-sm bg-c-update">通过
  93. </button>
  94. </div>
  95. <div class="layui-inline">
  96. <button id="selectedCheckedNotAll" class="layui-btn icon-btn layui-btn-sm bg-c-submit">
  97. 不通过
  98. </button>
  99. </div>
  100. <!--<div class="layui-inline">-->
  101. <!--<button id="exclusiveCheckedAll" class="layui-btn icon-btn layui-btn-sm bg-c-back">全部不涉及</button>-->
  102. <!--</div>-->
  103. <div class="layui-inline">
  104. <button id="exclusiveChecked" class="layui-btn icon-btn layui-btn-sm bg-c-back">不涉及
  105. </button>
  106. </div>
  107. <div class="layui-inline">
  108. <button id="cancelAll" class="layui-btn icon-btn layui-btn-sm bg-c-back">取消选中</button>
  109. </div>
  110. <div class="layui-inline">
  111. <button id="finishCheck" class="layui-btn icon-btn layui-btn-sm bg-c-orange">完成</button>
  112. </div>
  113. <div class="layui-inline">
  114. <button id="back" class="layui-btn icon-btn layui-btn-sm bg-c-back">返回</button>
  115. </div>
  116. </div>
  117. <!--危险源名称-->
  118. <span class="font-weight m-left20px font-size-14 danger-src-name"></span>
  119. </div>
  120. <table class="layui-table" id="tableData" lay-filter="tableData">
  121. </table>
  122. <!--<div class="layui-progress" lay-showpercent="true" lay-filter="demo">-->
  123. <!--<div class="layui-progress-bar check-progress-bar" lay-percent="5 / 10"></div>-->
  124. <!--</div>-->
  125. </div>
  126. </div>
  127. </div>
  128. </div>
  129. </div>
  130. <!--提交隐患弹框-->
  131. <script type="text/html" id="modelTpl">
  132. <form id="modelForm" lay-filter="modelForm" class="layui-form model-form">
  133. <div class="" style="overflow: scroll;margin-left: 10%;height: 573px;">
  134. <input type="hidden" class="layui-input" id="bizCheckDefType" name="bizCheckDefType" value="0"/>
  135. <input type="hidden" class="layui-input" id="isScheduleCheck" name="isScheduleCheck"/>
  136. <input type="hidden" class="layui-input" id="riskPointId" name="riskPointId"/>
  137. <input type="hidden" class="layui-input" id="bizCheckDefId" name="bizCheckDefId"/>
  138. <input type="hidden" class="layui-input" id="scheduleId" name="scheduleId"/>
  139. <input type="hidden" class="layui-input" id="checkRecordNo" name="checkRecordNo"/>
  140. <input type="hidden" class="layui-input" id="scheduleCurrentCount" name="checkNumber"/>
  141. <input type="hidden" class="layui-input" id="totalCheckCount" name="totalCheckCount"/>
  142. <input type="hidden" class="layui-input" id="checkRecordLogId" name="checkRecordLogId"/>
  143. <input type="hidden" class="layui-input" id="checkContentId" name="checkContentId"/>
  144. <!--危险源ID 或者 检查项ID-->
  145. <input type="hidden" class="layui-input" id="itemDetailId" name="itemDetailId"/>
  146. <div class="layui-form-item layui-row">
  147. <div class="layui-inline layui-col-md5 p-top10px">
  148. <label class="layui-form-label" style="width: 110px;">
  149. <span class="layui-badge-dot"></span> 隐患标题</label>
  150. <div class="layui-input-block">
  151. <input type="text" class="layui-input" id="hdangerTitle" name="hdangerTitle" placeholder="请输入标题"
  152. maxlength="64"
  153. lay-verType="tips" lay-verify="required" required/>
  154. </div>
  155. </div>
  156. <div class="layui-inline layui-col-md5 p-top10px">
  157. <label class="layui-form-label" style="width: 110px;">
  158. <span class="layui-badge-dot"></span> 隐患类型</label>
  159. <div class="layui-input-block">
  160. <select name="hdangerCatId" id="hdangerCatId" lay-verType="tips" lay-verify="required" required
  161. class="layui-input-block ">
  162. </select>
  163. </div>
  164. </div>
  165. <div class="layui-inline layui-col-md5 p-top10px">
  166. <label class="layui-form-label" style="width: 110px;">
  167. <span class="layui-badge-dot"></span> 隐患等级</label>
  168. <div class="layui-input-block">
  169. <select id="hdangerLevel" name="hdangerLevel" lay-filter="layuiForm" lay-verType="tips"
  170. lay-verify="required"
  171. class="layui-input-block ">
  172. <option value="">点击选择</option>
  173. </select>
  174. </div>
  175. </div>
  176. <div class="layui-inline layui-col-md5 p-top10px">
  177. <label class="layui-form-label" style="width: 110px;">
  178. <span class="layui-badge-dot"></span> 整改期限</label>
  179. <div class="layui-input-block">
  180. <input type="text" name="hdangerRetifyDeadline" id="hdangerRetifyDeadline"
  181. placeholder="选择整改期限"
  182. lay-verType="tips" lay-verify="required" class="layui-input" readonly>
  183. </div>
  184. </div>
  185. <div class="hdanger-review">
  186. <div class="layui-inline layui-col-md5 p-top10px">
  187. <label class="layui-form-label" style="width: 110px;">
  188. <span class="layui-badge-dot"></span> 评审部门</label>
  189. <div class="layui-input-block">
  190. <input type="text" id="hdangerReviewGroupName"
  191. class="layui-input work-flow-review-group-hint" name="hdangerReviewGroupName"
  192. value=""
  193. placeholder="点击选择部门"
  194. class="form-control" readonly>
  195. <input type="hidden" id="hdangerReviewGroup" name="hdangerReviewGroup" readonly>
  196. <div id="menuContentReview" class="menuContent">
  197. <ul id="threeLevelGroupReview" class="ztree" style="margin-top:0;"></ul>
  198. </div>
  199. </div>
  200. </div>
  201. <div class="layui-inline layui-col-md5 p-top10px">
  202. <label class="layui-form-label" style="width: 110px;">
  203. <span class="layui-badge-dot"></span> 评审人员</label>
  204. <div class="layui-input-block">
  205. <select id="hdangerReviewBy" name="hdangerReviewBy"
  206. class="layui-input-block work-flow-review-group-hint">
  207. <option value="">点击选择人员</option>
  208. </select>
  209. </div>
  210. </div>
  211. </div>
  212. <div class="hdanger-retify">
  213. <div class="layui-inline layui-col-md5 p-top10px">
  214. <label class="layui-form-label" style="width: 110px;">
  215. <span class="layui-badge-dot"></span> 整改部门</label>
  216. <div class="layui-input-block">
  217. <input type="text" id="hdangerRetifyGroupName"
  218. class="layui-input work-flow-retify-group-hint" name="hdangerRetifyGroupName"
  219. value=""
  220. placeholder="点击选择部门"
  221. class="form-control" readonly>
  222. <input type="hidden" id="hdangerRetifyGroup" name="hdangerRetifyGroup" readonly>
  223. <div id="menuContentRetify" class="menuContent">
  224. <ul id="threeLevelGroupRetify" class="ztree" style="margin-top:0;"></ul>
  225. </div>
  226. </div>
  227. </div>
  228. <div class="layui-inline layui-col-md5 p-top10px">
  229. <label class="layui-form-label " style="width: 110px;">
  230. <span class="layui-badge-dot"></span> 整改人员</label>
  231. <div class="layui-input-block">
  232. <select id="hdangerRetifyBy" name="hdangerRetifyBy"
  233. class="layui-input-block work-flow-retify-group-hint"
  234. lay-filter="layuiFormRetify">
  235. <option value="">点击选择人员</option>
  236. </select>
  237. </div>
  238. </div>
  239. </div>
  240. <div class="hdanger-accepted">
  241. <div class="layui-inline layui-col-md5 p-top10px">
  242. <label class="layui-form-label" style="width: 110px;">
  243. <span class="layui-badge-dot"></span> 验收部门</label>
  244. <div class="layui-input-block">
  245. <input type="text" id="hdangerAcceptedGroupName"
  246. class="layui-input work-flow-accepted-group-hint" name="hdangerAcceptedGroupName"
  247. value=""
  248. placeholder="点击选择部门"
  249. class="form-control" readonly>
  250. <input type="hidden" id="hdangerAcceptedGroup" name="hdangerAcceptedGroup" readonly>
  251. <div id="menuContentAccepted" class="menuContent">
  252. <ul id="threeLevelGroupAccepted" class="ztree" style="margin-top:0;"></ul>
  253. </div>
  254. </div>
  255. </div>
  256. <div class="layui-inline layui-col-md5 p-top10px">
  257. <label class="layui-form-label" style="width: 110px;">
  258. <span class="layui-badge-dot"></span> 验收人员</label>
  259. <div class="layui-input-block">
  260. <select id="hdangerAcceptedBy" name="hdangerAcceptedBy"
  261. class="layui-input-block work-flow-accepted-group-hint"
  262. >
  263. <option value="">点击选择人员</option>
  264. </select>
  265. </div>
  266. </div>
  267. </div>
  268. <div class="layui-inline layui-col-md10 p-top10px">
  269. <label class="layui-form-label" style="width: 110px;">现场描述</label>
  270. <div class="layui-input-block">
  271. <textarea class="layui-textarea" lay-verType="tips" lay-verify="required"
  272. placeholder="请输入描述"
  273. id="hdangerDesc" name="hdangerDesc" maxlength="500"></textarea>
  274. </div>
  275. </div>
  276. <!--附件-->
  277. <div class="layui-inline layui-col-md10 p-top10px">
  278. <label class="layui-form-label" style="width: 110px;">现场照片</label>
  279. <div class="layui-input-block text-left">
  280. <button type="button" class="layui-btn" id="test1">
  281. <i class="layui-icon">&#xe67c;</i>上传照片
  282. </button>
  283. <span style="color: indianred;font-size: 16px;">支持图片格式:jpg / png / gif / jpeg</span>
  284. <input type="hidden" name="attachPathVal" id="attachPathVal"/>
  285. <div id="fileDiv" style="padding-top: 10px;"></div>
  286. </div>
  287. </div>
  288. </div>
  289. </div>
  290. <div class="layui-form-item text-right" style="z-index: 3">
  291. <button type="button" class="layui-btn layui-btn-sm bg-c-add" lay-filter="formSave" lay-submit>暂存</button>
  292. <button type="button" class="layui-btn layui-btn-sm bg-c-submit" lay-filter="formSubmit" lay-submit>提交
  293. </button>
  294. </div>
  295. </form>
  296. </script>
  297. <!-- js部分 -->
  298. <script type="text/javascript" src="../../../assets/libs/layui/layui.js"></script>
  299. <script type="text/javascript" src="../../../assets/js/common.js?v=312"></script>
  300. <script type="text/javascript" src="../../../assets/libs/jquery/jquery-3.2.1.min.js"></script>
  301. <script>
  302. var CHECK_RESULT_WJC = 0; //未检查
  303. var CHECK_RESULT_TG = 1; //通过
  304. var CHECK_RESULT_BTG = 2; //不通过
  305. var CHECK_RESULT_CZYH = 3; //存在隐患
  306. var CHECK_RESULT_BSJ = 4; //不涉及
  307. layui.use(['iconPicker', 'layer', 'element', 'form', 'upload', 'table', 'laydate', 'admin', 'treetable', 'uParas', 'util', 'zTree', '_groupTree'], function () {
  308. var $ = layui.jquery;
  309. var layer = layui.layer;
  310. var form = layui.form;
  311. var table = layui.table;
  312. var admin = layui.admin;
  313. var upload = layui.upload;
  314. var treetable = layui.treetable;
  315. var _groupTree = layui._groupTree;
  316. var uParas = layui.uParas;
  317. var laydate = layui.laydate;
  318. var element = layui.element;
  319. //子任务ID
  320. var scheduleId = uParas.getUrlParam("scheduleId");
  321. //风险点ID
  322. var riskPointId = uParas.getUrlParam("riskPointId");
  323. //检查记录编号
  324. var checkRecordNo = uParas.getUrlParam("checkRecordNo");
  325. //检查表ID
  326. var bizCheckDefId = uParas.getUrlParam("bizCheckDefId");
  327. //当前检查次数
  328. var scheduleCurrentCount = uParas.getUrlParam("scheduleCurrentCount");
  329. //总检查次数
  330. var totalCheckCount = uParas.getUrlParam("totalCheckCount");
  331. var scheduleFrequency = uParas.getUrlParam("scheduleFrequency");
  332. var riskCheckDefTitle = uParas.getUrlParam("riskCheckDefTitle");
  333. var dangerSrcIds;
  334. //危险源ID
  335. var dangerSrcId = 0;
  336. $(".schedule-name").text('任务:' + riskCheckDefTitle);
  337. $(".scheduleCurrentCount").text('检查频率:' + scheduleCurrentCount + '/' + totalCheckCount + " " + scheduleFrequency);
  338. var JCTGcount = 0; //检查通过数量
  339. var JCBTGcount = 0; //检查不通过数量
  340. var CZYHhcount = 0; //存在隐患数量
  341. var BSJcount = 0; //不涉及数量
  342. var WJCcount = 0; //未检查数量
  343. var CHECKSUM = 0; //合计
  344. //左树设置
  345. var treeSetting = {
  346. data: {
  347. simpleData: {
  348. enable: true,
  349. idKey: "dangerSrcId",
  350. pIdKey: "parentId",
  351. rootPId: 0,
  352. },
  353. key: {
  354. name: "dangerSrcName",
  355. title: "dangerSrcName"
  356. }
  357. },
  358. callback: {
  359. onClick: leftRoleClick
  360. }
  361. };
  362. function leftRoleClick(e, treeId, treeNode) {
  363. debugger
  364. dangerSrcId = treeNode.dangerSrcId;
  365. $(".danger-src-name").text('危险源 ➤ ' + treeNode.dangerSrcName);
  366. //危险源ID 或者 检查项ID
  367. $("#itemDetailId").val(dangerSrcId);
  368. renderTable();
  369. }
  370. //选择节点
  371. function selectNode() {
  372. var treeObj = $.fn.zTree.getZTreeObj("dangerSrcTree");
  373. var node = treeObj.getNodeByParam("dangerSrcId", 1);
  374. if (node) {
  375. treeObj.selectNode(node);
  376. }
  377. }
  378. /*查询风险点下的危险源列表*/
  379. admin.req(uParas.baseUrl + '/ent/riskPoint/getRiskPointDangerSrc', {"riskPointId": riskPointId}, function (resp) {
  380. if (resp.code == 1) {
  381. dangerSrcIds = resp.data.dangerSrcIds;
  382. var zNodes = resp.data.dangerSrcList;
  383. var treeObj = $.fn.zTree.init($('#dangerSrcTree'), treeSetting, zNodes);
  384. /*默认打开所有节点*/
  385. // treeObj.expandAll(true);
  386. selectNode();
  387. //初始化已选中的值
  388. initChecked();
  389. layer.closeAll('loading');
  390. } else {
  391. layer.msg(resp.msg);
  392. }
  393. }, 'GET');
  394. function initChecked() {
  395. debugger
  396. var treeObj = $.fn.zTree.getZTreeObj("dangerSrcTree");
  397. treeObj.checkNode(treeObj.getNodes()[0], true, true);
  398. dangerSrcId = treeObj.getNodes()[0].dangerSrcId;
  399. $(".danger-src-name").text('➤ ' + treeObj.getNodes()[0].dangerSrcName);
  400. //危险源ID 或者 检查项ID
  401. $("#itemDetailId").val(dangerSrcId);
  402. renderTable();
  403. }
  404. /*风险点名称数据展示*/
  405. var url1 = uParas.baseUrl + '/ent/riskPoint/getRiskPointById';
  406. admin.req(url1, {"riskPointId": riskPointId}, function (resp) {
  407. if (resp.code == 1) {
  408. var riskPointLevel = '';
  409. if (resp.data.riskPointLevel === 1) {
  410. riskPointLevel = '<img src="../../../assets/images/lv/red.png" style="width: 28px;height: 28px;">';
  411. } else if (resp.data.riskPointLevel === 2) {
  412. riskPointLevel = '<img src="../../../assets/images/lv/orange.png" style="width: 28px;height: 28px;">';
  413. } else if (resp.data.riskPointLevel === 3) {
  414. riskPointLevel = '<img src="../../../assets/images/lv/yellow.png" style="width: 28px;height: 28px;">';
  415. } else if (resp.data.riskPointLevel === 4) {
  416. riskPointLevel = '<img src="../../../assets/images/lv/blue.png" style="width: 28px;height: 28px;">';
  417. }
  418. var isOutOfControl = '';
  419. if (resp.data.riskPointLevel === 1) {
  420. isOutOfControl = '<img src="../../../assets/images/icon/icon_shoukong@3x.png" style="width: 18px;height: 18px;">';
  421. } else if (resp.data.riskPointLevel === 2) {
  422. isOutOfControl = '<img src="../../../assets/images/icon/icon_shikong@3x.png" style="width: 18px;height: 18px;">';
  423. }
  424. $(".risk-point-name").html(isOutOfControl + '' + riskPointLevel + " " + resp.data.riskPointName + '');
  425. } else {
  426. layer.msg(resp.msg);
  427. }
  428. }, 'GET');
  429. // 渲染表格
  430. function renderTable() {
  431. JCTGcount = 0; //检查通过数量
  432. JCBTGcount = 0; //检查不通过数量
  433. CZYHhcount = 0; //存在隐患数量
  434. BSJcount = 0; //不涉及数量
  435. WJCcount = 0; //未检查数量
  436. CHECKSUM = 0; //合计
  437. $(".JCTGcount").text('');
  438. $(".JCBTGcount").text('');
  439. $(".CZYHhcount").text('');
  440. $(".WJCcount").text('');
  441. $(".CHECKSUM").text('');
  442. $(".JCTGcount").text('已通过 ' + JCTGcount + ' 项');
  443. $(".JCBTGcount").text('不通过 ' + JCBTGcount + ' 项');
  444. $(".CZYHhcount").text('存在隐患 ' + CZYHhcount + ' 项');
  445. $(".BSJcount").text('不涉及 ' + BSJcount + ' 项');
  446. $(".WJCcount").text('未检查 ' + WJCcount + ' 项');
  447. $(".CHECKSUM").text('合计 ' + CHECKSUM + ' 项');
  448. var url = uParas.baseUrl + '/ent/dangerSource/getRiskMeasureByDangerSrcId';
  449. layer.load();
  450. table.render({
  451. elem: '#tableData',
  452. height: 690,
  453. page: false,
  454. totalRow: false,
  455. url: url,
  456. where: {
  457. "dangerSrcId": dangerSrcId,
  458. "bizCheckDefId": bizCheckDefId,
  459. "scheduleId": scheduleId,
  460. "riskPointId": riskPointId,
  461. "checkRecordNo": checkRecordNo,
  462. // "checkNumber":scheduleCurrentCount,
  463. },
  464. cellMinWidth: 100,
  465. cols: [[
  466. {type: 'numbers', title: '#'},
  467. {
  468. field: 'checkItemDefId', title: '选择', width: 58, align: 'center',
  469. templet: function (d) {
  470. if (d.checkResult === CHECK_RESULT_WJC) {
  471. return "<input type='checkbox' lay-skin='primary' name='layTableCheckbox' value='" + d.checkItemDefId + "'>";
  472. } else {
  473. return '';
  474. }
  475. }
  476. },
  477. {field: 'checkItemDefName', title: '管控措施', align: 'left'},
  478. // {field : 'checkItemDefDesc' ,title :'描述' ,align :'left' },
  479. // {field : 'riskPointType' ,title :'类型' ,align :'center',width:120 ,
  480. // templet: function (d) {
  481. // if(d.riskPointType === 1){
  482. // return '设备设施';
  483. // }else if(d.riskPointType === 2){
  484. // return '作业活动';
  485. // }
  486. // }
  487. // },
  488. {
  489. field: 'checkResult', align: 'center', sort: false, title: '检查结果', width: 100,
  490. templet: function (d) {
  491. return setCheckResult(d);
  492. }
  493. },
  494. {
  495. title: '操作', width: 250,
  496. templet: function (d) {
  497. return setOperation(d.checkResult);
  498. }
  499. }
  500. ]],
  501. done: function () {
  502. layer.closeAll('loading');
  503. }
  504. });
  505. }
  506. /*检查结果*/
  507. function setCheckResult(data) {
  508. CHECKSUM += 1;
  509. if (data.checkRecordNo != null && data.checkRecordNo != '') {
  510. checkRecordNo = data.checkRecordNo;
  511. }
  512. var title = '';
  513. if (data.checkResult === CHECK_RESULT_TG) {
  514. title = '<i class="fa fa-check-circle c-update"></i>';
  515. JCTGcount += 1; //检查通过数量
  516. } else if (data.checkResult === CHECK_RESULT_BTG) {
  517. title = '<i class="fa fa-times-circle c-submit" aria-hidden="true"></i>';
  518. JCBTGcount += 1; //检查不通过数量
  519. } else if (data.checkResult === CHECK_RESULT_CZYH) {
  520. title = '<i class="fa fa-exclamation-triangle c-orange" aria-hidden="true"></i>';
  521. CZYHhcount += 1; //存在隐患数量
  522. } else if (data.checkResult === CHECK_RESULT_BSJ) {
  523. title = '<i class="fa fa-ban c-back" aria-hidden="true"></i>';
  524. BSJcount += 1; //不涉及数量
  525. } else if (data.checkResult === CHECK_RESULT_WJC) {
  526. title = '<i class="fa fa-minus-circle c-add" aria-hidden="true"></i>';
  527. WJCcount += 1; //未检查数量
  528. }
  529. $(".JCTGcount").text('已通过 ' + JCTGcount + ' 项');
  530. $(".JCBTGcount").text('不通过 ' + JCBTGcount + ' 项');
  531. $(".CZYHhcount").text('存在隐患 ' + CZYHhcount + ' 项');
  532. $(".BSJcount").text('不涉及 ' + BSJcount + ' 项');
  533. $(".WJCcount").text('未检查 ' + WJCcount + ' 项');
  534. $(".CHECKSUM").text('合计 ' + CHECKSUM + ' 项');
  535. return title;
  536. }
  537. /*操作*/
  538. function setOperation(checkResult) {
  539. //checkResult:0未检查;1通过;2不通过;3存在隐患;4不涉及
  540. var html = '';
  541. html += '<a class="layui-btn layui-btn-xs bg-c-orange" lay-event="add-hdanger">提交隐患</a>';
  542. if (checkResult != CHECK_RESULT_TG && checkResult != CHECK_RESULT_CZYH) {
  543. html += '<a class="layui-btn layui-btn-xs bg-c-update" lay-event="check-qualified">通过</a>';
  544. }
  545. if (checkResult != CHECK_RESULT_BTG && checkResult != CHECK_RESULT_CZYH) {
  546. html += '<a class="layui-btn layui-btn-xs bg-c-submit" lay-event="check-un-qualified">不通过</a>';
  547. }
  548. if (checkResult != CHECK_RESULT_BSJ && checkResult != CHECK_RESULT_CZYH) {
  549. html += '<a class="layui-btn layui-btn-xs bg-c-back" lay-event="check-barring">不涉及</a>';
  550. }
  551. return html;
  552. }
  553. /*完成*/
  554. $('#finishCheck').click(function () {
  555. if (WJCcount > 0) {
  556. layer.msg("还有【" + WJCcount + "】项未检查!");
  557. return false;
  558. }
  559. });
  560. /*取消*/
  561. $('#cancelAll').click(function () {
  562. $("table input[name=layTableCheckbox]").prop("checked", false);
  563. form.render();
  564. });
  565. /*全部通过*/
  566. $('#checkedAll').click(function () {
  567. $("table input[name=layTableCheckbox]").prop("checked", true);
  568. form.render();
  569. selectedCheckedAll(1);
  570. });
  571. /*全部不涉及*/
  572. $('#exclusiveCheckedAll').click(function () {
  573. $("table input[name=layTableCheckbox]").prop("checked", true);
  574. form.render();
  575. selectedCheckedAll(4);
  576. });
  577. /*选中的通过*/
  578. $('#selectedCheckedAll').click(function () {
  579. selectedCheckedAll(1);
  580. });
  581. /*选中的不通过*/
  582. $('#selectedCheckedNotAll').click(function () {
  583. selectedCheckedAll(2);
  584. });
  585. /*选中的不涉及*/
  586. $('#exclusiveChecked').click(function () {
  587. selectedCheckedAll(4);
  588. });
  589. /*返回*/
  590. $('#back').click(function () {
  591. toBack();
  592. });
  593. // 操作栏点击事件
  594. table.on('tool(tableData)', function (obj) {
  595. var data = obj.data;
  596. var layEvent = obj.event;
  597. if (layEvent == 'check-qualified') { // 通过
  598. selectedCheckedAll(6, data);
  599. } else if (layEvent == 'check-un-qualified') { // 不通过
  600. selectedCheckedAll(7, data);
  601. } else if (layEvent == 'add-hdanger') { // 提交隐患
  602. showAddModel(data);
  603. } else if (layEvent == 'check-barring') { // 不涉及
  604. selectedCheckedAll(5, data);
  605. }
  606. });
  607. /*检查完成*/
  608. $('#finishCheck').click(function () {
  609. if (WJCcount > 0) {
  610. layer.msg("还有【" + WJCcount + "】项未检查!");
  611. return false;
  612. }
  613. var isScheduleCheck = 0;
  614. if (scheduleId != null && scheduleId != '' && scheduleId != 0) {
  615. isScheduleCheck = 1;
  616. }
  617. var data = {
  618. "scheduleId": scheduleId,
  619. "isScheduleCheck": isScheduleCheck,
  620. "riskPointId": riskPointId,
  621. "checkRecordNo": checkRecordNo,
  622. "bizCheckDefId": bizCheckDefId,
  623. "dangerSrcIds": dangerSrcIds.toString(),
  624. "bizCheckDefType": 0, //分级管控检查表
  625. };
  626. // alert(dangerSrcIds.toString())
  627. saveCheckFinish(data);
  628. });
  629. // 检查完成
  630. function saveCheckFinish(data) {
  631. layer.confirm('确定检查完成?', {
  632. skin: 'layui-layer-admin',
  633. shade: .1
  634. }
  635. , function (i) {
  636. layer.close(i);
  637. layer.load();
  638. var url = uParas.baseUrl + '/ent/schduleChecked/schduleCheckFinish';
  639. admin.req(url, data, function (resp) {
  640. layer.closeAll('loading');
  641. if (resp.code == 1) {
  642. layer.close();
  643. layer.msg(resp.msg);
  644. toBack();
  645. // location.href = "../schduleChecked/schduleRiskPoints.html?" +
  646. // "scheduleId="+ scheduleId +
  647. // "&bizCheckDefId="+ bizCheckDefId +
  648. // "&riskPointId="+ data.riskPointId +
  649. // "&checkRecordNo="+ checkRecordNo +
  650. // "&scheduleCurrentCount="+ scheduleCurrentCount +
  651. // "&scheduleFrequency="+ scheduleFrequency +
  652. // "&riskCheckDefTitle="+ riskCheckDefTitle +
  653. // "&totalCheckCount="+ totalCheckCount;
  654. // renderTable();
  655. } else {
  656. layer.msg(resp.msg);
  657. }
  658. }, 'POST');
  659. });
  660. }
  661. /*检测选中值*/
  662. function selectedCheckedAll(i, data) {
  663. var idList = [];
  664. var checkResult; //检查结果:1检查通过;2存在隐患;3不涉及
  665. var checkRecordLogId; //检查记录ID
  666. var checkItemContentDefIds; //通过
  667. var exclusiveContentIds; //不涉及
  668. //4批量不涉及、1批量通过、1全部通过、2批量不通过
  669. if (i === 1 || i === 2 || i === 4) {
  670. var chkList = $("table input[name=layTableCheckbox]:checked");
  671. if (chkList.length === 0) {
  672. layer.msg('至少选择一项检查内容!');
  673. return;
  674. }
  675. chkList.each(function () {
  676. idList.push($(this).val());
  677. });
  678. if (i === 1) {
  679. checkResult = CHECK_RESULT_TG;
  680. } else if (i === 2) {
  681. checkResult = CHECK_RESULT_BTG;
  682. } else if (i === 4) {
  683. checkResult = CHECK_RESULT_BSJ;
  684. }
  685. checkItemContentDefIds = idList.toString();
  686. } else if (i === 5) { //单条提交【检查不涉及】记录
  687. checkResult = CHECK_RESULT_BSJ;
  688. idList.push(data.checkItemDefId);
  689. checkItemContentDefIds = idList.toString();
  690. checkRecordLogId = data.checkRecordLogId;
  691. } else if (i === 6) { //单条提交【检查通过】记录
  692. checkResult = CHECK_RESULT_TG;
  693. idList.push(data.checkItemDefId);
  694. checkItemContentDefIds = idList.toString();
  695. checkRecordLogId = data.checkRecordLogId;
  696. } else if (i === 7) { //单条提交【检查不通过】记录
  697. checkResult = CHECK_RESULT_BTG;
  698. idList.push(data.checkItemDefId);
  699. checkItemContentDefIds = idList.toString();
  700. checkRecordLogId = data.checkRecordLogId;
  701. }
  702. var dataMap = {
  703. "bizCheckDefType": 0, //分级管控检查表
  704. 'checkItemContentDefIds': checkItemContentDefIds,
  705. 'scheduleId': scheduleId,
  706. 'itemDetailId': $("#itemDetailId").val(),
  707. 'riskPointId': riskPointId,
  708. 'bizCheckDefId': bizCheckDefId,
  709. 'checkNumber': scheduleCurrentCount,
  710. 'totalCheckCount': totalCheckCount,
  711. 'checkResult': checkResult,
  712. 'checkRecordNo': checkRecordNo,
  713. 'isScheduleCheck': 0,
  714. 'remark': '检查结果正常',
  715. 'checkRecordLogId': checkRecordLogId,
  716. };
  717. saveCheckRecord(dataMap);
  718. }
  719. // 保存处理
  720. function saveCheckRecord(data) {
  721. layer.confirm('确定要提交吗?', {
  722. skin: 'layui-layer-admin',
  723. shade: .1
  724. }
  725. , function (i) {
  726. layer.close(i);
  727. layer.load();
  728. var url = uParas.baseUrl + '/ent/schduleChecked/saveCheckRecord';
  729. admin.req(url, data, function (resp) {
  730. layer.closeAll('loading');
  731. if (resp.code == 1) {
  732. layer.close();
  733. layer.msg(resp.msg);
  734. renderTable();
  735. } else {
  736. layer.msg(resp.msg);
  737. }
  738. }, 'POST');
  739. });
  740. }
  741. //【添加隐患】 显示新增弹窗
  742. function showAddModel(data) {
  743. admin.open({
  744. type: 1,
  745. title: '添加隐患',
  746. area: ['60%', '700px'],
  747. content: $('#modelTpl').html(),
  748. success: function (layero, dIndex) {
  749. /*检查记录ID*/
  750. $("#checkRecordLogId").val(data.checkRecordLogId);
  751. $("#checkContentId").val(data.checkItemDefId);
  752. $("#riskPointId").val(riskPointId);
  753. initData();
  754. // 提交
  755. form.on('submit(formSubmit)', function (data) {
  756. var paths = $('input[name="attachPath"]');
  757. if (paths && paths.length > 0) {
  758. var attachPathVal = [];
  759. paths.each(function () {
  760. attachPathVal.push($(this).val());
  761. });
  762. data.field.attachPathVal = attachPathVal.join(",");
  763. $("#attachPathVal").val(attachPathVal.join(","));
  764. }
  765. submit(1, data);
  766. return false;
  767. });
  768. // 保存至待提交
  769. form.on('submit(formSave)', function (data) {
  770. var paths = $('input[name="attachPath"]');
  771. if (paths && paths.length > 0) {
  772. var attachPathVal = [];
  773. paths.each(function () {
  774. attachPathVal.push($(this).val());
  775. });
  776. data.field.attachPathVal = attachPathVal.join(",");
  777. $("#attachPathVal").val(attachPathVal.join(","));
  778. }
  779. submit(0, data);
  780. return false;
  781. });
  782. }
  783. });
  784. }
  785. // 提交
  786. function submit(status, data) {
  787. var url = uParas.baseUrl + "/ent/hiddenWorkFlow/saveHdanger";
  788. data.field.status = status;
  789. admin.req(url, data.field, function (res) {
  790. layer.closeAll('loading');
  791. if (res.code == 1) {
  792. layer.msg(res.msg);
  793. renderTable();
  794. layer.closeAll();
  795. } else {
  796. // alert();
  797. //console.log(res.msg);
  798. layer.msg(res.msg);
  799. return false;
  800. }
  801. }, 'POST');
  802. }
  803. function initData() {
  804. if (scheduleId != null && scheduleId != '') {
  805. $("#isScheduleCheck").val(1);
  806. $("#scheduleId").val(scheduleId);
  807. } else {
  808. $("#isScheduleCheck").val(0);
  809. }
  810. $("#itemDetailId").val(dangerSrcId);
  811. $("#checkRecordNo").val(checkRecordNo);
  812. $("#bizCheckDefId").val(bizCheckDefId);
  813. $("#scheduleCurrentCount").val(scheduleCurrentCount);
  814. $("#totalCheckCount").val(totalCheckCount);
  815. /*整改期限*/
  816. laydate.render({
  817. elem: '#hdangerRetifyDeadline',
  818. format: 'yyyy-MM-dd HH:mm:ss',
  819. type: 'datetime',
  820. min: 'date',
  821. });
  822. /*检测 隐患评审流程*/
  823. admin.req(uParas.baseUrl + '/ent/hiddenDanger/checkedHdangerReview', null, function (res) {
  824. if (res.code == 1) {
  825. var isHdangerReview = res.data.isHdangerReview;
  826. if (isHdangerReview) {
  827. /*评审*/
  828. $(".hdanger-review").show();
  829. $(".hdanger-retify").hide();
  830. $(".hdanger-accepted").hide();
  831. $(".work-flow-review-group-hint").attr("lay-verify", 'required');
  832. $(".work-flow-review-group-hint").attr("lay-verType", 'tips');
  833. $(".work-flow-review-by-hint").attr("lay-verify", 'required');
  834. $(".work-flow-review-by-hint").attr("lay-verType", 'tips');
  835. $(".work-flow-retify-group-hint").removeAttr("lay-verify", 'required');
  836. $(".work-flow-retify-by-hint").removeAttr("lay-verType", 'tips');
  837. $(".work-flow-accepted-group-hint").removeAttr("lay-verify", 'required');
  838. $(".work-flow-accepted-by-hint").removeAttr("lay-verType", 'tips');
  839. } else {
  840. /*不评审*/
  841. $(".hdanger-review").hide();
  842. $(".hdanger-retify").show();
  843. $(".hdanger-accepted").show();
  844. $(".work-flow-review-group-hint").removeAttr("lay-verify", 'required');
  845. $(".work-flow-review-by-hint").removeAttr("lay-verType", 'tips');
  846. $(".work-flow-retify-group-hint").attr("lay-verify", 'required');
  847. $(".work-flow-retify-group-hint").attr("lay-verType", 'tips');
  848. $(".work-flow-retify-by-hint").attr("lay-verify", 'required');
  849. $(".work-flow-retify-by-hint").attr("lay-verType", 'tips');
  850. $(".work-flow-accepted-group-hint").attr("lay-verify", 'required');
  851. $(".work-flow-accepted-group-hint").attr("lay-verType", 'tips');
  852. $(".work-flow-accepted-by-hint").attr("lay-verify", 'required');
  853. $(".work-flow-accepted-by-hint").attr("lay-verType", 'tips');
  854. }
  855. }
  856. }, 'get');
  857. /*隐患等级*/
  858. uParas.initSimpleSelect("hdangerLevel", "modelForm", "/admin/common/getHdangerLevelList", "keyName", "keyValue");
  859. /*隐患类型*/
  860. uParas.initSimpleSelect("hdangerCatId", "modelForm", "/admin/common/getCommonClassifyesByCatType?catType=1", "catName", "catId");
  861. var groupUrl = '/admin/common/getFindGroupLists';
  862. /*整改部门and人员*/
  863. _groupTree.initgroupTreeAndUsers(groupUrl, "threeLevelGroupRetify", "hdangerRetifyGroupName",
  864. "hdangerRetifyGroup", "menuContentRetify", "hdangerRetifyBy", "modelForm");
  865. /*评审部门and人员*/
  866. _groupTree.initgroupTreeAndUsers(groupUrl, "threeLevelGroupReview", "hdangerReviewGroupName",
  867. "hdangerReviewGroup", "menuContentReview", "hdangerReviewBy", "modelForm");
  868. /*验收部门and人员*/
  869. _groupTree.initgroupTreeAndUsers(groupUrl, "threeLevelGroupAccepted", "hdangerAcceptedGroupName",
  870. "hdangerAcceptedGroup", "menuContentAccepted", "hdangerAcceptedBy", "modelForm");
  871. // 上传实例
  872. var uploadFile = upload.render({
  873. elem: '#test1', //绑定元素
  874. url: uParas.baseUrl + '/admin/uploadFile', //上传接口
  875. accept: 'file',
  876. acceptMime: 'image/jpg,image/png,image/gif,image/jpeg,image/bmp,image/tga,image/fpx,image/raw,', //(只显示 jpg 和 png 文件)
  877. size: 30720,//设置文件最大可允许上传的大小,单位 KB。不支持ie8/9
  878. done: function (response) {
  879. var paths = $('input[name="attachPath"]');
  880. if (paths && paths.length > 0) {
  881. var attachPathVal = [];
  882. paths.each(function () {
  883. attachPathVal.push($(this).val());
  884. });
  885. if (attachPathVal.length > 6) {
  886. layer.msg("照片数量已达上限");
  887. return false;
  888. }
  889. }
  890. //上传完毕回调
  891. fileHtml(response.data.ext, response.data.path, response.data.oriFileName, true);
  892. }
  893. , error: function () {
  894. //请求异常回调
  895. }
  896. });
  897. }
  898. function fileHtml(ext, path, oriFileName, isNew) {
  899. var Str = '';
  900. if (isNew) {
  901. Str = '<span style="color: #1E9FFF;">(新)</span>';
  902. }
  903. //文件图标
  904. var icon = '';
  905. if (ext === 'bmp' || ext === 'jpg' || ext === 'jpeg' || ext === 'png' || ext === 'gif') {
  906. icon = '<img style="width: 60px;height: 80px;" src="' + path + '" alt="">';
  907. } else {
  908. icon = '<img style="width: 60px;height: 80px;" src="' + path + '" alt="">';
  909. }
  910. //文件信息置入隐藏域
  911. var html = '';
  912. html += '<div style="padding-top: 6px;padding-right: 10px;float: left;">';
  913. html += '<input type="hidden" name="attachPath" value="' + path + '"/>';
  914. html += icon;
  915. html += '<br>' + Str + '<a style="color: indianred;float: right;margin-right: 15px;" class="delete-upImg" onclick="deleteFile(this)">删除</a>';
  916. html += '</div>';
  917. $("#fileDiv").append(html);
  918. }
  919. //返回
  920. function toBack() {
  921. var go_html = "../schdule/schduleRiskPoints.html?";
  922. location.href = go_html +
  923. "scheduleId=" + scheduleId +
  924. "&riskCheckDefTitle=" + riskCheckDefTitle +
  925. "&bizCheckDefId=" + bizCheckDefId +
  926. "&checkRecordNo=" + checkRecordNo +
  927. "&scheduleFrequency=" + scheduleFrequency +
  928. "&scheduleCurrentCount=" + scheduleCurrentCount +
  929. "&totalCheckCount=" + totalCheckCount;
  930. }
  931. });
  932. </script>
  933. </body>
  934. </html>