Browse Source

调整 treeTable 的 `cascade` 属性逻辑与结构

pull/1312/head
贤心 1 year ago
parent
commit
32e2483716
  1. 20
      src/modules/treeTable.js

20
src/modules/treeTable.js

@ -203,9 +203,9 @@ layui.define(['table'], function (exports) {
Class.prototype.init = function () { Class.prototype.init = function () {
var that = this; var that = this;
var options = that.config; var options = that.config;
var cascade = options.tree.check.cascade; var cascade = options.tree.data.cascade;
if (cascade !== 'parent' || cascade !== 'children') { if (cascade !== 'parent' && cascade !== 'children') {
options.tree.check.cascade = 'all'; // 超出范围的都重置为全联动 options.tree.data.cascade = 'all'; // 超出范围的都重置为全联动
} }
// 先初始一个空的表格以便拿到对应的表格实例信息 // 先初始一个空的表格以便拿到对应的表格实例信息
@ -247,7 +247,8 @@ layui.define(['table'], function (exports) {
}, },
data: { data: {
isSimpleData: false, // 是否简单数据模式 isSimpleData: false, // 是否简单数据模式
rootPid: null // 根节点的父 ID 值 rootPid: null, // 根节点的父 ID 值
cascade: 'all' // 级联方式 默认全部级联:all 可选 级联父 parent 级联子 children
}, },
async: { async: {
enable: false, // 是否开启异步加载模式,只有开启的时候其他参数才起作用 enable: false, // 是否开启异步加载模式,只有开启的时候其他参数才起作用
@ -261,9 +262,6 @@ layui.define(['table'], function (exports) {
callback: { callback: {
beforeExpand: null, // 展开前的回调 return false 可以阻止展开的动作 beforeExpand: null, // 展开前的回调 return false 可以阻止展开的动作
onExpand: null // 展开之后的回调 onExpand: null // 展开之后的回调
},
check: {
cascade: 'all' // 级联方式 默认全部级联:all 可选 级联父 parent 级联子 children
} }
}, },
}; };
@ -1404,7 +1402,7 @@ layui.define(['table'], function (exports) {
}); });
var isAll = true; var isAll = true;
layui.each(treeOptions.check.cascade === 'all' ? table.cache[id] : treeTable.getData(id, true), function (i1, item1) { layui.each(treeOptions.data.cascade === 'all' ? table.cache[id] : treeTable.getData(id, true), function (i1, item1) {
if (!item1[checkName]) { if (!item1[checkName]) {
isAll = false; isAll = false;
return true; return true;
@ -1516,7 +1514,7 @@ layui.define(['table'], function (exports) {
var checkName = table.config.checkName; var checkName = table.config.checkName;
var cascade = treeOptions.check.cascade; var cascade = treeOptions.data.cascade;
var isCascadeParent = cascade === 'all' || cascade === 'parent'; var isCascadeParent = cascade === 'all' || cascade === 'parent';
// 如有必要更新父节点们的状态 // 如有必要更新父节点们的状态
@ -1540,7 +1538,7 @@ layui.define(['table'], function (exports) {
// 更新全选的状态 // 更新全选的状态
var isAll = true; var isAll = true;
var isIndeterminate = false; var isIndeterminate = false;
layui.each(treeOptions.check.cascade === 'all' ? table.cache[tableId] : treeTable.getData(tableId, true), function (i1, item1) { layui.each(treeOptions.data.cascade === 'all' ? table.cache[tableId] : treeTable.getData(tableId, true), function (i1, item1) {
if (item1[checkName] || item1[LAY_CHECKBOX_HALF]) { if (item1[checkName] || item1[LAY_CHECKBOX_HALF]) {
isIndeterminate = true; isIndeterminate = true;
} }
@ -1684,7 +1682,7 @@ layui.define(['table'], function (exports) {
} }
} }
var trs = that.updateStatus(trData ? [trData] : table.cache[tableId], checkedStatusFn, trData && treeOptions.check.cascade === 'parent'); var trs = that.updateStatus(trData ? [trData] : table.cache[tableId], checkedStatusFn, trData && treeOptions.data.cascade === 'parent');
var checkboxElem = tableView.find(trs.map(function (value) { var checkboxElem = tableView.find(trs.map(function (value) {
return 'tr[lay-data-index="' + value[LAY_DATA_INDEX] + '"] input[name="layTableCheckbox"]:not(:disabled)'; return 'tr[lay-data-index="' + value[LAY_DATA_INDEX] + '"] input[name="layTableCheckbox"]:not(:disabled)';
}).join(',')); }).join(','));

Loading…
Cancel
Save