From 004176924ce35c96600f5c18e85478944de8bec6 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期六, 14 一月 2023 16:46:50 +0800 Subject: [PATCH] 2023-01-14 --- src/tabviews/custom/components/chart/antv-scatter/index.jsx | 42 ++++++++++++++++++++++++++++-------------- 1 files changed, 28 insertions(+), 14 deletions(-) diff --git a/src/tabviews/custom/components/chart/antv-scatter/index.jsx b/src/tabviews/custom/components/chart/antv-scatter/index.jsx index 644a98f..a42499a 100644 --- a/src/tabviews/custom/components/chart/antv-scatter/index.jsx +++ b/src/tabviews/custom/components/chart/antv-scatter/index.jsx @@ -33,7 +33,7 @@ chartId: Utils.getuuid(), // 鍥捐〃Id sync: false, // 鏄惁缁熶竴璇锋眰鏁版嵁 plot: null, // 鍥捐〃璁剧疆 - data: null, // 鏁版嵁 + data: [], // 鏁版嵁 search: null, // 鎼滅储鏉′欢 chart: null } @@ -74,7 +74,7 @@ this.setState({ config: _config, - data: _data, + data: _data || [], BID: BID || '', empty: !_data, arr_field: _config.columns.map(col => col.field).join(','), @@ -104,9 +104,11 @@ _data = nextProps.data[config.dataName] || [] } - this.setState({sync: false, data: _data, empty: !_data,}, () => { + this.setState({sync: false, data: _data, empty: false}) + + if (!is(fromJS(this.state.data), fromJS(_data))) { this.handleData() - }) + } } else if (config.setting.useMSearch && nextProps.mainSearch && !is(fromJS(this.props.mainSearch), fromJS(nextProps.mainSearch))) { this.setState({}, () => { this.loadData() @@ -119,7 +121,7 @@ } componentDidMount () { - const { config } = this.state + const { config, sync } = this.state MKEmitter.addListener('reloadData', this.reloadData) MKEmitter.addListener('resetSelectLine', this.resetParentParam) @@ -130,6 +132,16 @@ this.timer = new TimerTask() this.timer.init(config.uuid, config.timer, config.timerRepeats, () => { this.loadData(true) + }) + } + + if (config.$cache && (config.setting.sync !== 'true' || sync)) { + Api.getLCacheConfig(config.uuid).then(res => { + if (!res) return + + this.setState({data: res, empty: false}, () => { + this.handleData() + }) }) } } @@ -260,20 +272,19 @@ let result = await Api.genericInterface(param) if (result.status) { - let reset = true - - if (hastimer && is(fromJS(result.data), fromJS(this.state.data))) { - reset = false + if (config.$cache) { + Api.writeCacheConfig(config.uuid, result.data || '') } this.setState({ - data: result.data, + data: result.data || [], empty: false, loading: false - }, () => { - if (!reset) return - this.handleData() }) + + if (!is(fromJS(this.state.data), fromJS(result.data || []))) { + this.handleData() + } } else { this.setState({ loading: false @@ -302,7 +313,10 @@ if (_element) { _element.innerHTML = '' } - this.scatterrender() + + setTimeout(() => { + this.scatterrender() + }, 100) } /** -- Gitblit v1.8.0