fault_statis.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419
  1. var majorId = 0;
  2. var aircraft = -1;
  3. var major = -1;
  4. var startTime = "";
  5. var endTime = "";
  6. var airNo = -1;
  7. var systemName = -1;
  8. $(function() {
  9. var myChart_s = echarts.init(document.getElementById('systemSta')); //系统分布
  10. var myChart_m = echarts.init(document.getElementById('majorSta')); //专业分布
  11. var myChart_d = echarts.init(document.getElementById('deviceSta'));//故障件分布
  12. var myChart_o = echarts.init(document.getElementById('optSta'));//时机分布
  13. var myChart_a = echarts.init(document.getElementById('airNoSta'));//机号分布
  14. layui.use(["form", "table", "laypage", "layer", "upload"], function() {
  15. var table = layui.table;
  16. var laypage = layui.laypage;
  17. var layer = layui.layer;
  18. var form = layui.form;
  19. //机型下拉框
  20. function getAircraft() {
  21. fetchJSON("api/faultrecord/getAirType", {}, "get", function(bet) {
  22. if (bet.status === 0) {
  23. $("#aircraft").empty();
  24. $("#aircraft").append($("<option>", {
  25. value: -1,
  26. text: "请选择机型"
  27. }));
  28. for (var i = 0; i < bet.data.length; i++) {
  29. if (bet.data[i].id === majorId) {
  30. $("#aircraft").append(
  31. $("<option>", {
  32. // value: bet.data[i].id,
  33. text: bet.data[i].parentName,
  34. selected: true
  35. })
  36. );
  37. } else {
  38. $("#aircraft").append(
  39. $("<option>", {
  40. // value: bet.data[i].id,
  41. text: bet.data[i].parentName
  42. })
  43. );
  44. }
  45. }
  46. form.render('select','aircraft');
  47. } else {
  48. showMsg(bet.msg, 2);
  49. }
  50. });
  51. };
  52. getAircraft()
  53. //飞机号下拉框
  54. function airNo(airType) {
  55. console.log(airType)
  56. fetchJSON("api/faultrecord/getAirNo?airType=" + airType, {}, "get", function(bet) {
  57. console.log(bet.data, "121111111")
  58. if (bet.status === 0) {
  59. $("#airNo").empty();
  60. $("#airNo").append($("<option>", {
  61. value: -1,
  62. text: "请选择飞机号"
  63. }));
  64. for (var i = 0; i < bet.data.length; i++) {
  65. if (bet.data[i].id === majorId) {
  66. $("#airNo").append(
  67. $("<option>", {
  68. // value: bet.data[i].id,
  69. text: bet.data[i].parentName,
  70. selected: true
  71. })
  72. );
  73. } else {
  74. $("#airNo").append(
  75. $("<option>", {
  76. // value: bet.data[i].id,
  77. text: bet.data[i].parentName
  78. })
  79. );
  80. }
  81. }
  82. form.render('select','airNo');
  83. } else {
  84. showMsg(bet.msg, 2);
  85. }
  86. });
  87. };
  88. form.on("select", function(data) {
  89. if (data.elem.id === "aircraft") {
  90. let airType = data.elem[data.elem.selectedIndex].text;
  91. airNo(airType);
  92. }
  93. })
  94. //专业下拉框
  95. //系统的下拉框
  96. //获取图表数据
  97. $("#sure").on("click", function() {
  98. startTime = $("#startTime").val().trim();
  99. endTime = $("#endTime").val().trim();
  100. major = $("#major").find("option:selected").val();
  101. aircraft = $("#aircraft").find("option:selected").val();
  102. airNo = $("#airNo").find("option:selected").text();
  103. systemName = $("#systemName").find("option:selected").val();
  104. const data = {
  105. airNo: airNo,
  106. airType: aircraft,
  107. department1: "",
  108. departmentLevle: "",
  109. endTme: endTime,
  110. major: major,
  111. startTime: startTime,
  112. systemName: systemName
  113. };
  114. $.ajax({
  115. type: "post",
  116. url: urlBase + "api/faultrecord/singleSta",
  117. async: true,
  118. data: JSON.stringify(data),
  119. contentType: 'application/json; charset=UTF-8',
  120. headers: {
  121. token: sessionStorage.getItem('token')
  122. },
  123. success: res => {
  124. if (res.status == 0) {
  125. var parentName = [];
  126. var recordCount = [];
  127. var data = res.data
  128. $('#faultCount').html(data.faultCount)
  129. $('#seriousCount').html(data.seriousCount)
  130. $("#topMajor").html(data.topMajor)
  131. $('#topOPT').html(data.topOPT)
  132. var systemSta = data.systemSta //系统
  133. var majorSta = data.majorSta //专业
  134. var deviceSta = data.deviceSta //故障件
  135. var optSta = data.optSta //时机
  136. var airNoSta = data.airNoSta //机号
  137. if (systemSta == null || majorSta == null || deviceSta ==
  138. null || optSta == null || airNoSta == null) {
  139. layer.msg('未找到数据');
  140. } else
  141. if (systemSta != null) { //系统分布
  142. var systemSta_parentName = parentName;
  143. var systemSta_recordCount = recordCount
  144. for (var i = 0; i < systemSta.length; i++) {
  145. systemSta_parentName.push(systemSta[i]
  146. .parentName)
  147. systemSta_recordCount.push(systemSta[i]
  148. .recordCount)
  149. }
  150. myCharts_s.setOption({
  151. title: {
  152. left: 'center',
  153. text: '系统分布'
  154. },
  155. toolbox: {
  156. feature: {
  157. saveAsImage: {
  158. title: '下载'
  159. }
  160. }
  161. },
  162. color: [" #29bb89"],
  163. xAxis: {
  164. type: 'category',
  165. // data: ['一月', '二月', '三月', '四月', '五月', '六月'],
  166. dta: systemSta_parentName
  167. },
  168. yAxis: {
  169. type: 'value',
  170. },
  171. series: [{
  172. // data: [1, 2, 1.5, 0.5, 1, 7],
  173. data: systemSta_recordCount,
  174. name: '搜索引擎',
  175. type: 'bar',
  176. stack: '总量',
  177. label: {
  178. show: true,
  179. position: 'top'
  180. }
  181. }]
  182. })
  183. } else
  184. if (majorSta != null) { //专业分布
  185. var majorSta_parentName = parentName;
  186. var majorSta_recordCount = recordCount
  187. for (var i = 0; i < majorSta.length; i++) {
  188. majorSta_parentName.push(majorSta[i]
  189. .parentName)
  190. majorSta_recordCount.push(majorSta[i]
  191. .recordCount)
  192. }
  193. myChart_m.setOption({
  194. title: {
  195. left: 'center',
  196. text: '专业分布'
  197. },
  198. toolbox: {
  199. feature: {
  200. saveAsImage: {
  201. title: '下载'
  202. }
  203. }
  204. },
  205. color: [" #29bb89"],
  206. xAxis: {
  207. type: 'category',
  208. // data: ['一月', '二月', '三月', '四月', '五月', '六月'],
  209. dta: majorSta_parentName
  210. },
  211. yAxis: {
  212. type: 'value',
  213. },
  214. series: [{
  215. // data: [1, 2, 1.5, 0.5, 1, 7],
  216. data: majorSta_recordCount,
  217. name: '搜索引擎',
  218. type: 'bar',
  219. stack: '总量',
  220. label: {
  221. show: true,
  222. position: 'top'
  223. }
  224. }]
  225. })
  226. } else
  227. if (deviceSta != null) {//故障件分布
  228. var deviceSta_parentName = parentName;
  229. var deviceSta_recordCount = recordCount
  230. for (var i = 0; i < deviceSta.length; i++) {
  231. deviceSta_parentName.push(deviceSta[i]
  232. .parentName)
  233. deviceSta_recordCount.push(deviceSta[i]
  234. .recordCount)
  235. }
  236. myChart_d.setOption({
  237. title: {
  238. left: 'center',
  239. text: '专业分布'
  240. },
  241. toolbox: {
  242. feature: {
  243. saveAsImage: {
  244. title: '下载'
  245. }
  246. }
  247. },
  248. color: [" #29bb89"],
  249. xAxis: {
  250. type: 'category',
  251. // data: ['一月', '二月', '三月', '四月', '五月', '六月'],
  252. dta: deviceSta_parentName
  253. },
  254. yAxis: {
  255. type: 'value',
  256. },
  257. series: [{
  258. // data: [1, 2, 1.5, 0.5, 1, 7],
  259. data: deviceSta_recordCount,
  260. name: '搜索引擎',
  261. type: 'bar',
  262. stack: '总量',
  263. label: {
  264. show: true,
  265. position: 'top'
  266. }
  267. }]
  268. })
  269. }else
  270. if (optSta != null) { //时机分布
  271. var optSta_parentName = parentName;
  272. var optSta_recordCount = recordCount
  273. for (var i = 0; i < optSta.length; i++) {
  274. optSta_parentName.push(optSta[i]
  275. .parentName)
  276. optSta_recordCount.push(optSta[i]
  277. .recordCount)
  278. }
  279. myChart_o.setOption({
  280. title: {
  281. left: 'center',
  282. text: '专业分布'
  283. },
  284. toolbox: {
  285. feature: {
  286. saveAsImage: {
  287. title: '下载'
  288. }
  289. }
  290. },
  291. color: [" #29bb89"],
  292. xAxis: {
  293. type: 'category',
  294. // data: ['一月', '二月', '三月', '四月', '五月', '六月'],
  295. dta: optSta_parentName
  296. },
  297. yAxis: {
  298. type: 'value',
  299. },
  300. series: [{
  301. // data: [1, 2, 1.5, 0.5, 1, 7],
  302. data: optSta_recordCount,
  303. name: '搜索引擎',
  304. type: 'bar',
  305. stack: '总量',
  306. label: {
  307. show: true,
  308. position: 'top'
  309. }
  310. }]
  311. })
  312. }else
  313. if(airNoSta != null){
  314. $("#table").html("<tr><td>飞机号</td><td>数量</td></tr>")
  315. var airNoSta_parentName = parentName;
  316. for (var i = 0; i < airNoSta.length; i++) {
  317. //表格
  318. var name = airNoSta[i].parentName;
  319. var num = airNoSta[i].parentName;
  320. $('#table').append("<tr><td>"+name+"</td><td>"+ num +"</td></tr>")
  321. //图形
  322. airNoSta_parentName.push({
  323. name : airNoSta[i].parentName,
  324. value : airNoSta[i].recordCount
  325. })
  326. }
  327. myChart_a.setOption({
  328. title: {
  329. text: '机号分布',
  330. left: 'center'
  331. },
  332. tooltip: {
  333. trigger: 'item'
  334. },
  335. toolbox: {
  336. feature: {
  337. saveAsImage: {
  338. title: '下载'
  339. }
  340. }
  341. },
  342. legend: {
  343. orient: 'vertical',
  344. left: 'left',
  345. },
  346. series: [{
  347. name: '访问来源',
  348. type: 'pie',
  349. radius: '50%',
  350. data:airNoSta_parentName,
  351. // data: [{
  352. // value: 800,
  353. // name: '飞机一'
  354. // },
  355. // {
  356. // value: 735,
  357. // name: '飞机二'
  358. // },
  359. // {
  360. // value: 580,
  361. // name: '飞机三'
  362. // },
  363. // {
  364. // value: 484,
  365. // name: '飞机四'
  366. // },
  367. // {
  368. // value: 300,
  369. // name: '飞机五'
  370. // }
  371. // ],
  372. emphasis: {
  373. itemStyle: {
  374. shadowBlur: 10,
  375. shadowOffsetX: 0,
  376. shadowColor: 'rgba(0, 0, 0, 0.5)'
  377. }
  378. }
  379. }]
  380. })
  381. }
  382. } else {
  383. alert(res.msg);
  384. }
  385. },
  386. error: xhr => {}
  387. });
  388. })
  389. });
  390. })