MCPcopy
hub / github.com/layui/layui / updateOptions

Function updateOptions

src/modules/treeTable.js:126–288  ·  view source on GitHub ↗
(id, options, reload)

Source from the content-addressed store, hash-verified

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(

Callers 1

treeTable.jsFile · 0.85

Calls 3

updateStatusFunction · 0.85
updateCacheFunction · 0.85
getThisTableFunction · 0.70

Tested by

no test coverage detected