fault_message.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  1. $(function() {
  2. var defaultPage = 0;
  3. var defaultSize = 10;
  4. var currentPage = defaultPage;
  5. var currentSize = defaultSize;
  6. var tableFirstLoad = true;
  7. Date.prototype.Format = function(fmt) {
  8. var o = {
  9. "M+": this.getMonth() + 1, //月份
  10. "d+": this.getDate(), //日
  11. "h+": this.getHours(), //小时
  12. "m+": this.getMinutes(), //分
  13. "s+": this.getSeconds(), //秒
  14. "q+": Math.floor((this.getMonth() + 3) / 3), //季度
  15. "S": this.getMilliseconds() //毫秒
  16. };
  17. if (/(y+)/.test(fmt))
  18. fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  19. for (var k in o)
  20. if (new RegExp("(" + k + ")").test(fmt))
  21. fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  22. return fmt;
  23. };
  24. function formatDate(t) {
  25. var now = new Date(t),
  26. y = now.getFullYear(),
  27. m = now.getMonth() + 1,
  28. d = now.getDate();
  29. return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8);
  30. }
  31. layui.config({
  32. base: './lib/layui_exts/'
  33. }).use(["form", "table", 'excel', "laypage", "layer"], function() {
  34. var table = layui.table;
  35. var laypage = layui.laypage;
  36. var layer = layui.layer;
  37. excel = layui.excel;
  38. var title = $("#realName");
  39. var searchTitleKey = "";
  40. function loadAirList(page, size, searchTitle) {
  41. if (page === null || page === undefined) page = defaultPage;
  42. if (size === null || size === undefined) size = defaultSize;
  43. var tableOption = {
  44. elem: "#faultrecord",
  45. height: "full-81",
  46. limit: size,
  47. cols: [
  48. [{
  49. type: "checkbox"
  50. },
  51. {
  52. field: "fault_time",
  53. title: "发现日期",
  54. align: "center"
  55. },
  56. {
  57. field: "aircraft_type",
  58. title: "机型",
  59. align: "center"
  60. },
  61. {
  62. field: "aircraft_no",
  63. title: "飞机号",
  64. align: "center"
  65. },
  66. {
  67. field: "product_no",
  68. title: "出厂号",
  69. align: "center"
  70. },
  71. {
  72. field: "major",
  73. title: "专业",
  74. align: "center"
  75. },
  76. {
  77. field: "faultparts_system",
  78. title: "故障件所属系统",
  79. align: "center"
  80. },
  81. {
  82. field: "device_name",
  83. title: "故障件名称",
  84. align: "center"
  85. },
  86. {
  87. field: "device_type",
  88. title: "故障件型号",
  89. align: "center"
  90. },
  91. {
  92. field: "info_sources",
  93. title: "故障信息来源",
  94. align: "center"
  95. },
  96. {
  97. field: "fault_content",
  98. title: "故障描述",
  99. align: "center"
  100. },
  101. {
  102. field: "fault_reason",
  103. title: "故障原因",
  104. align: "center"
  105. },
  106. {
  107. field: "discover_opportunity",
  108. title: "发现时机",
  109. align: "center"
  110. },
  111. {
  112. field: "repair_method",
  113. title: "排除方法",
  114. align: "center"
  115. },
  116. {
  117. fixed: "right",
  118. title: "操作",
  119. toolbar: "#operationToolbar",
  120. width: 200,
  121. align: "center"
  122. }
  123. ]
  124. ]
  125. };
  126. if (searchTitle === null || searchTitle === undefined || searchTitle === "") {
  127. var url = "api/faultrecord/listpage?page=" + (page + 1) + "&size=" + size;
  128. fetchJSON(url, {}, "get", function(data) {
  129. if (data.status === 0) {
  130. if (tableFirstLoad) {
  131. tableFirstLoad = false;
  132. laypage.render({
  133. curr: page + 1,
  134. elem: "pagination",
  135. count: data.data.total,
  136. layout: ["count", "prev", "page", "next", "limit", "refresh", "skip"],
  137. jump: function(obj, first) {
  138. if (first) return;
  139. currentPage = obj.curr - 1;
  140. currentSize = obj.limit;
  141. loadAirList(currentPage, currentSize, searchTitleKey);
  142. }
  143. });
  144. }
  145. tableOption.data = data.data.list;
  146. table.render(tableOption);
  147. } else {
  148. showMsg(data.msg, 2, 2000);
  149. }
  150. });
  151. } else {
  152. var url = "api/faultrecord/getByName?name=" + searchTitle;
  153. fetchJSON(url, {}, "get", function(data) {
  154. if (data.status === 0) {
  155. if (tableFirstLoad) {
  156. tableFirstLoad = false;
  157. laypage.render({
  158. curr: page + 1,
  159. elem: "pagination",
  160. count: data.data.total,
  161. layout: ["count", "prev", "page", "next", "limit", "refresh", "skip"],
  162. jump: function(obj, first) {
  163. if (first) return;
  164. currentPage = obj.curr - 1;
  165. currentSize = obj.limit;
  166. loadAirList(currentPage, currentSize, searchTitleKey);
  167. }
  168. });
  169. }
  170. tableOption.data = data.data;
  171. table.render(tableOption);
  172. } else {
  173. showMsg(data.msg, 2, 2000);
  174. }
  175. });
  176. }
  177. }
  178. loadAirList();
  179. $("#searchArticle").on("click", function(e) {
  180. e.preventDefault();
  181. tableFirstLoad = true;
  182. searchTitleKey = title.val().trim();
  183. if (searchTitleKey === "")
  184. loadAirList(0, currentSize);
  185. else
  186. loadAirList(0, currentSize, searchTitleKey);
  187. });
  188. $("#keyword").on("keyup", function(e) {
  189. e.preventDefault();
  190. if (e.keyCode === 13) {
  191. $("#searchArticle").click();
  192. }
  193. });
  194. // 监听表内工具条
  195. table.on("tool(faultrecord)", function(obj) {
  196. var data = obj.data;
  197. if (obj.event === "edit") {
  198. // 打开编辑框 进行详细编辑
  199. x_admin_show(
  200. "查看",
  201. encodeURI(
  202. "../admin/fault_message-edit.html?id=" + data.id + "&war_zone=" + data.war_zone + "&army=" + data.army +
  203. "&division=" + data.division + "&brigade=" + data.brigade + "&fault_time=" + data.fault_time + "&aircraft_no=" +
  204. data.aircraft_no +
  205. "&product_no=" + data.product_no + "&aircraft_type=" + data.aircraft_type + "&discover_opportunity=" +
  206. data.discover_opportunity + "&up_down=" + data.up_down + "&discoverer=" + data.discoverer + "&info_sources=" + data.info_sources + "&fault_content=" + data.fault_content + "&is_falsealarm=" + data.is_falsealarm +
  207. "&fault_degree=" + data.fault_degree + "&fault_consequence=" + data.fault_consequence +
  208. "&missflight_times=" + data.missflight_times + "&impact_times=" + data.impact_times + "&fault_liability=" +
  209. data.fault_liability + "&fault_location=" + data.fault_location + "&major=" + data.major +
  210. "&fault_reason=" + data.fault_reason + "&reviewer=" + data.reviewer + "&review_time=" + data.review_time +
  211. "&repair_time=" + data.repair_time + "&repair_hours=" + data.repair_hours + "&repair_personnum=" + data.repair_personnum +
  212. "&repaired_time=" + data.repaired_time + "&classification=" + data.classification + "&is_grounded=" + data
  213. .is_grounded + "&reporting_department=" + data.reporting_department + "&device_name=" + data.device_name +
  214. "&device_type=" + data.device_type + "&replace_device=" + data.replace_device + "&replace_type=" + data.replace_type +
  215. "&diagnosis_method=" + data.diagnosis_method + "&diagnosis_people=" + data.diagnosis_people +
  216. "&faultparts_date=" + data.faultparts_date + "&faultparts_hours=" + data.faultparts_hours +
  217. "&faultparts_worktimes=" + data.faultparts_worktimes + "&faultparts_renovation_manu=" + data.faultparts_renovation_manu +
  218. "&faultparts_renovation_hours=" + data.faultparts_renovation_hours + "&repair_method=" + data.repair_method + "&repair_person=" + data.repair_person +
  219. "&replace_device_hours=" + data.replace_device_hours + "&replace_device_repairhours" + data.replace_device_repairhours +
  220. "&replace_device_repairtimes=" + data.replace_device_repairtimes + "&replace_device_applytimes=" + data.replace_device_applytimes +
  221. "&replace_device_manufacturer=" + data.replace_device_manufacturer + "&faultparts_system=" + data.faultparts_system +
  222. "&inspector=" + data.inspector + "&handling_opinions=" + data.handling_opinions + "&remark=" + data.remark + "&device_productor=" + data.device_productor
  223. ),
  224. 1300,
  225. 600,
  226. function() {
  227. loadAirList(currentPage, currentSize);
  228. }
  229. );
  230. } else
  231. if (obj.event === "delete") {
  232. // 删除
  233. var ids = [];
  234. ids.push(data.id);
  235. layer.confirm("确认要删除吗?", function() {
  236. fetchJSON("api/faultrecord/delete", {
  237. ids: ids
  238. }, "post", function(data) {
  239. if (data.status === 0) {
  240. showMsg("已删除!", 1, 2000);
  241. tableFirstLoad = true;
  242. loadAirList(currentPage, currentSize);
  243. } else {
  244. showMsg(data.msg, 2, 2000);
  245. }
  246. });
  247. });
  248. }
  249. });
  250. //表格导入
  251. $("#tolead").on("click", function(e) {
  252. e.preventDefault();
  253. tableFirstLoad = true;
  254. x_admin_show("导入",
  255. "../admin/faul-add.html",
  256. 350,
  257. 200,
  258. function() {
  259. loadAirList(currentPage, currentSize);
  260. });
  261. });
  262. //表格导出
  263. function exportFile(id) {
  264. //根据传入tableID获取表头
  265. var headers = layui.$("div[lay-id='faultrecord'] .layui-table-box table").get(0);
  266. var htrs = Array.from(headers.querySelectorAll('tr'));
  267. var titles = {};
  268. for (var j = 0; j < htrs.length; j++) {
  269. var hths = Array.from(htrs[j].querySelectorAll("th"));
  270. for (var i = 1; i < hths.length - 1; i++) {
  271. //排除居左、具有、隐藏字段
  272. //修改:默认字段data-field+i,兼容部分数据表格中不存在data-field值的问题
  273. titles['data-field' + i] = hths[i].innerText;
  274. }
  275. }
  276. //根据传入tableID获取table内容
  277. var bodys = layui.$("div[lay-id='faultrecord'] .layui-table-box table").get(1);
  278. var btrs = Array.from(bodys.querySelectorAll("tr"))
  279. var bodysArr = new Array();
  280. for (var j = 0; j < btrs.length; j++) {
  281. var contents = {};
  282. var btds = Array.from(btrs[j].querySelectorAll("td"));
  283. for (var i = 1; i < btds.length - 1; i++) {
  284. for (var key in titles) {
  285. //修改:默认字段data-field+i,兼容部分数据表格中不存在data-field值的问题
  286. var field = 'data-field' + i;
  287. if (field === key) {
  288. //根据表头字段获取table内容字段
  289. contents[field] = btds[i].innerText;
  290. }
  291. }
  292. }
  293. bodysArr.push(contents)
  294. }
  295. //将标题行置顶添加到数组
  296. bodysArr.unshift(titles);
  297. //导出excel
  298. excel.exportExcel({
  299. sheet1: bodysArr
  300. }, '故障记录' + new Date().toLocaleString() + '.xlsx', 'xlsx');
  301. }
  302. $("#exportLog").on("click", function(e) {
  303. exportFile("faultrecord");
  304. });
  305. // 批量删除
  306. $("#batchDelete").on("click", function(e) {
  307. e.preventDefault();
  308. var checkedData = table.checkStatus("faultrecord").data;
  309. if (checkedData.length === 0) {
  310. showMsg("未选择需要删除的日志", 2, 2000);
  311. return;
  312. }
  313. layer.confirm("确认要删除吗?", function() {
  314. var ids = [];
  315. for (var i = 0; i < checkedData.length; i++) {
  316. ids.push(checkedData[i].id);
  317. }
  318. fetchJSON("api/faultrecord/delete", {
  319. ids: ids
  320. }, "post", function(data) {
  321. if (data.status === 0) {
  322. showMsg("已删除!");
  323. tableFirstLoad = true;
  324. loadAirList(currentPage, currentSize);
  325. } else {
  326. showMsg(data.msg, 2, 2000);
  327. }
  328. });
  329. });
  330. });
  331. // 新建用户
  332. $("#addair").on("click", function(e) {
  333. e.preventDefault();
  334. tableFirstLoad = true;
  335. x_admin_show("添加",
  336. "../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=",
  337. 1300,
  338. 500,
  339. function() {
  340. loadAirList(currentPage, currentSize);
  341. });
  342. });
  343. });
  344. });