role.tpl 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>欢迎页面-X-admin2.0</title>
  6. <link rel="stylesheet" href="./static/css/font.css">
  7. <link rel="stylesheet" href="./static/css/xadmin.css">
  8. <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
  9. <script src="./static/lib/layui/layui.js" charset="utf-8"></script>
  10. <script type="text/javascript" src="./static/js/xadmin.js"></script>
  11. </head>
  12. <body>
  13. <input type="text" id="token" value={{.token}} hidden=true>
  14. <dialog open id="modalAdd" class="x-body layui-anim layui-anim-up" hidden=true style = "center;">
  15. <form action="role" method="post" class="layui-form layui-form-pane">
  16. <input id="rolename" name="rolename" placeholder="角色名" type="text" lay-verify="required" class="layui-input" >
  17. <hr class="hr15">
  18. 权限列表:
  19. {{range .permissions}}
  20. <br>
  21. <input id={{.Id}} name="cbPower" type="checkbox" value={{.Id}}>
  22. <label for={{.Id}}>{{.Name}}</label>
  23. {{end}}
  24. <br>
  25. <br>
  26. <input value="新增" class="layui-btn" style="width:100%;" type="button" onclick="addRole()">
  27. <br>
  28. <br>
  29. <input value="关闭" class="layui-btn" style="width:100%;" type="button" onclick="closeModalAdd()">
  30. <hr class="hr20" >
  31. </form>
  32. </dialog>
  33. <dialog open id="modalModify" class="x-body layui-anim layui-anim-up" hidden=true style = "center;">
  34. <form action="role" method="put" class="layui-form layui-form-pane">
  35. <input id="modify_id" hidden=true type="text">
  36. <input id="rolenamemodify" name="rolenamemodify" placeholder="角色名" type="text" lay-verify="required" class="layui-input" >
  37. <hr class="hr15">
  38. 权限列表:
  39. <tb>
  40. <tb>
  41. {{range .permissions}}
  42. <br>
  43. <input id={{.Id}} name="cbPowerModify" type="checkbox" value={{.Id}}>
  44. <label for={{.Id}}>{{.Name}}</label>
  45. {{end}}
  46. <br>
  47. <br>
  48. <input value="修改" class="layui-btn" style="width:100%;" type="button" onclick="modifyRole()">
  49. <br>
  50. <br>
  51. <input value="关闭" class="layui-btn" style="width:100%;" type="button" onclick="closeModifyRole()">
  52. <hr class="hr20" >
  53. </form>
  54. </dialog>
  55. <input class="layui-btn" type="button" onclick="OpenAddRole()" value=新增角色>
  56. <br>
  57. <br>
  58. <table border="1">
  59. <thead>
  60. <th style="width:256px;">操作</th>
  61. <th style="width:64px;">ID</th>
  62. <th style="width:128px;">角色名</th>
  63. <th style="width:512px;">权限列表</th>
  64. </thead>
  65. <tbody>
  66. {{range .roles}}
  67. <tr>
  68. <td style = "text-align:center;">
  69. <input class="layui-btn" type="button" onclick="OpenModifyRole({{.Id}}, {{.Name}})" value=修改>
  70. {{" | "}}
  71. <input class="layui-btn" type="button" onclick="clickDelete({{.Id}})" value=删除>
  72. </tb>
  73. <td style = "text-align:center;">{{.Id}}</td>
  74. <td style = "text-align:center;">{{.Name}}</td>
  75. <td style = "text-align:center;">{{PermissionToStr .Permission}}</td>
  76. </tr>
  77. {{end}}
  78. </tbody>
  79. </table>
  80. <script language="JavaScript">
  81. function OpenAddRole() {
  82. document.getElementById("modalAdd").hidden = false;
  83. }
  84. function closeModalAdd() {
  85. document.getElementById("modalAdd").hidden = true;
  86. }
  87. function addRole() {
  88. document.getElementById("modalAdd").hidden = true;
  89. var name = document.getElementById("rolename").value;
  90. var token = document.getElementById("token").value;
  91. var arr = new Array();
  92. $("input[name='cbPower']:checked").each(function(i) {
  93. var val = $(this).val();
  94. arr.push(val);
  95. })
  96. var value=0;
  97. for (var i=0;i<arr.length;i++ ){
  98. value=value | 1 << parseInt(arr[i]);
  99. }
  100. var text;
  101. text = "permission=" + encodeURI(value) + "&name=" + name + "&token=" + encodeURI(token);
  102. $.ajax({
  103. type:"post",
  104. url:"role?" + text,
  105. success:function (data) {
  106. if (data.status){
  107. window.location.href="/role";
  108. }else{
  109. if (data.info){
  110. alert(data.info);
  111. }else{
  112. window.location.href="/accountlogin";
  113. }
  114. }
  115. }
  116. });
  117. }
  118. function OpenModifyRole(id, name) {
  119. document.getElementById("modify_id").value = id;
  120. document.getElementById("rolenamemodify").value = name;
  121. document.getElementById("modalModify").hidden = false;
  122. }
  123. function closeModifyRole() {
  124. document.getElementById("modalModify").hidden = true;
  125. }
  126. function modifyRole () {
  127. document.getElementById("modalModify").hidden = true;
  128. var id = document.getElementById("modify_id").value;
  129. var name = document.getElementById("rolenamemodify").value;
  130. var token = document.getElementById("token").value;
  131. var arr = new Array();
  132. $("input[name='cbPowerModify']:checked").each(function(i) {
  133. var val = $(this).val();
  134. arr.push(val);
  135. })
  136. var value=0;
  137. for (var i=0;i<arr.length;i++ ){
  138. value=value | 1 << parseInt(arr[i]);
  139. }
  140. var text;
  141. text = "permission=" + encodeURI(value) + "&name=" + name + "&token=" + encodeURI(token);
  142. text += "&id=" + encodeURI(id);
  143. $.ajax({
  144. type:"put",
  145. url:"role?" + text,
  146. success:function (data) {
  147. if (data.status){
  148. window.location.href="/role";
  149. }else{
  150. if (data.info){
  151. alert(data.info);
  152. }else{
  153. window.location.href="/accountlogin";
  154. }
  155. }
  156. }
  157. });
  158. }
  159. function clickDelete (id) {
  160. var token = document.getElementById("token").value;
  161. var text = "id=" + encodeURI(id) + "&action=delete";
  162. text += "&token=" + encodeURI(token);
  163. $.ajax({
  164. type:"delete",
  165. url:"/role?" + text,
  166. success:function (data) {
  167. // alert(data.status);
  168. if (data.status){
  169. window.location.href="/role";
  170. }else{
  171. if (data.info){
  172. alert(data.info);
  173. }else{
  174. window.location.href="/accountlogin";
  175. }
  176. }
  177. }
  178. });
  179. }
  180. </script>
  181. </body>
  182. </html>