ThinkPHP框架权限管理----权限分配的js实现

前台输出用,供参考。
数据表数据:

CREATE TABLE `sh_node` (
  `id` int(10) NOT NULL auto_increment COMMENT '节点id',
  `name` char(30) NOT NULL COMMENT '节点名称',
  `title` char(30) NOT NULL COMMENT '节点标题',
  `status` tinyint(1) NOT NULL default '1' COMMENT '节点状态',
  `remark` char(20) default NULL COMMENT '节点注释',
  `sort` char(20) NOT NULL COMMENT '排序',
  `pid` int(11) NOT NULL default '1' COMMENT '父id',
  `level` int(11) NOT NULL COMMENT '等级',
  `type` int(11) default '0',
  `group_id` int(11) default '0',
  `open_style` enum('','navTab','dialog') default NULL,
  `rel_name` char(30) default NULL,
  `is_nav` tinyint(1) NOT NULL default '1' COMMENT '是否显示',
  `path` varchar(32) default NULL COMMENT '无限分类用路径',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=utf8;

/*Data for the table `sh_node` */

insert  into `sh_node`(`id`,`name`,`title`,`status`,
`remark`,`sort`,`pid`,`level`,`type`,`group_id`,
`open_style`,`rel_name`,`is_nav`,`path`) values 
(97,'模块1','模块1',1,NULL,'1',1,2,0,0,NULL,NULL,1,'0-1'),
(98,'方法1','方法1',1,NULL,'1',97,3,0,0,NULL,NULL,1,'0-1-97'),
(1,'Admin','后台管理',1,NULL,'0',0,1,0,0,NULL,NULL,1,'0'),
(99,'模块2','模块2',1,NULL,'2',1,2,0,0,NULL,NULL,1,'0-1'),
(100,'方法2','方法2',1,NULL,'1',99,3,0,0,NULL,NULL,1,'0-1-99');

这里写图片描述


<!--展示节点表的所有数据-->
            <volist name="accessdata" id="vo">
                <!--level =1 的数据-->
                <if condition="$vo.level eq '1'">
                    <div style="display:block;clear:both;width:100%;"><label style="width:160px;">
                        <input type="checkbox" id="{$vo.id}" name="access[]" value="{$vo.id}" pid="{$vo.pid}" level="{$vo.level}" <if condition="in_array($vo['id'],$nodelist)">checked</if> />
                        <b>【应用】</b>{$vo.title}</label></div>
                    <elseif condition="$vo.level eq '2'" />
                        <div style="display:block;clear:both;margin-left:40px;width:100%;"><label style="width:190px;">
                            <input type="checkbox" id="{$vo.id}" name="access[]" value="{$vo.id}"pid="{$vo.pid}" level="{$vo.level}" <if condition="in_array($vo['id'],$nodelist)">checked</if> />
                            <b>【模块】</b>{$vo.title}</label></div>
                        <volist name="vo['node']" id="svo">
                            <div style="display:block;float:left;margin-left:60px;"><label style="width:160px;">
                                <input type="checkbox" id="{$svo.id}" name="access[]" pid="{$svo.pid}" value="{$svo.id}" level="{$svo.level}" <if condition="in_array($svo['id'],$nodelist)">checked</if> />
                                <b>【操作】</b>{$svo.title}</label></div>
                        </volist>
                    </if>
                </if>
            </volist>

js部分–全选和连带选

<script>
    //点击选中用js
    $(function(){
        //创建input点击事件
        $("input").click(function(){
            //获得点击对象的level数值
            var level=$(this).attr("level");
            //如果level为1
            if(level==1){
                //选中pageFormContent类中所有的input,也就是整个页面的input
                var inputs=$('.pageFormContent input');
                //如果当前的对象是选中,那么就把整个页面的input全部选中,如果不是选中,那么就把整个页面的input全不选中
                $(this).attr('checked') ? inputs.attr('checked',true) : inputs.removeAttr('checked');
                //如果level为2
            }else if(level==2){
                //获取选中对象id的值
                var id=$(this).attr('id');
                // 获取input按钮中pid的值id的对象,就是父亲选上了,然后要把所有的子类也选上
                var  inputs = $('input[pid='+id+']');
                //如果当前的对象是选中,那么就把id=pid的对象的input全部选中,如果不是选中,那么就把id=pid的对象的input全不选中
                $(this).attr('checked') ? inputs.attr('checked',true) : inputs.removeAttr('checked');
                // 勾选应用
                //var pid = $(this).attr('pid');
                //var inputs = $('input[id='+pid+']').attr('checked',true);
            //如果当前对象的level为3或者4
            }else  if(level==3 || level==4){
                //如果值为checked
                if($(this).attr('checked')){
                    //获取当前对象的pid
                    var pid = $(this).attr('pid');
                    //获取父亲的属性,把父亲也选上
                    var inputs = $('input[id='+pid+']').attr('checked',true);
                    //获取父亲的pid,也就是爷爷的id
                    var ppid = $('input[id='+pid+']').attr('pid');
                    //给爷爷也勾选上
                    $('input[id='+ppid+']').attr('checked',true);
                }
            }
        });
    });
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值