8dedc6b6698db05f257cc8abd7f83555.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. <?php /*a:5:{s:74:"D:\phpstudy_pro\WWW\newQudou\app\admin\view\store\store_category\index.php";i:1595820902;s:64:"D:\phpstudy_pro\WWW\newQudou\app\admin\view\public\container.php";i:1595820902;s:65:"D:\phpstudy_pro\WWW\newQudou\app\admin\view\public\frame_head.php";i:1595820902;s:60:"D:\phpstudy_pro\WWW\newQudou\app\admin\view\public\style.php";i:1595820902;s:67:"D:\phpstudy_pro\WWW\newQudou\app\admin\view\public\frame_footer.php";i:1595820902;}*/ ?>
  2. <!DOCTYPE html>
  3. <html lang="zh-CN">
  4. <head>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <?php if(empty($is_layui) || (($is_layui instanceof \think\Collection || $is_layui instanceof \think\Paginator ) && $is_layui->isEmpty())): ?>
  8. <link href="/system/frame/css/bootstrap.min.css?v=3.4.0" rel="stylesheet">
  9. <?php endif; ?>
  10. <link href="/static/plug/layui/css/layui.css" rel="stylesheet">
  11. <link href="/system/css/layui-admin.css" rel="stylesheet">
  12. <link href="/system/frame/css/font-awesome.min.css?v=4.3.0" rel="stylesheet">
  13. <link href="/system/frame/css/animate.min.css" rel="stylesheet">
  14. <link href="/system/frame/css/style.min.css?v=3.0.0" rel="stylesheet">
  15. <script src="/system/frame/js/jquery.min.js"></script>
  16. <script src="/system/frame/js/bootstrap.min.js"></script>
  17. <script src="/static/plug/layui/layui.all.js"></script>
  18. <script>
  19. $eb = parent._mpApi;
  20. window.controlle="<?php echo strtolower(trim(preg_replace("/[A-Z]/", "_\\0", app('request')->controller()), "_"));?>";
  21. window.module="<?php echo app('http')->getName();?>";
  22. </script>
  23. <title></title>
  24. <!--<script type="text/javascript" src="/static/plug/basket.js"></script>-->
  25. <script type="text/javascript" src="/static/plug/requirejs/require.js"></script>
  26. <?php /* <script type="text/javascript" src="/static/plug/requirejs/require-basket-load.js"></script> */ ?>
  27. <script>
  28. var hostname = location.hostname;
  29. if(location.port) hostname += ':' + location.port;
  30. requirejs.config({
  31. map: {
  32. '*': {
  33. 'css': '/static/plug/requirejs/require-css.js'
  34. }
  35. },
  36. shim:{
  37. 'iview':{
  38. deps:['css!iviewcss']
  39. },
  40. 'layer':{
  41. deps:['css!layercss']
  42. }
  43. },
  44. baseUrl:'//'+hostname+'/',
  45. paths: {
  46. 'static':'static',
  47. 'system':'system',
  48. 'vue':'static/plug/vue/dist/vue.min',
  49. 'axios':'static/plug/axios.min',
  50. 'iview':'static/plug/iview/dist/iview.min',
  51. 'iviewcss':'static/plug/iview/dist/styles/iview',
  52. 'lodash':'static/plug/lodash',
  53. 'layer':'static/plug/layer/layer',
  54. 'layercss':'static/plug/layer/theme/default/layer',
  55. 'jquery':'static/plug/jquery/jquery.min',
  56. 'moment':'static/plug/moment',
  57. 'sweetalert':'static/plug/sweetalert2/sweetalert2.all.min',
  58. 'formCreate':'/static/plug/form-create/form-create.min',
  59. },
  60. basket: {
  61. excludes:['system/js/index','system/util/mpVueComponent','system/util/mpVuePackage']
  62. // excludes:['system/util/mpFormBuilder','system/js/index','system/util/mpVueComponent','system/util/mpVuePackage']
  63. }
  64. });
  65. </script>
  66. <script type="text/javascript" src="/system/util/mpFrame.js"></script>
  67. </head>
  68. <body class="gray-bg">
  69. <div class="wrapper wrapper-content">
  70. <div class="layui-fluid">
  71. <div class="layui-row layui-col-space15" id="app">
  72. <div class="layui-col-md12">
  73. <div class="layui-card">
  74. <div class="layui-card-header">搜索条件</div>
  75. <div class="layui-card-body">
  76. <form class="layui-form layui-form-pane" action="">
  77. <div class="layui-form-item">
  78. <div class="layui-inline">
  79. <label class="layui-form-label">所有分类</label>
  80. <div class="layui-input-block">
  81. <select name="is_show">
  82. <option value="">是否显示</option>
  83. <option value="1">显示</option>
  84. <option value="0">不显示</option>
  85. </select>
  86. </div>
  87. </div>
  88. <div class="layui-inline">
  89. <label class="layui-form-label">所有分类</label>
  90. <div class="layui-input-block">
  91. <select name="pid">
  92. <option value="">所有菜单</option>
  93. <?php if(is_array($cate) || $cate instanceof \think\Collection || $cate instanceof \think\Paginator): $i = 0; $__LIST__ = $cate;if( count($__LIST__)==0 ) : echo "" ;else: foreach($__LIST__ as $key=>$vo): $mod = ($i % 2 );++$i;?>
  94. <option value="<?php echo htmlentities($vo['id']); ?>"><?php echo htmlentities($vo['html']); ?><?php echo htmlentities($vo['cate_name']); ?></option>
  95. <?php endforeach; endif; else: echo "" ;endif; ?>
  96. </select>
  97. </div>
  98. </div>
  99. <div class="layui-inline">
  100. <label class="layui-form-label">产品名称</label>
  101. <div class="layui-input-block">
  102. <input type="text" name="cate_name" class="layui-input" placeholder="请输入分类名称">
  103. </div>
  104. </div>
  105. <div class="layui-inline">
  106. <div class="layui-input-inline">
  107. <button class="layui-btn layui-btn-sm layui-btn-normal" lay-submit="search" lay-filter="search">
  108. <i class="layui-icon layui-icon-search"></i>搜索</button>
  109. </div>
  110. </div>
  111. </div>
  112. </form>
  113. </div>
  114. </div>
  115. </div>
  116. <!--产品列表-->
  117. <div class="layui-col-md12">
  118. <div class="layui-card">
  119. <div class="layui-card-header">分类列表</div>
  120. <div class="layui-card-body">
  121. <div class="alert alert-info" role="alert">
  122. 注:点击父级名称可查看子集分类,点击分页首页可返回顶级分类;分类名称和排序可进行快速编辑;
  123. <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  124. </div>
  125. <div class="layui-btn-container">
  126. <a class="layui-btn layui-btn-sm" href="<?php echo Url('index'); ?>">分类首页</a>
  127. <button type="button" class="layui-btn layui-btn-sm" onclick="$eb.createModalFrame(this.innerText,'<?php echo Url('create'); ?>')">添加分类</button>
  128. </div>
  129. <table class="layui-hide" id="List" lay-filter="List"></table>
  130. <script type="text/html" id="pic">
  131. {{# if(d.pic){ }}
  132. <img style="cursor: pointer" lay-event='open_image' src="{{d.pic}}">
  133. {{# }else{ }}
  134. 暂无图片
  135. {{# } }}
  136. </script>
  137. <script type="text/html" id="is_show">
  138. <input type='checkbox' name='id' lay-skin='switch' value="{{d.id}}" lay-filter='is_show' lay-text='显|隐' {{ d.is_show == 1 ? 'checked' : '' }}>
  139. </script>
  140. <script type="text/html" id="pid">
  141. <a href="<?php echo Url('index'); ?>?pid={{d.id}}">查看</a>
  142. </script>
  143. <script type="text/html" id="act">
  144. <button class="layui-btn layui-btn-xs" onclick="$eb.createModalFrame('编辑','<?php echo Url('edit'); ?>?id={{d.id}}')">
  145. <i class="fa fa-edit"></i> 编辑
  146. </button>
  147. <button class="layui-btn btn-danger layui-btn-xs" lay-event='delstor'>
  148. <i class="fa fa-times"></i> 删除
  149. </button>
  150. </script>
  151. </div>
  152. </div>
  153. </div>
  154. </div>
  155. </div>
  156. <script src="/system/js/layuiList.js"></script>
  157. <script>
  158. setTimeout(function () {
  159. $('.alert-info').hide();
  160. },3000);
  161. //实例化form
  162. layList.form.render();
  163. //加载列表
  164. layList.tableList('List',"<?php echo Url('category_list',['pid'=>$pid]); ?>",function (){
  165. return [
  166. {field: 'id', title: 'ID', sort: true,event:'id',width:'4%',align:'center'},
  167. {field: 'pid_name', title: '父级',align:'center'},
  168. {field: 'cate_name', title: '分类名称',edit:'cate_name',align:'center'},
  169. {field: 'pid', title: '查看子分类',templet:'#pid',align:'center',width:'8%'},
  170. {field: 'pic', title: '分类图标',templet:'#pic',align:'center'},
  171. {field: 'sort', title: '排序',sort: true,event:'sort',edit:'sort',width:'8%',align:'center'},
  172. {field: 'is_show', title: '状态',templet:'#is_show',width:'10%',align:'center'},
  173. {field: 'right', title: '操作',align:'center',toolbar:'#act',width:'10%',align:'center'},
  174. ];
  175. });
  176. //自定义方法
  177. var action= {
  178. set_category: function (field, id, value) {
  179. layList.baseGet(layList.Url({
  180. c: 'store.store_category',
  181. a: 'set_category',
  182. q: {field: field, id: id, value: value}
  183. }), function (res) {
  184. layList.msg(res.msg);
  185. });
  186. },
  187. }
  188. //查询
  189. layList.search('search',function(where){
  190. layList.reload(where,true);
  191. });
  192. layList.switch('is_show',function (odj,value) {
  193. if(odj.elem.checked==true){
  194. layList.baseGet(layList.Url({c:'store.store_category',a:'set_show',p:{is_show:1,id:value}}),function (res) {
  195. layList.msg(res.msg);
  196. });
  197. }else{
  198. layList.baseGet(layList.Url({c:'store.store_category',a:'set_show',p:{is_show:0,id:value}}),function (res) {
  199. layList.msg(res.msg);
  200. });
  201. }
  202. });
  203. //快速编辑
  204. layList.edit(function (obj) {
  205. var id=obj.data.id,value=obj.value;
  206. switch (obj.field) {
  207. case 'cate_name':
  208. action.set_category('cate_name',id,value);
  209. break;
  210. case 'sort':
  211. action.set_category('sort',id,value);
  212. break;
  213. }
  214. });
  215. //监听并执行排序
  216. layList.sort(['id','sort'],true);
  217. //点击事件绑定
  218. layList.tool(function (event,data,obj) {
  219. switch (event) {
  220. case 'delstor':
  221. var url=layList.U({c:'store.store_category',a:'delete',q:{id:data.id}});
  222. $eb.$swal('delete',function(){
  223. $eb.axios.get(url).then(function(res){
  224. if(res.status == 200 && res.data.code == 200) {
  225. $eb.$swal('success',res.data.msg);
  226. obj.del();
  227. }else
  228. return Promise.reject(res.data.msg || '删除失败')
  229. }).catch(function(err){
  230. $eb.$swal('error',err);
  231. });
  232. })
  233. break;
  234. case 'open_image':
  235. $eb.openImage(data.pic);
  236. break;
  237. }
  238. })
  239. </script>
  240. </div>
  241. </body>
  242. </html>