index.blade.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. @extends('admin.public.base')
  2. @section('body_class')
  3. style="margin: 0 auto;width: 96%;padding: 30px 0px;"
  4. @endsection
  5. @section('content')
  6. <div class="page-header">
  7. <a id="addParent" class="btn btn-primary">新增</a>
  8. <a id="edit" class="btn btn-primary">编辑</a>
  9. <a id="remove" class="btn btn-primary">删除</a>
  10. </div>
  11. <div class="row">
  12. <div id="category_tree" class="ztree"></div>
  13. </div>
  14. <div id="dialog" class="dialog" style="display:none">
  15. <div class="dialog_content">
  16. <dl>
  17. <dt>菜单名称</dt>
  18. <dd><input type="text" name="title" class="text" /></dd>
  19. <dt>URL</dt>
  20. <dd><input name="url" type="text" value="" size="50" /></dd>
  21. <dt>模块</dt>
  22. <dd><input name="module" type="text" value="" /></dd>
  23. <dt>图标</dt>
  24. <dd><input name="icon" type="text" value="" /></dd>
  25. <dt>类型</dt>
  26. <dd>
  27. <label>
  28. <input id="nav" name="type" type="radio" value="nav" checked="checked" /> 显示
  29. </label>
  30. <label>
  31. <input id="auth" name="type" type="radio" value="auth" /> 不显示
  32. </label>
  33. </dd>
  34. <dt>排序</dt>
  35. <dd>
  36. <input name="sort_order" type="text" value="" />
  37. </dd>
  38. </dl>
  39. </div>
  40. </div>
  41. @endsection
  42. @section('javascript')
  43. <script src="/static/ztree/jquery.ztree.all-3.5.min.js"></script>
  44. <link rel="stylesheet" type="text/css" href="/static/ztree/zTreeStyle.css" />
  45. <link rel="stylesheet" type="text/css" href="/static/ztree/tree.css" />
  46. <script type="text/javascript">
  47. var setting = {
  48. view: {
  49. addHoverDom: false,
  50. removeHoverDom: false,
  51. selectedMulti: false
  52. },
  53. edit: {
  54. enable: true,
  55. editNameSelectAll: true,
  56. showRemoveBtn: false,
  57. showRenameBtn: false
  58. },
  59. data: {
  60. simpleData: {
  61. enable: true
  62. }
  63. }
  64. };
  65. <?php echo 'var zNodes = '.$list.';'; ?>
  66. /* 保存 */
  67. function save(type) {
  68. var zTree = $.fn.zTree.getZTreeObj("category_tree"),nodes = zTree.getSelectedNodes(),treeNode = nodes[0];
  69. var isp = treeNode != undefined ? nodes[0].isParent : true;
  70. var id = (treeNode == undefined ? 0 : treeNode.id);
  71. var url = type == 'add' ? "{{url('admin/menu/add')}}" : "{{url('admin/menu/edit')}}";
  72. var data = {
  73. 'id': id,
  74. 'title': $("input[name='title']").val(),
  75. 'url': $("input[name='url']").val(),
  76. 'sort_order': $("input[name='sort_order']").val(),
  77. 'module': $("input[name='module']").val(),
  78. 'icon': $("input[name='icon']").val(),
  79. 'type': $("input[name='type']:checked").val(),
  80. '_token':'{{ csrf_token() }}'
  81. };
  82. // 发送短信
  83. $.ajax({
  84. type: 'post',
  85. url: url,
  86. data: data,
  87. dataType: 'json',
  88. success: function(d) {
  89. console.log(1);
  90. // 如果是添加
  91. if(type == 'add') {
  92. // 如果是错误
  93. if( d.error ) return alert(d.error);
  94. // 如果是成功
  95. if( d.success ){
  96. //是否有父节点
  97. treeNode = treeNode ? zTree.addNodes(treeNode,{id: d.id,pId:id,isParent:isp,name:d.name}) : zTree.addNodes(treeNode,{id: d.id,pId:0,isParent:isp,name:d.name});
  98. // 关闭弹窗
  99. close_artDialog();
  100. }
  101. }
  102. if(type == 'edit') {
  103. // 错误提示
  104. if(d.error) return alert(d.error);
  105. // 如果是成功
  106. if( d.success ){
  107. nodes[0].name = d.name;
  108. zTree.updateNode(nodes[0]);
  109. // 关闭弹窗
  110. close_artDialog();
  111. }
  112. }
  113. },
  114. error: function(data) {
  115. console.log(data);
  116. // return alert(data.responseJSON.message);
  117. }
  118. });
  119. }
  120. /* 新增 */
  121. function add(e) {
  122. var dialog = $('#dialog').html();
  123. var title = '新增菜单';
  124. art.dialog({
  125. title: title,
  126. content: dialog,
  127. lock: true,
  128. ok: function() {
  129. save('add');
  130. return false;
  131. },
  132. cancelVal: '关闭',
  133. cancel: true
  134. });
  135. }
  136. /* 编辑 */
  137. function edit() {
  138. var zTree = $.fn.zTree.getZTreeObj("category_tree"),
  139. nodes = zTree.getSelectedNodes(),
  140. treeNode = nodes[0];
  141. if(nodes.length == 0) {
  142. alert("请先选择一个节点");
  143. return;
  144. } else {
  145. var id = treeNode.id;
  146. $.post(
  147. "{{url('admin/menu/get_info')}}", {
  148. 'id': id,
  149. '_token':'{{ csrf_token() }}'
  150. },
  151. function(d) {
  152. $("input[name='title']").val(d.title);
  153. $("input[name='url']").val(d.url);
  154. $("input[name='sort_order']").val(d.sort_order);
  155. $("input[name='module']").val(d.module);
  156. $("input[name='icon']").val(d.icon);
  157. if(d.type == 'nav') {
  158. $("#nav").attr("checked", "checked");
  159. } else if(d.type == 'auth') {
  160. $("#auth").attr("checked", "checked");
  161. }
  162. }
  163. );
  164. }
  165. var dialog = $('#dialog').html();
  166. var title = '修改菜单';
  167. art.dialog({
  168. title: title,
  169. content: dialog,
  170. lock: true,
  171. ok: function() {
  172. save('edit');
  173. return false;
  174. },
  175. cancelVal: '关闭',
  176. cancel: true
  177. });
  178. }
  179. /* 删除 */
  180. function remove(e) {
  181. if(!confirm('确认要删除吗!!')) {
  182. return false;
  183. }
  184. var zTree = $.fn.zTree.getZTreeObj("category_tree"),
  185. nodes = zTree.getSelectedNodes(),
  186. treeNode = nodes[0];
  187. if(nodes.length == 0) {
  188. alert("请先选择一个节点");
  189. return;
  190. }
  191. $.post(
  192. "{{url('admin/menu/del')}}", {
  193. 'id': treeNode.id,
  194. '_token':'{{ csrf_token() }}'
  195. },
  196. function(d) {
  197. if(d.error) {
  198. alert(d.error);
  199. } else {
  200. zTree.removeNode(treeNode);
  201. }
  202. }
  203. );
  204. }
  205. $(document).ready(function() {
  206. $.fn.zTree.init($("#category_tree"), setting, zNodes);
  207. $("#addParent").bind("click", {
  208. isParent: true
  209. }, add);
  210. $("#edit").bind("click", edit);
  211. $("#remove").bind("click", remove);
  212. });
  213. </script>
  214. @endsection