From 221009ee51a8c30b722c7d628fa25edea192b1ac Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Fri, 28 Apr 2023 18:10:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20treeTable=20`reload`=20?= =?UTF-8?q?=E5=92=8C=20`reloadData`=20=E4=BC=A0=E5=8F=82=E4=B8=AD=E5=B8=A6?= =?UTF-8?q?=E4=BA=86=20parseData=20=E5=92=8C=20done=20=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=E6=B8=B2=E6=9F=93=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 73 +++++++++++++++++++++++++--------------- 1 file changed, 45 insertions(+), 28 deletions(-) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index 72ed2b7b..cdd12b92 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -111,34 +111,21 @@ layui.define(['table'], function (exports) { }) } - Class.prototype.init = function () { - var that = this; - var options = that.config; - - // 先初始一个空的表格以便拿到对应的表格实例信息 - var tableIns = table.render($.extend({}, options, { - data: [], - url: '', - done: null - })) - var id = tableIns.config.id; - thisTreeTable.that[id] = that; // 记录当前实例对象 - that.tableIns = tableIns; - - var treeOptions = options.tree; - var customName = treeOptions.customName; - var isParentKey = customName.isParent; - var childrenKey = customName.children; - + var updateOptions = function (id, options, reload) { + var that = getThisTable(id); + var thatOptionsTemp = $.extend(true, {} , that.getOptions(), options); + var treeOptions = thatOptionsTemp.tree; + var childrenKey = treeOptions.customName.children; // 处理属性 var parseData = options.parseData; var done = options.done; - if (options.url) { + if (thatOptionsTemp.url) { // 异步加载的时候需要处理parseData进行转换 - options.parseData = function () { - var parseDataThat = this; - var args = arguments; + if (!reload || (reload && parseData && !parseData.mod)) { + options.parseData = function () { + var parseDataThat = this; + var args = arguments; var retData = args[0]; if (layui.type(parseData) === 'function') { retData = parseData.apply(parseDataThat, args) || args[0]; @@ -151,7 +138,9 @@ layui.define(['table'], function (exports) { that.initData(retData[dataName]); - return retData; + return retData; + } + options.parseData.mod = true } } else { options.data = options.data || []; @@ -165,9 +154,10 @@ layui.define(['table'], function (exports) { that.initData(options.data); } - options.done = function () { - var args = arguments; - var doneThat = this; + if (!reload || (reload && done && !done.mod)) { + options.done = function () { + var args = arguments; + var doneThat = this; var tableView = this.elem.next(); that.updateStatus(null, { @@ -188,11 +178,35 @@ layui.define(['table'], function (exports) { that.renderTreeTable(tableView); if (layui.type(done) === 'function') { - return done.apply(doneThat, args); + return done.apply(doneThat, args); + } } + options.done.mod = true; } } + Class.prototype.init = function () { + var that = this; + var options = that.config; + + // 先初始一个空的表格以便拿到对应的表格实例信息 + var tableIns = table.render($.extend({}, options, { + data: [], + url: '', + done: null + })) + var id = tableIns.config.id; + thisTreeTable.that[id] = that; // 记录当前实例对象 + that.tableIns = tableIns; + + // var treeOptions = options.tree; + // var customName = treeOptions.customName; + // var isParentKey = customName.isParent; + // var childrenKey = customName.children; + + updateOptions(id, options); + } + // 初始默认配置 Class.prototype.config = { tree: { @@ -819,6 +833,9 @@ layui.define(['table'], function (exports) { if (layui.type(item) === 'array') delete that.config[key]; }); + // 根据需要处理options中的一些参数 + updateOptions(that.config.id, options, true); + // 对参数进行深度或浅扩展 that.config = $.extend(deep, {}, that.config, options);