userAccount.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469
  1. var pageNo = 1;
  2. var totalPages = 0;
  3. var depname = 0;
  4. var companyId = 0;
  5. //用户列表
  6. getListDataAjax();
  7. //获取用户列表 ajax请求
  8. function getListDataAjax(queryParam = {}, pageNo = 1) {
  9. queryParam.pageNo = pageNo;
  10. // queryParam.pageSize = 4;
  11. queryParam.roleId = 1;
  12. ajaxRequest(USER_LIT, "POST", queryParam, function(result) {
  13. let data = result.pageList;
  14. let items = '';
  15. data.forEach(function(item, key) {
  16. let posName = "";
  17. if (item.posname == 1) {
  18. posName = "超级管理员"
  19. } else if (item.posname == 2) {
  20. posName = "普通员工"
  21. }
  22. let locked = item.locked ? '未锁定' : '锁定';
  23. items += "<tr>" +
  24. "<td class='status' data-user='" + JSON.stringify(item) + "' data-id=" + item.id + " data-username='" + item.username + "'></td>" +
  25. "<td>" + item.username + "</td>" +
  26. "<td>" + item.sex + "</td>" +
  27. "<td>" + posName + "</td>" +
  28. "<td>" + getFormatDate(item.ctime.time) + "</td>" +
  29. "<td>" + item.addman + "</td>" +
  30. "<td>" + locked + "</td>" +
  31. "<td>" + item.wrongtimes + "</td>" +
  32. "</tr>"
  33. })
  34. $('#dataList').html(items);
  35. totalPages = result.totalPages;
  36. $('#totalPage').html(totalPages); //总共多少页
  37. $('#dataTotal').html(result.totalCount); //总共多少条数据
  38. $('#currentPage').val(pageNo); //当前页面
  39. let pageFrom = (pageNo - 1) * result.pageSize + 1; //开始
  40. let pageTo = result.pageNo * result.pageSize; //结束
  41. pageTo = pageTo > result.totalCount ? result.totalCount : pageTo;
  42. $('#pageFrom').html(pageFrom);
  43. $('#pageTo').html(pageTo);
  44. // 无数据时
  45. if (!data.length) {
  46. $('.pager.has-data').hide()
  47. $('.pager.no-data').show()
  48. } else {
  49. $('.pager.has-data').show()
  50. $('.pager.no-data').hide()
  51. }
  52. if (pageNo < totalPages) {
  53. $('#nextPageButton,#lastPageButton').removeClass('disabled');
  54. } else {
  55. $('#nextPageButton,#lastPageButton').addClass('disabled');
  56. }
  57. if (pageNo === 1) {
  58. $('#firstPageButton,#prevPageButton').addClass('disabled');
  59. } else {
  60. $('#firstPageButton,#prevPageButton').removeClass('disabled');
  61. }
  62. }, function(errorMsg) {
  63. alert("请求数据失败!");
  64. })
  65. }
  66. //按钮搜索
  67. $('#buttonClick').on('click', function() {
  68. pageNo = 1;
  69. getListDataAjax(getSearchParamObj());
  70. })
  71. //拼接搜索条件
  72. function getSearchParamObj() {
  73. let queryParam = {};
  74. let userName = $('#userName').val();
  75. queryParam.userName = userName;
  76. if (companyId != 0) {
  77. queryParam.companyId = companyId;
  78. }
  79. if (depname != 0) {
  80. queryParam.depname = depname;
  81. }
  82. return queryParam;
  83. }
  84. //重置表单
  85. $('.reset').click(resetForm)
  86. //角色列表
  87. getUserRole()
  88. getCompanyTree()
  89. //获取公司树结构 ajax请求
  90. function getCompanyTree() {
  91. ajaxRequest(COMPANY_LIST, "POST", {}, function(result) {
  92. let data = result.data;
  93. let items = '';
  94. let companyItems = '';
  95. let companyDepartmentItems = '<option value="">请选择</option>';
  96. data.forEach(function(item, key) {
  97. items += `<li data-id=${item.ownerId} ><span data-id=${item.ownerId} class="treeCompany"><img class="img" src="images/login.png" alt=""> ${item.ownerName} (${item.userNumber})</span>`;
  98. if (item.child) {
  99. let data = item.child;
  100. items += `<ul class="child-three">`;
  101. data.forEach(function(item, key) {
  102. items += `<li data-id=${item.departmentId} ><span data-id=${item.departmentId} class="treeDepartment"><img class="img" src="images/login.png" alt="">${item.departmentName}</span></li>`
  103. });
  104. items += ` </ul>`;
  105. }
  106. `</li>`
  107. companyItems += `<option value="${item.ownerId}">${item.ownerName}</option>`
  108. if (key == 0) {
  109. let departmentObj = item.child;
  110. if (departmentObj) {
  111. departmentObj.forEach(function(item, key) {
  112. companyDepartmentItems += `<option value="${item.id}">${item.departmentName}</option>`
  113. })
  114. $('#departmentId').html(companyDepartmentItems);
  115. $('#departmentIdUpdate').html(companyDepartmentItems);
  116. }
  117. }
  118. })
  119. $('#child-two').html(items);
  120. $('#companyId').html(companyItems);
  121. $('#companyId2').html(companyItems);
  122. }, function(errorMsg) {
  123. alert("请求数据失败!");
  124. })
  125. }
  126. //分页操作
  127. $('#firstPageButton').on('click', function() {
  128. pageNo = 1;
  129. getListDataAjax(getSearchParamObj(), 1);
  130. })
  131. $('#lastPageButton').on('click', function() {
  132. pageNo = totalPages;
  133. getListDataAjax(getSearchParamObj(), pageNo);
  134. })
  135. $('#prevPageButton').on('click', function() {
  136. pageNo -= 1;
  137. getListDataAjax(getSearchParamObj(), pageNo);
  138. })
  139. $('#nextPageButton').on('click', function() {
  140. pageNo += 1;
  141. getListDataAjax(getSearchParamObj(), pageNo);
  142. })
  143. //重置表单
  144. function resetForm() {
  145. pageNo = 1
  146. $("#userName").val("");
  147. $('#roleId option').eq(0).prop("selected", true)
  148. getListDataAjax(getSearchParamObj());
  149. }
  150. //拼接树搜索条件
  151. //角色查询 ajax请求
  152. function getUserRole() {
  153. ajaxRequest(USER_ROLE, "POST", {}, function(result) {
  154. $("#loading").empty()
  155. let data = result.data;
  156. let roleItems = '';
  157. let roleItems2 = '';
  158. data.forEach(function(item, key) {
  159. roleItems += `<option value="${item.roleId}">${item.roleName}</option>`
  160. roleItems2 += `<option value="${item.roleId}">${item.roleName}</option>`
  161. })
  162. $('#roleId').append(roleItems);
  163. $('#roleId2').html(roleItems2);
  164. $('#roleId3').html(roleItems2);
  165. }, function(errorMsg) {
  166. alert("请求数据失败!");
  167. })
  168. }
  169. /*新增 修改 关闭 弹框*/
  170. var layer = layui.layer;
  171. var layerCreateIndex = '';
  172. var layerUpdateIndex = ''
  173. layui.use('layer', function() {
  174. //新增弹框
  175. $('.add').click(function() {
  176. layerCreateIndex = layer.open({
  177. type: 1,
  178. title: false,
  179. closeBtn: 0,
  180. shadeClose: true,
  181. skin: 'yourclass',
  182. area: ['410px', '500px'],
  183. content: $(".addUserOut"),
  184. success: function() {
  185. $('.clsBtn,.cancel').click(function() {
  186. layer.close(layerCreateIndex);
  187. })
  188. }
  189. })
  190. })
  191. //修改弹框信息
  192. $('.edit').click(function() {
  193. if (!$('.pure-table tr').has('.checked').length) {
  194. layer.msg('请选择一条需要修改的信息!', { icon: 5 });
  195. } else {
  196. let dataId = $('.pure-table tr').find('.checked').data('id');
  197. let userInfo = $('.pure-table tr').find('.checked').data('user');
  198. $('.editUserOut input[name=truename').val(userInfo.truename)
  199. $('.editUserOut select[name=sex]').val(userInfo.sex)
  200. $('.editUserOut input[name=phone').val(userInfo.phone)
  201. $('.editUserOut select[name=posname').val(userInfo.posname)
  202. $('.editUserOut select[name=locked]').val(userInfo.locked)
  203. $('.editUserOut select[name=status]').val(userInfo.status)
  204. $('.editUserOut input[name=wrongtimes').val(userInfo.wrongtimes)
  205. // 单位赋值
  206. $('.editUserOut select[name=bian').val(userInfo.bian)
  207. // 部门下拉展示及赋值
  208. if ($('#companyId2').val()) {
  209. listDepname()
  210. function listDepname() {
  211. let companyName = $('#companyId2').find('option:selected').val();
  212. ajaxRequest(COMPANY_LIST, "POST", { "ownerId": companyName }, function(result) {
  213. let companyDepartmentItems = '<option value="">请选择</option>';
  214. let departmentObj = result.data[0].child;
  215. departmentObj.forEach(function(item, key) {
  216. companyDepartmentItems += `<option value="${item.departmentId}">${item.departmentName}</option>`
  217. })
  218. $('#departmentIdUpdate').html(companyDepartmentItems);
  219. }, function(errorMsg) {
  220. alert("请求数据失败!");
  221. })
  222. }
  223. }
  224. // 部门赋值
  225. $('.editUserOut select[name=depname').val(userInfo.depname)
  226. $('.editUserOut input[name=username]').val(userInfo.username)
  227. layerUpdateIndex = layer.open({
  228. type: 1,
  229. title: false,
  230. closeBtn: 0,
  231. shadeClose: true,
  232. skin: 'yourclass',
  233. area: ['410px', '500px'],
  234. content: $(".editUserOut"),
  235. success: function() {
  236. $('.clsBtn,.cancel').click(function() {
  237. layer.close(layerUpdateIndex);
  238. })
  239. }
  240. });
  241. }
  242. })
  243. //删除信息
  244. $('.delete').click(function() {
  245. if (!$('.pure-table tr').has('.checked').length) {
  246. //layer.msg('请选择一条需要修改的信息');
  247. layer.msg('请选择一条需要删除的信息!', { icon: 5 });
  248. } else {
  249. let dataUserName = $('.pure-table tr').find('.checked').data('username');
  250. ajaxRequest(USER_DELETE, "POST", { "username": dataUserName }, function(result) {
  251. $(".pure-table tbody tr.selected").remove()
  252. layer.close(layer.layerCreateIndex);
  253. layer.msg('删除成功!', { icon: 6 });
  254. getListDataAjax()
  255. }, function(errorMsg) {
  256. alert("用户删除失败!");
  257. })
  258. }
  259. })
  260. });
  261. /* 新增用户发送请求 */
  262. $('#addUser').click(function() {
  263. //获取表单的值
  264. let userAddObj = $("#addUserForm").serializeArray();
  265. //发送给服务端的数据格式
  266. let userAddParam = {};
  267. for (let key in userAddObj) { //循环验证······
  268. //验证用户名
  269. if (userAddObj[key].name == 'username') {
  270. if (!userAddObj[key].value) {
  271. alert('请输入用户名');
  272. return;
  273. }
  274. userAddParam['username'] = userAddObj[key].value; // aa
  275. userAddParam['agentid'] = userAddObj[key].value;
  276. } else if (userAddObj[key].name == 'password') {
  277. if (!userAddObj[key].value) {
  278. alert('请输入密码');
  279. return;
  280. }
  281. userAddParam['password'] = md5(userAddObj[key].value);
  282. } else if (userAddObj[key].name == 'age') { //aa验证年龄
  283. if (!userAddObj[key].value) {
  284. alert('请填写年龄');
  285. return;
  286. } else {
  287. let pattern = /^(([0-9]|[1-9][1-9]|1[0-7][0-9])(\\.[0-9]+)?|180)$/;
  288. if (!pattern.test(userAddObj[key].value)) {
  289. alert('请输正确的年龄');
  290. return false;
  291. }
  292. }
  293. userAddParam['age'] = userAddObj[key].value;
  294. } else if (userAddObj[key].name == 'truename') { //aa验证真实姓名
  295. if (!userAddObj[key].value) {
  296. alert('请填写真实姓名');
  297. return;
  298. }
  299. userAddParam['truename'] = userAddObj[key].value;
  300. } else if (userAddObj[key].name == 'phone') { //aa验证手机号
  301. if (!userAddObj[key].value) {
  302. alert('请填写手机号码');
  303. return;
  304. } else {
  305. let telre = /^(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9])\d{8}$/;
  306. if (!telre.test(userAddObj[key].value)) {
  307. alert('请输入有效的手机号码');
  308. return false;
  309. }
  310. }
  311. userAddParam['phone'] = userAddObj[key].value;
  312. } else {
  313. //其它字段 ....
  314. userAddParam[userAddObj[key].name] = userAddObj[key].value; // aa inputKey[]???
  315. }
  316. }
  317. //验证通过 请求ajax
  318. ajaxRequest(USER_ADD, "POST", userAddParam, function(result) {
  319. let data = result.data;
  320. layer.close(layerCreateIndex);
  321. layer.msg('添加成功!', { icon: 6 });
  322. getListDataAjax();
  323. }, function(errorMsg) {
  324. alert("用户添加失败!");
  325. })
  326. })
  327. /* 修改用户发送请求 */
  328. $('#editUser').click(function() {
  329. //获取表单的值
  330. let userEditObj = $("#editUserForm").serializeArray();
  331. //发送给服务端的数据格式
  332. let userEditParam = {};
  333. for (let key in userEditObj) { //循环验证······
  334. //验证用户名
  335. if (userEditObj[key].name == 'username') {
  336. if (!userEditObj[key].value) {
  337. alert('请输入用户名');
  338. return;
  339. }
  340. userEditParam['username'] = userEditObj[key].value; // aa
  341. userEditParam['agentid'] = userEditObj[key].value;
  342. } else if (userEditObj[key].name == 'password') {
  343. if (!userEditObj[key].value) {
  344. alert('请输入密码');
  345. return;
  346. }
  347. userEditParam['password'] = md5(userEditObj[key].value);
  348. } else if (userEditObj[key].name == 'age') { //aa验证年龄
  349. if (!userEditObj[key].value) {
  350. alert('请填写年龄');
  351. return;
  352. } else {
  353. let pattern = /^(([0-9]|[1-9][1-9]|1[0-7][0-9])(\\.[0-9]+)?|180)$/;
  354. if (!pattern.test(userEditObj[key].value)) {
  355. alert('请输正确的年龄');
  356. return false;
  357. }
  358. }
  359. userEditParam['age'] = userEditObj[key].value;
  360. } else if (userEditObj[key].name == 'truename') { //aa验证真实姓名
  361. if (!userEditObj[key].value) {
  362. alert('请填写真实姓名');
  363. return;
  364. }
  365. userEditParam['truename'] = userEditObj[key].value;
  366. } else if (userEditObj[key].name == 'phone') { //aa验证手机号
  367. if (!userEditObj[key].value) {
  368. alert('请填写手机号码');
  369. return;
  370. } else {
  371. let telre = /^(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9])\d{8}$/;
  372. if (!telre.test(userEditObj[key].value)) {
  373. alert('请输入有效的手机号码');
  374. return false;
  375. }
  376. }
  377. userEditParam['phone'] = userEditObj[key].value;
  378. } else {
  379. //其它字段 ....
  380. userEditParam[userEditObj[key].name] = userEditObj[key].value; // aa inputKey[]???
  381. }
  382. }
  383. //验证通过 请求ajax
  384. ajaxRequest(USER_UPDATE, "POST", userEditParam, function(result) {
  385. let data = result.data;
  386. layer.close(layerUpdateIndex);
  387. layer.msg('修改成功!', { icon: 6 });
  388. getListDataAjax();
  389. }, function(errorMsg) {
  390. alert("用户修改失败!");
  391. })
  392. })
  393. // 公司与部门联动 (修改和新增)
  394. linkDep('#companyId')
  395. linkDep('#companyId2')
  396. function linkDep(element) {
  397. $(element).on('change', function() {
  398. //获取公司id
  399. let companyName = $(this).find('option:selected').val();
  400. ajaxRequest(COMPANY_LIST, "POST", { "ownerId": companyName }, function(result) {
  401. let companyDepartmentItems = '<option value="">请选择</option>';
  402. let departmentObj = result.data[0].child;
  403. departmentObj.forEach(function(item, key) {
  404. companyDepartmentItems += `<option value="${item.departmentId}">${item.departmentName}</option>`
  405. })
  406. $('#departmentId').html(companyDepartmentItems);
  407. $('#departmentIdUpdate').html(companyDepartmentItems);
  408. }, function(errorMsg) {
  409. alert("请求数据失败!");
  410. })
  411. })
  412. }