| | |
| | | import { is, fromJS } from 'immutable' |
| | | import { Modal } from 'antd' |
| | | |
| | | import zhCN from '@/locales/zh-CN/model.js' |
| | | import enUS from '@/locales/en-US/model.js' |
| | | import ModalForm from './modalform' |
| | | import './index.scss' |
| | | |
| | | class NormalFormComponent extends Component { |
| | | static propTpyes = { |
| | |
| | | } |
| | | |
| | | state = { |
| | | dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, |
| | | visible: false, |
| | | formlist: [] |
| | | } |
| | | |
| | | shouldComponentUpdate (nextProps, nextState) { |
| | | return !is(fromJS(this.state), fromJS(nextState)) |
| | | return !is(fromJS(this.state), fromJS(nextState)) || !is(fromJS(this.props.children), fromJS(nextProps.children)) |
| | | } |
| | | |
| | | trigger = () => { |
| | |
| | | }) |
| | | } |
| | | |
| | | cancel = () => { |
| | | this.setState({ visible: false }) |
| | | |
| | | this.props.cancel && this.props.cancel() |
| | | } |
| | | |
| | | render () { |
| | | const { title, width, children } = this.props |
| | | const { visible, dict, formlist } = this.state |
| | | const { title, width, children, double } = this.props |
| | | const { visible, formlist } = this.state |
| | | |
| | | return ( |
| | | <div className="normal-form-wrap"> |
| | | <span onClick={this.trigger}>{children}</span> |
| | | <> |
| | | {!double ? <span onClick={this.trigger}>{children}</span> : <span onDoubleClick={this.trigger}>{children}</span>} |
| | | <Modal |
| | | wrapClassName="popview-modal" |
| | | title={title} |
| | | visible={visible} |
| | | width={width} |
| | | maskClosable={false} |
| | | okText={dict['model.submit']} |
| | | okText="确定" |
| | | onOk={this.submit} |
| | | onCancel={() => { this.setState({ visible: false }) }} |
| | | onCancel={this.cancel} |
| | | destroyOnClose |
| | | > |
| | | <ModalForm |
| | | dict={dict} |
| | | formlist={formlist} |
| | | inputSubmit={this.submit} |
| | | wrappedComponentRef={(inst) => this.Ref = inst} |
| | | /> |
| | | </Modal> |
| | | </div> |
| | | </> |
| | | ) |
| | | } |
| | | } |