navigation.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. {extend name="public/container"}
  2. {block name="content"}
  3. <div class="layui-fluid">
  4. <div class="layui-row layui-col-space15" id="app">
  5. <!--产品列表-->
  6. <div class="layui-col-md12">
  7. <div class="layui-card">
  8. <div class="layui-card-header">
  9. <div style="font-weight: bold;">导航配置</div>
  10. </div>
  11. <div class="layui-card-body">
  12. <div class="layui-btn-group">
  13. <button type="button" class="layui-btn layui-btn-normal layui-btn-sm" onclick="$eb.createModalFrame('添加固定跳转导航','{:Url('create_recemmend')}',{w:800,h:500})"><i class="layui-icon">&#xe608;</i> 添加固定跳转导航</button>
  14. <button type="button" class="layui-btn layui-btn-normal layui-btn-sm" onclick="$eb.createModalFrame('添加自定义跳转导航','{:Url('create_recemmend_custom')}')"><i class="layui-icon">&#xe608;</i> 添加自定义跳转导航</button>
  15. </div>
  16. <table id="List" lay-filter="List"></table>
  17. <script type="text/html" id="icon">
  18. {{# if(d.icon) { }}
  19. <img lay-event='open_image' src="{{d.icon}}" height="50">
  20. {{# } }}
  21. </script>
  22. <script type="text/html" id="is_show">
  23. <input type='checkbox' name='id' lay-skin='switch' value="{{d.id}}" lay-filter='is_show' lay-text='显示|隐藏' {{ d.is_show == 1 ? 'checked' : '' }}>
  24. </script>
  25. <script type="text/html" id="act">
  26. <button type="button" class="layui-btn layui-btn-xs layui-btn-normal" onclick="dropdown(this)"><i class="layui-icon">&#xe625;</i> 操作</button>
  27. <ul class="layui-nav-child layui-anim layui-anim-upbit">
  28. {{# if(d.type == 3) { }}
  29. <li>
  30. <div onclick="$eb.createModalFrame('{{d.title}}-'+this.innerText,'{:Url('create_recemmend_custom')}?id={{d.id}}')">
  31. <i class="fa fa-paste"></i> 编辑
  32. </div>
  33. </li>
  34. {{# }else{ }}
  35. <li>
  36. <div onclick="$eb.createModalFrame('{{d.title}}-'+this.innerText,'{:Url('create_recemmend')}?id={{d.id}}',{h:480})">
  37. <i class="fa fa-paste"></i> 编辑
  38. </div>
  39. </li>
  40. {{# } }}
  41. <li>
  42. <a href="javascript:;" onclick="$eb.createModalFrame('{{d.title}}-'+this.innerText,'{:Url('recemmend_content')}?id={{d.id}}')">
  43. <i class="fa fa-list-ul"></i> 内容管理
  44. </a>
  45. </li>
  46. <li>
  47. <div onclick="$eb.createModalFrame(this.innerText,'{:Url('recemmend_banner')}?id={{d.id}}',{w:900})">
  48. <i class="fa fa-file-image-o"></i> Banner
  49. </div>
  50. </li>
  51. <li>
  52. <div lay-event='delete'>
  53. <i class="fa fa-trash"></i> 删除
  54. </div>
  55. </li>
  56. </ul>
  57. </script>
  58. </div>
  59. </div>
  60. </div>
  61. </div>
  62. </div>
  63. {/block}
  64. {block name="script"}
  65. <script src="{__ADMIN_PATH}js/layuiList.js"></script>
  66. <script>
  67. //实例化form
  68. layList.form.render();
  69. //加载列表
  70. layList.tableList('List',"{:Url('recommend_list',['is_fixed' => 1])}",function (){
  71. return [
  72. {field: 'title', title: '导航名称',edit:'title',align:'center'},
  73. {field: 'type_ting', title: '列表模式',align:'center'},
  74. {field: 'type_name', title: '导航类型',align:'center'},
  75. {field: 'icon', title: '图标',templet:'#icon',align:'center'},
  76. {field: 'sort', title: '排序',sort: true,event:'sort',edit:'sort',align:'center'},
  77. {field: 'grade_title', title: '一级分类名称',align:'center'},
  78. {field: 'number', title: '数量',align:'center'},
  79. {field: 'is_show', title: '状态',templet:'#is_show',align:'center'},
  80. {field: 'right', title: '操作',align:'center',toolbar:'#act'},
  81. ];
  82. });
  83. //自定义方法
  84. var action= {
  85. set_value: function (field, id, value) {
  86. layList.baseGet(layList.Url({
  87. a: 'set_value',
  88. q: {field: field, id: id, value: value}
  89. }), function (res) {
  90. layList.msg(res.msg);
  91. });
  92. },
  93. }
  94. layList.switch('is_show',function (odj,value) {
  95. if(odj.elem.checked==true){
  96. layList.baseGet(layList.Url({a:'set_show',p:{is_show:1,id:value}}),function (res) {
  97. layList.msg(res.msg);
  98. });
  99. }else{
  100. layList.baseGet(layList.Url({a:'set_show',p:{is_show:0,id:value}}),function (res) {
  101. layList.msg(res.msg);
  102. });
  103. }
  104. });
  105. //快速编辑
  106. layList.edit(function (obj) {
  107. var id=obj.data.id,value=obj.value;
  108. switch (obj.field) {
  109. case 'title':
  110. action.set_value('title',id,value);
  111. break;
  112. case 'sort':
  113. action.set_value('sort',id,value);
  114. break;
  115. }
  116. });
  117. //下拉框
  118. $(document).click(function (e) {
  119. $('.layui-nav-child').hide();
  120. })
  121. function dropdown(that){
  122. var oEvent = arguments.callee.caller.arguments[0] || event;
  123. oEvent.stopPropagation();
  124. var offset = $(that).offset();
  125. var top=offset.top-$(window).scrollTop();
  126. var index = $(that).parents('tr').data('index');
  127. $('.layui-nav-child').each(function (key) {
  128. if (key != index) {
  129. $(this).hide();
  130. }
  131. })
  132. if($(document).height() < top+$(that).next('ul').height()){
  133. $(that).next('ul').css({
  134. 'padding': 10,
  135. 'top': - ($(that).parent('td').height() / 2 + $(that).height() + $(that).next('ul').height()/2),
  136. 'min-width': 'inherit',
  137. 'position': 'absolute'
  138. }).toggle();
  139. }else{
  140. $(that).next('ul').css({
  141. 'padding': 10,
  142. 'top':$(that).parent('td').height() / 2 + $(that).height(),
  143. 'min-width': 'inherit',
  144. 'position': 'absolute'
  145. }).toggle();
  146. }
  147. }
  148. //监听并执行排序
  149. layList.sort(['sort'],true);
  150. //点击事件绑定
  151. layList.tool(function (event,data,obj) {
  152. switch (event) {
  153. case 'delete':
  154. var url=layList.U({a:'delete_recomm',q:{id:data.id}});
  155. $eb.$swal('delete',function(){
  156. $eb.axios.get(url).then(function(res){
  157. if(res.status == 200 && res.data.code == 200) {
  158. $eb.$swal('success',res.data.msg);
  159. obj.del();
  160. }else
  161. return Promise.reject(res.data.msg || '删除失败')
  162. }).catch(function(err){
  163. $eb.$swal('error',err);
  164. });
  165. })
  166. break;
  167. case 'open_image':
  168. $eb.openImage(data.image);
  169. break;
  170. }
  171. })
  172. </script>
  173. {/block}