权限管理操作

Original 2019-06-06 17:06:20 216
abstract:<?php namespace app\admins\controller; use think\Controller; use Util\SysDb; class Menu extends Base{ public function index(){ $pid = (int)inpu
<?php
namespace app\admins\controller;
use think\Controller;
use Util\SysDb;

class Menu extends Base{
	public function index(){
		$pid = (int)input('get.pid');
		$where['pid'] = $pid;
		// 加载菜单列表
		$data['lists'] = $this->db->table('admin_menus')->where($where)->lists();
		$data['pid'] = $pid;

		// 子菜单
		if($pid>0){
			$parent = $this->db->table('admin_menus')->where(array('mid'=>$pid))->item();
			$data['backid'] = $parent['pid'];
		}
		return $this->fetch('',$data);
	}

	// 添加、编辑菜单
	public function add(){
		$pid = (int)input('get.pid');
		$mid = (int)input('get.mid');
		$data['parent_menu'] = $this->db->table('admin_menus')->where(array('mid'=>$pid))->item();
		$data['menu'] = $this->db->table('admin_menus')->where(array('mid'=>$mid))->item();
		return $this->fetch('',$data);
	}

	// 保存菜单
	public function save(){
		$mid = (int)input('post.mid');
		$data['pid'] = (int)input('post.pid');
		$data['title'] = trim(input('post.title'));
		$data['controller'] = trim(input('post.controller'));
		$data['method'] = trim(input('post.method'));
		$data['ord'] = (int)input('post.ord');
		$data['ishidden'] = (int)input('post.ishidden');
		$data['status'] = (int)input('post.status');
 		
 		if($data['title'] == ''){
 			exit(json_encode(array('code'=>1,'msg'=>'菜单名称不能为空')));
 		}

 		if($data['pid']>0 && $data['controller'] == ''){
 			exit(json_encode(array('code'=>1,'msg'=>'控制器名称不能为空')));
 		}
 		if($data['pid']>0 && $data['method'] == ''){
 			exit(json_encode(array('code'=>1,'msg'=>'方法名称不能为空')));
 		}

 		if($mid){
 			$res = $this->db->table('admin_menus')->where(array('mid'=>$mid))->update($data);
 		}else{
 			$res = $this->db->table('admin_menus')->insert($data);
 		}

 		if(!$res){
 			exit(json_encode(array('code'=>1,'msg'=>'保存失败')));
 		}
 		exit(json_encode(array('code'=>0,'msg'=>'保存成功')));
	}


	// 删除菜单
	public function delete(){
		$mid = (int)input('post.mid');
		$res = $this->db->table('admin_menus')->where(array('mid'=>$mid))->delete();
		if(!$res){
			exit(json_encode(array('code'=>1,'msg'=>'删除失败')));
		}
		exit(json_encode(array('code'=>0,'msg'=>'删除成功')));
	}

}
<!DOCTYPE html>
<html>
<head>
	<title></title>
	<link rel="stylesheet" type="text/css" href="/static/plugins/layui/css/layui.css">
	<script type="text/javascript" src="/static/plugins/layui/layui.js"></script>
	<style type="text/css">
		.header span{background: #009688;margin-left: 30px;padding: 10px;color: #ffffff;}
		.header button{float: right;margin-top: -5px;}
		.header div{border-bottom: solid 2px #009688;margin-top: 8px;}
	</style>
</head>
<body style="padding: 10px;">
	<input type="hidden" id="pid" value="{$pid}">
	<div class="header">
		<span>菜单列表</span>
		<button class="layui-btn layui-btn-sm" onclick="add()">添加</button>
		<div></div>
	</div>
	<?php if($pid>0){?>
	<button class="layui-btn layui-btn-primary layui-btn-sm" style="float: right;margin-top: 5px;margin-bottom: 5px;" onclick="backs({$backid})">返回上级菜单</button>
	<?php }?>
	<table class="layui-table">
		<thead>
			<tr>
				<th>ID</th>
				<th>排序</th>
				<th>菜单名称</th>
				<th>控制器</th>
				<th>方法</th>
				<th>是否隐藏</th>
				<th>状态</th>
				<th>操作</th>
			</tr>
		</thead>
		<tbody>
			{volist name='$lists' id="vo"}
			<tr>
				<td>{$vo.mid}</td>
				<td>{$vo.ord}</td>
				<td>{$vo.title}</td>
				<td>{$vo.controller}</td>
				<td>{$vo.method}</td>
				<td>{$vo.ishidden==1?'隐藏':'显示'}</td>
				<td>{$vo.status==1?'禁用':'正常'}</td>
				<td>
					<button class="layui-btn layui-btn-xs" onclick="childs({$vo.mid})">子菜单</button>
					<button class="layui-btn layui-btn-warm layui-btn-xs" onclick="add({$vo.mid})">编辑</button>
					<button class="layui-btn layui-btn-danger layui-btn-xs" onclick="del({$vo.mid})">删除</button>
				</td>
			</tr>
			{/volist}
		</tbody>
	</table>
</body>
</html>
<script type="text/javascript">
	layui.use(['layer'],function(){
		layer = layui.layer;
		$ = layui.jquery;
	});

	// 添加
	function add(mid){
		var pid = $('#pid').val();
		layer.open({
			type:2,
			title:mid>0?'编辑菜单':'添加菜单',
			shade:0.3,
			area:['480px','420px'],
			content:'/index.php/admins/menu/add?mid='+mid+'&pid='+pid
		});
	}

	// 删除
	function del(mid){
		layer.confirm('确定要删除吗?',{
			icon:3,
			btn:['确定','取消']
		},function(){
			$.post('/index.php/admins/menu/delete',{'mid':mid},function(res){
				if(res.code>0){
					layer.alert(res.msg,{'icon':2});
				}else{
					layer.msg(res.msg,{'icon':1});
					setTimeout(function(){window.location.reload();},1000);
				}
			},'json');
		});
	}

	// 子菜单
	function childs(mid){
		window.location.href = '?pid='+mid;
	}

	// 返回上级菜单
	function backs(pid){
		window.location.href = '?pid='+pid;
	}
</script>
<!DOCTYPE html>
<html>
<head>
	<title></title>
	<link rel="stylesheet" type="text/css" href="/static/plugins/layui/css/layui.css">
	<script type="text/javascript" src="/static/plugins/layui/layui.js"></script>
</head>
<body style="padding: 10px;">
	<form class="layui-form">
		<!-- 编辑需要隐藏的id; -->
		<input type="hidden" name="pid" value="{$parent_menu.mid}">
		<input type="hidden" name="mid" value="{$menu.mid}">
		<?php if($parent_menu){?>
		<div class="layui-form-item">
			<label class="layui-form-label"><span style="color: green;">上级菜单</span></label>
			<div class="layui-input-inline">
				<input type="text" class="layui-input" disabled="true" style="color: green;" value="{$parent_menu.title}">
			</div>
		</div>
		<?php }?>

		<div class="layui-form-item">
			<label class="layui-form-label">菜单名称</label>
			<div class="layui-input-inline">
				<input type="text" class="layui-input" name="title" value="{$menu.title}">
			</div>
		</div>

		<div class="layui-form-item">
			<label class="layui-form-label">排序</label>
			<div class="layui-input-inline">
				<input type="text" class="layui-input" name="ord" value="{$menu.ord}">
			</div>
		</div>

		<div class="layui-form-item">
			<label class="layui-form-label">控制器</label>
			<div class="layui-input-inline">
				<input type="text" class="layui-input" name="controller" value="{$menu.controller}">
			</div>
		</div>

		<div class="layui-form-item">
			<label class="layui-form-label">方法</label>
			<div class="layui-input-inline">
				<input type="text" class="layui-input" name="method" value="{$menu.method}">
			</div>
		</div>

		<div class="layui-form-item">
			<label class="layui-form-label">状态</label>
			<div class="layui-input-inline">
				<input type="checkbox" name="ishidden" lay-skin="primary" title="是否隐藏" value="1" {$menu.ishidden==1?'checked':''}>
				<input type="checkbox" name="status" lay-skin="primary" title="是否禁用" value="1" {$menu.status==1?'checked':''}>
			</div>
		</div>
	</form>
	<div class="layui-form-item">
		<div class="layui-input-block">
			<button class="layui-btn" onclick="save()">保存</button>
		</div>
	</div>
</body>
</html>
<script type="text/javascript">
	layui.use(['layer','form'],function(){
		var form = layui.form;
		layer = layui.layer;
		$ = layui.jquery;
	});

	function save(){
		var pid = parseInt($('input[name="pid"]').val());
		var title = $.trim($('input[name="title"]').val());
		var controller = $.trim($('input[name="controller"]').val());
		var method = $.trim($('input[name="method"]').val());

		if(title==''){
			layer.alert('请输入菜单名称',{'icon':2});
			return;
		}
		
		if(pid>0 && controller==''){
			layer.alert('请输入控制器',{'icon':2});
			return;
		}
		if(pid>0 && method==''){
			layer.alert('请输入方法名称',{'icon':2});
			return;
		}

		$.post('/index.php/admins/menu/save',$('form').serialize(),function(res){
			if(res.code>0){
				layer.alert(res.msg,{'icon':2});
			}else{
				layer.msg(res.msg,{'icon':1});

				setTimeout(function(){parent.window.location.reload();},1000);
			}
		},'json');
	}
</script>


Correcting teacher:查无此人Correction time:2019-06-10 09:16:17
Teacher's summary:完成的不错,后台cms管理系统,最重要的就是权限。继续加油。

Release Notes

Popular Entries