import React, {Component} from 'react'
|
import PropTypes from 'prop-types'
|
import { Button, message } from 'antd'
|
import MKEmitter from '@/utils/events.js'
|
|
class Iframe extends Component {
|
static propTypes = {
|
title: PropTypes.string,
|
MenuID: PropTypes.string, // 菜单Id
|
MenuNo: PropTypes.string, // 菜单参数
|
url: PropTypes.string
|
}
|
|
state = {
|
visible: true,
|
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('复制成功')
|
}
|
|
render () {
|
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>)
|
}
|
}
|
|
export default Iframe
|