index.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  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. <!--[if lt IE 9]>
  11. <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  12. <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  13. <![endif]-->
  14. </head>
  15. <style>
  16. .menuContent {
  17. display: none;
  18. position: absolute;
  19. top: 33px;
  20. /*left: 15px;*/
  21. background-color: #fff;
  22. z-index: 2000;
  23. border: 1px solid #ccc;
  24. }
  25. </style>
  26. <body>
  27. <!-- 页面加载loading -->
  28. <div class="page-loading">
  29. <div class="ball-loader">
  30. <span></span><span></span><span></span><span></span>
  31. </div>
  32. </div>
  33. <!-- 正文开始 -->
  34. <div class="layui-fluid">
  35. <div class="layui-card">
  36. <div class="layui-card-body">
  37. <blockquote class="layui-elem-quote">
  38. 风险点统计
  39. </blockquote>
  40. <div class="layui-form toolbar">
  41. <div class="layui-form-item">
  42. <div class="layui-inline">
  43. <label class="layui-form-label w-auto w-padding">部门:</label>
  44. <div class="layui-input-inline mr0">
  45. <input type="text" id="groupName" name="groupName" value=""
  46. placeholder="点击选择"
  47. class="layui-input" readonly>
  48. <input type="hidden" id="groupId" name="groupId">
  49. <div id="menuContent" class="menuContent">
  50. <ul id="groupTree" class="ztree" style="margin-top:0;"></ul>
  51. </div>
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. <table class="layui-table" id="datatable" lay-filter="datatable">
  57. <thead>
  58. <tr>
  59. <th></th>
  60. <th id="lv1_t">重大</th>
  61. <th id="lv2_t">较大</th>
  62. <th id="lv3_t">一般</th>
  63. <th id="lv4_t">较低</th>
  64. </tr>
  65. </thead>
  66. <tbody>
  67. <tr>
  68. <td>风险等级</td>
  69. <td id="lv1_c"><span style="background-color:#ff0000;">&nbsp;红&nbsp;</span></td>
  70. <td id="lv2_c"><span style="background-color:#ff6100;">&nbsp;橙&nbsp;</span></td>
  71. <td id="lv3_c"><span style="background-color:#ffff00;">&nbsp;黄&nbsp;</span></td>
  72. <td id="lv4_c"><span style="background-color:#0000ff;">&nbsp;蓝&nbsp;</span></td>
  73. </tr>
  74. <tr>
  75. <td>数量</td>
  76. <td id="lv1">0</td>
  77. <td id="lv2">0</td>
  78. <td id="lv3">0</td>
  79. <td id="lv4">0</td>
  80. </tr>
  81. <tr>
  82. <td>风险数量</td>
  83. <td id="rslv1">0</td>
  84. <td id="rslv2">0</td>
  85. <td id="rslv3">0</td>
  86. <td id="rslv4">0</td>
  87. </tr>
  88. </tbody>
  89. </table>
  90. <div id="main" style="width: 99%;min-height: 600px;"></div>
  91. <blockquote class="layui-elem-quote">
  92. 风险点预警记录
  93. </blockquote>
  94. <div class="layui-form layui-form-item" lay-filter="formFilter">
  95. <div class="layui-inline pull-right">
  96. <label class="layui-form-label w-auto w-padding"></label>
  97. <div class="layui-input-inline mr0">
  98. <select name="year" id="year" lay-filter="year"></select>
  99. </div>
  100. </div>
  101. </div>
  102. <div id="main1" style="width: 99%;min-height: 600px;"></div>
  103. </div>
  104. </div>
  105. </div>
  106. <!-- js部分 -->
  107. <script type="text/javascript" src="../../../../assets/libs/layui/layui.js"></script>
  108. <script type="text/javascript" src="../../../../assets/js/common.js?v=312"></script>
  109. <script type="text/javascript" src="../../../../assets/libs/echarts/echarts.min.js"></script>
  110. <script type="text/javascript" src="../../../../assets/libs/echarts/echartsTheme.js"></script>
  111. <script>
  112. layui.use(['layer', 'form', 'table', 'util', 'admin', '_zTree', 'uParas', '_groupTree', 'laydate'], function () {
  113. var $ = layui.jquery;
  114. var layer = layui.layer;
  115. var form = layui.form;
  116. var table = layui.table;
  117. var util = layui.util;
  118. var admin = layui.admin;
  119. var _zTree = layui._zTree;
  120. var uParas = layui.uParas;
  121. var _groupTree = layui._groupTree;
  122. var laydate = layui.laydate;
  123. var hdLevelList;
  124. // $.ajaxSetup({async: false});
  125. // $.getJSON(uParas.baseUrl + "/language/getHiddenDangerLevelList", {}, function (result) {
  126. // hdLevelList = result.data;
  127. // $.each(result.data, function (i, field) {
  128. // if (field.value === "1") {
  129. // $("#lv1_t").show();
  130. // $("#lv1_c").show();
  131. // $("#lv1").show();
  132. // }
  133. // if (field.value === "2") {
  134. // $("#lv2_t").show();
  135. // $("#lv2_c").show();
  136. // $("#lv2").show();
  137. // }
  138. // if (field.value === "3") {
  139. // $("#lv3_t").show();
  140. // $("#lv3_c").show();
  141. // $("#lv3").show();
  142. // }
  143. // if (field.value === "4") {
  144. // $("#lv4_t").show();
  145. // $("#lv4_c").show();
  146. // $("#lv4").show();
  147. // }
  148. // });
  149. // });
  150. // var groupUrl = '/admin/common/findCompanyGroupLists';
  151. // /*所属部门*/
  152. // _groupTree.initgroupTreeAndUsers(groupUrl,"groupTree","groupName",
  153. // "groupId","menuContent","");
  154. var groupId = null;
  155. var myChart1 = echarts.init(document.getElementById('main'));
  156. var option1 = {
  157. legend: {},
  158. tooltip: {},
  159. dataset: {},
  160. xAxis: {type: 'category'},
  161. yAxis: {},
  162. series: [
  163. {
  164. type: 'bar', itemStyle: {
  165. normal: {
  166. label: {
  167. show: true,
  168. position: 'top',
  169. textStyle: {
  170. color: 'black',
  171. fontSize: 16
  172. }
  173. }
  174. }
  175. }, barWidth: 100, color: '#ff0000'
  176. },
  177. {
  178. type: 'bar', itemStyle: {
  179. normal: {
  180. label: {
  181. show: true,
  182. position: 'top',
  183. textStyle: {
  184. color: 'black',
  185. fontSize: 16
  186. }
  187. }
  188. }
  189. }, barWidth: 100, color: '#ff6100'
  190. },
  191. {
  192. type: 'bar', itemStyle: {
  193. normal: {
  194. label: {
  195. show: true,
  196. position: 'top',
  197. textStyle: {
  198. color: 'black',
  199. fontSize: 16
  200. }
  201. }
  202. }
  203. }, barWidth: 130, color: '#ffff00'
  204. },
  205. {
  206. type: 'bar', itemStyle: {
  207. normal: {
  208. label: {
  209. show: true,
  210. position: 'top',
  211. textStyle: {
  212. color: 'black',
  213. fontSize: 16
  214. }
  215. }
  216. }
  217. }, barWidth: 100, color: '#0000ff'
  218. }
  219. ]
  220. };
  221. var insTb = {
  222. reload: function (obj, p) {
  223. /**
  224. * 数据获取
  225. */
  226. $.getJSON(uParas.baseUrl + "/ent/riskPoint/riskPointLvCount", {gId: groupId}, function (result) {
  227. if (result.code == 1) {
  228. var lv1Count = 0, lv2Count = 0, lv3Count = 0, lv4Count = 0, rs1Count = 0, rs2Count = 0,
  229. rs3Count = 0, rs4Count = 0;
  230. $.each(result.data, function (i, field) {
  231. if (field.riskPointLevel == 1) {
  232. lv1Count = field.lvCount;
  233. rs1Count = field.rsCount;
  234. }
  235. if (field.riskPointLevel == 2) {
  236. lv2Count = field.lvCount;
  237. rs2Count = field.rsCount;
  238. }
  239. if (field.riskPointLevel == 3) {
  240. lv3Count = field.lvCount;
  241. rs3Count = field.rsCount;
  242. }
  243. if (field.riskPointLevel == 4) {
  244. lv4Count = field.lvCount;
  245. rs4Count = field.rsCount;
  246. }
  247. });
  248. $("#lv1").html(lv1Count);
  249. $("#rslv1").html(rs1Count);
  250. $("#lv2").html(lv2Count);
  251. $("#rslv2").html(rs2Count);
  252. $("#lv3").html(lv3Count);
  253. $("#rslv3").html(rs3Count);
  254. $("#lv4").html(lv4Count);
  255. $("#rslv4").html(rs4Count);
  256. var source = new Object();
  257. var list = new Array();
  258. list[0] = ['product', '重大', '较大', '一般', '较低'];
  259. list[1] = ['风险点数量', lv1Count, lv2Count, lv3Count, lv4Count];
  260. list[2] = ['风险数量', rs1Count, rs2Count, rs3Count, rs4Count];
  261. // if (hdLevelList.length == 4) {
  262. source.source = list;
  263. option1.dataset = source;
  264. myChart1.setOption(option1, true);
  265. // } else {
  266. // var list0 = new Array();
  267. // var list1 = new Array();
  268. // var list2 = new Array();
  269. // list0[0] = 'product';
  270. // list1[0] = '风险点';
  271. // $.each(hdLevelList, function (i, field) {
  272. // list0[i + 1] = field.id;
  273. // list1[i + 1] = list[1][parseInt(field.value)];
  274. // list2[i] = option1.series[parseInt(field.value) - 1]
  275. // });
  276. // list[0] = list0;
  277. // list[1] = list1;
  278. // source.source = list;
  279. // option1.dataset = source;
  280. // option1.series = list2;
  281. // myChart1.setOption(option1, true);
  282. // }
  283. }
  284. });
  285. }
  286. }
  287. insTb.reload();
  288. var changeGroup = {
  289. reload: function (data) {
  290. groupId = data.where.gId;
  291. console.log("-----------groupId---------" + groupId)
  292. insTb.reload();
  293. }
  294. };
  295. /***单位选择*/
  296. _zTree._init('/admin/common/getGroupLists', 'gId', 'groupParent', 'groupName', 'gId', 0, "groupTree", changeGroup, "menuContent", "groupName", "groupId", groupId);
  297. // 基于准备好的dom,初始化echarts实例
  298. var myChart = echarts.init(document.getElementById('main1'));
  299. // 指定图表的配置项和数据
  300. var option = {
  301. title: {
  302. text: '',
  303. textAlign: 'center',
  304. x: 'center',
  305. y: 'top',
  306. },
  307. tooltip: {
  308. trigger: 'axis'
  309. },
  310. xAxis: {
  311. type: 'category',
  312. data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
  313. },
  314. yAxis: {
  315. type: 'value'
  316. }
  317. };
  318. function convertData(items, text) {
  319. var rows = [];
  320. for (var i = 1; i < 13; i++) {
  321. var val = 0;
  322. $.each(items, function (v, e) {
  323. if (i === parseInt(e.key)) {
  324. val = parseInt(e.value);
  325. return false;
  326. }
  327. });
  328. rows.push(val);
  329. }
  330. return {
  331. name: text,
  332. data: rows,
  333. type: 'line',
  334. smooth: true
  335. };
  336. }
  337. //初始化图表
  338. function initCharts(year) {
  339. // 使用刚指定的配置项和数据显示图表。
  340. var url = "/ent/riskPoint/controlRecord/" + year;
  341. $.ajax({
  342. type: "get",
  343. url: url,
  344. dataType: "json",
  345. success: function (result) {
  346. option.title.text = year + "年预警风险点数量统计";
  347. option.series = [convertData(result.data, "数量")];
  348. myChart.setOption(option, true);
  349. }
  350. });
  351. }
  352. makeYear();
  353. initCharts($("#year").val());
  354. form.on('select(year)', function (data) {
  355. initCharts($("#year").val());
  356. });
  357. function makeYear() {
  358. var year = document.getElementById("year");
  359. var my = new Date();
  360. var endYear = my.getFullYear();// 获取当前年份
  361. for (var i = 0; i < 5; i++) {
  362. var yyyy = endYear - i;
  363. year.options.add(new Option(yyyy + " 年", yyyy));
  364. }
  365. form.render('select', "formFilter");
  366. }
  367. });
  368. </script>
  369. </body>
  370. </html>