user.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. layui.use(['layer', 'form', 'table', 'ztree', 'laydate', 'admin', 'ax'], function () {
  2. var layer = layui.layer;
  3. var form = layui.form;
  4. var table = layui.table;
  5. var $ZTree = layui.ztree;
  6. var $ax = layui.ax;
  7. var laydate = layui.laydate;
  8. var admin = layui.admin;
  9. /**
  10. * 系统管理--用户管理
  11. */
  12. var MgrUser = {
  13. tableId: "userTable", //表格id
  14. condition: {
  15. name: "",
  16. deptId: "",
  17. timeLimit: ""
  18. }
  19. };
  20. /**
  21. * 初始化表格的列
  22. */
  23. MgrUser.initColumn = function () {
  24. return [[
  25. {type: 'checkbox'},
  26. {field: 'userId', hide: true, sort: true, title: '用户id'},
  27. {field: 'account', sort: true, title: '账号'},
  28. {field: 'name', sort: true, title: '姓名'},
  29. {field: 'sexName', sort: true, title: '性别'},
  30. {field: 'roleName', sort: true, title: '角色'},
  31. {field: 'deptName', sort: true, title: '部门'},
  32. {field: 'email', sort: true, title: '邮箱'},
  33. {field: 'phone', sort: true, title: '电话'},
  34. {field: 'createTime', sort: true, title: '创建时间'},
  35. {field: 'status', sort: true, templet: '#statusTpl', title: '状态'},
  36. {align: 'center', toolbar: '#tableBar', title: '操作', minWidth: 280}
  37. ]];
  38. };
  39. /**
  40. * 选择部门时
  41. */
  42. MgrUser.onClickDept = function (e, treeId, treeNode) {
  43. MgrUser.condition.deptId = treeNode.id;
  44. MgrUser.search();
  45. };
  46. /**
  47. * 点击查询按钮
  48. */
  49. MgrUser.search = function () {
  50. var queryData = {};
  51. queryData['deptId'] = MgrUser.condition.deptId;
  52. queryData['name'] = $("#name").val();
  53. queryData['timeLimit'] = $("#timeLimit").val();
  54. table.reload(MgrUser.tableId, {where: queryData});
  55. };
  56. /**
  57. * 弹出添加用户对话框
  58. */
  59. MgrUser.openAddUser = function () {
  60. admin.putTempData('formOk', false);
  61. top.layui.admin.open({
  62. type: 2,
  63. title: '添加用户',
  64. content: Feng.ctxPath + '/mgr/user_add',
  65. end: function () {
  66. admin.getTempData('formOk') && table.reload(MgrUser.tableId);
  67. }
  68. });
  69. };
  70. /**
  71. * 导出excel按钮
  72. */
  73. MgrUser.exportExcel = function () {
  74. var checkRows = table.checkStatus(MgrUser.tableId);
  75. if (checkRows.data.length === 0) {
  76. Feng.error("请选择要导出的数据");
  77. } else {
  78. table.exportFile(tableResult.config.id, checkRows.data, 'xls');
  79. }
  80. };
  81. /**
  82. * 点击编辑用户按钮时
  83. *
  84. * @param data 点击按钮时候的行数据
  85. */
  86. MgrUser.onEditUser = function (data) {
  87. admin.putTempData('formOk', false);
  88. top.layui.admin.open({
  89. type: 2,
  90. title: '编辑用户',
  91. content: Feng.ctxPath + '/mgr/user_edit?userId=' + data.userId,
  92. end: function () {
  93. admin.getTempData('formOk') && table.reload(MgrUser.tableId);
  94. }
  95. });
  96. };
  97. /**
  98. * 点击删除用户按钮
  99. *
  100. * @param data 点击按钮时候的行数据
  101. */
  102. MgrUser.onDeleteUser = function (data) {
  103. var operation = function () {
  104. var ajax = new $ax(Feng.ctxPath + "/mgr/delete", function () {
  105. table.reload(MgrUser.tableId);
  106. Feng.success("删除成功!");
  107. }, function (data) {
  108. Feng.error("删除失败!" + data.responseJSON.message + "!");
  109. });
  110. ajax.set("userId", data.userId);
  111. ajax.start();
  112. };
  113. Feng.confirm("是否删除用户" + data.account + "?", operation);
  114. };
  115. /**
  116. * 分配角色
  117. *
  118. * @param data 点击按钮时候的行数据
  119. */
  120. MgrUser.roleAssign = function (data) {
  121. layer.open({
  122. type: 2,
  123. title: '角色分配',
  124. area: ['300px', '400px'],
  125. content: Feng.ctxPath + '/mgr/role_assign?userId=' + data.userId,
  126. end: function () {
  127. table.reload(MgrUser.tableId);
  128. }
  129. });
  130. };
  131. /**
  132. * 重置密码
  133. *
  134. * @param data 点击按钮时候的行数据
  135. */
  136. MgrUser.resetPassword = function (data) {
  137. Feng.confirm("是否重置密码为111111 ?", function () {
  138. var ajax = new $ax(Feng.ctxPath + "/mgr/reset", function (data) {
  139. Feng.success("重置密码成功!");
  140. }, function (data) {
  141. Feng.error("重置密码失败!");
  142. });
  143. ajax.set("userId", data.userId);
  144. ajax.start();
  145. });
  146. };
  147. /**
  148. * 修改用户状态
  149. *
  150. * @param userId 用户id
  151. * @param checked 是否选中(true,false),选中就是解锁用户,未选中就是锁定用户
  152. */
  153. MgrUser.changeUserStatus = function (userId, checked) {
  154. if (checked) {
  155. var ajax = new $ax(Feng.ctxPath + "/mgr/unfreeze", function (data) {
  156. Feng.success("解除冻结成功!");
  157. }, function (data) {
  158. Feng.error("解除冻结失败!");
  159. table.reload(MgrUser.tableId);
  160. });
  161. ajax.set("userId", userId);
  162. ajax.start();
  163. } else {
  164. var ajax = new $ax(Feng.ctxPath + "/mgr/freeze", function (data) {
  165. Feng.success("冻结成功!");
  166. }, function (data) {
  167. Feng.error("冻结失败!" + data.responseJSON.message + "!");
  168. table.reload(MgrUser.tableId);
  169. });
  170. ajax.set("userId", userId);
  171. ajax.start();
  172. }
  173. };
  174. // 渲染表格
  175. var tableResult = table.render({
  176. elem: '#' + MgrUser.tableId,
  177. url: Feng.ctxPath + '/mgr/list',
  178. page: true,
  179. height: "full-158",
  180. cellMinWidth: 100,
  181. cols: MgrUser.initColumn()
  182. });
  183. //渲染时间选择框
  184. laydate.render({
  185. elem: '#timeLimit',
  186. range: true,
  187. max: Feng.currentDate()
  188. });
  189. //初始化左侧部门树
  190. var ztree = new $ZTree("deptTree", "/dept/tree");
  191. ztree.bindOnClick(MgrUser.onClickDept);
  192. ztree.init();
  193. // 搜索按钮点击事件
  194. $('#btnSearch').click(function () {
  195. MgrUser.search();
  196. });
  197. // 添加按钮点击事件
  198. $('#btnAdd').click(function () {
  199. MgrUser.openAddUser();
  200. });
  201. // 导出excel
  202. $('#btnExp').click(function () {
  203. MgrUser.exportExcel();
  204. });
  205. // 工具条点击事件
  206. table.on('tool(' + MgrUser.tableId + ')', function (obj) {
  207. var data = obj.data;
  208. var layEvent = obj.event;
  209. if (layEvent === 'edit') {
  210. MgrUser.onEditUser(data);
  211. } else if (layEvent === 'delete') {
  212. MgrUser.onDeleteUser(data);
  213. } else if (layEvent === 'roleAssign') {
  214. MgrUser.roleAssign(data);
  215. } else if (layEvent === 'reset') {
  216. MgrUser.resetPassword(data);
  217. }
  218. });
  219. // 修改user状态
  220. form.on('switch(status)', function (obj) {
  221. var userId = obj.elem.value;
  222. var checked = obj.elem.checked ? true : false;
  223. MgrUser.changeUserStatus(userId, checked);
  224. });
  225. });