| | |
| | | import React, {Component} from 'react' |
| | | import PropTypes from 'prop-types' |
| | | import { is, fromJS } from 'immutable' |
| | | import { Input, Modal, notification, Empty } from 'antd' |
| | | import { Input, Modal, notification, Empty, Spin } from 'antd' |
| | | |
| | | import Api from '@/api' |
| | | import UtilsDM from '@/utils/utils-datamanage.js' |
| | |
| | | |
| | | this.setState({ |
| | | linkUrl: _data[config.wrap.linkField] || '', |
| | | data: _data, |
| | | loading: false |
| | | data: _data |
| | | }) |
| | | } else { |
| | | this.setState({ |
| | | loading: false |
| | | }) |
| | | if (result.ErrCode === 'N') { |
| | | Modal.error({ |
| | | title: result.message, |
| | |
| | | } |
| | | |
| | | if (submit) { |
| | | this.setState({linkUrl: val}, () => { |
| | | let node = document.getElementById(this.state.config.uuid) |
| | | node && node.select && node.select() |
| | | this.setState({linkUrl: '', loading: true}, () => { |
| | | this.setState({linkUrl: val}) |
| | | }) |
| | | |
| | | setTimeout(() => { |
| | | this.setState({loading: false}, () => { |
| | | let node = document.getElementById(this.state.config.uuid) |
| | | node && node.select && node.select() |
| | | }) |
| | | }, 500) |
| | | } |
| | | } |
| | | |
| | | enterUrl = (val) => { |
| | | this.setState({linkUrl: val}, () => { |
| | | let node = document.getElementById(this.state.config.uuid) |
| | | node && node.select && node.select() |
| | | this.setState({linkUrl: '', loading: true}, () => { |
| | | this.setState({linkUrl: val}) |
| | | }) |
| | | |
| | | setTimeout(() => { |
| | | this.setState({loading: false}, () => { |
| | | let node = document.getElementById(this.state.config.uuid) |
| | | node && node.select && node.select() |
| | | }) |
| | | }, 500) |
| | | } |
| | | |
| | | render() { |
| | | const { config, linkUrl } = this.state |
| | | const { config, linkUrl, loading } = this.state |
| | | |
| | | return ( |
| | | <div className="menu-iframe-box" style={config.style}> |
| | | {config.wrap.title || config.wrap.linkType === 'input' ? <div className="iframe-header" style={config.headerStyle}> |
| | | <span className="title">{config.wrap.title}</span> |
| | | {config.wrap.linkType === 'input' ? <Search id={config.uuid} placeholder="请输入地址" onChange={this.inputUrl} onSearch={this.enterUrl} enterButton="确定"/> : null} |
| | | {config.wrap.linkType === 'input' ? <Search id={config.uuid} disabled={loading} placeholder="请输入地址" onChange={this.inputUrl} onSearch={this.enterUrl} enterButton="确定"/> : null} |
| | | </div> : null} |
| | | <div className="iframe-wrap" style={{height: config.wrap.height}}> |
| | | {loading ? <div className="mask"><Spin size="large" /></div> : null} |
| | | {linkUrl ? <iframe title="mk" className="iframe" src={linkUrl} frameBorder="0"></iframe> : <Empty description={false}/>} |
| | | </div> |
| | | </div> |