index_old.html 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896
  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/uParas.css?v=312"/>
  11. <link rel="stylesheet" href="../../../assets/module/formSelects/formSelects-v4.css"/>
  12. <style>
  13. .layui-table-cell {
  14. overflow: visible !important;
  15. height: auto;
  16. /*line-height: 20px;*/
  17. text-overflow: inherit;
  18. white-space: normal;
  19. word-break: break-all;
  20. }
  21. .layui-table-box {
  22. overflow: visible;
  23. }
  24. .layui-table-body {
  25. overflow: visible;
  26. }
  27. </style>
  28. </head>
  29. <body>
  30. <!-- 页面加载loading -->
  31. <div class="page-loading">
  32. <div class="ball-loader">
  33. <span></span><span></span><span></span><span></span>
  34. </div>
  35. </div>
  36. <!-- 正文开始 -->
  37. <div class="layui-fluid">
  38. <div class="layui-card">
  39. <div class="layui-card-body">
  40. <div class="layui-card-body">
  41. <div class="layui-tab layui-tab-brief" lay-filter="tab_ds">
  42. <ul class="layui-tab-title">
  43. <li class="layui-this" lay-id="index" id="index"></li>
  44. <li lay-id="risk">风险库</li>
  45. </ul>
  46. <div class="layui-tab-content" style="height: auto;">
  47. <div class="layui-tab-item layui-show">
  48. <div class="layui-form toolbar">
  49. <div class="layui-form-item">
  50. <div class="layui-inline">
  51. <label class="layui-form-label w-auto w-padding">等级:</label>
  52. <div class="layui-input-inline mr0">
  53. <select name="dangerSourceLevel" lay-verType="dangerSourceLevel">
  54. <option value="-1">全部</option>
  55. <option value="1">重大</option>
  56. <option value="2">较大</option>
  57. <option value="3">一般</option>
  58. <option value="4">低</option>
  59. </select>
  60. </div>
  61. </div>
  62. <div class="layui-inline">
  63. <label class="layui-form-label w-auto w-padding">搜索:</label>
  64. <div class="layui-input-inline mr0">
  65. <input name="keyword" class="layui-input" type="text" placeholder="输入关键字"/>
  66. </div>
  67. </div>
  68. <div class="layui-inline">
  69. <button class="layui-btn icon-btn" lay-filter="formSubSearch" lay-submit>
  70. <i class="layui-icon">&#xe615;</i>搜索
  71. </button>
  72. </div>
  73. <div class="layui-inline pull-right">
  74. <button id="addDangerSource"
  75. class="layui-btn layui-btn-sm layui-btn-radius layui-btn-normal"><i class="layui-icon">&#xe654;</i>新增危险源
  76. </button>
  77. <a href="javascript:;" id="downXls" class="layui-btn layui-btn-sm layui-btn-radius layui-btn-normal"><i class="layui-icon">&#xe654;</i>下载Excel模版</a>
  78. <button id="importXls"
  79. class="layui-btn layui-btn-sm layui-btn-radius layui-btn-normal"><i class="layui-icon">&#xe654;</i>Excel导入
  80. </button>
  81. <a href="javascript:;" id="exportXls" class="layui-btn layui-btn-sm layui-btn-radius layui-btn-normal"><i class="layui-icon">&#xe654;</i>Excel导出</a>
  82. </div>
  83. </div>
  84. </div>
  85. <table class="layui-table" id="datatable" lay-filter="datatable"></table>
  86. </div>
  87. <div class="layui-tab-item">
  88. <div class="layui-form toolbar" lay-filter="layuiForm">
  89. <div class="layui-form-item">
  90. <div class="layui-inline">
  91. <label class="layui-form-label w-auto w-padding">等级:</label>
  92. <div class="layui-input-inline mr0">
  93. <select name="dangerSourceLevel" lay-verType="dangerSourceLevel">
  94. <option value="-1">全部</option>
  95. <option value="1">重大</option>
  96. <option value="2">较大</option>
  97. <option value="3">一般</option>
  98. <option value="4">低</option>
  99. </select>
  100. </div>
  101. </div>
  102. <div class="layui-inline">
  103. <label class="layui-form-label w-auto w-padding">危险源:</label>
  104. <div class="layui-input-inline mr0">
  105. <input type="text" id="dangerSrcName" class="layui-input" name="dangerSrcName"
  106. placeholder="点击选择危险源"
  107. class="form-control" readonly required>
  108. <input type="hidden" id="dangerSrcId" name="dangerSrcId" readonly>
  109. <div id="menuContent" class="menuContent">
  110. <ul id="wzTree" class="ztree" style="margin-top:0;"></ul>
  111. </div>
  112. </div>
  113. </div>
  114. <div class="layui-inline">
  115. <label class="layui-form-label w-auto w-padding">管控层级:</label>
  116. <div class="layui-input-inline mr0">
  117. <select name="riskCtrlLevelId" id="riskCtrlLevelId" lay-filter="riskCtrlLevelId" lay-search="" required></select>
  118. </div>
  119. </div>
  120. <!-- <div class="layui-inline">-->
  121. <!-- <label class="layui-form-label w-auto w-padding">管控岗位:</label>-->
  122. <!-- <div class="layui-input-inline mr0">-->
  123. <!-- <select name="riskCtrlPositionId" id="riskCtrlPositionId" lay-filter="searchRiskCtrlPositionId" lay-search="" required></select>-->
  124. <!-- </div>-->
  125. <!-- </div>-->
  126. <div class="layui-inline">
  127. <label class="layui-form-label w-auto w-padding">搜索:</label>
  128. <div class="layui-input-inline mr0">
  129. <input name="keyword" class="layui-input" type="text" placeholder="输入关键字"/>
  130. </div>
  131. </div>
  132. <div class="layui-inline">
  133. <button class="layui-btn icon-btn" lay-filter="riskSearch" lay-submit>
  134. <i class="layui-icon">&#xe615;</i>搜索
  135. </button>
  136. </div>
  137. <div class="layui-inline pull-right">
  138. <button id="addRisk"
  139. class="layui-btn layui-btn-sm layui-btn-radius layui-btn-normal"><i class="layui-icon">&#xe654;</i>新增风险
  140. </button>
  141. </div>
  142. </div>
  143. </div>
  144. <table class="layui-table" id="risk" lay-filter="risk"></table>
  145. </div>
  146. </div>
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. </div>
  152. <input type="hidden" name="riskJudgeMethod" id="riskJudgeMethod">
  153. <input type="hidden" name="riskCtrlLevelId_" id="riskCtrlLevelId_">
  154. <script type="text/html" id="modelTpl">
  155. <form id="modelForm" lay-filter="modelForm" class="layui-form model-form">
  156. <input name="riskPointType" id="riskPointType" class="layui-input" type="hidden"/>
  157. <input name="dangerSrcId" class="layui-input" type="hidden"/>
  158. <div class="layui-form-item" id="parentDangerSrc" style="display: none">
  159. <label class="layui-form-label">父级危险源</label>
  160. <div class="layui-input-block">
  161. <input name="parentDangerSrcId" id="parentDangerSrcId" class="layui-input" type="hidden"/>
  162. <input name="parentDangerSrcName" id="parentDangerSrcName" readonly placeholder="请输入父级危险源" type="text" class="layui-input" maxlength="20"/>
  163. </div>
  164. </div>
  165. <div class="layui-form-item">
  166. <label class="layui-form-label">危险源名称</label>
  167. <div class="layui-input-block">
  168. <input name="dangerSrcName" placeholder="请输入危险源名称" type="text" class="layui-input" maxlength="20"
  169. lay-verType="tips" lay-verify="required" required/>
  170. </div>
  171. </div>
  172. <div class="layui-form-item">
  173. <label class="layui-form-label">编码</label>
  174. <div class="layui-input-block">
  175. <input name="dangerSrcCode" id="dangerSrcCode" placeholder="输入编码名称,只允许字母数字加下划线" type="text" class="layui-input" maxlength="20"
  176. lay-verType="tips" lay-verify="required" required/>
  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="isMoveable" value="0" title="固定" checked="">
  183. <input type="radio" name="isMoveable" value="1" title="移动">
  184. </div>
  185. </div>
  186. <div class="layui-form-item" id="uploadImg">
  187. <label class="layui-form-label">图标:</label>
  188. <div class="layui-input-block" style="display: flex;align-items: center;">
  189. <div class="layui-upload-drag">
  190. <i class="layui-icon"></i>
  191. <p>点击上传,或将文件拖拽到此处</p>
  192. </div>
  193. <img src="" id="vDangerImg" width="100px" style="padding-left: 10px">
  194. </div>
  195. <input name="dangerImg" id="dangerImg" type="hidden" class="layui-input">
  196. </div>
  197. <div class="layui-form-item text-right">
  198. <button class="layui-btn layui-btn-primary" type="button" ew-event="closePageDialog">取消</button>
  199. <button class="layui-btn" lay-filter="modelSubmit" lay-submit>保存</button>
  200. </div>
  201. </form>
  202. </script>
  203. <script type="text/html" id="xlsTpl">
  204. <form id="xlsForm" lay-filter="xlsForm" enctype="multipart/form-data" class="layui-form model-form">
  205. <div class="layui-form-item">
  206. <label class="layui-form-label">选择文件:</label>
  207. <div class="layui-input-block" style="display: flex;align-items: center;">
  208. <input name="file" id="file" type="file"/>
  209. </div>
  210. </div>
  211. <div class="layui-form-item text-right">
  212. <button class="layui-btn layui-btn-primary" type="button" ew-event="closePageDialog">取消</button>
  213. <button class="layui-btn" id="xlsSubmit" lay-filter="xlsSubmit" lay-submit>保存</button>
  214. </div>
  215. </form>
  216. </script>
  217. <!-- 表格操作列 -->
  218. <script type="text/html" id="optionTpl">
  219. <div class="layui-btn-group">
  220. {{# if(d.parentDangerSrcId==-1){ }}
  221. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="add">+子危险源</a>
  222. {{# } }}
  223. <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">编辑</a>
  224. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
  225. </div>
  226. </script>
  227. <script type="text/html" id="riskOptionTpl">
  228. <div class="layui-btn-group">
  229. <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">编辑</a>
  230. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
  231. </div>
  232. </script>
  233. <script type="text/html" id="imgTpl">
  234. {{# var imgs=d.dangerImg;}}
  235. {{# if(d.riskPointType==2){ imgs="../../../assets/images/icon/job.png"} }}
  236. {{# if(d.riskPointType==1){ imgs="../../../assets/images/icon/facility.png"} }}
  237. <img style="display: inline-block; width: 28px;height: 28px;" src={{ imgs }}>
  238. </script>
  239. <script type="text/html" id="lvTpl">
  240. {{# var imgs="",title=""; var lv=d.dangerSourceLevel;}}
  241. {{# if(lv==1){ imgs="../../../assets/images/lv/red.png" ;title="重大" } }}
  242. {{# if(lv==2){ imgs="../../../assets/images/lv/orange.png";title="较大"} }}
  243. {{# if(lv==3){ imgs="../../../assets/images/lv/yellow.png";title="一般"} }}
  244. {{# if(lv==4){ imgs="../../../assets/images/lv/blue.png";title="较低"} }}
  245. {{# if(lv==1){ }}
  246. <div class='notify'><span class='heartbit'></span><span>
  247. <img style="display: inline-block; width: 28px;height: 28px;" src={{ imgs }}>&nbsp;{{ title }}
  248. </span>
  249. </div>
  250. {{# }else{ }}
  251. <img style="display: inline-block; width: 28px;height: 28px;" src={{ imgs }}>&nbsp;{{ title }}
  252. {{# } }}
  253. </script>
  254. <script type="text/html" id="riskLvTpl">
  255. {{# var imgs="",title=""; var lv=d.riskLevel;}}
  256. {{# if(lv==1){ imgs="../../../assets/images/lv/red.png" ;title="重大" } }}
  257. {{# if(lv==2){ imgs="../../../assets/images/lv/orange.png";title="较大"} }}
  258. {{# if(lv==3){ imgs="../../../assets/images/lv/yellow.png";title="一般"} }}
  259. {{# if(lv==4){ imgs="../../../assets/images/lv/blue.png";title="较低"} }}
  260. {{# if(lv==1){ }}
  261. <a lay-event="lv" href="javascript:;">
  262. <div class='notify'><span class='heartbit'></span><span>
  263. <img style="display: inline-block; width: 28px;height: 28px;" src={{ imgs }}>&nbsp;{{ title }}
  264. </span>
  265. </div>
  266. </a>
  267. {{# }else{ }}
  268. <a lay-event="lv" href="javascript:;">
  269. <img style="display: inline-block; width: 28px;height: 28px;" src={{ imgs }}>&nbsp;{{ title }}
  270. </a>
  271. {{# } }}
  272. </script>
  273. <script type="text/html" id="positionTpl">
  274. <form id="modelUserForm" lay-filter="modelUserForm" class="layui-form model-form">
  275. <div class="layui-form-item">
  276. <label class="layui-form-label">管控岗位:</label>
  277. <div class="layui-input-block">
  278. <select name="riskCtrlPositionId" lay-verType="tips" class="layui-input-block" xm-select="riskCtrlPositionId" xm-select-search>
  279. <option value="">直接管控岗位或搜索选择管控岗位</option>
  280. </select>
  281. </div>
  282. </div>
  283. </form>
  284. </script>
  285. <!-- js部分 -->
  286. <script type="text/javascript" src="../../../assets/libs/layui/layui.js"></script>
  287. <script type="text/javascript" src="../../../assets/js/common.js?v=312"></script>
  288. <script>
  289. layui.use(['layer', 'form', 'table', 'util', 'admin', 'zTree', 'uParas', 'upload', 'treetable', 'element', '_zTree', 'formSelects'], function () {
  290. var $ = layui.jquery;
  291. var layer = layui.layer;
  292. var form = layui.form;
  293. var table = layui.table;
  294. var util = layui.util;
  295. var admin = layui.admin;
  296. var uParas = layui.uParas;
  297. var element = layui.element;
  298. var _zTree = layui._zTree;
  299. var formSelects = layui.formSelects;
  300. var cacheData = layui.data(uParas.tableName);
  301. // 渲染表格
  302. var riskPointType = uParas.getUrlParam("riskPointType");
  303. if (riskPointType == 1) {
  304. $("#index").html("设备危险源");
  305. }
  306. if (riskPointType == 2) {
  307. $("#index").html("作业危险源");
  308. }
  309. if (riskPointType == 3) {
  310. $("#index").html("环境危险源");
  311. }
  312. if (riskPointType == 4) {
  313. $("#index").html("设施危险源");
  314. }
  315. if (riskPointType == 5) {
  316. $("#index").html("其他危险源");
  317. }
  318. var tab = uParas.getUrlParam("tab");
  319. if (tab != null) {
  320. element.tabChange('tab_ds', tab);
  321. }
  322. element.on('tab(tab_ds)', function () {
  323. location.hash = 'tab=' + this.getAttribute('lay-id');
  324. });
  325. var treetable = layui.treetable;
  326. laodTreetable();
  327. $("#downXls").attr("href", uParas.staticUrl + "/excel/sysRiskNew.xlsx");
  328. function laodTreetable(data) {
  329. var insTb = treetable.render({
  330. url: uParas.baseUrl + '/gent/ds/list?riskPointType=' + riskPointType + "&limit=1000",
  331. treeColIndex: 1,
  332. treeSpid: "-1",
  333. treeIdName: 'dangerSrcId',
  334. treePidName: 'parentDangerSrcId',
  335. elem: '#datatable',
  336. cellMinWidth: 100,
  337. // height: 'full-200',
  338. where: data,
  339. cols: [[
  340. {type: 'numbers'},
  341. {field: 'dangerSrcName', sort: false, title: '名称'},
  342. {field: 'dangerImg', sort: false, title: '标识', templet: "#imgTpl", minWidth: 60},
  343. {field: 'dangerSourceLevel', sort: false, title: '危险源等级', templet: "#lvTpl", minWidth: 100},
  344. {
  345. field: 'riskCount', sort: false, title: '风险数目', templet: function (d) {
  346. if (d.parentDangerSrcId == -1) {
  347. return '<a href="#" lay-event="details">' + d.riskCount + '</a>';
  348. } else {
  349. return '<a href="#" lay-event="details">' + d.riskCountParent + '</a>';
  350. }
  351. }, minWidth: 100
  352. },
  353. {
  354. field: 'roleDesc', sort: false, title: '检查表', templet: function (d) {
  355. return '<a href="#" lay-event="details" class="layui-btn layui-btn-xs layui-btn-normal" ><i class="layui-icon">&#xe60a;</i> 查看</a>';
  356. }, minWidth: 100
  357. },
  358. {align: 'center', title: '操作', toolbar: '#optionTpl', minWidth: 200}
  359. ]]
  360. });
  361. }
  362. form.on('submit(formSubSearch)', function (data) {
  363. laodTreetable(data.field);
  364. });
  365. table.on('tool(datatable)', function (obj) {
  366. var data = obj.data;
  367. var layEvent = obj.event;
  368. if (layEvent == 'add') {
  369. addOpen(data.dangerSrcId, data.dangerSrcName);
  370. } else if (layEvent == 'del') {
  371. doDel(data);
  372. } else if (layEvent == 'edit') {
  373. editOpen(data);
  374. } else if (layEvent == 'details') {
  375. if (obj.data.parentDangerSrcId == -1) {
  376. location.href = "./viewRisk.html?riskPointType=" + riskPointType + "&tab=index&dangerSrcId=" + obj.data.dangerSrcId + "&vtype=nd";
  377. } else {
  378. location.href = "./viewRisk.html?riskPointType=" + riskPointType + "&tab=index&dangerSrcId=" + obj.data.dangerSrcId + "&vtype=pd";
  379. }
  380. }
  381. });
  382. /**
  383. * 新增危险源
  384. */
  385. $('#addDangerSource').click(function () {
  386. addOpen();
  387. });
  388. var url = uParas.baseUrl + '/gent/ds/exportAll';
  389. url = url + "?riskPointType=" + riskPointType + "&cId=" + cacheData.user.cId;
  390. $("#exportXls").attr("href", url);
  391. $('#importXls').click(function () {
  392. admin.open({
  393. type: 1,
  394. title: '导入EXCEL文件(参照模板,填写EXCEL数据并导入)',
  395. content: $('#xlsTpl').html(),
  396. success: function (layero, dIndex) {
  397. var url = uParas.baseUrl + '/gent/ds/uploadAll';
  398. url = url + "?riskPointType=" + riskPointType + "&cId=" + cacheData.user.cId + "&aId=" + cacheData.user.aId;
  399. form.on('submit(xlsSubmit)', function (data) {
  400. var fd = new FormData();
  401. var formData = new FormData($("#xlsForm")[0]);
  402. formData.append("riskPointType", riskPointType);
  403. admin.closeDialog('#xlsSubmit');
  404. uploadAll(url, formData);
  405. return false;
  406. });
  407. }
  408. });
  409. function uploadAll(url, formData) {
  410. $.ajax({
  411. cache: true,
  412. type: "post",
  413. url: url,
  414. async: false,
  415. data: formData,
  416. contentType: false,
  417. processData: false,
  418. error: function (request) {
  419. layer.alert('操作失败', {
  420. icon: 2,
  421. title: "提示"
  422. });
  423. },
  424. success: function (resp) {
  425. if (resp.code == 1) {
  426. layer.msg(resp.msg);
  427. location.href="./index.html?riskPointType=" + riskPointType + "&tab=index"
  428. } else {
  429. layer.msg(resp.msg);
  430. }
  431. }
  432. })
  433. }
  434. });
  435. function addOpen(pId, pName) {
  436. admin.open({
  437. type: 1,
  438. title: '新增危险源',
  439. area: ["600px", "500px"],
  440. content: $('#modelTpl').html(),
  441. success: function (layero, dIndex) {
  442. form.render();
  443. uParas.uploadRender("uploadImg", "vDangerImg", "dangerImg");
  444. $("#riskPointType").val(riskPointType);
  445. if (pId != undefined) {
  446. $("#parentDangerSrc").show();
  447. $("#parentDangerSrcId").val(pId);
  448. $("#parentDangerSrcName").val(pName);
  449. }
  450. var url = uParas.baseUrl + '/gent/ds/save';
  451. // 保存处理
  452. form.on('submit(modelSubmit)', function (data) {
  453. layer.load();
  454. admin.req(url, data.field, function (resp) {
  455. layer.closeAll('loading');
  456. if (resp.code == 1) {
  457. layer.close(dIndex);
  458. layer.msg(resp.msg);
  459. location.href="./index.html?riskPointType=" + riskPointType + "&tab=index"
  460. } else {
  461. layer.msg(resp.msg);
  462. }
  463. }, 'POST');
  464. return false;
  465. });
  466. }
  467. });
  468. }
  469. function editOpen(obj) {
  470. admin.open({
  471. type: 1,
  472. title: '修改危险源',
  473. area: ["600px", "500px"],
  474. content: $('#modelTpl').html(),
  475. success: function (layero, dIndex) {
  476. form.render();
  477. uParas.uploadRender("uploadImg", "vDangerImg", "dangerImg", obj.dangerImg);
  478. form.val('modelForm', obj);
  479. $("#riskPointType").val(riskPointType);
  480. $("#dangerSrcCode").attr("readonly", "readonly");
  481. var url = uParas.baseUrl + '/gent/ds/update';
  482. // 保存处理
  483. form.on('submit(modelSubmit)', function (data) {
  484. layer.load();
  485. admin.req(url, data.field, function (resp) {
  486. layer.closeAll('loading');
  487. if (resp.code == 1) {
  488. layer.close(dIndex);
  489. layer.msg(resp.msg);
  490. location.href="./index.html?riskPointType=" + riskPointType + "&tab=index"
  491. } else {
  492. layer.msg(resp.msg);
  493. }
  494. }, 'POST');
  495. return false;
  496. });
  497. }
  498. });
  499. }
  500. function doDel(obj) {
  501. layer.confirm('确定要删除“' + obj.dangerSrcName + '”吗?', {
  502. skin: 'layui-layer-admin',
  503. shade: .1
  504. }, function (i) {
  505. layer.close(i);
  506. layer.load();
  507. var url = uParas.baseUrl + '/gent/ds/delete/' + obj.dangerSrcId;
  508. admin.req(url, {}, function (resp) {
  509. layer.closeAll('loading');
  510. if (resp.code == 1) {
  511. layer.msg(resp.msg);
  512. // insTb.reload({}, 'data');
  513. location.href="./index.html?riskPointType=" + riskPointType + "&tab=index"
  514. } else {
  515. layer.msg(resp.msg);
  516. }
  517. }, 'post');
  518. });
  519. }
  520. //风险
  521. $.ajaxSetup({async: false});
  522. var url = uParas.baseUrl + "/ent/sysInfo/getInfo";
  523. admin.req(url, {}, function (resp) {
  524. $("#riskJudgeMethod").val(resp.data.riskJudgeMethod);
  525. });
  526. function getCtrlName(levelValue) {
  527. var url = uParas.baseUrl + "/admin/common/getCtrlList";
  528. admin.req(url, {}, function (resp) {
  529. $.each(resp.data, function (i, item) {
  530. if (item.riskCtrlLevelValue == levelValue) {
  531. $("#riskCtrlLevelName").val(item.riskCtrlLevelTitle);
  532. $("#riskCtrlLevelId_").val(item.riskCtrlLevelId);
  533. }
  534. });
  535. });
  536. }
  537. var getCtrlList = uParas.getSendData("/admin/common/getCtrlList");
  538. var getPositionList = uParas.getSendData("/admin/common/getPositionList");
  539. /**
  540. * 风险div数据
  541. **/
  542. uParas.initSimpleSelectX("riskCtrlLevelId", "layuiForm", getCtrlList, "riskCtrlLevelTitle", "riskCtrlLevelId");
  543. uParas.initSimpleSelectX("riskCtrlPositionId", "layuiForm", getPositionList, "positionTitle", "pId");
  544. _zTree._init('/ent/dangerSource/query?riskPointType=' + riskPointType + '&limit=1000', 'dangerSrcId', 'parentDangerSrcId', 'dangerSrcName', 'dangerSrcId', 0);
  545. var insTb = table.render({
  546. url: uParas.baseUrl + '/gent/risk/query?riskPointType=' + riskPointType,
  547. elem: '#risk',
  548. cellMinWidth: 100,
  549. page: true,
  550. toolbar: true,
  551. cols: [[
  552. {type: 'numbers'},
  553. {field: 'riskId', sort: false, title: 'ID', hide: true},
  554. {field: 'riskCode', sort: false, title: '风险编号'},
  555. {field: 'rootName', sort: false, title: '根危险源'},
  556. {field: 'parentDangerSrcName', sort: false, title: '危险源'},
  557. {field: 'riskReason', sort: false, title: '危害因素'},
  558. {field: 'riskConsequence', sort: false, title: '后果'},
  559. {field: 'riskLevel', sort: false, title: '风险等级', templet: "#riskLvTpl", minWidth: 100},
  560. {
  561. field: 'riskCtrlLevelTitle', sort: false, title: '管控层级', minWidth: 100
  562. },
  563. // {
  564. // field: 'sPositionTitle', sort: false, title: '管控岗位', templet: function (d) {
  565. // var sPositionTitle = uParas.setValueDef(d.sPositionTitle, '选择管控岗位');
  566. // return '<a lay-event="riskCtrlPositionId" style="text-shadow: none;color: #5b9bd1;" href="javascript:;"><i class="layui-icon">&#xe642;</i> ' + sPositionTitle + '</a>';
  567. // }
  568. // },
  569. {align: 'center', title: '操作', toolbar: '#riskOptionTpl', minWidth: 100}
  570. ]]
  571. });
  572. form.on('submit(riskSearch)', function (data) {
  573. var obj = data.field;
  574. obj.riskPointType = riskPointType;
  575. insTb.reload({where: obj}, 'data');
  576. });
  577. form.on('select(riskCtrlLevelId)', function (data) {
  578. var obj = {};
  579. obj.riskCtrlLevelId = data.value;
  580. insTb.reload({where: obj}, 'data');
  581. });
  582. form.on('select(searchRiskCtrlPositionId)', function (data) {
  583. var obj = {};
  584. obj.riskCtrlPositionId = data.value;
  585. insTb.reload({where: obj}, 'data');
  586. });
  587. table.on('tool(risk)', function (obj) {
  588. var data = obj.data;
  589. var layEvent = obj.event;
  590. if (layEvent == 'del') {
  591. doDelRisk(data);
  592. } else if (layEvent == 'edit') {
  593. location.href = "./editRisk.html?riskPointType=" + riskPointType + "&riskId=" + data.riskId + "&tab=risk";
  594. } else if (layEvent == 'lv') {
  595. admin.open({
  596. type: 1,
  597. title: '风险等级',
  598. area: ["600px", "500px"],
  599. content: $('#lvCTpl').html(),
  600. btn: ['确定', '取消']
  601. , yes: function () {
  602. var riskLevel_ = $("#riskLevel_").val();
  603. getCtrlName(riskLevel_);
  604. var url = uParas.baseUrl + '/ent/risk/updateRiskLevel';
  605. admin.req(url, {riskId: obj.data.riskId, riskLevel: riskLevel_, riskCtrlLevelId: $("#riskCtrlLevelId_").val()}, function (resp) {
  606. if (resp.code == 1) {
  607. layer.msg(resp.msg);
  608. layer.close(index);
  609. insTb.reload({}, 'data');
  610. } else {
  611. layer.msg(resp.msg);
  612. }
  613. }, 'post');
  614. }, btn2: function () {
  615. layer.closeAll();
  616. },
  617. zIndex: layer.zIndex,
  618. success: function (layero, dIndex) {
  619. var method = $("#riskJudgeMethod").val();
  620. radioMethod(method);
  621. form.render();
  622. form.on('radio(methods)', function (data) {
  623. radioMethod(data.value);
  624. });
  625. $("#riskLevelText_").val(getLvText(obj.data.riskLevel));
  626. $("#riskLevel_").val(obj.data.riskLevel);
  627. }
  628. });
  629. } else if (layEvent == 'riskCtrlPositionId') {
  630. admin.open({
  631. type: 1,
  632. title: '管控岗位',
  633. area: ["600px", "300px"],
  634. content: $('#positionTpl').html(),
  635. btn: ['确定', '取消']
  636. , yes: function () {
  637. var riskCtrlPositionId = formSelects.value('riskCtrlPositionId', 'valStr');
  638. var url = uParas.baseUrl + '/ent/risk/updateRiskPosition';
  639. admin.req(url, {riskId: obj.data.riskId, riskCtrlPositionId: riskCtrlPositionId, riskCtrlLevelId: obj.data.riskCtrlLevelId}, function (resp) {
  640. layer.closeAll();
  641. if (resp.code == 1) {
  642. layer.msg(resp.msg);
  643. insTb.reload({}, 'data');
  644. } else {
  645. layer.msg(resp.msg);
  646. }
  647. }, 'post');
  648. }, btn2: function () {
  649. layer.closeAll();
  650. },
  651. zIndex: layer.zIndex,
  652. success: function (layero, dIndex) {
  653. uParas.initFormSelects("riskCtrlPositionId", "/admin/common/getPositionList", "positionTitle", "pId", obj.data.riskCtrlPositionId);
  654. }
  655. });
  656. }
  657. });
  658. /**
  659. * 新增危险源
  660. */
  661. $('#addRisk').click(function () {
  662. location.href = "./addRisk.html?riskPointType=" + riskPointType + "&tab=risk";
  663. });
  664. function doDelRisk(obj) {
  665. layer.confirm('确定要删除“' + obj.riskName + '”吗?', {
  666. skin: 'layui-layer-admin',
  667. shade: .1
  668. }, function (i) {
  669. layer.close(i);
  670. layer.load();
  671. var url = uParas.baseUrl + '/ent/risk/delete';
  672. admin.req(url, {id: obj.riskId}, function (resp) {
  673. layer.closeAll('loading');
  674. if (resp.code == 1) {
  675. layer.msg(resp.msg);
  676. insTb.reload({}, 'data');
  677. } else {
  678. layer.msg(resp.msg);
  679. }
  680. }, 'post');
  681. });
  682. }
  683. form.on('select(LEC)', function (data) {
  684. sLecFunction();
  685. });
  686. form.on('select(LSR)', function (data) {
  687. sLsrFunction();
  688. });
  689. function getLvText(level) {
  690. var lvText = "";
  691. if (level === 1) {
  692. lvText = "重大";
  693. } else if (level === 2) {
  694. lvText = "较大";
  695. } else if (level === 3) {
  696. lvText = "一般";
  697. } else {
  698. lvText = "较低";
  699. }
  700. return lvText;
  701. }
  702. function sLsrFunction() {
  703. var level = 4;
  704. level = lsrFunction($("#riskLSL").val(), $("#riskLSS").val());
  705. $("#riskLevel").val(level);
  706. $("#riskLevel_").val(level);
  707. let lvText = getLvText(level);
  708. $("#riskLevelText").val(lvText);
  709. $("#riskLevelText_").val(lvText);
  710. }
  711. function sLecFunction() {
  712. var level = 4;
  713. level = lecFunction($("#riskLECL").val(), $("#riskLECE").val(), $("#riskLECC").val());
  714. $("#riskLevel").val(level);
  715. $("#riskLevel_").val(level);
  716. let lvText = getLvText(level);
  717. $("#riskLevelText").val(lvText);
  718. $("#riskLevelText_").val(lvText);
  719. }
  720. function radioMethod(val) {
  721. if (val == 1) {
  722. sLecFunction();
  723. $(".lec").attr("hidden", false);
  724. $(".ls").attr("hidden", true);
  725. $("#rLS").attr("type", "hidden");
  726. $("#rLEC").attr("checked", "checked");
  727. } else {
  728. sLsrFunction();
  729. $(".lec").attr("hidden", true);
  730. $(".ls").attr("hidden", false);
  731. $("#rLEC").attr("type", "hidden");
  732. $("#rLS").attr("checked", "checked");
  733. }
  734. }
  735. function lecFunction(l, e, c) {
  736. var d = l * e * c;
  737. if (d > 320) {
  738. return 1;
  739. } else if (d > 160) {
  740. return 2;
  741. } else if (d > 70) {
  742. return 3;
  743. } else {
  744. return 4;
  745. }
  746. }
  747. function lsrFunction(l, s) {
  748. var r = l * s;
  749. if (r <= 25 && r >= 21) {
  750. return 1;
  751. } else if (r <= 16 && r >= 15) {
  752. return 2;
  753. } else if (r <= 12 && r >= 6) {
  754. return 3;
  755. } else if (r <= 5 && r >= 1) {
  756. return 4;
  757. } else {
  758. return 0;
  759. }
  760. }
  761. });
  762. </script>
  763. <script type="text/html" id="lvCTpl">
  764. <form id="lvCForm" lay-filter="modelForm" class="layui-form model-form">
  765. <input name="riskLevel_" id="riskLevel_" class="layui-input" type="hidden"/>
  766. <div class="layui-form-item">
  767. <label class="layui-form-label">风险等级:</label>
  768. <div class="layui-input-block">
  769. <input type="text" id="riskLevelText_" name="riskLevelText_" class="layui-input" readonly="readonly">
  770. </div>
  771. </div>
  772. <div class="layui-form-item">
  773. <label class="layui-form-label">评价方法:</label>
  774. <div class="layui-input-block">
  775. <input type="radio" name="method" lay-filter="methods" value="1" title="LEC" id="rLEC">
  776. <input type="radio" name="method" lay-filter="methods" value="2" title="LS" id="rLS">
  777. </div>
  778. </div>
  779. <div class="layui-form-item lec">
  780. <label class="layui-form-label">L:</label>
  781. <div class="layui-input-block">
  782. <select id="riskLECL" name="riskLECL" lay-filter="LEC">
  783. <option value="0.1">实际不可能</option>
  784. <option value="0.2">极不可能</option>
  785. <option value="0.5">很不可能,可以设想</option>
  786. <option value="1">可能性小,完全意外</option>
  787. <option value="3">可能,但不经常</option>
  788. <option value="6">相当可能</option>
  789. <option value="10">完全可以预料</option>
  790. </select>
  791. <span class="help-inline">提示:事故发生的可能性</span>
  792. </div>
  793. </div>
  794. <div class="layui-form-item lec">
  795. <label class="layui-form-label">E:</label>
  796. <div class="layui-input-block">
  797. <select id="riskLECE" name="riskLECE" lay-filter="LEC">
  798. <option value="0.5">非常罕见暴露</option>
  799. <option value="1">每年几次暴露</option>
  800. <option value="2">每月一次暴露</option>
  801. <option value="3">每周一次或偶然暴露</option>
  802. <option value="6">每天工作时间内暴露</option>
  803. <option value="10">连续暴露</option>
  804. </select>
  805. <span class="help-inline">提示:人员暴露于危险环境中的频繁程度</span>
  806. </div>
  807. </div>
  808. <div class="layui-form-item lec">
  809. <label class="layui-form-label">C:</label>
  810. <div class="layui-input-block">
  811. <select id="riskLECC" name="riskLECC" lay-filter="LEC">
  812. <option value="1">引人注意</option>
  813. <option value="2">重大,伤残</option>
  814. <option value="7">严重</option>
  815. <option value="15">1~2人死亡</option>
  816. <option value="40">3~9人死亡</option>
  817. <option value="100">10人以上死亡</option>
  818. </select>
  819. <span class="help-inline">提示:一旦发生事故可能造成的后果</span>
  820. </div>
  821. </div>
  822. <div class="layui-form-item ls">
  823. <label class="layui-form-label">L:</label>
  824. <div class="layui-input-block">
  825. <select id="riskLSL" name="riskLSL" lay-filter="LSR">
  826. <option value="1">极不可能</option>
  827. <option value="2">偶尔</option>
  828. <option value="3">重复发生</option>
  829. <option value="4">预期情况下经常</option>
  830. <option value="5">正常情况下经常</option>
  831. </select>
  832. <span class="help-inline">提示:事故发生的可能性</span>
  833. </div>
  834. </div>
  835. <div class="layui-form-item ls">
  836. <label class="layui-form-label">S:</label>
  837. <div class="layui-input-block">
  838. <select id="riskLSS" name="riskLSS" lay-filter="LSR">
  839. <option value="1">无伤亡、无损失</option>
  840. <option value="2">轻伤、损失<10万</option>
  841. <option value="3">伤残、损失>10万</option>
  842. <option value="4">丧失劳动力、损失>25万</option>
  843. <option value="5">死亡、损失>50万</option>
  844. </select>
  845. <span class="help-inline">提示:一旦发生事故造成后果的严重性</span>
  846. </div>
  847. </div>
  848. </form>
  849. </script>
  850. </body>
  851. </html>