(id, options, reload)
| 124 | }; |
| 125 | |
| 126 | var updateOptions = function (id, options, reload) { |
| 127 | var that = getThisTable(id); |
| 128 | reload === 'reloadData' || |
| 129 | (that.status = { |
| 130 | // 用于记录一些状态信息 |
| 131 | expand: {} // 折叠状态 |
| 132 | }); |
| 133 | var thatOptionsTemp = $.extend(true, {}, that.getOptions(), options); |
| 134 | var treeOptions = thatOptionsTemp.tree; |
| 135 | var childrenKey = treeOptions.customName.children; |
| 136 | var idKey = treeOptions.customName.id; |
| 137 | // 处理属性 |
| 138 | delete options.hasNumberCol; |
| 139 | delete options.hasChecboxCol; |
| 140 | delete options.hasRadioCol; |
| 141 | table.eachCols( |
| 142 | null, |
| 143 | function (i1, item1) { |
| 144 | if (item1.type === 'numbers') { |
| 145 | options.hasNumberCol = true; |
| 146 | } else if (item1.type === 'checkbox') { |
| 147 | options.hasChecboxCol = true; |
| 148 | } else if (item1.type === 'radio') { |
| 149 | options.hasRadioCol = true; |
| 150 | } |
| 151 | }, |
| 152 | thatOptionsTemp.cols |
| 153 | ); |
| 154 | |
| 155 | var parseData = options.parseData; |
| 156 | var done = options.done; |
| 157 | |
| 158 | // treeTable重载数据时,会先加载显示顶层节点,然后根据重载数据前的子节点展开状态,展开相应的子节点, |
| 159 | // 那么如果重载数据前有滚动条滚动在某个位子,重新加载时顶层节点如果比较少,只显示顶层节点时没有滚动条的情况下, |
| 160 | // 自动展开子节点后,滚动条就会显示在顶部,无法保持在重载数据之前的位置。 |
| 161 | // 处理保持滚动条的问题,重载数据前记录滚动条的位置 |
| 162 | if (reload === 'reloadData' && thatOptionsTemp.scrollPos === 'fixed') { |
| 163 | that.scrollTopCache = that.config.elem.next().find(ELEM_BODY).scrollTop(); |
| 164 | } |
| 165 | |
| 166 | if (thatOptionsTemp.url) { |
| 167 | // 异步加载的时候需要处理parseData进行转换 |
| 168 | if (!reload || (reload && parseData && !parseData.mod)) { |
| 169 | options.parseData = function () { |
| 170 | var parseDataThat = this; |
| 171 | var args = arguments; |
| 172 | var retData = args[0]; |
| 173 | if (layui.type(parseData) === 'function') { |
| 174 | retData = parseData.apply(parseDataThat, args) || args[0]; |
| 175 | } |
| 176 | var dataName = parseDataThat.response.dataName; |
| 177 | // 处理 isSimpleData |
| 178 | if (treeOptions.data.isSimpleData && !treeOptions.async.enable) { |
| 179 | // 异步加载和 isSimpleData 不应该一起使用 |
| 180 | retData[dataName] = that.flatToTree(retData[dataName]); |
| 181 | } |
| 182 | // 处理节点状态 |
| 183 | updateStatus( |
no test coverage detected