AllotAuthorize.cshtml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. @{
  2. ViewBag.Title = "用户权限";
  3. Layout = "~/Views/Shared/_Form.cshtml";
  4. }
  5. <script type="text/javascript">
  6. var userId = request('userId');
  7. $(function () {
  8. initialPage();
  9. GetModuleTree();
  10. GetModuleButtonTree();
  11. GetModuleColumnTree();
  12. GetOrganizeTree();
  13. })
  14. //初始化页面
  15. function initialPage() {
  16. //加载导向
  17. $('#wizard').wizard().on('change', function (e, data) {
  18. var $finish = $("#btn_finish");
  19. var $next = $("#btn_next");
  20. if (data.direction == "next") {
  21. if (data.step == 1) {
  22. var ModuleId = $("#ModuleTree").getCheckedAllNodes();
  23. for (var i = 0; i < ModuleId.length; i++) {
  24. var $thisid = $("#ModuleButtonTree").find('ul').find('[data-value=' + ModuleId[i] + ']').parent().parent();
  25. $thisid.show();
  26. $thisid.parents('ul').find('.' + ModuleId[i]).parent().show();
  27. }
  28. }
  29. if (data.step == 2) {
  30. var ModuleId = $("#ModuleTree").getCheckedAllNodes();
  31. for (var i = 0; i < ModuleId.length; i++) {
  32. var $thisid = $("#ModuleColumnTree").find('ul').find('[data-value=' + ModuleId[i] + ']').parent().parent();
  33. $thisid.show();
  34. $thisid.parents('ul').find('.' + ModuleId[i]).parent().show();
  35. }
  36. }
  37. if (data.step == 3) {
  38. $finish.removeAttr('disabled');
  39. $next.attr('disabled', 'disabled');
  40. }
  41. } else {
  42. $finish.attr('disabled', 'disabled');
  43. $next.removeAttr('disabled');
  44. }
  45. });
  46. //数据权限 、点击类型触发事件
  47. $("input[name='authorizeType']").click(function () {
  48. var value = $(this).val();
  49. if (value == -5) {
  50. $("#OrganizeTreebackground").hide();
  51. } else {
  52. $("#OrganizeTreebackground").show();
  53. }
  54. })
  55. buttonOperation();
  56. }
  57. //获取系统功能
  58. function GetModuleTree() {
  59. var item = {
  60. height: 540,
  61. showcheck: true,
  62. url: "../../AuthorizeManage/PermissionUser/ModuleTreeJson?userId=" + userId
  63. };
  64. $("#ModuleTree").treeview(item);
  65. }
  66. //获取系统按钮
  67. function GetModuleButtonTree() {
  68. var item = {
  69. height: 540,
  70. showcheck: true,
  71. url: "../../AuthorizeManage/PermissionUser/ModuleButtonTreeJson?userId=" + userId
  72. };
  73. $("#ModuleButtonTree").treeview(item);
  74. $("#ModuleButtonTree").find('.bbit-tree-node-el').hide();
  75. }
  76. //获取系统视图
  77. function GetModuleColumnTree() {
  78. var item = {
  79. height: 540,
  80. showcheck: true,
  81. url: "../../AuthorizeManage/PermissionUser/ModuleColumnTreeJson?userId=" + userId
  82. };
  83. $("#ModuleColumnTree").treeview(item);
  84. $("#ModuleColumnTree").find('.bbit-tree-node-el').hide();
  85. }
  86. //获取组织架构
  87. function GetOrganizeTree() {
  88. $.ajax({
  89. url: "../../AuthorizeManage/PermissionUser/OrganizeTreeJson?userId=" + userId,
  90. type: "GET",
  91. dataType: "json",
  92. async: false,
  93. success: function (data) {
  94. var $treeJson = data.treeJson;
  95. var $authorizeType = data.authorizeType;
  96. var $authorizeData = data.authorizeData;
  97. var item = {
  98. height: 330,
  99. showcheck: true,
  100. data: JSON.parse($treeJson),
  101. };
  102. $("#OrganizeTree").treeview(item);
  103. $("input[name='authorizeType'][value=" + $authorizeType + "]").trigger("click");
  104. $("#OrganizeTree").find('li.bbit-tree-node').each(function () {
  105. var $li = $(this);
  106. $li.css({ position: 'relative' });
  107. var _data_value = $li.find('a').find('span').attr('data-value');
  108. var _html = '<div style="position: absolute;right: 0px;top:4px;z-index: 1;"><div class="checkbox">';
  109. _html += '<label><input name="' + _data_value + '" type="checkbox" value="1" />只读</label>';
  110. _html += '</div></div>';
  111. $li.append(_html);
  112. });
  113. $.each($authorizeData, function (i) {
  114. var row = $authorizeData[i]
  115. var resourceId = row.ResourceId;
  116. var IsRead = row.IsRead;
  117. if (IsRead == 1) {
  118. $("input[name='" + resourceId + "']").attr("checked", true);
  119. }
  120. });
  121. }
  122. });
  123. }
  124. //按钮操作(上一步、下一步、完成、关闭)
  125. function buttonOperation() {
  126. var $last = $("#btn_last");
  127. var $next = $("#btn_next");
  128. var $finish = $("#btn_finish");
  129. //完成提交保存
  130. $finish.click(function () {
  131. var postData = $("#form1").GetWebControls();
  132. postData["userId"] = userId;
  133. postData["moduleIds"] = String($("#ModuleTree").getCheckedAllNodes());
  134. postData["moduleButtonIds"] = String($("#ModuleButtonTree").getCheckedAllNodes());
  135. postData["moduleColumnIds"] = String($("#ModuleColumnTree").getCheckedAllNodes());
  136. postData["authorizeDataJson"] = JSON.stringify(GetDataAuthorize());
  137. $.SaveForm({
  138. url: "../../AuthorizeManage/PermissionUser/SaveAuthorize",
  139. param: postData,
  140. loading: "正在保存用户授权...",
  141. success: function () {
  142. $.currentIframe().$("#gridTable").trigger("reloadGrid");
  143. }
  144. })
  145. })
  146. }
  147. //获取数据范围权限选中值、返回Json
  148. function GetDataAuthorize() {
  149. var dataAuthorize = [];
  150. var authorizeType = $("input[name='authorizeType']:checked").val();
  151. if (authorizeType == -5) {
  152. var selectedData = $("#OrganizeTree").getCheckedAllNodes();
  153. for (var i = 0; i < selectedData.length; i++) {
  154. var ResourceId = selectedData[i];
  155. var IsRead = $("input[name='" + ResourceId + "']:checked").val() == 1 ? 1 : 0;
  156. var rowdata = {
  157. ResourceId: ResourceId,
  158. IsRead: IsRead,
  159. AuthorizeType: -5
  160. }
  161. dataAuthorize.push(rowdata);
  162. }
  163. } else {
  164. var rowdata = {
  165. IsRead: 0,
  166. AuthorizeType: authorizeType
  167. }
  168. dataAuthorize.push(rowdata);
  169. }
  170. return dataAuthorize;
  171. }
  172. </script>
  173. <div class="widget-body">
  174. <div id="wizard" class="wizard" data-target="#wizard-steps" style="border-left: none; border-top: none; border-right: none;">
  175. <ul class="steps">
  176. <li data-target="#step-1" class="active"><span class="step">1</span>系统功能<span class="chevron"></span></li>
  177. <li data-target="#step-2"><span class="step">2</span>系统按钮<span class="chevron"></span></li>
  178. <li data-target="#step-3"><span class="step">3</span>系统视图<span class="chevron"></span></li>
  179. <li data-target="#step-4"><span class="step">4</span>数据权限<span class="chevron"></span></li>
  180. </ul>
  181. </div>
  182. <div class="step-content" id="wizard-steps" style="border-left: none; border-bottom: none; border-right: none;">
  183. <div class="step-pane active" id="step-1">
  184. <div id="ModuleTree" style="margin: 10px;"></div>
  185. </div>
  186. <div class="step-pane" id="step-2">
  187. <div id="ModuleButtonTree" style="margin: 10px;"></div>
  188. </div>
  189. <div class="step-pane" id="step-3">
  190. <div id="ModuleColumnTree" style="margin: 10px;"></div>
  191. </div>
  192. <div class="step-pane" id="step-4" style="margin: 15px; margin-bottom: 0px;">
  193. <div>
  194. <ul class="list-group">
  195. <li class="list-group-item">
  196. <div class="radio">
  197. <label>
  198. <input name="authorizeType" type="radio" checked="checked" value="-1" />&nbsp;
  199. 仅限本人
  200. </label>
  201. </div>
  202. </li>
  203. <li class="list-group-item">
  204. <div class="radio">
  205. <label>
  206. <input name="authorizeType" type="radio" value="-2" />&nbsp;
  207. 仅限本人及下属
  208. </label>
  209. </div>
  210. </li>
  211. <li class="list-group-item">
  212. <div class="radio">
  213. <label>
  214. <input name="authorizeType" type="radio" value="-3" />&nbsp;
  215. 所在部门
  216. </label>
  217. </div>
  218. </li>
  219. <li class="list-group-item">
  220. <div class="radio">
  221. <label>
  222. <input name="authorizeType" type="radio" value="-4" />&nbsp;
  223. 所在公司
  224. </label>
  225. </div>
  226. </li>
  227. <li class="list-group-item">
  228. <div class="radio">
  229. <label>
  230. <input name="authorizeType" type="radio" value="-5" />&nbsp;
  231. 自定义设置
  232. </label>
  233. </div>
  234. <div id="OrganizeTree" style="margin: 10px; margin-bottom: 0px;"></div>
  235. <div id="OrganizeTreebackground" style="position: fixed; top: 251px; left: 15px; z-index: 2; width: 670px; height: 343px; background: #000; filter: alpha(opacity=10); opacity: 0.1;"></div>
  236. </li>
  237. </ul>
  238. </div>
  239. </div>
  240. </div>
  241. </div>
  242. <div class="form-button" id="wizard-actions">
  243. <a id="btn_last" disabled class="btn btn-default btn-prev">上一步</a>
  244. <a id="btn_next" class="btn btn-default btn-next">下一步</a>
  245. <a id="btn_finish" disabled class="btn btn-success">完成</a>
  246. </div>