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