addRisk.html 26 KB

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