faul.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. $(function() {
  2. var defaultPage = 0;
  3. var defaultSize = 10;
  4. var currentPage = defaultPage;
  5. var currentSize = defaultSize;
  6. var tableFirstLoad = true;
  7. var tablename="faultRecord";
  8. Date.prototype.Format = function(fmt) {
  9. var o = {
  10. "M+": this.getMonth() + 1, //月份
  11. "d+": this.getDate(), //日
  12. "h+": this.getHours(), //小时
  13. "m+": this.getMinutes(), //分
  14. "s+": this.getSeconds(), //秒
  15. "q+": Math.floor((this.getMonth() + 3) / 3), //季度
  16. "S": this.getMilliseconds() //毫秒
  17. };
  18. if (/(y+)/.test(fmt))
  19. fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  20. for (var k in o)
  21. if (new RegExp("(" + k + ")").test(fmt))
  22. fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  23. return fmt;
  24. };
  25. function formatDate(t) {
  26. var now = new Date(t),
  27. y = now.getFullYear(),
  28. m = now.getMonth() + 1,
  29. d = now.getDate();
  30. return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8);
  31. }
  32. layui.config({
  33. base: './lib/layui_exts/'
  34. }).use(["form", "table", 'excel', "laypage", "layer"], function() {
  35. var table = layui.table;
  36. var laypage = layui.laypage;
  37. var layer = layui.layer;
  38. excel = layui.excel;
  39. var title = $("#realName");
  40. var searchTitleKey = "";
  41. function loadAirList(page, size, searchTitle) {
  42. if (page === null || page === undefined) page = defaultPage;
  43. if (size === null || size === undefined) size = defaultSize;
  44. var tableOption = {
  45. elem: "#faul",
  46. height: "full-81",
  47. limit: size,
  48. cols: [
  49. [{
  50. type: "checkbox"
  51. },
  52. {
  53. field: "dataType",
  54. title: "资料",
  55. align: "center"
  56. },
  57. {
  58. field: "datas",
  59. title: "数据",
  60. align: "center"
  61. },
  62. {
  63. field: "defaultVal",
  64. title: "默认值",
  65. align: "center"
  66. },
  67. {
  68. field: "len",
  69. title: "值",
  70. align: "center"
  71. },
  72. {
  73. field: "paramName",
  74. title: "变量名",
  75. align: "center"
  76. },
  77. {
  78. field: "parentName",
  79. title: "参数号",
  80. align: "center"
  81. },
  82. {
  83. field: "ord",
  84. title: "研究",
  85. align: "center"
  86. },
  87. {
  88. field: "remark",
  89. title: "备注",
  90. align: "center"
  91. },
  92. {
  93. fixed: "right",
  94. title: "操作",
  95. toolbar: "#operationToolbar",
  96. width: 200,
  97. align: "center"
  98. }
  99. ]
  100. ]
  101. };
  102. // var name = "1";
  103. fetchJSON("api/param/getTable?tableName=" + tablename, {}, "get", function(data) {
  104. if (data.status === 0) {
  105. if (tableFirstLoad) {
  106. tableFirstLoad = false;
  107. laypage.render({
  108. curr: page + 1,
  109. elem: "pagination",
  110. count: data.data.total,
  111. layout: ["count", "prev", "page", "next", "limit", "refresh", "skip"],
  112. jump: function(obj, first) {
  113. if (first) return;
  114. currentPage = obj.curr - 1;
  115. currentSize = obj.limit;
  116. loadAirList(currentPage, currentSize);
  117. }
  118. });
  119. }
  120. tableOption.data = data.data;
  121. table.render(tableOption);
  122. } else {
  123. showMsg(data.msg, 2, 2000);
  124. }
  125. });
  126. }
  127. loadAirList();
  128. $("#searchArticle").on("click", function(e) {
  129. e.preventDefault();
  130. tableFirstLoad = true;
  131. searchTitleKey = title.val().trim();
  132. if (searchTitleKey === "")
  133. loadAirList(0, currentSize);
  134. else
  135. loadAirList(0, currentSize, searchTitleKey);
  136. });
  137. $("#keyword").on("keyup", function(e) {
  138. e.preventDefault();
  139. if (e.keyCode === 13) {
  140. $("#searchArticle").click();
  141. }
  142. });
  143. // 监听表内工具条
  144. table.on("tool(faul)", function(obj) {
  145. var data = obj.data;
  146. // 打开编辑框 进行详细编辑
  147. if (obj.event === "edit") {
  148. x_admin_show(
  149. "编辑",
  150. encodeURI(
  151. "../admin/faul-edit.html?id=" + data.id + "&dataType=" + data.dataType + "&datas=" + data.datas +
  152. "&defaultVal=" + data.defaultVal + "&len=" + data.len + "&paramName=" + data.paramName + "&parentName=" +
  153. data.parentName + "&ord=" + data.ord + "&remark=" + data.remark
  154. ),
  155. 800,
  156. 450,
  157. function() {
  158. loadAirList(currentPage, currentSize);
  159. }
  160. );
  161. } else
  162. // 删除
  163. if (obj.event === "delete") {
  164. var ids = [];
  165. ids.push(data.id);
  166. layer.confirm("确认要删除吗?", function() {
  167. fetchJSON("api/param/delete", {
  168. ids: ids
  169. }, "post", function(data) {
  170. if (data.status === 0) {
  171. showMsg("已删除!", 1, 2000);
  172. tableFirstLoad = true;
  173. loadAirList(currentPage, currentSize);
  174. } else {
  175. showMsg(data.msg, 2, 2000);
  176. }
  177. });
  178. });
  179. }
  180. });
  181. //表格导出
  182. function exportFile(id) {
  183. //根据传入tableID获取表头
  184. var headers = layui.$("div[lay-id='faultrecord'] .layui-table-box table").get(0);
  185. var htrs = Array.from(headers.querySelectorAll('tr'));
  186. var titles = {};
  187. for (var j = 0; j < htrs.length; j++) {
  188. var hths = Array.from(htrs[j].querySelectorAll("th"));
  189. for (var i = 1; i < hths.length - 1; i++) {
  190. //排除居左、具有、隐藏字段
  191. //修改:默认字段data-field+i,兼容部分数据表格中不存在data-field值的问题
  192. titles['data-field' + i] = hths[i].innerText;
  193. }
  194. }
  195. 根据传入tableID获取table内容
  196. var bodys = layui.$("div[lay-id='faultrecord'] .layui-table-box table").get(1);
  197. var btrs = Array.from(bodys.querySelectorAll("tr"))
  198. var bodysArr = new Array();
  199. for (var j = 0; j < btrs.length; j++) {
  200. var contents = {};
  201. var btds = Array.from(btrs[j].querySelectorAll("td"));
  202. for (var i = 1; i < btds.length - 1; i++) {
  203. for (var key in titles) {
  204. //修改:默认字段data-field+i,兼容部分数据表格中不存在data-field值的问题
  205. var field = 'data-field' + i;
  206. if (field === key) {
  207. //根据表头字段获取table内容字段
  208. contents[field] = btds[i].innerText;
  209. }
  210. }
  211. }
  212. bodysArr.push(contents)
  213. }
  214. //将标题行置顶添加到数组
  215. bodysArr.unshift(titles);
  216. //导出excel
  217. excel.exportExcel({
  218. sheet1: bodysArr
  219. }, '故障记录' + new Date().toLocaleString() + '.xlsx', 'xlsx');
  220. }
  221. $("#exportLog").on("click", function(e) {
  222. exportFile("faultrecord");
  223. });
  224. // 批量删除
  225. $("#batchDelete").on("click", function(e) {
  226. e.preventDefault();
  227. var checkedData = table.checkStatus("faultrecord").data;
  228. if (checkedData.length === 0) {
  229. showMsg("未选择需要删除的日志", 2, 2000);
  230. return;
  231. }
  232. layer.confirm("确认要删除吗?", function() {
  233. var ids = [];
  234. for (var i = 0; i < checkedData.length; i++) {
  235. ids.push(checkedData[i].id);
  236. }
  237. fetchJSON("api/param/delete", {
  238. ids: ids
  239. }, "post", function(data) {
  240. if (data.status === 0) {
  241. showMsg("已删除!");
  242. tableFirstLoad = true;
  243. loadAirList(currentPage, currentSize);
  244. } else {
  245. showMsg(data.msg, 2, 2000);
  246. }
  247. });
  248. });
  249. });
  250. // 新建用户
  251. $("#addair").on("click", function(e) {
  252. e.preventDefault();
  253. tableFirstLoad = true;
  254. x_admin_show("添加",
  255. "../admin/faul-edit.html?id=0&dataType=&datas=&defaultVal=&len=&paramName=&parentName=&ord=&remark=",
  256. 800,
  257. 400,
  258. function() {
  259. loadAirList(currentPage, currentSize);
  260. });
  261. });
  262. });
  263. });