From 94fe37551855f542d1cbad8b7af7fe3311daeddb Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 02 六月 2022 00:56:51 +0800 Subject: [PATCH] 2022-06-02 --- src/tabviews/custom/components/form/tab-form/index.jsx | 52 ++++++++++++++++++++++++++++------------------------ 1 files changed, 28 insertions(+), 24 deletions(-) diff --git a/src/tabviews/custom/components/form/tab-form/index.jsx b/src/tabviews/custom/components/form/tab-form/index.jsx index 55a9f62..fb57e76 100644 --- a/src/tabviews/custom/components/form/tab-form/index.jsx +++ b/src/tabviews/custom/components/form/tab-form/index.jsx @@ -49,12 +49,12 @@ if (_sync && data && data[config.dataName]) { _data = data[config.dataName] if (Array.isArray(_data)) { - _data = _data[0] || {} + _data = _data[0] || {$$empty: true} } _sync = false } } else { - _data = {} + _data = {$$empty: true} } if (!config.wrap.groupLabel) { @@ -70,10 +70,16 @@ config.subcards = config.subcards.map(group => { group.subButton.uuid = group.uuid group.subButton.$menuId = group.uuid - group.subButton.Ot = 'requiredSgl' + group.subButton.Ot = config.wrap.datatype === 'static' ? 'notRequired' : 'requiredSgl' group.subButton.$forbid = true group.subButton.OpenType = 'formSubmit' group.subButton.execError = 'never' + + group.subButton.syncComponentId = group.subButton.syncComponent ? group.subButton.syncComponent.pop() : '' + + if (group.subButton.syncComponentId === config.uuid) { + group.subButton.syncComponentId = '' + } if (group.subButton.enable === 'false') { group.subButton.style.display = 'none' @@ -111,7 +117,9 @@ arr_field: config.columns.map(col => col.field).join(','), }, () => { if (config.wrap.datatype !== 'static' && config.setting && config.setting.sync !== 'true' && config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, config.setting.delay || 0) } }) } @@ -144,12 +152,12 @@ const { sync, config, group } = this.state if (sync && !is(fromJS(this.props.data), fromJS(nextProps.data))) { - let _data = {} + let _data = {$$empty: true} let _group = group if (nextProps.data && nextProps.data[config.dataName]) { _data = nextProps.data[config.dataName] if (Array.isArray(_data)) { - _data = _data[0] || {} + _data = _data[0] || {$$empty: true} } } @@ -182,16 +190,16 @@ if (group.uuid !== menuId) return - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== config.setting.supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) + + if (!btn.syncComponentId || btn.syncComponentId !== config.setting.supModule) { + if (config.wrap.datatype !== 'static' && config.setting) { + this.loadData() + } } if (id) { MKEmitter.emit('resetSelectLine', config.uuid, id, '') - } - - if (config.wrap.datatype !== 'static' && config.setting) { - this.loadData() } this.execSuccess(btn, id) @@ -200,7 +208,7 @@ resetParentParam = (MenuID, id) => { const { config } = this.state if (config.wrap.datatype === 'static' || !config.setting.supModule || config.setting.supModule !== MenuID) return - if (id !== this.state.BID) { + if (id !== this.state.BID || id !== '') { this.setState({ BID: id }, () => { this.loadData() }) @@ -229,11 +237,11 @@ async loadData () { const { mainSearch, menuType } = this.props - const { config, arr_field, BID, group } = this.state + const { config, arr_field, BID } = this.state if (config.wrap.datatype === 'static' || (config.setting.supModule && !BID)) { this.setState({ - data: {} + data: {$$empty: true} }) return } @@ -254,16 +262,13 @@ let result = await Api.genericInterface(param) if (result.status) { - let _data = result.data && result.data[0] ? result.data[0] : {} - - let _group = group + let _data = result.data && result.data[0] ? result.data[0] : {$$empty: true} this.setState({ - group: null, - data: _data || {}, + data: null, loading: false }, () => { - this.setState({group: _group}) + this.setState({data: _data}) }) } else { this.setState({ @@ -299,7 +304,7 @@ const { config, loading, BID, data, group, dict } = this.state return ( - <div className="custom-tab-form-box" style={{...config.style}}> + <div className="custom-tab-form-box" id={'anchor' + config.uuid} style={{...config.style}}> {loading ? <div className="loading-mask"> <div className="ant-spin-blur"></div> @@ -324,11 +329,10 @@ {group && data ? <div className={'mk-form-action ' + (group.$button || '')}> <NormalButton BID={BID} - position="form" btn={group.subButton} setting={config.setting} columns={config.columns} - selectedData={[data]} + selectedData={data.$$empty ? [] : [data]} /> </div> : null} </div> -- Gitblit v1.8.0