From 26bda142b0e94c07d8c349f075b5f884fe86e838 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 17 一月 2023 18:01:35 +0800 Subject: [PATCH] Merge branch 'develop' --- src/tabviews/custom/components/card/data-card/index.jsx | 38 ++++++++++++++++++++++++++++++++++++-- 1 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/tabviews/custom/components/card/data-card/index.jsx b/src/tabviews/custom/components/card/data-card/index.jsx index 121091a..7a4dd46 100644 --- a/src/tabviews/custom/components/card/data-card/index.jsx +++ b/src/tabviews/custom/components/card/data-card/index.jsx @@ -46,6 +46,8 @@ supComs: null } + loaded = false + UNSAFE_componentWillMount () { const { data, initdata } = this.props let _config = fromJS(this.props.config).toJS() @@ -102,10 +104,10 @@ let _data = null let _sync = _config.setting.sync === 'true' - if (_config.setting.sync === 'true' && data) { + if (_sync && data) { _data = data[_config.dataName] || [] _sync = false - } else if (_config.setting.sync === 'true' && initdata) { + } else if (_sync && initdata) { _data = initdata || [] _sync = false } @@ -173,6 +175,8 @@ _config.wrap.wrapClass = `${_config.wrap.selStyle} ${_config.wrap.cardType || ''} ${_config.wrap.scale}` + this.loaded = _data !== null + this.setState({ supComs, selected, @@ -214,6 +218,27 @@ }) }) } + + if (config.$cache && !this.loaded) { + Api.getLCacheConfig(config.uuid).then(res => { + if (!res || this.loaded) return + let _data = res.map((item, index) => { + item.key = index + item.$$uuid = item[config.setting.primaryKey] || '' + item.$Index = index + 1 + '' + + if (config.wrap.controlField) { + if (config.wrap.controlVal.includes(item[config.wrap.controlField])) { + item.$disabled = true + } + } + + return item + }) + + this.setState({data: _data}) + }) + } } shouldComponentUpdate (nextProps, nextState) { @@ -252,6 +277,8 @@ } } } + + this.loaded = true this.setState({sync: false, data: _data}) } else if (config.setting.useMSearch && nextProps.mainSearch && !is(fromJS(this.props.mainSearch), fromJS(nextProps.mainSearch))) { @@ -526,6 +553,8 @@ const { config, arr_field, pageIndex, search, BID, BData, selected } = this.state if (config.setting.supModule && !BID && config.wrap.supKey !== 'false') { // BID 涓嶅瓨鍦ㄦ椂锛屼笉鍋氭煡璇� + this.loaded = true + this.setState({ activeKey: '', selectKeys: [], @@ -583,6 +612,11 @@ start = config.setting.pageSize * (pageIndex - 1) + 1 } + this.loaded = true + if (config.$cache && pageIndex === 1) { + Api.writeCacheConfig(config.uuid, result.data || '') + } + if (selected !== 'false' || (id && config.wrap.selected !== 'false')) { setTimeout(() => { this.checkTopLine(id) -- Gitblit v1.8.0