From afb39f8ab004b2607bb718edab02e99c7a010114 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 22 三月 2023 14:36:44 +0800
Subject: [PATCH] 2023-03-22

---
 src/menu/components/share/pastecomponent/index.jsx |   65 ++++++++++----------------------
 1 files changed, 21 insertions(+), 44 deletions(-)

diff --git a/src/menu/components/share/pastecomponent/index.jsx b/src/menu/components/share/pastecomponent/index.jsx
index 553d24d..477e3e0 100644
--- a/src/menu/components/share/pastecomponent/index.jsx
+++ b/src/menu/components/share/pastecomponent/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { fromJS } from 'immutable'
-import { Icon, Modal, notification } from 'antd'
+import { Modal, notification } from 'antd'
+import { SnippetsOutlined } from '@ant-design/icons'
 
 import Utils from '@/utils/utils.js'
 import MKEmitter from '@/utils/events.js'
@@ -20,19 +21,8 @@
     visible: false
   }
 
-  handleMenuClick = () => {
-    this.setState({visible: true})
-  }
-
-  resetconfig = (item, copyBtns, config) => {
+  resetconfig = (item, config) => {
     let _uuid = Utils.getuuid()
-
-    if (item.OpenType === 'popview') {
-      let _cell = fromJS(item).toJS()
-      _cell.$originUuid = _cell.uuid
-      _cell.uuid = _uuid
-      copyBtns.set(_uuid, _cell)
-    }
 
     if (item.uuid) {
       item.uuid = _uuid
@@ -108,14 +98,7 @@
           })
         } else if (_item.type === 'action' && _item.elements) {
           _item.elements = _item.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
+            cell.uuid = Utils.getuuid()
             return cell
           })
         }
@@ -129,43 +112,35 @@
   pasteSubmit = () => {
     const { options } = this.props
     this.pasteFormRef.handleConfirm().then(res => {
-
       if (!options.includes(res.copyType)) {
         notification.warning({ top: 92, message: '閰嶇疆淇℃伅鏍煎紡閿欒锛�', duration: 5 })
         return
       }
 
-      let type = res.copyType
-      let config = fromJS(this.props.config).toJS()
-      let copyBtns = new Map()
-
-      res = this.resetconfig(res, copyBtns, config)
-      delete res.copyType
-
-      copyBtns = [...copyBtns.values()]
-
-      if (copyBtns.length > 0) {
-        MKEmitter.emit('copyButtons', copyBtns)
+      if (!this.props.config) {
+        this.props.updateConfig(res)
+        this.setState({visible: false})
+        return
       }
 
-      if (config.type === 'form' && config.subtype === 'stepform') {
+      let type = res.copyType
+      let config = fromJS(this.props.config).toJS()
+
+      res = this.resetconfig(res, config)
+      delete res.copyType
+
+      if (config.type === 'form') {
         this.props.updateConfig(res)
         this.setState({visible: false})
         return
       } else if (type === 'action') {
-        config.action = config.action || []
-        config.action = config.action.filter(item => !item.origin)
-
         if (['line', 'bar', 'scatter'].includes(config.type) && !['excelOut', 'excelIn'].includes(res.OpenType)) {
           notification.warning({ top: 92, message: '鍥捐〃涓笉鏀寔姝ょ被鎸夐挳锛�', duration: 5 })
           return
         }
         MKEmitter.emit('addButton', config.uuid, res)
       } else if (type === 'search' || type === 'form') {
-        config.search = config.search || []
-        config.search = config.search.filter(item => !item.origin)
-
-        let keys = config.search.map(item => item.field.toLowerCase())
+        let keys = config.search.map(item => item.field ? item.field.toLowerCase() : '')
 
         if (type === 'form') {
           if (['number', 'switch', 'textarea', 'fileupload', 'hint', 'color', 'funcvar'].includes(res.type)) {
@@ -188,7 +163,9 @@
           return
         }
 
-        config.search.push(res)
+        MKEmitter.emit('plusSearch', config.uuid, res, 'simple')
+        this.setState({visible: false})
+        return
       } else if (type === 'cardcell') {
         config.subcards.push(res)
       } else if (type === 'menucell') {
@@ -205,7 +182,7 @@
         })
       }
 
-      this.props.updateConfig(config)
+      this.props.updateConfig(config, type)
       this.setState({visible: false})
 
       notification.success({
@@ -221,7 +198,7 @@
 
     return (
       <div style={{display: 'inline-block'}}>
-        <Icon type="snippets" style={{color: 'purple'}} onClick={() => {this.setState({visible: true})}} />
+        <SnippetsOutlined style={{color: 'purple'}} onClick={() => {this.setState({visible: true})}} />
         <Modal
           title="绮樿创"
           visible={visible}

--
Gitblit v1.8.0