layui xtree 实现一级节点单选 ,子节点复选

时间:2023-11-24 10:51:56

在外部定义变量和方法

//定义变量  接收*节点的值
var topValue;
// 获取*节点值的方法
function getParent(value) {
var val = projectTree.GetParent(value);
if (val == null) {
topValue = value;
return;
} else {
getParent(val.value);
}
}

在click方法中将不是当前一级节点的子节点全部取消选中

projectTree = new layuiXtree({
elem: 'projectTree' //(必填) 放置xtree的容器,样式参照 .xtree_contianer
, form: form //(必填) layui 的 from
, data: res.data //(必填) json数据
, isopen: false
, click: function (data) { //节点选中状态改变事件监听
  //获取被选中的节点
   var oCks = projectTree.GetChecked();   //根据当前节点的值获取一级节点的值 即当前*父节点的值
  getParent(data.value);
   var top = topValue;    //循环所有节点,将父节点不为当前父节点的节点 设为false
  for (var i = 0; i < oCks.length; i++) {
   getParent(oCks[i].value);//获取每一个节点的父节点
   var cruuTop = topValue;
   if (cruuTop != top) { //如果不等于当前父节点 就取消选中
   $(oCks[i]).prop("checked", false);
   }
   }
  form.render('checkbox');
   }
});