access.html 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. {extend name="$_admin_base_layout" /}
  2. {block name="plugins-css"}
  3. <link href="__LIBS__/jstree/themes/default/style.min.css" rel="stylesheet" />
  4. {/block}
  5. {block name="content"}
  6. {notempty name="page_tips"}
  7. <div class="alert alert-{$tips_type|default='info'} alert-dismissable">
  8. <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
  9. <p>{$page_tips|raw|default=''}</p>
  10. </div>
  11. {/notempty}
  12. <div class="row">
  13. <div class="col-md-12">
  14. <div class="block">
  15. {notempty name="tab_nav.tab_list"}
  16. <ul class="nav nav-tabs">
  17. {volist name="tab_nav['tab_list']" id="vo"}
  18. <li {eq name="tab_nav.curr_tab" value="$key"}class="active"{/eq}>
  19. <a href="{$vo.url}">{$vo.title}</a>
  20. </li>
  21. {/volist}
  22. <li class="pull-right">
  23. <ul class="block-options push-10-t push-10-r">
  24. <li>
  25. <button type="button" data-toggle="block-option" data-action="fullscreen_toggle"></button>
  26. </li>
  27. <li>
  28. <button type="button" data-toggle="block-option" data-action="refresh_toggle" data-action-mode="demo"><i class="si si-refresh"></i></button>
  29. </li>
  30. <li>
  31. <button type="button" data-toggle="block-option" data-action="content_toggle"></button>
  32. </li>
  33. <li>
  34. <button type="button" data-toggle="block-option" data-action="close"><i class="si si-close"></i></button>
  35. </li>
  36. </ul>
  37. </li>
  38. </ul>
  39. {else/}
  40. <div class="block-header bg-gray-lighter">
  41. <ul class="block-options">
  42. <li>
  43. <button type="button" data-toggle="block-option" data-action="fullscreen_toggle"></button>
  44. </li>
  45. <li>
  46. <button type="button" data-toggle="block-option" data-action="refresh_toggle" data-action-mode="demo"><i class="si si-refresh"></i></button>
  47. </li>
  48. <li>
  49. <button type="button" data-toggle="block-option" data-action="content_toggle"></button>
  50. </li>
  51. <li>
  52. <button type="button" data-toggle="block-option" data-action="close"><i class="si si-close"></i></button>
  53. </li>
  54. </ul>
  55. <h3 class="block-title">{$page_title}</h3>
  56. </div>
  57. {/notempty}
  58. <form name="form-builder" id="form" class="form-horizontal form-builder">
  59. <input type="hidden" name="uid" value="{:input('param.uid', '')}">
  60. <input type="hidden" name="tab_name" value="{$tab_name|default=''}">
  61. <div class="block-content tab-content">
  62. <div class="tab-pane fade in active push-20">
  63. {notempty name="access"}
  64. <div class="row data-table-toolbar">
  65. <div class="col-sm-12">
  66. <div class="toolbar-btn-action">
  67. <button title="全选" type="button" class="btn btn-info" id="check-all"><i class="fa fa-check-circle-o"></i> 全选</button>
  68. <button title="取消全选" type="button" class="btn btn-danger" id="uncheck-all"><i class="fa fa-ban"></i> 取消全选</button>
  69. <button title="展开所有节点" type="button" class="btn btn-success" id="expand-all"><i class="fa fa-plus"></i> 展开所有节点</button>
  70. <button title="收起所有节点" type="button" class="btn btn-warning" id="collapse-all"><i class="fa fa-minus"></i> 收起所有节点</button>
  71. </div>
  72. </div>
  73. </div>
  74. <div class="block block-bordered">
  75. <ul class="nav nav-tabs">
  76. {volist name="access" id="vo"}
  77. <li {eq name="key" value="$tab"}class="active"{/eq}>
  78. <a href="{$vo.url|default=''}">{$vo.title|default=''}</a>
  79. </li>
  80. {/volist}
  81. </ul>
  82. <div class="block-content tab-content">
  83. <div class="tab-pane active" id="btabs-static-home">
  84. <div id="jstree" class="push">{$nodes|raw|default=''}</div>
  85. </div>
  86. </div>
  87. </div>
  88. {else/}
  89. <div class="form-empty">
  90. <p class="text-center text-muted empty-info">
  91. <i class="fa fa-database"></i> 暂无授权数据<br>
  92. </p>
  93. </div>
  94. {/notempty}
  95. </div>
  96. <div class="push-20">
  97. {notempty name="access"}
  98. <button class="btn btn-minw btn-primary" type="submit">
  99. 确定
  100. </button>
  101. {/notempty}
  102. <a class="btn btn-default" href="{:url('index')}">
  103. 返回
  104. </a>
  105. </div>
  106. </div>
  107. </form>
  108. </div>
  109. </div>
  110. </div>
  111. {/block}
  112. {block name="script"}
  113. <script src="__LIBS__/jstree/jstree.min.js"></script>
  114. <script>
  115. $(document).ready(function(){
  116. $('#jstree').jstree({
  117. plugins: ["checkbox", "search"],
  118. "checkbox" : {
  119. "keep_selected_style" : false,
  120. "three_state" : false,
  121. "cascade" : 'down+up'
  122. },
  123. "search" : {
  124. 'show_only_matches' : true,
  125. 'show_only_matches_children' : true
  126. },
  127. "core" : {
  128. "themes" : {
  129. 'icons' : false
  130. }
  131. }
  132. });
  133. // 全选
  134. $('#check-all').click(function () {
  135. $('#jstree').jstree(true).check_all();
  136. });
  137. // 取消全选
  138. $('#uncheck-all').click(function () {
  139. $('#jstree').jstree(true).uncheck_all();
  140. });
  141. // 展开所有
  142. $('#expand-all').click(function () {
  143. $('#jstree').jstree(true).open_all();
  144. });
  145. // 收起所有
  146. $('#collapse-all').click(function () {
  147. $('#jstree').jstree(true).close_all();
  148. });
  149. // 提交表单
  150. $('#form').submit(function () {
  151. var nodes = $('#jstree').jstree(true).get_checked();
  152. $.post('{:url("access", ["module" => $module, "uid" => $uid, "tag" => $tab])}', {nodes:nodes}).success(function (res) {
  153. if (res.code) {
  154. Dolphin.notify(res.msg, 'success');
  155. setTimeout(function () {
  156. location.href = res.url;
  157. }, 1500);
  158. } else {
  159. Dolphin.notify(res.msg, 'danger');
  160. }
  161. }).fail(function () {
  162. Dolphin.notify('服务器发生错误~', 'danger');
  163. });
  164. return false;
  165. });
  166. });
  167. </script>
  168. {/block}