知识学习

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 5222|回复: 0

LAYUI权限选择树

[复制链接]

升级   100%

152

主题

0

回帖

752

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
752
发表于 2022-6-29 08:13:18 | 显示全部楼层 |阅读模式
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.   <meta charset="utf-8">
  5.   <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  6.   <title>layui在线调试</title>
  7.   <link rel="stylesheet" href="//res.layui.com/layui/dist/css/layui.css?t=1535898708529" media="all">
  8.   <style>
  9.     body{margin: 10px;}
  10.     .demo-carousel{height: 200px; line-height: 200px; text-align: center;}
  11.   </style>
  12. </head>
  13. <body>
  14. <div class="x-body">
  15.         <form action="" method="post" class="layui-form layui-form-pane" style='width:700px;'>
  16.             <div class="layui-form-item">
  17.                 <label for="name" class="layui-form-label">
  18.                     <span class="x-red">*</span>权限组名
  19.                 </label>
  20.                 <div class="layui-input-inline">
  21.                     <input type="text" id="name" name="name" required="" autocomplete="off" class="layui-input" lay-verify="required">
  22.                     <input type="hidden" name='op' value='add'>
  23.                 </div>
  24.             </div>
  25.             <div class="layui-form-item layui-form-text">
  26.                 <label class="layui-form-label">
  27.                     拥有权限
  28.                 </label>
  29.                 <table  class="layui-table layui-input-block">
  30.                     <tbody>
  31.                         </tr>
  32.                             <td>
  33.                                 <input name="auth[]" type="checkbox" value="" title="父节点1" lay-filter='group' id='group'>
  34.                             </td>
  35.                             <td>
  36.                                 <div class="layui-input-block">
  37.                                     <input name="auth[]" type="checkbox" value="" title="子节点1" class='group' lay-filter='group_child' check_child='group'>
  38.                                     <input name="auth[]" type="checkbox" value="" title="子节点11" class='group' lay-filter='group_child' check_child='group'>
  39.                                     <input name="auth[]" type="checkbox" value="" title="子节点111" class='group' lay-filter='group_child' check_child='group'>
  40.                                     <input name="auth[]" type="checkbox" value="" title="子节点1111" class='group' lay-filter='group_child' check_child='group'>
  41.                                 </div>
  42.                                 <div class="layui-input-block">
  43.                                     <input name="auth[]" type="checkbox" value="" title="子节点2" class='group' lay-filter='group_child' check_child='group'>
  44.                                     <input name="auth[]" type="checkbox" value="" title="子节点22" class='group' lay-filter='group_child' check_child='group'>
  45.                                     <input name="auth[]" type="checkbox" value="" title="子节点222" class='group' lay-filter='group_child' check_child='group'>
  46.                                 </div>
  47.                             </td>
  48.                         </tr>
  49.                         </tr>
  50.                             <td>
  51.                                 <input name="auth[]" type="checkbox" value="" title="父节点2" lay-filter='group' id='jiedian'>
  52.                             </td>
  53.                             <td>
  54.                                 <div class="layui-input-block">
  55.                                     <input name="auth[]" type="checkbox" value="" title="子节点3" class='jiedian' lay-filter='group_child' check_child='jiedian'>
  56.                                     <input name="auth[]" type="checkbox" value="" title="子节点33" class='jiedian' lay-filter='group_child' check_child='jiedian'>
  57.                                     <input name="auth[]" type="checkbox" value="" title="子节点333" class='jiedian' lay-filter='group_child' check_child='jiedian'>
  58.                                     <input name="auth[]" type="checkbox" value="" title="子节点3333" class='jiedian' lay-filter='group_child' check_child='jiedian'>
  59.                                 </div>
  60.                                 <div class="layui-input-block">
  61.                                     <input name="auth[]" type="checkbox" value="" title="子节点4" class='jiedian' lay-filter='group_child' check_child='jiedian'>
  62.                                     <input name="auth[]" type="checkbox" value="" title="子节点44" class='jiedian' lay-filter='group_child' check_child='jiedian'>
  63.                                     <input name="auth[]" type="checkbox" value="" title="子节点444" class='jiedian' lay-filter='group_child' check_child='jiedian'>
  64.                                 </div>
  65.                             </td>
  66.                         </tr>
  67.                     </tbody>
  68.                 </table>
  69.             </div>
  70.             <div class="layui-form-item">
  71.                 <button  class="layui-btn" lay-filter="add" lay-submit="" id='btn'>立即提交</button>
  72.             </div>
  73.         </form>
  74.     </div>

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

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

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

  104.             });

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

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

  120.                         
  121.                         return false;
  122.                     }
  123.                 });

  124.                 setTimeout(function(){
  125.                     $("#btn").removeAttr("disabled");
  126.                     $("#btn").removeClass("layui-btn-disabled");
  127.                 }, 3000);//3秒后开启提交
  128.                 return false;
  129.             });
  130.          
  131.          
  132.         });
  133.     </script>
  134. </body>
  135. </html>        
  136.         
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|知识学习 ( 鲁ICP备20015483号 )

GMT+8, 2026-5-13 21:56 , Processed in 0.066406 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表