TP5.1 layui 分类二级列表(同页显示)



控制器代码

	/**
	 * 类别列表
	 */
    public function category(){
    	
		$sotitle=input('sotitle');

		$sotype=input('sotype');
		$limit=input('limit');
		$limit=$limit?$limit:10;
		$this->assign('sotype',$sotype);
		$this->assign('sotitle',$sotitle);
		$this->assign('limit',$limit);

			
			if($sotitle){
				//模糊查询
			    if($sotype=="title" || $sotype==""){
			        $where = [  
			                ['title', 'like', "%".$sotitle."%"],  
			            ]; 
			    }else{  
			            $where[$sotype] = $sotitle;
			    }  
			  
			}else{
				$where['level'] = 1;
			}
			
		 
			
         $rs=Db::name('product_category')->where($where)->order(['sort'=>'desc'])->paginate($limit,false,['query' => request()->param()]);

			//$rs = Db::name('product_category')->where('level',1)->order('sort desc')->select();  
			$data="";  
			foreach($rs as $k => $v){  
			                //2级  
			                $res2 = Db::name('product_category')->where("pid=".$v['id'])->select();  
			                $data2="";  
			                foreach($res2 as $k2 => $v2){  
			                    $data2[$k2]['id']=$v2['id'];  
			                    $data2[$k2]['title']=$v2['title'];  
								$data2[$k2]['sort']=$v2['sort'];
								$data2[$k2]['level']=$v2['level'];
								$data2[$k2]['time']=$v2['time'];
								//$data2[$k2]['title']=$v2['title'];
			                    $data2[$k2]['child']=$v2['title'];                                 
			                }  
			      
			    $data[$k]['id']=$v['id'];  
			    $data[$k]['title']=$v['title'];  
				$data[$k]['sort']=$v['sort'];
				$data[$k]['level']=$v['level'];
				$data[$k]['time']=$v['time'];
			    $data[$k]['child']=$data2;  
			      
			}  
		    $this->assign('name',$data); 
			
			
		$page = $rs->render();			
		$this->assign('page', $page);
		$this->assign('rs',$rs);
        return $this->fetch('category');
    }

模板:

<!DOCTYPE html>
<html>				
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <title>产品管理</title>
	<link rel="stylesheet" href="__STATIC__/layui/css/layui.css" media="all">
	<script src="__STATIC__/layui/layui.js"></script>
	<link rel="stylesheet" href="__ADMIN__/css/index.css" media="all">

</head>
<body style="background-color: #FFFFFF;">
<!-- 你的HTML代码 -->
<!-- 表格 -->
<div class="layui-fluid">
<form action="{:url('category')}" method="post" style="margin-top: 20px;">
	  <div class="layui-inline">
        	<input class="layui-input" name="limit" style="width: 50px;" placeholder="行数" value="{empty name="limit"}10{else /}{$limit}{/empty}" >
        </div>
       <div class="layui-inline layui-form">
          <select name="sotype" lay-search>
               <option value="">请选择搜索类型</option>
               <option value="title" {if  $sotype == "title" }selected {/if}>标题</option>
          </select>
        </div>
        <div class="layui-inline">
        	<input class="layui-input" name="sotitle" value="{$sotitle}">
        </div>

        <button class="layui-btn" id="sear" data-type="reload">搜索</button>
</form>
<div class="layui-btn-group demoTable" style="margin-top: 10px;">
  <button id="add" class="layui-btn layui-btn-normal"><i class="layui-icon"></i>添加</button>
  <button class="layui-btn" data-type="delAll">批量删除</button>
</div>
  <table lay-filter="demo" lay-data="{id:'idTest'}">
  <thead>
    <tr>
      <th lay-data="{field:'id',type:'checkbox'}"></th>
      <th lay-data="{field:'id', width:70}">ID</th>
      <th lay-data="{field:'sort', width:70}">排序</th>
      <th lay-data="{field:'title'}">标题</th>
      <th lay-data="{field:'level', width:60}">层次</th>
      <th lay-data="{field:'time', width:180}">添加时间</th>
      <th lay-data="{fixed: 'right', width:120, align:'center', toolbar: '#barDemo'}">操作</th>
    </tr>
  </thead>
  <tbody>
 {volist name="name" id="vo"}  
        <tr>
		      <td>{$vo.id}</td>
		      <td>{$vo.id}</td>
		      <td>{$vo.sort}</td>
		      <td>{$vo.title}</td>
		      <td>{$vo.level}</td>
		      <td>{$vo.time}</td>
		    </tr>
		    {volist name="vo.child" id="vo2"} 
				        <tr>
						      <td>{$vo2.id}</td>
						      <td></td>
						      <td></td>
						      <td>—— ——{$vo2.title}</td>
						      <td>{$vo2.level}</td>
						      <td>{$vo2.time}</td>
						    </tr>
		    {/volist} 
 {/volist} 
  </tbody>
</table>
<div >
{$page|raw}
</div>
<script type="text/html" id="barDemo">
  <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
  <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del" οnclick="{:url('del',array('id'=>$admin['id']))}')">删除</a>
</script>
</div>
<!-- 表格end -->
<script>
layui.use(['layer', 'form','element','jquery','layer','table'], function(){
      var layer = layui.layer
      ,form = layui.form
      ,element = layui.element
      ,$= layui.$
      ,table=layui.table;

      //转换静态表格
      table.init('demo', {
        height: '' //设置高度
        ,limit: 10 //注意:请务必确保 limit 参数(默认:10)是与你服务端限定的数据条数一致
        //支持所有基础参数
      });

  //监听工具条
  table.on('tool(demo)', function(obj){
    var data = obj.data;
 
    if(obj.event === 'edit'){
      //layer.alert('编辑行:<br>'+ JSON.stringify(data))
					layer.ready(function(){
						  layer.open({
							type: 2,
							title: '编辑',
							maxmin: false,
							area: ['80%', '70%'],
							content: '{:url('category_edit')}?id='+data.id,
							cancel: function(){ //刷新网页
								  //table.reload('idTest');//重新加载表格数据
								  self.location='{:url('index')}';
							  }
						  });
					});
    } else if(obj.event === 'del'){
			 layer.confirm('真的删除行么', function(index){
					obj.del();
					id= data.id;
					layer.close(index);
						 $.ajax({
								url:'{:url('category_del')}',
								type:"post",
								data:{id:id},
								async:true,
								success:function(data){
								     if(data[0]==1){
									    layer.msg('成功!');
										 // table.reload('idTest');//重新加载表格数据
										  table.render({});//重新渲染
									}else{
										layer.msg('失败!'+data[1]); 
										table.render({});//重新渲染
									}
								},
								error:function(){
								  layer.msg('页面跳转失败!');
								}
						});
			  });
    }
  });

  var $ = layui.$, active = {
    delAll: function(){ //批量删除
      var checkStatus = table.checkStatus('idTest')
	  var dataall='';
	  data = checkStatus.data;
	  //循环把所有要删除的ID整成12,13,545
	  for(var i=0;i<checkStatus.data.length;i++){
			 dataall += data[i].id+",";
		}
		dataall=dataall.substring(0,dataall.length-1)
		 //layer.alert(dataall);
			 layer.confirm('真的删除行么', function(index){
					//obj.del();
					//id= data.id;
					layer.close(index);
						 $.ajax({
								url:'{:url('category_del')}',
								type:"post",
								data:{id:dataall},
								async:true,
								success:function(data){
								     if(data[0]==1){
									    layer.msg('成功!');
                      self.location='{:url('index')}';
									}else{
										layer.msg('失败!'+data[1]);
										 //table.render({});//重新渲染
									}
								},
								error:function(){
								  layer.msg('页面跳转失败!');
								}
						});
			  });

    }
    ,getCheckData: function(){ //获取选中数据
      var checkStatus = table.checkStatus('idTest')
      ,data = checkStatus.data;
      layer.alert(JSON.stringify(data));
    }
    ,getCheckLength: function(){ //获取选中数目
      var checkStatus = table.checkStatus('idTest')
      ,data = checkStatus.data;
      layer.msg('选中了:'+ data.length + ' 个');
    }
    ,isAll: function(){ //验证是否全选
      var checkStatus = table.checkStatus('idTest');
      layer.msg(checkStatus.isAll ? '全选': '未全选')
    }
  };

  $('.demoTable .layui-btn').on('click', function(){
    var type = $(this).data('type');
    active[type] ? active[type].call(this) : '';
  });
	 //“方法级渲染”配置方式
	table.render({ //其它参数在此省略
	  skin: 'line' //行边框风格
	  ,even: true //开启隔行背景
	  ,size: 'sm' //小尺寸的表格
	});
 		//增加
		$('#add').on('click', function(){
			layer.ready(function(){
				  layer.open({
					type: 2,
					title: '增加',
					maxmin: true,
					area: ['80%', '70%'],
					content: '{:url('category_add')}',
					cancel: function(){ //刷新网页
					      //重新加载表格数据
								self.location='{:url('category')}';
					  }
				  });
			});
		});

});
</script>

</body>
</html>

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值