From 88756147643a1d4ffb840797b96ea44462b0551d Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 12 七月 2022 17:19:26 +0800 Subject: [PATCH] 2022-07-12 --- src/tabviews/custom/components/form/simple-form/index.jsx | 133 +++++-------------------------------------- 1 files changed, 17 insertions(+), 116 deletions(-) diff --git a/src/tabviews/custom/components/form/normal-form/index.jsx b/src/tabviews/custom/components/form/simple-form/index.jsx similarity index 63% copy from src/tabviews/custom/components/form/normal-form/index.jsx copy to src/tabviews/custom/components/form/simple-form/index.jsx index 717ecc3..151cf82 100644 --- a/src/tabviews/custom/components/form/normal-form/index.jsx +++ b/src/tabviews/custom/components/form/simple-form/index.jsx @@ -2,7 +2,7 @@ import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' import { connect } from 'react-redux' -import { Spin, notification, Button } from 'antd' +import { Spin, notification } from 'antd' import Api from '@/api' import UtilsDM from '@/utils/utils-datamanage.js' @@ -15,8 +15,9 @@ const MutilForm = asyncSpinComponent(() => import('@/tabviews/zshare/mutilform')) const NormalButton = asyncComponent(() => import('@/tabviews/zshare/actionList/normalbutton')) +const NormalHeader = asyncComponent(() => import('@/tabviews/custom/components/share/normalheader')) -class NormalForm extends Component { +class SimpleForm extends Component { static propTpyes = { BID: PropTypes.any, // 鐖剁骇Id data: PropTypes.array, // 缁熶竴鏌ヨ鏁版嵁 @@ -58,54 +59,23 @@ _data = {$$empty: true} } - if (!config.wrap.groupLabel) { - if (config.subcards.length > 1) { - config.wrap.groupLabel = 'show' - } else { - config.wrap.groupLabel = 'hidden' - } - } - - config.subcards = config.subcards.map((group, i) => { - group.sort = i + 1 - if (i === 0) { - group.prevButton.enable = 'false' - } - if (i + 1 === config.subcards.length) { - group.nextButton.enable = 'false' - } - - if (group.subButton.enable === 'false') { - group.subButton.style.display = 'none' - } - - if (group.prevButton.enable === 'false' && group.subButton.enable === 'false' && group.nextButton.enable === 'false') { - group.$button = 'no-button' - } - - return group - }) - let _group = config.subcards[0] - if (_data && config.wrap.statusControl && _data[config.wrap.statusControl]) { - let _status = _data[config.wrap.statusControl] - - let _groups = config.subcards.filter(item => item.setting.status === _status)[0] - _group = _groups || _group + if (_group.subButton.enable === 'false') { + _group.subButton.style.display = 'none' + _group.$button = 'no-button' } this.setState({ sync: _sync, data: _data, group: _group, - step: _group.sort - 1, BID: BID || '', BData: BData || '', config: config, arr_field: config.columns.map(col => col.field).join(','), }, () => { - if (config.wrap.datatype !== 'static' && config.setting && config.setting.sync !== 'true' && config.setting.onload === 'true') { + if (config.wrap.datatype !== 'static' && config.setting.sync !== 'true' && config.setting.onload === 'true') { setTimeout(() => { this.loadData() }, config.setting.delay || 0) @@ -138,11 +108,10 @@ * @description 鍥捐〃鏁版嵁鏇存柊锛屽埛鏂板唴瀹� */ UNSAFE_componentWillReceiveProps (nextProps) { - const { sync, config, group } = this.state + const { sync, config } = this.state if (sync && !is(fromJS(this.props.data), fromJS(nextProps.data))) { let _data = {$$empty: true} - let _group = group if (nextProps.data && nextProps.data[config.dataName]) { _data = nextProps.data[config.dataName] if (Array.isArray(_data)) { @@ -150,13 +119,7 @@ } } - if (config.wrap.statusControl && _data[config.wrap.statusControl]) { - let _status = _data[config.wrap.statusControl] - let _groups = config.subcards.filter(item => item.setting.status === _status)[0] - _group = _groups || _group - } - - this.setState({sync: false, data: _data, group: _group, step: _group.sort - 1,}) + this.setState({sync: false, data: _data}) } else if (config.setting.syncRefresh && nextProps.mainSearch && !is(fromJS(this.props.mainSearch), fromJS(nextProps.mainSearch))) { this.setState({}, () => { this.loadData() @@ -221,18 +184,6 @@ } execSuccess = (btn, id) => { - const { config, group } = this.state - - if (config.subcards.length > group.sort) { - let _group = config.subcards.filter(item => item.sort === (group.sort + 1))[0] - - this.setState({group: null, step: group.sort}, () => { - this.setState({group: _group}) - }) - } else { - this.setState({step: group.sort}) - } - if (btn.linkmenu && btn.linkmenu.length > 0) { let menu_id = btn.linkmenu[btn.linkmenu.length - 1] let menu = this.props.permMenus.filter(m => m.MenuID === menu_id)[0] || '' @@ -282,31 +233,12 @@ let result = await Api.genericInterface(param) if (result.status) { let _data = result.data && result.data[0] ? result.data[0] : {$$empty: true} - let _group = this.state.group - - if (type === 'refresh') { - _group = config.subcards[0] - } - - if (config.wrap.statusControl && _data[config.wrap.statusControl]) { - let _status = _data[config.wrap.statusControl] - let _groups = config.subcards.filter(item => item.setting.status === _status)[0] - _group = _groups || _group - } - - let step = this.state.step - - if (config.subcards.length !== _group.sort || config.subcards.length !== step) { - step = _group.sort - 1 - } this.setState({ - group: null, - step: step, - data: _data, + data: null, loading: false }, () => { - this.setState({group: _group}) + this.setState({data: _data}) }) } else { this.setState({ @@ -330,48 +262,19 @@ }) } - prevStep = () => { - const { config, group } = this.state - - let _group = config.subcards.filter(item => item.sort === (group.sort - 1))[0] - - this.setState({group: null, step: group.sort - 2}, () => { - this.setState({group: _group}) - }) - } - - nextStep = () => { - const { config, group } = this.state - - let _group = config.subcards.filter(item => item.sort === (group.sort + 1))[0] - - this.setState({group: null, step: group.sort}, () => { - this.setState({group: _group}) - }) - } - render() { - const { config, loading, BID, BData, data, group, dict, step } = this.state + const { config, loading, BID, BData, data, group, dict } = this.state return ( - <div className="custom-normal-form-box" id={'anchor' + config.uuid} style={{...config.style}}> + <div className="custom-simple-form-box" id={'anchor' + config.uuid} style={{...config.style}}> {loading ? <div className="loading-mask"> <div className="ant-spin-blur"></div> <Spin /> </div> : null } - {config.wrap.groupLabel !== 'hidden' ? <div className="mk-normal-form-title"> - {config.subcards.map(card => ( - <div key={card.uuid} className={'form-title' + (card.sort <= step ? ' active' : '')}> - <span className="form-sort" style={{background: config.wrap.color}}>{card.sort}</span> - <span className="before-line" style={{background: config.wrap.color}}></span> - <span className="after-line" style={{background: config.wrap.color}}></span> - {card.setting.title} - </div>)) - } - </div> : null} - {group && data ? <MutilForm + <NormalHeader config={config} /> + {data ? <MutilForm BID={BID} BData={BData} dict={dict} @@ -380,8 +283,7 @@ inputSubmit={() => this.mkFormSubmit(group.uuid)} wrappedComponentRef={(inst) => this.formRef = inst} /> : null} - {group && data ? <div className={'mk-form-action ' + (group.$button || '')}> - {group.prevButton.enable === 'true' ? <Button type="link" className="prev" onClick={this.prevStep} style={group.prevButton.style}>{group.prevButton.label}</Button> : null} + {data ? <div className={'mk-form-action ' + (group.$button || '')}> <NormalButton BID={BID} btn={group.subButton} @@ -389,7 +291,6 @@ columns={config.columns} selectedData={data.$$empty ? [] : [data]} /> - {group.nextButton.enable === 'true' ? <Button type="link" className="skip" onClick={this.nextStep} style={group.nextButton.style}>{group.nextButton.label}</Button> : null} </div> : null} </div> ) @@ -406,4 +307,4 @@ return {} } -export default connect(mapStateToProps, mapDispatchToProps)(NormalForm) \ No newline at end of file +export default connect(mapStateToProps, mapDispatchToProps)(SimpleForm) \ No newline at end of file -- Gitblit v1.8.0