user.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. $(function() {
  2. var defaultPage = 0;
  3. var defaultSize = 10;
  4. var currentPage = defaultPage;
  5. var currentSize = defaultSize;
  6. var tableFirstLoad = true;
  7. layui.use(["form", "table", "laypage", "layer"], function() {
  8. var table = layui.table;
  9. var laypage = layui.laypage;
  10. var layer = layui.layer;
  11. var form = layui.form;
  12. var title = $("#realName");
  13. var searchTitleKey = "";
  14. function loadUserList(page, size, searchTitle) {
  15. if (page === null || page === undefined) page = defaultPage;
  16. if (size === null || size === undefined) size = defaultSize;
  17. var tableOption = {
  18. elem: "#userList",
  19. height: "full-81",
  20. limit: size,
  21. cols: [
  22. [{
  23. type: "checkbox"
  24. },
  25. {
  26. field: "userName",
  27. title: "账号",
  28. align: "center"
  29. },
  30. {
  31. field: "realName",
  32. title: "姓名",
  33. align: "center"
  34. },
  35. {
  36. field: "password",
  37. title: "密码",
  38. align: "center"
  39. },
  40. {
  41. field: "roleName",
  42. title: "角色名称",
  43. align: "center"
  44. },
  45. {
  46. field: "departmentName",
  47. title: "部门名称",
  48. align: "center"
  49. },
  50. // {
  51. // field: "sex",
  52. // title: "性别",
  53. // align: "center",
  54. // templet: function(d) {
  55. // return d.sex == 0 ? "男" : "女"
  56. // }
  57. // },
  58. {
  59. field: "isEnable",
  60. title: "启用状态",
  61. align: "center",
  62. templet: function(d) {
  63. return d.isEnable === 0 ? "启用": "禁用"
  64. }
  65. },
  66. // {
  67. // field: "img",
  68. // title: "头像",
  69. // align: "center"
  70. // },
  71. {
  72. field: "remark",
  73. title: "备注",
  74. align: "center"
  75. },
  76. {
  77. fixed: "right",
  78. title: "操作",
  79. width: 150,
  80. toolbar: "#operationToolbar",
  81. align: "center"
  82. }
  83. ]
  84. ]
  85. };
  86. if (searchTitle === null || searchTitle === undefined || searchTitle === "") {
  87. fetchJSON("api/user/listpage?departmentId=" + searchTitleKey + "&page=" + (page + 1) + "&size=" + size, {}, "get", function(data) {
  88. if (data.status === 0) {
  89. if (tableFirstLoad) {
  90. tableFirstLoad = false;
  91. laypage.render({
  92. curr: page + 1,
  93. elem: "pagination",
  94. count: data.data.total,
  95. layout: ["count", "prev", "page", "next", "limit", "refresh", "skip"],
  96. jump: function(obj, first) {
  97. if (first) return;
  98. // 分页控件index由1开始 后端分页index由0开始
  99. currentPage = obj.curr - 1;
  100. currentSize = obj.limit;
  101. loadUserList(currentPage, currentSize, searchTitle);
  102. }
  103. });
  104. }
  105. tableOption.data = data.data.list;
  106. table.render(tableOption);
  107. } else {
  108. showMsg(data.msg, 2, 2000);
  109. }
  110. });
  111. } else {
  112. fetchJSON("api/user/getByName?name=" + searchTitle, {}, "get", function(data) {
  113. if (data.status === 0) {
  114. if (tableFirstLoad) {
  115. tableFirstLoad = false;
  116. laypage.render({
  117. curr: page + 1,
  118. elem: "pagination",
  119. count: data.data.length,
  120. layout: ["count", "prev", "page", "next", "limit", "refresh", "skip"],
  121. jump: function(obj, first) {
  122. if (first) return;
  123. // 分页控件index由1开始 后端分页index由0开始
  124. currentPage = obj.curr - 1;
  125. currentSize = obj.limit;
  126. loadUserList(currentPage, currentSize, searchTitle);
  127. }
  128. });
  129. }
  130. tableOption.data = data.data;
  131. table.render(tableOption);
  132. } else {
  133. showMsg(data.msg, 2, 2000);
  134. }
  135. });
  136. }
  137. }
  138. fetchJSON("api/department/listAll", {}, "get", function(departmentList) {
  139. if (departmentList.status === 0) {
  140. $("#parentId").empty();
  141. $("#parentId").append($("<option>", {
  142. value: -1,
  143. text: "请选择单位"
  144. }));
  145. for (var i = 0; i < departmentList.data.length; i++) {
  146. $("#parentId").append(
  147. $("<option>", {
  148. // value: departmentList.data[i].id,
  149. text: departmentList.data[i].departmentName
  150. })
  151. );
  152. }
  153. layui.use("form", function() {
  154. layui.form.render();
  155. });
  156. } else {
  157. showMsg(ret.msg, 2);
  158. }
  159. });
  160. // 首次载入页面 载入默认用户列表
  161. loadUserList();
  162. // 操作栏
  163. // 监听表内工具条
  164. table.on("tool(userList)", function(obj) {
  165. var data = obj.data;
  166. if (data.id === 1) {
  167. showMsg("默认用户不可操作!", 1, 2000);
  168. return;
  169. }
  170. if (obj.event === "edit") {
  171. // 打开编辑框 进行详细编辑
  172. x_admin_show("编辑用户", "../admin/user-edit.html?id=" + data.id, 800, 400, function() {
  173. loadUserList(currentPage, currentSize);
  174. });
  175. } else if (obj.event === "delete") {
  176. // 删除
  177. var ids = [];
  178. ids.push(data.id);
  179. layer.confirm("确认要删除吗?", function() {
  180. fetchJSON("api/user/delete", { ids: ids }, "post", function(data) {
  181. if (data.status === 0) {
  182. showMsg("已删除!");
  183. tableFirstLoad = true;
  184. loadUserList(currentPage, currentSize);
  185. } else {
  186. showMsg(data.msg, 2, 2000);
  187. }
  188. });
  189. });
  190. }
  191. });
  192. $("#searchArticle").on("click", function(e) {
  193. e.preventDefault();
  194. tableFirstLoad = true;
  195. searchTitleKey = title.val().trim();
  196. if (searchTitleKey === "")
  197. loadUserList(0, currentSize);
  198. else
  199. loadUserList(0, currentSize, searchTitleKey);
  200. });
  201. $("#keyword").on("keyup", function(e) {
  202. e.preventDefault();
  203. if (e.keyCode === 13) {
  204. $("#searchArticle").click();
  205. }
  206. });
  207. // 新建用户
  208. $("#addUser").on("click", function(e) {
  209. e.preventDefault();
  210. tableFirstLoad = true;
  211. x_admin_show("添加用户", "../admin/user-edit.html?id=0", 800, 400, function() {
  212. loadUserList(currentPage, currentSize);
  213. });
  214. });
  215. // 批量删除
  216. $("#batchDelete").on("click", function(e) {
  217. e.preventDefault();
  218. var checkedData = table.checkStatus("userList").data;
  219. if (checkedData.length === 0) {
  220. showMsg("未选择需要删除的项目", 2, 2000);
  221. return;
  222. }
  223. layer.confirm("确认要删除吗?", function() {
  224. var ids = [];
  225. for (var i = 0; i < checkedData.length; i++) {
  226. if (checkedData[i].id === 1) {
  227. showMsg("默认用户不可操作!", 1, 2000);
  228. continue;
  229. }
  230. ids.push(checkedData[i].id);
  231. }
  232. if (ids.length < 1) return;
  233. fetchJSON("api/user/delete", { ids: ids }, "post", function(data) {
  234. if (data.status === 0) {
  235. showMsg("已删除!");
  236. tableFirstLoad = true;
  237. loadUserList(currentPage, currentSize);
  238. } else {
  239. showMsg(data.msg, 2, 2000);
  240. }
  241. });
  242. });
  243. });
  244. form.on('select(parentId)', function(e) {
  245. tableFirstLoad = true;
  246. searchTitleKey = $("#parentId").val();
  247. loadUserList();
  248. })
  249. });
  250. });