manager.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. /**
  2. * 后台管理相关js
  3. *
  4. * @author CaiAoLin
  5. * @date 2017/7/25
  6. * @version
  7. */
  8. $(document).ready(function() {
  9. let selectId = '';
  10. // 编辑用户
  11. $(".edit").click(function() {
  12. // 获取当前点击的数据
  13. let canLogin = $(this).data('login');
  14. if (!canLogin) {
  15. $("input[name='can_login']").attr('checked', 'checked');
  16. } else {
  17. $("input[name='can_login']").removeAttr('checked');
  18. }
  19. // 获取权限
  20. let permission = $(this).data('permission');
  21. permission = permission.split(',');
  22. $("input[name='permission[]']").each(function(index) {
  23. let permissionName = $(this).data('permission');
  24. if (permission.indexOf(permissionName) < 0) {
  25. $(this).removeAttr('checked');
  26. return true;
  27. }
  28. $(this).attr('checked', 'checked');
  29. });
  30. selectId = $(this).data('id');
  31. $('#edit-account').modal('show');
  32. });
  33. // 编辑后保存
  34. let isSaving = false;
  35. $("#save-manager").click(function() {
  36. if (selectId === '' || isSaving) {
  37. return false;
  38. }
  39. // 获取权限
  40. let permission = [];
  41. $("input[name='permission[]']:checked").each(function(index) {
  42. let permissionName = $(this).data('permission');
  43. permission.push(permissionName);
  44. });
  45. permission = permission.join(',');
  46. // 获取是否可登录
  47. let login = $("input[name='can_login']").is(':checked');
  48. $.ajax({
  49. url: '/manager/modify/' + selectId,
  50. type: 'post',
  51. data: {permission: permission, login: login ? 0 : 1},
  52. dataType: 'json',
  53. error: function() {
  54. isSaving = false;
  55. },
  56. beforeSend: function() {
  57. isSaving = true;
  58. },
  59. success: function(response) {
  60. isSaving = false;
  61. if (response.err === 0) {
  62. $('#edit-account').modal('hide');
  63. } else {
  64. let msg = response.msg === undefined ? '未知错误' : response.msg;
  65. alert(msg);
  66. }
  67. }
  68. });
  69. });
  70. // 编辑权限组权限
  71. $('.edit_permission').on('click', function () {
  72. // 清空权限列表
  73. $('#id').val('');
  74. $('#title1').val('');
  75. $("input[type='checkbox']").prop('checked', false);
  76. let group_id = $(this).attr('data-permission-id');
  77. let group_name = $(this).attr('data-permission-name');
  78. $('#id').val(group_id);
  79. $('#title1').val(group_name);
  80. if ($(this).attr('data-permission') !== '') {
  81. let group_permission = JSON.parse($(this).attr('data-permission'));
  82. for (let gp in group_permission) {
  83. let plist = group_permission[gp];
  84. for (let p of plist) {
  85. $("input[value='"+p+"'").prop('checked', true);
  86. }
  87. }
  88. }
  89. });
  90. // 一级权限选中或取消
  91. $("input[name='topPermission[]']").on('click', function () {
  92. let id = $(this).attr('id');
  93. if($(this).is(':checked')) {
  94. // 选中
  95. $("input[name='permission_"+id+"[]']").prop('checked', true);
  96. } else {
  97. // 取消选中
  98. $("input[name='permission_"+id+"[]']").prop('checked', false);
  99. }
  100. });
  101. // 二级权限选中或取消
  102. $("input[name^='permission_']").on('click', function () {
  103. let topid = $(this).attr('data-controller');
  104. if($(this).is(':checked')) {
  105. // 选中
  106. $('#'+ topid).prop('checked', true);
  107. } else {
  108. // 取消选中(排除工具这个独立分离的url)
  109. if (topid !== 'tool') {
  110. // 不存在选中权限
  111. if (!$("input[name='permission_"+ topid +"[]']").is(':checked')) {
  112. $('#'+ topid).prop('checked', false);
  113. }
  114. }
  115. }
  116. });
  117. // 删除权限组传值
  118. $('.del_permission').on('click', function () {
  119. let id = $(this).data('id');
  120. $('#delete_id').val(id);
  121. });
  122. // 账号管理权限组选择
  123. $('.edit_group').on('click', function () {
  124. let name = $(this).attr('data-name');
  125. let id = $(this).attr('data-id');
  126. let permission = $(this).attr('data-permission');
  127. if (name !== '') {
  128. $('#group_name').text(name);
  129. } else {
  130. $('#group_name').text('未分配');
  131. }
  132. $('#manager_id').val(id);
  133. if (permission !== '') {
  134. $('#group_permission').val(permission);
  135. } else {
  136. $('#group_permission').val(0);
  137. }
  138. let groupInfo = permissionGroupList.find(function (item) {
  139. return item._id === permission;
  140. });
  141. let top_name = groupInfo !== undefined ? groupInfo.top_name : '';
  142. $('#group_permission_name').text(top_name);
  143. });
  144. // 权限组变更时改变
  145. $('#group_permission').change(function () {
  146. let permission = $(this).val();
  147. let groupInfo = permissionGroupList.find(function (item) {
  148. return item._id === permission;
  149. });
  150. let top_name = groupInfo !== undefined ? groupInfo.top_name : '';
  151. $('#group_permission_name').text(top_name);
  152. });
  153. // 选择框
  154. $(".selector > li > a").click(function() {
  155. let value = $(this).data("value");
  156. let string = $(this).text();
  157. let selector = $(this).parent().parent();
  158. selector.next("input:hidden").val(value);
  159. selector.prev("button").children("span").eq(0).html(string);
  160. // 筛选结果跳转
  161. console.log($('#office_select').val());
  162. console.log($('#permission_select').val());
  163. let query = [];
  164. if ($('#office_select').val() !== 'all' && $('#office_select').val() !== '') {
  165. query.push('office=' + $('#office_select').val());
  166. }
  167. if ($('#permission_select').val() !== 'all' && $('#permission_select').val() !== '') {
  168. query.push('permission=' + $('#permission_select').val());
  169. }
  170. let requestUrl = query.join('&');
  171. window.location.href = requestUrl !== '' ? '/manager?' + requestUrl : '/manager';
  172. });
  173. });