| | |
| | | import React, {Component} from 'react' |
| | | import PropTypes from 'prop-types' |
| | | import { Button, message } from 'antd' |
| | | import MKEmitter from '@/utils/events.js' |
| | | import mzhCN from '@/locales/zh-CN/main.js' |
| | | import menUS from '@/locales/en-US/main.js' |
| | | |
| | | class Iframe extends Component { |
| | | static propTypes = { |
| | | title: PropTypes.string, |
| | | MenuID: PropTypes.string, // 菜单Id |
| | | MenuNo: PropTypes.string, // 菜单参数 |
| | | url: PropTypes.string |
| | | } |
| | | |
| | | state = { |
| | | visible: true, |
| | | dict: localStorage.getItem('lang') !== 'en-US' ? mzhCN : menUS, |
| | | debug: sessionStorage.getItem('debug') === 'true' |
| | | } |
| | | |
| | | componentDidMount () { |
| | | MKEmitter.addListener('reloadMenuView', this.reloadMenuView) |
| | | } |
| | | |
| | | /** |
| | | * @description 组件销毁,清除state更新 |
| | | */ |
| | | componentWillUnmount () { |
| | | this.setState = () => { |
| | | return |
| | | } |
| | | MKEmitter.removeListener('reloadMenuView', this.reloadMenuView) |
| | | } |
| | | |
| | | reloadMenuView = (menuId) => { |
| | | const { MenuID } = this.props |
| | | |
| | | if (MenuID !== menuId) return |
| | | |
| | | this.setState({visible: false}, () => { |
| | | this.setState({visible: true}) |
| | | }) |
| | | } |
| | | |
| | | copyMenuNo = (e) => { |
| | | const { MenuNo } = this.props |
| | | |
| | | e.stopPropagation() |
| | | let oInput = document.createElement('input') |
| | | oInput.value = MenuNo || '' |
| | | document.body.appendChild(oInput) |
| | | oInput.select() |
| | | document.execCommand('Copy') |
| | | oInput.className = 'oInput' |
| | | oInput.style.display = 'none' |
| | | message.success(this.state.dict['main.copy.success']) |
| | | } |
| | | |
| | | render () { |
| | | return ( |
| | | <iframe title={this.props.title} src={this.props.url} /> |
| | | ) |
| | | const { visible, debug } = this.state |
| | | |
| | | return (<div> |
| | | {visible ? <iframe title={this.props.title} src={this.props.url} /> : null} |
| | | {debug ? <Button |
| | | icon="copy" |
| | | shape="circle" |
| | | className={'main-copy ifr-copy'} |
| | | onClick={this.copyMenuNo} |
| | | /> : null} |
| | | </div>) |
| | | } |
| | | } |
| | | |