<div class="layui-card layui-col-md12">
    <div class="layui-card-body">
        <form class="layui-form" data-action="{:url('manager.member/menualloter')}" >
            <input type="hidden" name="_token" value="{$_token ?? ''}"/>
            {foreach name="cates" item="item"}
            <table class="layui-table layui-form" style="float: left; margin: 0 0 25px;">
                <thead>
                    <tr>
                        <td colspan="2"><input  type="checkbox" {in name="$item['id']" value="$memberCates" }checked="checked" {/in} name="cates[]_{$item.id}" value="{$item.id}" lay-skin="primary" title="{$item.title}" lay-filter="select_all" /></td>
                    </tr>
                </thead>
                <tbody>
                    {notempty name="item.children"}
                    {foreach name="item.children" item="sub"}
                    <tr class="erji">
                        <td style="padding-left: 30px;">
                            <div class="erjichkall">
                                <input type="checkbox" {in name="$sub['id']" value="$memberCates" } checked="checked"{/in} name="cates[]_{$item.id}_{$sub.id}" value="{$sub.id}" lay-skin="primary"  title="{$sub.title}" lay-filter="select_item" />
                            </div>
                        </td>
                        <td>
                            {notempty name="sub.children"}
                                {foreach $sub['children'] as $child}
                                <div class="erjichk">
                                    <input type="checkbox" {in name="$child['id']" value="$memberCates" } checked="checked"{/in} name="cates[]_{$item.id}_{$child.id}" value="{$child.id}" lay-skin="primary"  title="{$child.title}" lay-filter="select_item_three" />
                                </div>
                                {/foreach}
                            {/notempty}
                        </td>
                    </tr>
                    {/foreach}
                    {/notempty}
                </tbody>
            </table>
            {/foreach}
            <div class="layui-clear"></div>
            <hr style="margin: 5px 0 30px;">
            <div class="layui-form-item text-center" id="grouprule-ok">
                <input type="hidden" class="layui-input" name="id" value="{$id}" />
                <button type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="submitAll">保存</button>
            </div>
        </form>
    </div>
</div>
<style type="text/css">
    .erjichk,.erjichkall{ display: inline-block;}
    .erjichk{ margin-right: 10px;}
</style>
<script type="text/javascript">
    layui.use('form', function(){
        var form = layui.form;
        
        form.on('checkbox(select_all)', function(data){
            var parentTableCheck = $(this).parents(".layui-table").find('input[lay-filter="select_all"]'); //所属全选复选框
            var childrenCheck = $(this).parents(".layui-table").find('input[lay-filter="select_item"]'); //所属子同复选框
            var sj = $(this).parents(".layui-table").find('input[lay-filter="select_item_three"]'); //所属子同复选框
            if(data.elem.checked) {
                $(childrenCheck).each(function(){
                    if (!$(this).prop('disabled')) {
                        $(this).prop("checked", true);
                    }
                });
                $(sj).each(function(){
                    if (!$(this).prop('disabled')) {
                        $(this).prop("checked", true);
                    }
                });
            } else {
                $(childrenCheck).each(function(){
                    if(!$(this).hasClass('perm-read-only')){
                        $(this).prop("checked", false);
                    }
                });
                $(sj).each(function(){
                    if(!$(this).hasClass('perm-read-only')){
                        $(this).prop("checked", false);
                    }
                });
            }
            form.render('checkbox');
        });
      
        form.on('checkbox(select_item)', function(data){
            var sj = data.othis.closest('.erji').find('input[lay-filter="select_item_three"]')
            if(data.elem.checked){
                $(sj).each(function(){
                    if (!$(this).prop('disabled')) {
                        $(this).prop("checked", true);
                    }
                });
            }else{
                $(sj).each(function(){
                    if(!$(this).hasClass('perm-read-only')){
                        $(this).prop("checked", false);
                    }
                });
            }
            
            var parentTableCheck = $(this).parents(".layui-table").find('input[lay-filter="select_all"]'); //所属全选复选框
            var brotherCheck = $(this).parents(".layui-table").find('input[lay-filter="select_item"]'); //所属同级复选框
            var allChecked = true;
            if($(this).hasClass('perm-read-only')){
                $(this).prop("checked", true);
            }
            brotherCheck.each(function () {
                if (!$(this).prop("disabled") && !$(this).hasClass('perm-read-only')) {
                    if (!$(this).prop("checked")) {
                        allChecked = false;
                    }
                }
            });
            if(allChecked) {
                parentTableCheck.prop('checked', true);
            } else {
                parentTableCheck.prop('checked', false);
            }
            form.render('checkbox');
        });
      
        form.on('checkbox(select_item_three)', function(data){
            var all = $(this).parents(".layui-table").find('input[lay-filter="select_all"]'); //所属全选复选框
            var parentTableCheck = $(this).closest(".erji").find('input[lay-filter="select_item"]'); //所属全选复选框
            var brotherCheck = $(this).closest(".erji").find('input[lay-filter="select_item_three"]'); //所属同级复选框
            var allChecked = true;
            if($(this).hasClass('perm-read-only')){
                $(this).prop("checked", true);
            }
            brotherCheck.each(function () {
                if (!$(this).prop("disabled") && !$(this).hasClass('perm-read-only')) {
                    if (!$(this).prop("checked")) {
                        allChecked = false;
                    }
                }
            });
            if(allChecked) {
                parentTableCheck.prop('checked', true);
                all.prop('checked', true);
            } else {
                parentTableCheck.prop('checked', false);
                all.prop('checked', false);
            }
            form.render('checkbox');
        });
      
    });
</script>