RBAC权限的递归遍历,在ul标签里面,如何有层级关系

发布于 2022-09-06 10:25:17 字数 4933 浏览 15 评论 0

<div class="form-group">
                          <label class="col-sm-3 control-label">权限列表:</label>
                          <div class="col-sm-8">
                              <volist name="data_pri" id="vo"  >
                                  <ul class="checktree">
                                      <li>
                                          <input id="administration" type="checkbox" /><label for="administration">{$vo.pri_name}</label>
                                          <ul>
                                              <volist name="data_pri1" id="vo1"  >
                                              <li>
                                                  <if condition="$vo.id == $vo1.parent_id">
                                                  <input id="president" type="checkbox" /><label for="president">{$vo1.pri_name}</label>
                                                  </if>
                                                  <ul>
                                                      <li>
                                                          <input  type="checkbox" /><label for="manager1">添加商品</label>
                                                          <input  type="checkbox" /><label for="manager1">编辑商品</label>
                                                          <input  type="checkbox" /><label for="manager1">删除商品</label>
                                                      </li>

                                                  </ul>
                                              </li>
                                              </volist>
                                          </ul>
                                      </li>
                                  </ul>
                              </volist>
                          </div>
                      </div>                     
 public function add_list()
    {

        $model = D('Privilege');
        //顶级分类
        $where="parent_id=0";
        $data_pri=$model->where($where)->select();

        //一级分类
        $where="level=1";
        $data_pri1=$model->where($where)->select();

        //二级分类
        $where="level=2";
        $data_pri2=$model->where($where)->select();


        $data = $model->search();

        $this->assign(array(
            'data' => $data['data'],
            'page' => $data['page'],
            'data_pri'=>$data_pri,
            'data_pri1'=>$data_pri1,
            'data_pri2'=>$data_pri2
        ));

        // 设置页面中的信息
        $this->assign(array(
            '_page_title' => '列表',
            '_page_btn_name' => '添加',
            '_page_btn_link' => U('add'),
        ));
        $this->display();
    }

图片描述

以下是我的样式

 <script>
        (function($){
            $.fn.checktree = function(){
                $(':checkbox').on('click', function (event){
                    event.stopPropagation();
                    var clk_checkbox = $(this),
                            chk_state = clk_checkbox.is(':checked'),
                            parent_li = clk_checkbox.closest('li'),
                            parent_uls = parent_li.parents('ul');
                    parent_li.find(':checkbox').prop('checked', chk_state);
                    parent_uls.each(function(){
                        parent_ul = $(this);
                        parent_state = (parent_ul.find(':checkbox').length == parent_ul.find(':checked').length);
                        parent_ul.siblings(':checkbox').prop('checked', parent_state);
                    });
                });
            };
        }(jQuery));
    </script>
    <style>
        body{
            width: 1100px;
            margin: 0 auto;
        }
        ul{
            list-style-type: none;
            margin: 3px;
        }
        ul.checktree li:before{
            height: 1em;
            width: 12px;
            border-bottom: 1px dashed;
            content: "";
            display: inline-block;
            top: -0.3em;
        }
        ul.checktree li{
            border-left: 1px dashed;
        }
        ul.checktree li:last-child:before {
            border-left: 1px dashed;
        }
        ul.checktree li:last-child{
            border-left: none;
        }
    </style>

图片描述

我运行是在thinkphp3.2.3版本下的,能否大伙能帮我遍历的时候,我哪里出问题了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

过去的过去 2022-09-13 10:25:17

显示的时候在 pri_name 前面添加 level个空格或者其它符号 就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文