addRisk.html 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512
  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. <style>
  13. .menuContent {
  14. display: none;
  15. position: absolute;
  16. top: 33px;
  17. /*left: 15px;*/
  18. background-color: #fff;
  19. z-index: 2000;
  20. border: 1px solid #ccc;
  21. }
  22. </style>
  23. </head>
  24. <body>
  25. <!-- 加载动画 -->
  26. <div class="page-loading">
  27. <div class="ball-loader">
  28. <span></span><span></span><span></span><span></span>
  29. </div>
  30. </div>
  31. <!-- 正文开始 -->
  32. <div class="layui-fluid">
  33. <div class="layui-card">
  34. <div class="layui-card-body">
  35. <div class="layui-card-header">
  36. 新增风险
  37. <div class="layui-inline pull-right">
  38. <button onclick="history.back()" class="layui-btn layui-btn-sm layui-btn-radius layui-btn-normal"><i class="layui-icon">&#xe65c;</i>返回</button>
  39. </div>
  40. </div>
  41. <div class="layui-card-body">
  42. <form class="layui-form" lay-filter="layuiForm" style="max-width: 700px;margin: 40px auto;">
  43. <!-- flag=1:集团版新增风险,在保存风险、管控层级和管控岗位的时候,管控岗位没有,使用-1填充 -->
  44. <input type="hidden" name="flag" id="flag" value="1"/>
  45. <div class="layui-form-item">
  46. <label class="layui-form-label w-width120"><span class="layui-badge-dot"></span>危险源:</label>
  47. <div class="layui-input-block w-m150">
  48. <input type="text" id="dangerSrcName" class="layui-input" name="dangerSrcName"
  49. value=""
  50. placeholder="点击选择危险源"
  51. class="form-control" readonly required>
  52. <input type="hidden" id="dangerSrcId" name="dangerSrcId" readonly>
  53. <div id="menuContent" class="menuContent">
  54. <ul id="wzTree" class="ztree" style="margin-top:0;"></ul>
  55. </div>
  56. </div>
  57. </div>
  58. <div class="layui-form-item">
  59. <label class="layui-form-label w-width120"><span class="layui-badge-dot"></span>作业步骤:</label>
  60. <div class="layui-input-block w-m150">
  61. <input name="riskName" type="text" placeholder="请输入作业步骤" class="layui-input"
  62. lay-verType="tips" lay-verify="required" required>
  63. </div>
  64. </div>
  65. <div class="layui-form-item">
  66. <label class="layui-form-label w-width120"><span class="layui-badge-dot"></span>危害因素:</label>
  67. <div class="layui-input-block w-m150">
  68. <input name="riskReason" type="text" placeholder="请输入危害因素" class="layui-input"
  69. lay-verType="tips" lay-verify="required" required required>
  70. </div>
  71. </div>
  72. <div class="layui-form-item">
  73. <label class="layui-form-label w-width120"><span class="layui-badge-dot"></span>危害产生的后果:</label>
  74. <div class="layui-input-block w-m150">
  75. <input name="riskConsequence" type="text" placeholder="请输入危害产生的后果" class="layui-input"
  76. lay-verType="tips" lay-verify="required" required>
  77. </div>
  78. </div>
  79. <div class="layui-form-item">
  80. <label class="layui-form-label w-width120"><span class="layui-badge-dot"></span>风险编号:</label>
  81. <div class="layui-input-block w-m150">
  82. <input name="riskCode" type="text" placeholder="请输入风险编号" class="layui-input"
  83. lay-verType="tips" lay-verify="required" required>
  84. </div>
  85. </div>
  86. <div class="layui-form-item" id="layerDemo">
  87. <label class="layui-form-label w-width120"><span class="layui-badge-dot"></span>风险等级:</label>
  88. <div class="layui-input-block w-m150 lv" data-method="riskLevelOpen">
  89. <input type="hidden" id="riskLevel" name="riskLevel">
  90. <input name="riskLevelText" id="riskLevelText" type="text" placeholder="请输入风险等级" class="layui-input"
  91. lay-verType="tips" lay-verify="required" readonly required>
  92. </div>
  93. </div>
  94. <div class="layui-form-item">
  95. <label class="layui-form-label w-width120"><span class="layui-badge-dot"></span>管控层级:</label>
  96. <div class="layui-input-block w-m150">
  97. <!-- <select name="riskCtrlLevelId" id="riskCtrlLevelId" lay-filter="riskCtrlLevelId" lay-search="" required></select>-->
  98. <input name="riskCtrlLevelId" id="riskCtrlLevelId" type="hidden">
  99. <input name="riskLevelText" id="riskCtrlLevelName" type="text" placeholder="管控层级" class="layui-input"
  100. lay-verType="tips" lay-verify="required" readonly required>
  101. </div>
  102. </div>
  103. <div class="layui-form-item" style="display: none;">
  104. <label class="layui-form-label w-width120"><span class="layui-badge-dot"></span>管控岗位:</label>
  105. <div class="layui-input-block w-m150">
  106. <!-- <select name="riskCtrlPositionId" id="riskCtrlPositionId" lay-filter="riskCtrlPositionId" lay-search="" required></select>-->
  107. <!-- <select id="riskCtrlPositionId" name="riskCtrlPositionId" lay-verType="tips" class="layui-input-block" xm-select="riskCtrlPositionId" xm-select-search required>-->
  108. <!-- <option value="">直接选择管控岗位或搜索管控岗位</option>-->
  109. <!-- </select>-->
  110. <input id="riskCtrlPositionId" name="riskCtrlPositionId" value="-1">
  111. </div>
  112. </div>
  113. <div id="one">
  114. <div class="layui-form-item">
  115. <label class="layui-form-label w-width120">工程:</label>
  116. <div class="layui-input-block w-m150" style="display: flex;align-items: center;">
  117. <input name="riskMeasureType1" type="text" placeholder="最多输入200个汉字" class="layui-input"
  118. lay-verType="tips">
  119. <a class="layui-btn layui-btn-normal" href="javascript:;" onclick="btnAddRiskMeasure('one','工程:','riskMeasureType1')">+</a>
  120. </div>
  121. </div>
  122. </div>
  123. <div id="two">
  124. <div class="layui-form-item">
  125. <label class="layui-form-label w-width120">管理:</label>
  126. <div class="layui-input-block w-m150" style="display: flex;align-items: center;">
  127. <input name="riskMeasureType2" type="text" placeholder="最多输入200个汉字" class="layui-input" lay-verType="tips">
  128. <a class="layui-btn layui-btn-normal" href="javascript:;" onclick="btnAddRiskMeasure('two','管理:','riskMeasureType2')">+</a>
  129. </div>
  130. </div>
  131. </div>
  132. <div id="three">
  133. <div class="layui-form-item">
  134. <label class="layui-form-label w-width120">教育:</label>
  135. <div class="layui-input-block w-m150" style="display: flex;align-items: center;">
  136. <input name="riskMeasureType3" type="text" placeholder="最多输入200个汉字" class="layui-input" lay-verType="tips">
  137. <a class="layui-btn layui-btn-normal" href="javascript:;" onclick="btnAddRiskMeasure('three','教育:','riskMeasureType3')">+</a>
  138. </div>
  139. </div>
  140. </div>
  141. <div id="four">
  142. <div class="layui-form-item">
  143. <label class="layui-form-label w-width120">应急:</label>
  144. <div class="layui-input-block w-m150" style="display: flex;align-items: center;">
  145. <input name="riskMeasureType4" type="text" placeholder="最多输入200个汉字" class="layui-input"
  146. lay-verType="tips">
  147. <a class="layui-btn layui-btn-normal" href="javascript:;" onclick="btnAddRiskMeasure('four','应急:','riskMeasureType4')">+</a>
  148. </div>
  149. </div>
  150. </div>
  151. <div id="f">
  152. <div class="layui-form-item">
  153. <label class="layui-form-label w-width120">个体防护:</label>
  154. <div class="layui-input-block w-m150" style="display: flex;align-items: center;">
  155. <input name="riskMeasureType5" type="text" placeholder="最多输入200个汉字" class="layui-input"
  156. lay-verType="tips">
  157. <a class="layui-btn layui-btn-normal" href="javascript:;" onclick="btnAddRiskMeasure('f','个体防护:','riskMeasureType5')">+</a>
  158. </div>
  159. </div>
  160. </div>
  161. <div class="layui-form-item">
  162. <div class="layui-input-block">
  163. <button class="layui-btn" lay-filter="formSubmit" lay-submit>&emsp;提交&emsp;</button>
  164. <button type="reset" class="layui-btn layui-btn-primary">&emsp;重置&emsp;</button>
  165. </div>
  166. </div>
  167. </form>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. <input type="hidden" name="riskJudgeMethod" id="riskJudgeMethod">
  173. <script type="text/html" id="modelTpl">
  174. <form id="modelForm" lay-filter="modelForm" class="layui-form model-form">
  175. <input name="riskLevel_" id="riskLevel_" class="layui-input" type="hidden"/>
  176. <div class="layui-form-item">
  177. <label class="layui-form-label">风险等级:</label>
  178. <div class="layui-input-block">
  179. <input type="text" id="riskLevelText_" name="riskLevelText_" class="layui-input" readonly="readonly">
  180. </div>
  181. </div>
  182. <div class="layui-form-item">
  183. <label class="layui-form-label">评价方法:</label>
  184. <div class="layui-input-block">
  185. <input type="radio" name="method" lay-filter="methods" value="1" title="LEC" id="rLEC">
  186. <input type="radio" name="method" lay-filter="methods" value="2" title="LS" id="rLS">
  187. </div>
  188. </div>
  189. <div class="layui-form-item lec">
  190. <label class="layui-form-label">L:</label>
  191. <div class="layui-input-block">
  192. <select id="riskLECL" name="riskLECL" lay-filter="LEC">
  193. <!-- <option value="0.1">实际不可能</option>-->
  194. <!-- <option value="0.2">极不可能</option>-->
  195. <!-- <option value="0.5">很不可能,可以设想</option>-->
  196. <!-- <option value="1">可能性小,完全意外</option>-->
  197. <!-- <option value="3">可能,但不经常</option>-->
  198. <!-- <option value="6">相当可能</option>-->
  199. <!-- <option value="10">完全可以预料</option>-->
  200. </select>
  201. <span class="help-inline">提示:事故发生的可能性</span>
  202. </div>
  203. </div>
  204. <div class="layui-form-item lec">
  205. <label class="layui-form-label">E:</label>
  206. <div class="layui-input-block">
  207. <select id="riskLECE" name="riskLECE" lay-filter="LEC">
  208. <!-- <option value="0.5">非常罕见暴露</option>-->
  209. <!-- <option value="1">每年几次暴露</option>-->
  210. <!-- <option value="2">每月一次暴露</option>-->
  211. <!-- <option value="3">每周一次或偶然暴露</option>-->
  212. <!-- <option value="6">每天工作时间内暴露</option>-->
  213. <!-- <option value="10">连续暴露</option>-->
  214. </select>
  215. <span class="help-inline">提示:人员暴露于危险环境中的频繁程度</span>
  216. </div>
  217. </div>
  218. <div class="layui-form-item lec">
  219. <label class="layui-form-label">C:</label>
  220. <div class="layui-input-block">
  221. <select id="riskLECC" name="riskLECC" lay-filter="LEC">
  222. <!-- <option value="1">引人注意</option>-->
  223. <!-- <option value="2">重大,伤残</option>-->
  224. <!-- <option value="7">严重</option>-->
  225. <!-- <option value="15">1~2人死亡</option>-->
  226. <!-- <option value="40">3~9人死亡</option>-->
  227. <!-- <option value="100">10人以上死亡</option>-->
  228. </select>
  229. <span class="help-inline">提示:一旦发生事故可能造成的后果</span>
  230. </div>
  231. </div>
  232. <div class="layui-form-item ls">
  233. <label class="layui-form-label">L:</label>
  234. <div class="layui-input-block">
  235. <select id="riskLSL" name="riskLSL" lay-filter="LSR">
  236. <option value="1">极不可能</option>
  237. <option value="2">偶尔</option>
  238. <option value="3">重复发生</option>
  239. <option value="4">预期情况下经常</option>
  240. <option value="5">正常情况下经常</option>
  241. </select>
  242. <span class="help-inline">提示:事故发生的可能性</span>
  243. </div>
  244. </div>
  245. <div class="layui-form-item ls">
  246. <label class="layui-form-label">S:</label>
  247. <div class="layui-input-block">
  248. <select id="riskLSS" name="riskLSS" lay-filter="LSR">
  249. <option value="1">无伤亡、无损失</option>
  250. <option value="2">轻伤、损失<10万</option>
  251. <option value="3">伤残、损失>10万</option>
  252. <option value="4">丧失劳动力、损失>25万</option>
  253. <option value="5">死亡、损失>50万</option>
  254. </select>
  255. <span class="help-inline">提示:一旦发生事故造成后果的严重性</span>
  256. </div>
  257. </div>
  258. </form>
  259. </script>
  260. <!-- js部分 -->
  261. <script type="text/javascript" src="../../../assets/libs/jquery/jquery-3.2.1.min.js"></script>
  262. <script type="text/javascript" src="../../../assets/libs/layui/layui.js"></script>
  263. <script type="text/javascript" src="../../../assets/js/common.js?v=312"></script>
  264. <script type="text/javascript" src="../../../assets/js/lec.js?v=312"></script>
  265. <script>
  266. layui.use(['layer', 'form', 'table', 'util', 'zTree', 'admin', 'uParas', 'laydate', 'upload', '_zTree'], function () {
  267. var $ = layui.jquery;
  268. var layer = layui.layer;
  269. var form = layui.form;
  270. var util = layui.util;
  271. var admin = layui.admin;
  272. var uParas = layui.uParas;
  273. var _zTree = layui._zTree;
  274. var laydate = layui.laydate, upload = layui.upload;
  275. var riskPointType = uParas.getUrlParam("riskPointType");
  276. $.ajaxSetup({async: false});
  277. var url = uParas.baseUrl + "/ent/sysInfo/getInfo";
  278. admin.req(url, {}, function (resp) {
  279. $("#riskJudgeMethod").val(resp.data.riskJudgeMethod);
  280. });
  281. function getCtrlName(levelValue) {
  282. var url = uParas.baseUrl + "/admin/common/getCtrlList";
  283. admin.req(url, {}, function (resp) {
  284. $.each(resp.data, function (i, item) {
  285. if (item.riskCtrlLevelValue == levelValue) {
  286. $("#riskCtrlLevelName").val(item.riskCtrlLevelTitle);
  287. $("#riskCtrlLevelId").val(item.riskCtrlLevelId);
  288. }
  289. });
  290. });
  291. }
  292. uParas.initFormSelects("riskCtrlPositionId", "/admin/common/getPositionList", "positionTitle", "pId");
  293. _zTree._init('/ent/dangerSource/query?riskPointType=' + riskPointType + '&limit=1000', 'dangerSrcId', 'parentDangerSrcId', 'dangerSrcName', 'dangerSrcId', 1);
  294. var active = {
  295. riskLevelOpen: function () {
  296. admin.open({
  297. type: 1,
  298. title: '风险等级',
  299. area: ["600px", "500px"],
  300. content: $('#modelTpl').html(),
  301. btn: ['确定', '取消']
  302. , yes: function () {
  303. layer.closeAll();
  304. getCtrlName($("#riskLevel_").val());
  305. }
  306. , btn2: function () {
  307. layer.closeAll();
  308. },
  309. zIndex: layer.zIndex,
  310. success: function (layero, dIndex) {
  311. var _LHtml = LHtmlAll();
  312. var _EHtml = EHtmlAll();
  313. var _CHtml = CHtmlAll();
  314. $("#riskLECL").html(_LHtml);
  315. $("#riskLECE").html(_EHtml);
  316. $("#riskLECC").html(_CHtml);
  317. var method = $("#riskJudgeMethod").val();
  318. radioMethod(method);
  319. form.render();
  320. form.on('radio(methods)', function (data) {
  321. radioMethod(data.value);
  322. });
  323. }
  324. });
  325. }
  326. };
  327. $('#layerDemo .lv').on('click', function () {
  328. var othis = $(this), method = othis.data('method');
  329. active[method] ? active[method].call(this, othis) : '';
  330. });
  331. form.on('select(LEC)', function (data) {
  332. sLecFunction();
  333. });
  334. form.on('select(LSR)', function (data) {
  335. sLsrFunction();
  336. });
  337. function sLsrFunction() {
  338. var level = 4;
  339. level = lsrFunction($("#riskLSL").val(), $("#riskLSS").val());
  340. $("#riskLevel").val(level);
  341. $("#riskLevel_").val(level);
  342. if (level == 1) {
  343. $("#riskLevelText").val("重大");
  344. $("#riskLevelText_").val("重大");
  345. } else if (level == 2) {
  346. $("#riskLevelText").val("较大");
  347. $("#riskLevelText_").val("较大");
  348. } else if (level == 3) {
  349. $("#riskLevelText").val("一般");
  350. $("#riskLevelText_").val("一般");
  351. } else {
  352. $("#riskLevelText").val("较低");
  353. $("#riskLevelText_").val("较低");
  354. }
  355. }
  356. function sLecFunction() {
  357. var level = 4;
  358. level = lecFunction($("#riskLECL").val(), $("#riskLECE").val(), $("#riskLECC").val());
  359. $("#riskLevel").val(level);
  360. $("#riskLevel_").val(level);
  361. if (level == 1) {
  362. $("#riskLevelText").val("重大");
  363. $("#riskLevelText_").val("重大");
  364. } else if (level == 2) {
  365. $("#riskLevelText").val("较大");
  366. $("#riskLevelText_").val("较大");
  367. } else if (level == 3) {
  368. $("#riskLevelText").val("一般");
  369. $("#riskLevelText_").val("一般");
  370. } else {
  371. $("#riskLevelText").val("较低");
  372. $("#riskLevelText_").val("较低");
  373. }
  374. }
  375. function radioMethod(val) {
  376. if (val == 1) {
  377. sLecFunction();
  378. $(".lec").attr("hidden", false);
  379. $(".ls").attr("hidden", true);
  380. $("#rLS").attr("type", "hidden");
  381. $("#rLEC").attr("checked", "checked");
  382. } else {
  383. sLsrFunction();
  384. $(".lec").attr("hidden", true);
  385. $(".ls").attr("hidden", false);
  386. $("#rLEC").attr("type", "hidden");
  387. $("#rLS").attr("checked", "checked");
  388. }
  389. }
  390. function lecFunction(l, e, c) {
  391. var d = l * e * c;
  392. if (d > 320) {
  393. return 1;
  394. } else if (d > 160) {
  395. return 2;
  396. } else if (d > 70) {
  397. return 3;
  398. } else {
  399. return 4;
  400. }
  401. }
  402. function lsrFunction(l, s) {
  403. var r = l * s;
  404. if (r <= 25 && r >= 21) {
  405. return 1;
  406. } else if (r <= 16 && r >= 15) {
  407. return 2;
  408. } else if (r <= 12 && r >= 6) {
  409. return 3;
  410. } else if (r <= 5 && r >= 1) {
  411. return 4;
  412. } else {
  413. return 0;
  414. }
  415. }
  416. // 监听表单提交
  417. form.on('submit(formSubmit)', function (data) {
  418. let obj = data.field;
  419. //console.log(obj);
  420. let riskMeasureType1 = '', riskMeasureType2 = '', riskMeasureType3 = '', riskMeasureType4 = '', riskMeasureType5 = '';
  421. var end = "@#@";
  422. $("input[name='riskMeasureType1']").each(function (index, value) {
  423. if ($(this).val() != "") {
  424. riskMeasureType1 += $(this).val() + end;
  425. }
  426. })
  427. $("input[name='riskMeasureType2']").each(function (index, value) {
  428. if ($(this).val() != "") {
  429. riskMeasureType2 += $(this).val() + end;
  430. }
  431. })
  432. $("input[name='riskMeasureType3']").each(function (index, value) {
  433. if ($(this).val() != "") {
  434. riskMeasureType3 += $(this).val() + end;
  435. }
  436. })
  437. $("input[name='riskMeasureType4']").each(function (index, value) {
  438. if ($(this).val() != "") {
  439. riskMeasureType4 += $(this).val() + end;
  440. }
  441. })
  442. $("input[name='riskMeasureType5']").each(function (index, value) {
  443. if ($(this).val() != "") {
  444. riskMeasureType5 += $(this).val() + end;
  445. }
  446. })
  447. obj.riskMeasureType1 = uParas.delLast(riskMeasureType1, end);
  448. obj.riskMeasureType2 = uParas.delLast(riskMeasureType2, end);
  449. obj.riskMeasureType3 = uParas.delLast(riskMeasureType3, end);
  450. obj.riskMeasureType4 = uParas.delLast(riskMeasureType4, end);
  451. obj.riskMeasureType5 = uParas.delLast(riskMeasureType5, end);
  452. // 表格选择的数据放到data.field中
  453. console.log(data.field);
  454. layer.load(2);
  455. obj.riskPointType = riskPointType;
  456. obj.gent = "gent";
  457. admin.req(uParas.baseUrl + '/ent/dangerSource/saveRisk', data.field, function (resp) {
  458. layer.closeAll();
  459. if (resp.code == 1) {
  460. layer.msg(resp.msg)
  461. location.href = "./index.html?riskPointType=" + riskPointType + "&tab=risk";
  462. } else {
  463. layer.msg(resp.msg)
  464. }
  465. }, 'POST');
  466. return false;
  467. });
  468. });
  469. function btnAddRiskMeasure(boxs, title, divId) {
  470. let html = `<div class="layui-form-item">
  471. <label class="layui-form-label w-width120">${title}</label>
  472. <div class="layui-input-block w-m150" style="display: flex;align-items: center;">
  473. <input name="${divId}" type="text" placeholder="最多输入200个汉字" class="layui-input"
  474. lay-verType="tips" lay-verify="required" required>
  475. <a class="layui-btn layui-btn-danger" href="javascript:;" onclick="deleteRiskMeasure(this)">-</a>
  476. </div>
  477. </div>`;
  478. $("#" + boxs + "").append(html);
  479. }
  480. function deleteRiskMeasure(obj) {
  481. $(obj).parents("div.layui-form-item").remove();
  482. }
  483. </script>
  484. </body>
  485. </html>