manager.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  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. if (topid !== 'compilation') {
  107. $('#' + topid).prop('checked', true);
  108. }
  109. } else {
  110. // 取消选中(排除工具这个独立分离的url)
  111. if (topid !== 'tool') {
  112. // 不存在选中权限
  113. if (!$("input[name='permission_" + topid + "[]']").is(':checked')) {
  114. $('#' + topid).prop('checked', false);
  115. }
  116. }
  117. }
  118. });
  119. // 删除权限组传值
  120. $('.del_permission').on('click', function () {
  121. let id = $(this).data('id');
  122. $('#delete_id').val(id);
  123. });
  124. // 账号管理权限组选择
  125. $('.edit_group').on('click', function () {
  126. let name = $(this).attr('data-name');
  127. let id = $(this).attr('data-id');
  128. let permission = $(this).attr('data-permission');
  129. if (name !== '') {
  130. $('#group_name').text(name);
  131. } else {
  132. $('#group_name').text('未分配');
  133. }
  134. $('#manager_id').val(id);
  135. if (permission !== '') {
  136. $('#group_permission').val(permission);
  137. } else {
  138. $('#group_permission').val(0);
  139. }
  140. let groupInfo = permissionGroupList.find(function (item) {
  141. return item._id === permission;
  142. });
  143. let top_name = groupInfo !== undefined ? groupInfo.top_name : '';
  144. $('#group_permission_name').text(top_name);
  145. });
  146. // 权限组变更时改变
  147. $('#group_permission').change(function () {
  148. let permission = $(this).val();
  149. let groupInfo = permissionGroupList.find(function (item) {
  150. return item._id === permission;
  151. });
  152. let top_name = groupInfo !== undefined ? groupInfo.top_name : '';
  153. $('#group_permission_name').text(top_name);
  154. });
  155. // 选择框
  156. $(".selector > li > a").click(function () {
  157. let value = $(this).data("value");
  158. let string = $(this).text();
  159. let selector = $(this).parent().parent();
  160. selector.next("input:hidden").val(value);
  161. selector.prev("button").children("span").eq(0).html(string);
  162. // 筛选结果跳转
  163. console.log($('#office_select').val());
  164. console.log($('#permission_select').val());
  165. let query = [];
  166. if ($('#office_select').val() !== 'all' && $('#office_select').val() !== '') {
  167. query.push('office=' + $('#office_select').val());
  168. }
  169. if ($('#permission_select').val() !== 'all' && $('#permission_select').val() !== '') {
  170. query.push('permission=' + $('#permission_select').val());
  171. }
  172. let requestUrl = query.join('&');
  173. window.location.href = requestUrl !== '' ? '/manager?' + requestUrl : '/manager';
  174. });
  175. });