addRisk.html 25 KB

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