diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index 7f16eac9..507c50b4 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -1048,6 +1048,7 @@ layui.define(['table'], function (exports) { var isParentKey = customName.isParent; var tableFilterId = tableViewElem.attr('lay-filter'); var treeTableThat = that; + var existsData = options.data.length; // 是否直接赋值 data // var tableData = treeTableThat.getTableData(); level = level || 0; @@ -1056,9 +1057,14 @@ layui.define(['table'], function (exports) { // 初始化的表格里面没有level信息,可以作为顶层节点的判断 tableViewElem.find('.layui-table-body tr:not([data-level])').attr('data-level', level); layui.each(table.cache[tableId], function (dataIndex, dataItem) { - tableViewElem.find('.layui-table-main tbody tr[data-level="0"]:eq(' + dataIndex + ')').attr('lay-data-index', dataItem[LAY_DATA_INDEX]); - tableViewElem.find('.layui-table-fixed-l tbody tr[data-level="0"]:eq(' + dataIndex + ')').attr('lay-data-index', dataItem[LAY_DATA_INDEX]); - tableViewElem.find('.layui-table-fixed-r tbody tr[data-level="0"]:eq(' + dataIndex + ')').attr('lay-data-index', dataItem[LAY_DATA_INDEX]); + // fix: 修正直接赋值 data 时顶层节点 LAY_DATA_INDEX 值的异常问题 + if (existsData) { + dataItem[LAY_DATA_INDEX] = String(dataIndex); + } + var layDataIndex = dataItem[LAY_DATA_INDEX]; + tableViewElem.find('.layui-table-main tbody tr[data-level="0"]:eq(' + dataIndex + ')').attr('lay-data-index', layDataIndex); + tableViewElem.find('.layui-table-fixed-l tbody tr[data-level="0"]:eq(' + dataIndex + ')').attr('lay-data-index', layDataIndex); + tableViewElem.find('.layui-table-fixed-r tbody tr[data-level="0"]:eq(' + dataIndex + ')').attr('lay-data-index', layDataIndex); }) }