| | |
| | | import React, {Component} from 'react' |
| | | import PropTypes from 'prop-types' |
| | | import { fromJS } from 'immutable' |
| | | import { Icon, message } from 'antd' |
| | | import { message } from 'antd' |
| | | import { CopyOutlined } from '@ant-design/icons' |
| | | import './index.scss' |
| | | |
| | | class CopyComponent extends Component { |
| | | static propTpyes = { |
| | | btnlog: PropTypes.array, |
| | | handlelog: PropTypes.func |
| | | type: PropTypes.string, |
| | | card: PropTypes.object |
| | | } |
| | | |
| | | trigger = () => { |
| | | const { card, type } = this.props |
| | | let copycard = fromJS(card).toJS() |
| | | copycard.copyType = type |
| | | |
| | | let _val = '' |
| | | let _val = fromJS(card).toJS() |
| | | _val.copyType = type |
| | | |
| | | try { |
| | | _val = window.btoa(window.encodeURIComponent(JSON.stringify(copycard))) |
| | | } catch { |
| | | delete _val.$srcId |
| | | |
| | | let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') |
| | | if (srcid) { |
| | | _val.$srcId = srcid |
| | | } |
| | | |
| | | if (type === 'menucell') { |
| | | _val.setting.type = 'linkmenu' |
| | | _val.setting.linkMenuId = '' |
| | | _val.setting.copyMenuId = '' |
| | | } else if (_val.type === 'menubar' && _val.subtype === 'menubar') { |
| | | let cell = _val.subMenus[0] |
| | | _val.subMenus = [] |
| | | |
| | | if (cell) { |
| | | cell.setting.type = 'menu' |
| | | cell.setting.linkMenuId = '' |
| | | cell.setting.copyMenuId = '' |
| | | |
| | | _val.subMenus.push(cell) |
| | | } |
| | | } else if (['normaltable', 'editable', 'basetable'].includes(type)) { |
| | | _val.action = _val.action.filter(item => !item.origin) |
| | | _val.cols = _val.cols.filter(item => !item.origin) |
| | | _val.search = _val.search.filter(item => !item.origin) |
| | | delete _val.isNew |
| | | } |
| | | |
| | | _val = window.btoa(window.encodeURIComponent(JSON.stringify(_val))) |
| | | } catch (e) { |
| | | console.warn(e) |
| | | message.warning('复制失败,请重试!') |
| | | _val = '' |
| | | } |
| | |
| | | |
| | | render () { |
| | | return ( |
| | | <Icon type="copy" title="复制" style={{color: '#26C281'}} onClick={this.trigger} /> |
| | | <CopyOutlined title="复制" style={{color: '#26C281'}} onClick={this.trigger} /> |
| | | ) |
| | | } |
| | | } |