index_old.html 42 KB

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