statistics.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. $(function() {
  2. var defaultPage = 0;
  3. var defaultSize = 10;
  4. var currentPage = defaultPage;
  5. var currentSize = defaultSize;
  6. var tableFirstLoad = true;
  7. layui.config({
  8. base: './lib/layui_exts/'
  9. }).use(["form", "table", 'excel', "laypage", "layer"], function() {
  10. var table = layui.table;
  11. var laypage = layui.laypage;
  12. var layer = layui.layer;
  13. excel = layui.excel;
  14. var title = $("#realName");
  15. var searchTitleKey = "";
  16. var device_name = $("#device_name")
  17. var startTime = $("#startTime")
  18. var endTime = $("#endTime")
  19. // var searchTitleName = "";
  20. var searchTitleTime = "";
  21. var searchTitleTime1 = ""
  22. function loadAirList(page, size, searchTitle) {
  23. if (page === null || page === undefined) page = defaultPage;
  24. if (size === null || size === undefined) size = defaultSize;
  25. var tableOption = {
  26. elem: "#faultrecord",
  27. height: "full-81",
  28. limit: size,
  29. cols: [
  30. [{
  31. field: "device_name",
  32. title: "故障件名称",
  33. templet: '#typeTpl',
  34. align: "center",
  35. width: 100,
  36. },
  37. {
  38. field: "aircraft_type",
  39. title: "故障信息",
  40. templet: '#type',
  41. width: 185,
  42. align: "left"
  43. },
  44. // {
  45. // field: "info_sources",
  46. // title: "故障信息来源",
  47. // align: "center"
  48. // },
  49. {
  50. field: "fault_time",
  51. title: "故障时间",
  52. templet: '#book',
  53. width: 200,
  54. align: "left"
  55. },
  56. // {
  57. // field: "diagnosis_method",
  58. // title: "故障判断方法",
  59. // align: "center"
  60. // },
  61. // {
  62. // field: "faultparts_Renovation_times",
  63. // title: "故障件翻修次数",
  64. // align: "center"
  65. // },
  66. // {
  67. // field: "repair_method",
  68. // title: "排除方法",
  69. // align: "center"
  70. // },
  71. ]
  72. ]
  73. };
  74. // var device_name.val() = "发动机"
  75. if (title.val() === "" || startTime.val() === "" || endTime.val() === "") {
  76. var url = "api/faultrecord/listpage?page=" + (page + 1) + "&size=" + size;
  77. } else {
  78. var url = "api/faultrecord/faultsta?name=" + device_name.val() + "&startTime=" + startTime.val() +
  79. "&endTime=" + endTime.val() + "&page=" + (page + 1) + "&size=" + size;
  80. }
  81. fetchJSON(url, {}, "get", function(data) {
  82. if (data.status === 0) {
  83. if (tableFirstLoad) {
  84. tableFirstLoad = false;
  85. laypage.render({
  86. curr: page + 1,
  87. elem: "pagination",
  88. count: data.data.total,
  89. layout: ["count", "prev", "page", "next", "limit", "refresh", "skip"],
  90. jump: function(obj, first) {
  91. if (first) return;
  92. currentPage = obj.curr - 1;
  93. currentSize = obj.limit;
  94. loadAirList(currentPage, currentSize, searchTitleKey);
  95. }
  96. });
  97. }
  98. // console.log(data.data.total)
  99. tableOption.data = data.data.list;
  100. table.render(tableOption);
  101. // var total = data.data.total
  102. // sessionStorage.setItem("name",total)
  103. } else {
  104. showMsg(data.msg, 2, 2000);
  105. }
  106. });
  107. }
  108. loadAirList();
  109. //统计
  110. $("#sure").on("click", function(e) {
  111. e.preventDefault();
  112. tableFirstLoad = true;
  113. var searchTitleKey = device_name.val().trim();
  114. var searchTitleTime = startTime.val().trim();
  115. var searchTitleTime1 = endTime.val().trim();
  116. if (searchTitleKey === "")
  117. loadAirList(0, currentSize);
  118. else
  119. loadAirList(0, currentSize, searchTitleKey);
  120. })
  121. $("#searchArticle").on("click", function(e) {
  122. e.preventDefault();
  123. tableFirstLoad = true;
  124. searchTitleKey = title.val().trim();
  125. if (searchTitleKey === "")
  126. loadAirList(0, currentSize);
  127. else
  128. loadAirList(0, currentSize, searchTitleKey);
  129. });
  130. $("#keyword").on("keyup", function(e) {
  131. e.preventDefault();
  132. if (e.keyCode === 13) {
  133. $("#searchArticle").click();
  134. }
  135. });
  136. // 监听表内工具条
  137. table.on("tool(faultrecord)", function(obj) {
  138. var data = obj.data;
  139. // console.log(data)
  140. if (obj.event === "edit") {
  141. console.log(data)
  142. // 打开编辑框 进行详细编辑
  143. x_admin_show(
  144. "查看",
  145. encodeURI(
  146. "../admin/faultrecord-add.html?id=" + data.id + "&War_zone=" + data.war_zone + "&army=" + data.army +
  147. "&division=" + data.division + "&brigade=" + data.brigade + "&fault_time=" + data.fault_time +
  148. "&Is_history=" + data.is_history + "&Aircraft_type=" + data.aircraft_type + "&Discover_opportunity=" +
  149. data.discover_opportunity + "&Up_down=" + data.up_down + "&Discoverer=" + data.discoverer +
  150. "&Info_sources=" + data.info_sources + "&fault_content=" + data.fault_content + "&Is_falsealarm=" + data.is_falsealarm +
  151. "&Fault_degree=" + data.fault_degree + "&Fault_consequence=" + data.fault_consequence +
  152. "&Miss_flight_times=" + data.missflight_times + "&Impact_times=" + data.impact_times + "&Fault_liability=" +
  153. data.fault_liability + "&Fault_location=" + data.fault_location + "&major=" + data.major +
  154. "&fault_reason=" + data.fault_reason + "&Reviewer=" + data.reviewer + "&review_time=" + data.review_time +
  155. "&repair_time=" + data.repair_time + "&repair_hours=" + data.repair_hours + "&repair_personnum=" + data.repair_personnum +
  156. "&repaired_time=" + data.repaired_time + "&classification=" + data.classification + "&is_grounded=" + data
  157. .is_grounded + "&Reporting_department=" + data.reporting_department + "&device_name=" + data.device_name +
  158. "&device_type=" + data.device_type + "&replace_device=" + data.replace_device + "&replace_type=" + data.replace_type +
  159. "&Diagnosis_method=" + data.diagnosis_method + "&diagnosis_people=" + data.diagnosis_people +
  160. "&faultparts_date=" + data.faultparts_date + "&faultparts_hours=" + data.faultparts_hours +
  161. "&faultparts_worktimes=" + data.faultparts_worktimes + "&faultparts_renovation_manu=" + data.faultparts_renovation_manu +
  162. "&Faultparts_Renovation_hours=" + data.faultparts_Renovation_hours + "&Faultparts_Renovation_times=" +
  163. data.faultparts_Renovation_times + "&repair_method=" + data.repair_method + "&Repair_person=" + data.repair_person +
  164. "&replace_device_hours=" + data.replace_device_hours + "&replace_device_repairhours" + data.replace_device_repairhours +
  165. "&replace_device_repairtimes=" + data.replace_device_repairtimes + "&replace_device_applytimes=" + data.replace_device_applytimes +
  166. "&replace_device_manufacturer=" + data.replace_device_manufacturer + "&Faultparts_system=" + data.faultparts_system +
  167. "&Inspector=" + data.inspector + "&Handling_opinions=" + data.handling_opinions + "&remark=" + data.remark
  168. ),
  169. 1300,
  170. 600,
  171. function() {
  172. loadAirList(currentPage, currentSize);
  173. }
  174. );
  175. } else
  176. if (obj.event === "delete") {
  177. // console.log(data)
  178. // 删除
  179. var ids = [];
  180. ids.push(data.id);
  181. layer.confirm("确认要删除吗?", function() {
  182. fetchJSON("api/faultrecord/delete", {
  183. ids: ids
  184. }, "post", function(data) {
  185. if (data.status === 0) {
  186. showMsg("已删除!", 1, 2000);
  187. tableFirstLoad = true;
  188. loadAirList(currentPage, currentSize);
  189. } else {
  190. showMsg(data.msg, 2, 2000);
  191. }
  192. });
  193. });
  194. }
  195. });
  196. //表格导入
  197. $("#tolead").on("click", function(e) {
  198. e.preventDefault();
  199. tableFirstLoad = true;
  200. x_admin_show("导入",
  201. "../admin/faul-add.html",
  202. 350,
  203. 200,
  204. function() {
  205. loadAirList(currentPage, currentSize);
  206. });
  207. });
  208. //表格导出
  209. function exportFile(id) {
  210. //根据传入tableID获取表头
  211. var headers = layui.$("div[lay-id='faultrecord'] .layui-table-box table").get(0);
  212. var htrs = Array.from(headers.querySelectorAll('tr'));
  213. var titles = {};
  214. for (var j = 0; j < htrs.length; j++) {
  215. var hths = Array.from(htrs[j].querySelectorAll("th"));
  216. for (var i = 1; i < hths.length - 1; i++) {
  217. //排除居左、具有、隐藏字段
  218. //修改:默认字段data-field+i,兼容部分数据表格中不存在data-field值的问题
  219. titles['data-field' + i] = hths[i].innerText;
  220. }
  221. }
  222. //根据传入tableID获取table内容
  223. var bodys = layui.$("div[lay-id='faultrecord'] .layui-table-box table").get(1);
  224. var btrs = Array.from(bodys.querySelectorAll("tr"))
  225. var bodysArr = new Array();
  226. for (var j = 0; j < btrs.length; j++) {
  227. var contents = {};
  228. var btds = Array.from(btrs[j].querySelectorAll("td"));
  229. for (var i = 1; i < btds.length - 1; i++) {
  230. for (var key in titles) {
  231. //修改:默认字段data-field+i,兼容部分数据表格中不存在data-field值的问题
  232. var field = 'data-field' + i;
  233. if (field === key) {
  234. //根据表头字段获取table内容字段
  235. contents[field] = btds[i].innerText;
  236. }
  237. }
  238. }
  239. bodysArr.push(contents)
  240. }
  241. //将标题行置顶添加到数组
  242. bodysArr.unshift(titles);
  243. //导出excel
  244. excel.exportExcel({
  245. sheet1: bodysArr
  246. }, '故障记录' + new Date().toLocaleString() + '.xlsx', 'xlsx');
  247. }
  248. $("#exportLog").on("click", function(e) {
  249. exportFile("faultrecord");
  250. });
  251. // 批量删除
  252. $("#batchDelete").on("click", function(e) {
  253. e.preventDefault();
  254. var checkedData = table.checkStatus("faultrecord").data;
  255. if (checkedData.length === 0) {
  256. showMsg("未选择需要删除的日志", 2, 2000);
  257. return;
  258. }
  259. layer.confirm("确认要删除吗?", function() {
  260. var ids = [];
  261. for (var i = 0; i < checkedData.length; i++) {
  262. ids.push(checkedData[i].id);
  263. }
  264. fetchJSON("api/faultrecord/delete", {
  265. ids: ids
  266. }, "post", function(data) {
  267. if (data.status === 0) {
  268. showMsg("已删除!");
  269. tableFirstLoad = true;
  270. loadAirList(currentPage, currentSize);
  271. } else {
  272. showMsg(data.msg, 2, 2000);
  273. }
  274. });
  275. });
  276. });
  277. // 新建用户
  278. $("#addair").on("click", function(e) {
  279. e.preventDefault();
  280. tableFirstLoad = true;
  281. x_admin_show("添加",
  282. "../admin/faultrecord-edit.html?id=0&war_zone=&army=&division=&brigade=&fault_time=&is_history=&aircraft_type=&Ddiscover_opportunity=&up_down=&discoverer=&info_sources=&fault_content=&is_falsealarm=&fault_degree=&fault_consequence=&miss_flight_times=&impact_times=&fault_liability=&fault_location=&major=&fault_reason=&reviewer=&review_time=&repair_time=&repair_hours=&repair_personnum=&repaired_time=&classification=&is_grounded=&reporting_department=&device_name=&device_type=&replace_device=&replace_type=&diagnosis_method=&diagnosis_people=&faultparts_date=&faultparts_hours=&faultparts_ worktimes=&faultparts_renovation_manu=&faultparts_Renovation_hours=&faultparts_Renovation_times=&repair_method=&repair_person=&replace_device_hours=&replace_device_repairhours=&replace_device_repairtimes=&replace_device_applytimes=&replace_device_manufacturer=&Faultparts_system=&Inspector=&handling_opinions=&remark=",
  283. 1300,
  284. 500,
  285. function() {
  286. loadAirList(currentPage, currentSize);
  287. });
  288. });
  289. });
  290. });