From f078c137d61270d243cd8e03077fa9cf000e276b Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 14 八月 2023 14:02:40 +0800 Subject: [PATCH] 2023-08-14 --- src/tabviews/custom/components/tree/antd-tree/index.jsx | 102 +++++++++++++++++++++++++++++++++++---------------- 1 files changed, 70 insertions(+), 32 deletions(-) diff --git a/src/tabviews/custom/components/tree/antd-tree/index.jsx b/src/tabviews/custom/components/tree/antd-tree/index.jsx index 9c9b744..1d974f3 100644 --- a/src/tabviews/custom/components/tree/antd-tree/index.jsx +++ b/src/tabviews/custom/components/tree/antd-tree/index.jsx @@ -53,18 +53,22 @@ BID = BData.$BID || '' } - if (_config.setting.sync === 'true' && window.GLOB.SyncData.has(_config.dataName)) { - _data = window.GLOB.SyncData.get(_config.dataName) || [] + if (_config.setting.sync === 'true') { + _config.setting.onload = 'false' - if (_config.$cache) { - Api.writeCacheConfig(_config.uuid, fromJS(_data).toJS()) + if (window.GLOB.SyncData.has(_config.dataName)) { + _data = window.GLOB.SyncData.get(_config.dataName) || [] + + if (_config.$cache) { + Api.writeCacheConfig(_config.uuid, fromJS(_data).toJS()) + } + + _config.setting.sync = 'false' + + this.loaded = true + + window.GLOB.SyncData.delete(_config.dataName) } - - _config.setting.sync = 'false' - - this.loaded = true - - window.GLOB.SyncData.delete(_config.dataName) } _config.wrap.contentHeight = config.wrap.title || config.wrap.searchable === 'true' ? 'calc(100% - 45px)' : '100%' @@ -74,15 +78,7 @@ config: _config, data: _data, BID: BID || '', - arr_field: _config.columns.map(col => col.field).join(','), - }, () => { - if (config.setting.sync !== 'true' && config.setting.onload === 'true') { - setTimeout(() => { - this.loadData() - }, config.setting.delay || 0) - } else if (config.setting.sync === 'true' && _data) { - this.handleData() - } + arr_field: _config.columns.map(col => col.field).join(',') }) } @@ -109,19 +105,11 @@ if (config.timer) { this.timer = new TimerTask() this.timer.init(config.uuid, config.timer, config.timerRepeats, () => { - this.loadData(true) + this.loadData('timer') }) } - if (config.$cache && !this.loaded) { - Api.getLCacheConfig(config.uuid).then(res => { - if (!res || this.loaded) return - - this.setState({data: res}, () => { - this.handleData() - }) - }) - } + this.initExec() } /** @@ -139,6 +127,56 @@ MKEmitter.removeListener('refreshByButtonResult', this.refreshByButtonResult) this.timer && this.timer.stop() + } + + initExec = () => { + const { config } = this.state + + if (config.$cache) { + if (config.$time) { + if (!this.loaded) { + Api.getLCacheConfig(config.uuid, config.$time).then(res => { + if (!res.valid && config.setting.onload === 'true') { + setTimeout(() => { + this.loadData('init') + }, config.setting.delay || 0) + } + + if (!res.data || this.loaded) return + + this.setState({data: res.data}, () => { + this.handleData() + }) + }) + } else { + this.handleData() + } + } else { + if (!this.loaded) { + Api.getLCacheConfig(config.uuid, 0).then(res => { + if (!res.data || this.loaded) return + + this.setState({data: res.data}, () => { + this.handleData() + }) + }) + } + + if (config.setting.onload === 'true') { + setTimeout(() => { + this.loadData('init') + }, config.setting.delay || 0) + } else if (this.loaded) { + this.handleData() + } + } + } else if (config.setting.onload === 'true') { + setTimeout(() => { + this.loadData() + }, config.setting.delay || 0) + } else if (this.loaded) { + this.handleData() + } } transferSyncData = (syncId) => { @@ -234,7 +272,7 @@ /** * @description 鏁版嵁鍔犺浇 */ - async loadData (hastimer) { + async loadData (type) { const { config, arr_field, BID } = this.state if (config.setting.supModule && !BID) { // BID 涓嶅瓨鍦ㄦ椂锛屼笉鍋氭煡璇� @@ -256,7 +294,7 @@ return } - if (!hastimer) { + if (type !== 'timer') { this.setState({ loading: true }) @@ -268,7 +306,7 @@ let result = await Api.genericInterface(param) if (result.status) { this.loaded = true - if (config.$cache && config.setting.onload !== 'false') { + if (config.$cache && type === 'init') { Api.writeCacheConfig(config.uuid, result.data || []) } -- Gitblit v1.8.0