admin 发表于 2022-6-29 08:13:18

LAYUI权限选择树

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>layui在线调试</title>
<link rel="stylesheet" href="//res.layui.com/layui/dist/css/layui.css?t=1535898708529" media="all">
<style>
    body{margin: 10px;}
    .demo-carousel{height: 200px; line-height: 200px; text-align: center;}
</style>
</head>
<body>
<div class="x-body">
      <form action="" method="post" class="layui-form layui-form-pane" style='width:700px;'>
            <div class="layui-form-item">
                <label for="name" class="layui-form-label">
                  <span class="x-red">*</span>权限组名
                </label>
                <div class="layui-input-inline">
                  <input type="text" id="name" name="name" required="" autocomplete="off" class="layui-input" lay-verify="required">
                  <input type="hidden" name='op' value='add'>
                </div>
            </div>
            <div class="layui-form-item layui-form-text">
                <label class="layui-form-label">
                  拥有权限
                </label>
                <tableclass="layui-table layui-input-block">
                  <tbody>
                        </tr>
                            <td>
                              <input name="auth[]" type="checkbox" value="" title="父节点1" lay-filter='group' id='group'>
                            </td>
                            <td>
                              <div class="layui-input-block">
                                    <input name="auth[]" type="checkbox" value="" title="子节点1" class='group' lay-filter='group_child' check_child='group'>
                                    <input name="auth[]" type="checkbox" value="" title="子节点11" class='group' lay-filter='group_child' check_child='group'>
                                    <input name="auth[]" type="checkbox" value="" title="子节点111" class='group' lay-filter='group_child' check_child='group'>
                                    <input name="auth[]" type="checkbox" value="" title="子节点1111" class='group' lay-filter='group_child' check_child='group'>
                              </div>
                              <div class="layui-input-block">
                                    <input name="auth[]" type="checkbox" value="" title="子节点2" class='group' lay-filter='group_child' check_child='group'>
                                    <input name="auth[]" type="checkbox" value="" title="子节点22" class='group' lay-filter='group_child' check_child='group'>
                                    <input name="auth[]" type="checkbox" value="" title="子节点222" class='group' lay-filter='group_child' check_child='group'>
                              </div>
                            </td>
                        </tr>
                        </tr>
                            <td>
                              <input name="auth[]" type="checkbox" value="" title="父节点2" lay-filter='group' id='jiedian'>
                            </td>
                            <td>
                              <div class="layui-input-block">
                                    <input name="auth[]" type="checkbox" value="" title="子节点3" class='jiedian' lay-filter='group_child' check_child='jiedian'>
                                    <input name="auth[]" type="checkbox" value="" title="子节点33" class='jiedian' lay-filter='group_child' check_child='jiedian'>
                                    <input name="auth[]" type="checkbox" value="" title="子节点333" class='jiedian' lay-filter='group_child' check_child='jiedian'>
                                    <input name="auth[]" type="checkbox" value="" title="子节点3333" class='jiedian' lay-filter='group_child' check_child='jiedian'>
                              </div>
                              <div class="layui-input-block">
                                    <input name="auth[]" type="checkbox" value="" title="子节点4" class='jiedian' lay-filter='group_child' check_child='jiedian'>
                                    <input name="auth[]" type="checkbox" value="" title="子节点44" class='jiedian' lay-filter='group_child' check_child='jiedian'>
                                    <input name="auth[]" type="checkbox" value="" title="子节点444" class='jiedian' lay-filter='group_child' check_child='jiedian'>
                              </div>
                            </td>
                        </tr>
                  </tbody>
                </table>
            </div>
            <div class="layui-form-item">
                <buttonclass="layui-btn" lay-filter="add" lay-submit="" id='btn'>立即提交</button>
            </div>
      </form>
    </div>

<script src="//res.layui.com/layui/dist/layui.js?t=1535898708529"></script>
<script>
      layui.use(['form','layer'], function(){
            $ = layui.jquery;
            var form = layui.form
            ,layer = layui.layer;
      
            //父节点全选/全不选
            form.on('checkbox(group)', function(data){
                var check = "."+data.elem.id+"";//获取父节点的id
                $(check).prop('checked',$(this).prop("checked"));//将和父节点id相同class的子节点选中
                form.render();//更新全部
            });

            //子节点
            form.on('checkbox(group_child)',function(data){
                var check = '.'+data.elem.attributes['check_child'].value;//当前子节点下的check_child的值
                var idcheck = '#'+data.elem.attributes['check_child'].value;
                var test = 1;//定义一个初始值
                for (var i = $(check).length - 1; i >= 0; i--) {
                  if($(check).eq(i).prop("checked")){
                        test = 2;//当有复选框被选中时,初始值更改为2
                  }
                }

                if(test == 1){
                  $(idcheck).prop('checked',false);//如果初始值依旧为一,说明没有子节点的复选框被选中,则将和子节点相同class的
                }else{
                  $(idcheck).prop('checked',true);//否则将父节点全选框选中
                }
                form.render();//更新全部

            });

            //监听提交
            form.on('submit(add)', function(data){
                $("#btn").attr("disabled","false");//关闭提交
                $("#btn").addClass("layui-btn-disabled");//更改class

                $.ajax({
                  url: "{:url('')}",
                  type: 'post',
                  data: data.field,
                  success: function(res){
                        if (res.status == 1) {
                            layer.msg('操作成功', {icon:6});
                            setTimeout(function(){window.parent.location.reload();}, 2000);//两秒后关闭并刷新页面
                        } else {   
                            layer.msg(res.msg, {icon:5});
                        }

                        
                        return false;
                  }
                });

                setTimeout(function(){
                  $("#btn").removeAttr("disabled");
                  $("#btn").removeClass("layui-btn-disabled");
                }, 3000);//3秒后开启提交
                return false;
            });
         
         
      });
    </script>
</body>
</html>      
      

页: [1]
查看完整版本: LAYUI权限选择树