<div id="test12" class="demo-tree-more"></div>
layui.use(['form', 'layedit', 'laydate', 'util','tree'], function () {
var tree = layui.tree
,form = layui.form
, layer = layui.layer
,util = layui.util
,data = JSON.parse('{$reList|raw}') //用的tp5.1穿的assign传的数据
//树形组件初始化
tree.render({
elem: '#test12'
,data: data
,showCheckbox: true //是否显示复选框
,id: 'demoId1'
,showLine: true //是否开启连接线
});
//获取选中的复选框的id,拼接为字符串
function getCheckedId(jsonObj) {
let id = "";
$.each(jsonObj, function (index, item) {
if (id != "") {
id = id + "," + item.id;
}
else {
id = item.id;
}
//判断是否有子节点
let child = item.hasOwnProperty('children')
if (child != false){
let i = getCheckedId(item.children);
if (i != "") {
id = id + "," + i;
}
}
});
return id;
}
//监听提交
form.on('submit(demo1)', function (data) {
var checkedData = tree.getChecked('demoId1'); //获取选中节点的数据
var ids = getCheckedId(checkedData); //获取选中的id
$.post("/admin/roles/xxx", {p_id:ids,r_id:data.field.r_id},function (e) {
if(e.code == 200 ){
layer.msg('更新成功');
}else{
layer.msg(e.msg);
}
} );
return false;
});
})后台获取数据
public function addpower()
{
//数据展示
$r_id = Request::param('id');
//获取权限数据
$rower = new Power();
$list = $rower->orderByTow();
//获取去用户拥有的权限id
$RolesPowerId = RolesPower::where('r_id',$r_id)->column('p_id');
//因为我无限递归后的数据和layui需要的数据结构有差异,所以重构啦一下
$reList = json_encode( $this->relist($list,$RolesPowerId));//json格式输出
$this->view->assign('reList',$reList);
$this->view->assign('id',$r_id);
return $this->view->fetch();
}
public function relist($arr,$RolesPowerId){
$reList=[];
$i = 0;
foreach ($arr as $k => $v){
$reList[$i]=[
'title' => $v['authorityName'],
'id' => $v['id'],
'field' => '',
'spread' =>true,
];
//只给最后一级中的节点设置选中。因为layui只要上级有默认选中,就不管你下级有没有选中全选中。
if ($v['level'] == 2 && in_array($v['id'],$RolesPowerId)){
$reList[$i]['checked'] = true;
}else{
$reList[$i]['checked'] = false;
}
if (isset($v['child'])&& !empty($v['child']) && is_array($v['child'])){
//递归调用
$reList[$i]['children'] = $this->relist($v['child'],$RolesPowerId);
}
$i ++;
}
return $reList;
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号