layui组件回显会父级元素选中导致子集全部选中
1、适用动态渲染tree.setChecked方法选中
2、适用直接渲染data数据携带checked选中
比如
用tree.setChecked(‘demoId1’, menu) 回显结果
menu = [1,29,42,35,37]
非常的不银杏!!!
修改的方法
找到你的layui.js或tree.js全局搜索 setChecked
b.prototype.setChecked = function(e) {
var a = this;
a.config;
a.elem.find("." + s).each(function(a, n) {
var t = i(this).data("id"),
r = i(n).children("." + p).find('input[same="layuiTreeCheck"]'),
l = r.next();
if ("number" == typeof e) {
if (t == e) return r[0].checked || l.click(), !1
} else "object" == typeof e && layui.each(e, function(e, i) {
if (i == t && !r[0].checked) return l.click(), !0
})
})
}
修改为
b.prototype.setChecked = function(e) {
var a = this;
a.config;
a.elem.find("." + s).each(function(a, n) {
var t = i(this).data("id"),
r = i(n).children("." + p).find('input[same="layuiTreeCheck"]'),
l = r.next();
if ("number" == typeof e) {
if (t == e) return r[0].checked || l.click(), !1 //这里字母r与下方对应
} else {
//修改部分从这里开始
for(var m=0;m<e.length;m++){
if(r.val()==e[m]){
r.prop("checked",true);//这里留意字母r的对应关系
r.next().addClass("layui-form-checked");
}
}
//从这里结束
}
})
}