diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index a62b8045..1bdd7d57 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -1791,14 +1791,30 @@ layui.define(['table'], function (exports) { // 目前只能处理当前页的数据 return; } + + var collectNeedExpandNodeIndex = function(index){ + needExpandIndex.push(index); + var trElem = tableView.find('tr[lay-data-index="' + index + '"]'); + if (!trElem.length) { + var nodeData = that.getNodeDataByIndex(index); + var parentIndex = nodeData[LAY_PARENT_INDEX]; + parentIndex && collectNeedExpandNodeIndex(parentIndex); + } + } + // 判断是否展开过 var trElem = tableView.find('tr[lay-data-index="' + dataIndex + '"]'); if (!trElem.length) { + var parentIndex = nodeData[LAY_PARENT_INDEX]; + var needExpandIndex = []; + collectNeedExpandNodeIndex(parentIndex); // 如果还没有展开没有渲染的要先渲染出来 - treeTable.expandNode(id, { - index: nodeData[LAY_PARENT_INDEX], - expandFlag: true - }); + layui.each(needExpandIndex.reverse(),function(index, nodeIndex){ + treeTable.expandNode(id, { + index: nodeIndex, + expandFlag: true + }); + }) trElem = tableView.find('tr[lay-data-index="' + dataIndex + '"]'); } checkNode.call(that, trElem, checked, callbackFlag);