controlCheckedItem.html 46 KB

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