From da9942cd74b890c8533f475e7b333105c2358f0a Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 07 九月 2021 14:10:28 +0800 Subject: [PATCH] 2021-09-07 --- src/menu/pastecontroller/index.jsx | 233 +++++++++------------------------------------------------ 1 files changed, 38 insertions(+), 195 deletions(-) diff --git a/src/menu/pastecontroller/index.jsx b/src/menu/pastecontroller/index.jsx index 2a7aebe..96179d1 100644 --- a/src/menu/pastecontroller/index.jsx +++ b/src/menu/pastecontroller/index.jsx @@ -1,9 +1,8 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { fromJS } from 'immutable' -import { Icon, Modal, Button, notification } from 'antd' +import { Modal, Button, notification } from 'antd' -import Utils from '@/utils/utils.js' +import MenuUtils from '@/utils/utils-custom.js' import MKEmitter from '@/utils/events.js' import asyncComponent from '@/utils/asyncComponent' import './index.scss' @@ -12,8 +11,6 @@ class PasteController extends Component { static propTpyes = { - type: PropTypes.any, // 缁勪欢绫诲瀷 - Tab: PropTypes.any, // 鏍囩锛屾坊鍔犺彍鍗曠粍浠舵椂涓虹┖ insert: PropTypes.func } @@ -25,220 +22,68 @@ this.setState({visible: true}) } - resetconfig = (item, Tab, isgroup, copyBtns) => { - item.uuid = Utils.getuuid() - item.floor = Tab ? (Tab.floor + 1) : 1 - - if (Tab && !isgroup) { - item.tabId = Tab.uuid - item.parentId = Tab.parentId - } else if (Tab) { - item.floor = Tab.floor || 1 - item.parentId = Tab.parentId - } - - if (item.dataName) { - item.dataName = Utils.getdataName() - } - + resetconfig = (item, copyBtns) => { + let appType = sessionStorage.getItem('appType') + if (item.type === 'tabs') { + item.uuid = MenuUtils.getuuid() + item.setting.name = item.setting.name + MenuUtils.getdataName().toUpperCase().substr(-4) + item.name = item.setting.name + item.subtabs.forEach(tab => { - tab.uuid = Utils.getuuid() + tab.uuid = MenuUtils.getuuid() tab.parentId = item.uuid - if (item.floor >= 3) { - tab.components = tab.components.filter(cell => cell.type !== 'tabs') + if (appType !== 'mob') { + tab.components = tab.components.filter(cell => cell.type !== 'menubar') } tab.components = tab.components.map(cell => { - cell = this.resetconfig(cell, tab, false, copyBtns) + cell.floor = tab.floor + 1 + cell.tabId = tab.uuid + cell.parentId = tab.parentId + + cell = this.resetconfig(cell, copyBtns) return cell }) }) } else if (item.type === 'group') { + item.uuid = MenuUtils.getuuid() + item.setting.name = item.setting.name + MenuUtils.getdataName().toUpperCase().substr(-4) + item.name = item.setting.name + if (appType !== 'mob') { + item.components = item.components.filter(cell => cell.type !== 'menubar') + } item.components = item.components.map(cell => { - cell = this.resetconfig(cell, item, true, copyBtns) + cell.floor = item.floor + cell.tabId = item.tabId || '' + cell.parentId = item.parentId || '' + + cell = MenuUtils.resetComponentConfig(cell, copyBtns) return cell }) - } else if (item.type === 'menubar') { - item.subMenus = item.subMenus.map(cell => { - cell.uuid = Utils.getuuid() - return cell - }) - } else if (item.type === 'balcony') { - item.elements = item.elements.map(cell => { - cell.uuid = Utils.getuuid() - return cell - }) - } else if (item.type === 'card' || (item.type === 'table' && item.subtype === 'tablecard')) { - item.subcards && item.subcards.forEach(card => { - card.uuid = Utils.getuuid() - if (card.elements) { - if (sessionStorage.getItem('editMenuType') === 'popview') { - card.elements = card.elements.filter(b => b.OpenType !== 'popview' && b.OpenType !== 'funcbutton') - } - card.elements = card.elements.map(cell => { - let _uuid = Utils.getuuid() - if (cell.OpenType === 'popview') { - let _cell = fromJS(cell).toJS() - _cell.$originUuid = _cell.uuid - _cell.uuid = _uuid - copyBtns.set(_uuid, _cell) - } - cell.uuid = _uuid - return cell - }) - } - if (card.backElements) { - if (sessionStorage.getItem('editMenuType') === 'popview') { - card.elements = card.elements.filter(b => b.OpenType !== 'popview' && b.OpenType !== 'funcbutton') - } - card.backElements = card.backElements.map(cell => { - let _uuid = Utils.getuuid() - if (cell.OpenType === 'popview') { - let _cell = fromJS(cell).toJS() - _cell.$originUuid = _cell.uuid - _cell.uuid = _uuid - copyBtns.set(_uuid, _cell) - } - cell.uuid = _uuid - return cell - }) - } - }) - } else if (item.type === 'table' && item.subtype === 'normaltable' && item.cols) { - let loopCol = (col) => { - col.subcols = col.subcols.map(c => { - c.uuid = Utils.getuuid() - - if (c.type === 'colspan' && c.subcols) { - c = loopCol(c) - } else if (c.type === 'custom' && c.elements) { - c.elements = c.elements.map(cell => { - cell.uuid = Utils.getuuid() - return cell - }) - } - return c - }) - - return col - } - - item.cols = item.cols.map(col => { - col.uuid = Utils.getuuid() - - if (col.type === 'colspan' && col.subcols) { - col = loopCol(col) - } else if (col.type === 'custom' && col.elements) { - col.elements = col.elements.map(cell => { - cell.uuid = Utils.getuuid() - return cell - }) - } else if (col.type === 'action' && col.elements) { - if (sessionStorage.getItem('editMenuType') === 'popview') { - col.elements = col.elements.filter(c => c.OpenType !== 'popview' && c.OpenType !== 'funcbutton') - } - col.elements = col.elements.map(cell => { - let _uuid = Utils.getuuid() - if (cell.OpenType === 'popview') { - let _cell = fromJS(cell).toJS() - _cell.$originUuid = _cell.uuid - _cell.uuid = _uuid - copyBtns.set(_uuid, _cell) - } - cell.uuid = _uuid - return cell - }) - } - return col - }) - } else if (item.type === 'form') { - item.subcards = item.subcards.map(cell => { - cell.uuid = Utils.getuuid() - - cell.fields = cell.fields.map(m => { - m.uuid = Utils.getuuid() - - return m - }) - return cell - }) - } - - if (item.btnlog) { - item.btnlog = [] - } - - let oriUids = {} - if (item.action) { - if (sessionStorage.getItem('editMenuType') === 'popview') { - item.action = item.action.filter(c => c.OpenType !== 'popview' && c.OpenType !== 'funcbutton') - } - item.action = item.action.map(cell => { - let _uuid = Utils.getuuid() - - oriUids[cell.uuid] = _uuid - - if (cell.OpenType === 'popview') { - let _cell = fromJS(cell).toJS() - _cell.$originUuid = _cell.uuid - _cell.uuid = _uuid - copyBtns.set(_uuid, _cell) - } - cell.uuid = _uuid - return cell - }) - } - if (item.search) { - item.search = item.search.map(cell => { - cell.uuid = Utils.getuuid() - return cell - }) - } - if (item.columns) { - item.columns = item.columns.map(cell => { - cell.uuid = Utils.getuuid() - return cell - }) - } - if (item.setting && item.setting.supModule) { - item.setting.supModule = '' - } - - if (item.wrap && item.wrap.doubleClick) { - item.wrap.doubleClick = oriUids[item.wrap.doubleClick] || '' + } else { + item = MenuUtils.resetComponentConfig(item, copyBtns) } return item } pasteSubmit = () => { - const { Tab } = this.props - - let isgroup = Tab && Tab.type === 'group' ? true : false - let options = ['tabs', 'datacard', 'propcard', 'mainsearch', 'balcony', 'group', 'normaltable', 'tablecard', 'line', 'bar', 'pie', 'dashboard', 'scatter'] - - if (sessionStorage.getItem('appType') === 'mob') { - options.push('menubar') - } - - if (isgroup) { - options = options.filter(item => !['tabs', 'mainsearch', 'group'].includes(item)) - } + let options = ['tabs', 'menubar', 'datacard', 'propcard', 'mainsearch', 'stepform', 'tabform', 'balcony', 'group', 'normaltable', 'tablecard', 'line', 'bar', 'pie', 'dashboard', 'scatter'] this.pasteFormRef.handleConfirm().then(res => { - if (!options.includes(res.copyType)) { + if (res.copyType === 'menubar' && sessionStorage.getItem('appType') !== 'mob') { notification.warning({ top: 92, - message: '閰嶇疆淇℃伅鏍煎紡閿欒锛�', + message: '褰撳墠绯荤粺涓嶆敮鎸佽彍鍗曠粍浠讹紒', duration: 5 }) return - } else if (Tab && Tab.floor === 3 && res.type === 'tabs') { + } else if (!options.includes(res.copyType)) { notification.warning({ top: 92, - message: '鏍囩椤垫渶澶氫负涓夐噸缁撴瀯锛�', + message: '閰嶇疆淇℃伅鏍煎紡閿欒锛�', duration: 5 }) return @@ -246,11 +91,11 @@ let copyBtns = new Map() - res = this.resetconfig(res, Tab, isgroup, copyBtns) + res = this.resetconfig(res, copyBtns) delete res.copyType - this.props.insert(res, Tab) + this.props.insert(res) copyBtns = [...copyBtns.values()] @@ -269,13 +114,11 @@ } render() { - const { type } = this.props const { visible } = this.state return ( <div style={{display: 'inline-block'}}> - {type !== 'menu' ? <Icon type="snippets" style={{color: 'purple'}} onClick={() => {this.setState({visible: true})}} /> : null} - {type === 'menu' ? <Button className="menu-config-paste" icon="snippets" onClick={() => {this.setState({visible: true})}}>绮樿创</Button> : null} + <Button className="menu-config-paste" icon="snippets" onClick={() => {this.setState({visible: true})}}>绮樿创</Button> <Modal title="绮樿创" visible={visible} -- Gitblit v1.8.0