From fa381753ef2a2b25b1c0722549ac17e333da79be Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 06 九月 2022 22:50:54 +0800
Subject: [PATCH] 2022-09-06

---
 src/menu/components/table/edit-table/columns/index.jsx |   40 ++++++++++++++++++++++++++--------------
 1 files changed, 26 insertions(+), 14 deletions(-)

diff --git a/src/menu/components/table/edit-table/columns/index.jsx b/src/menu/components/table/edit-table/columns/index.jsx
index 23067de..870e23a 100644
--- a/src/menu/components/table/edit-table/columns/index.jsx
+++ b/src/menu/components/table/edit-table/columns/index.jsx
@@ -18,6 +18,7 @@
 const TableVerify = asyncComponent(() => import('./tableIn'))
 const MarkColumn = asyncIconComponent(() => import('@/menu/components/share/markcomponent'))
 const CardCellComponent = asyncComponent(() => import('@/menu/components/card/cardcellcomponent'))
+const PasteComponent = asyncIconComponent(() => import('@/components/paste'))
 
 class HeaderCol extends Component {
   deleteCol = () => {
@@ -51,7 +52,7 @@
   }
 
   render() {
-    const { connectDragSource, connectDropTarget, moveCol, addElement, updateCol, editColumn, changeStyle, deleteCol, index, column, align, fields, children, ...restProps } = this.props
+    const { connectDragSource, connectDropTarget, moveCol, addElement, updateCol, editColumn, pasteCell, changeStyle, deleteCol, index, column, align, fields, children, ...restProps } = this.props
 
     if (!column) return (
       <th {...restProps} index={index}>
@@ -67,9 +68,11 @@
               <PlusOutlined className="plus" title="娣诲姞" onClick={() => this.props.addElement(column)} /> : null
             }
             <EditOutlined className="edit" title="缂栬緫" onClick={() => this.props.editColumn(column)} />
+            {column.type === 'custom' ? <PasteComponent options={['customCardElement']} updateConfig={(res, resolve) => this.props.pasteCell(column, res, resolve)} /> : null}
+            {column.type === 'action' ? <PasteComponent options={['action']} updateConfig={(res, resolve) => this.props.pasteCell(column, res, resolve)} /> : null}
             {column.type === 'custom' ? <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={() => this.props.changeStyle(column)}/> : null}
             <DeleteOutlined className="close" title="鍒犻櫎" onClick={this.deleteCol} />
-            {['text', 'number', 'formula'].includes(column.type) ? <MarkColumn columns={fields} marks={column.marks} onSubmit={this.updateMarks} /> : null }
+            {['text', 'number', 'formula'].includes(column.type) ? <MarkColumn field={column.field || ''} columns={fields} marks={column.marks} onSubmit={this.updateMarks} /> : null }
           </div>
         } trigger="hover">
           {children}
@@ -282,6 +285,16 @@
     })
   }
 
+  pasteCell = (col, cell, resolve) => {
+    resolve({status: true})
+    
+    delete cell.copyType
+    cell.uuid = Utils.getuuid()
+    cell.focus = true
+    
+    MKEmitter.emit('cardAddElement', [this.props.config.uuid, col.uuid], cell)
+  }
+
   addElement = (col) => {
     const { config } = this.props
     let column = fromJS(col).toJS()
@@ -328,27 +341,25 @@
       editStyleCard: fromJS(col).toJS()
     })
 
-    MKEmitter.emit('changeStyle', [col.uuid], ['font', 'padding'], col.style || {})
+    MKEmitter.emit('changeStyle', ['font', 'padding'], col.style || {}, this.getStyle)
   }
 
   changeSubmitStyle = () => {
     const { config } = this.props
 
-    MKEmitter.emit('changeStyle', [config.uuid, 'submit'], ['font', 'background', 'border', 'margin', 'padding'], config.submit.style || {})
+    MKEmitter.emit('changeStyle', ['font', 'background', 'border', 'margin', 'padding'], config.submit.style || {}, this.getSubmitStyle)
   }
 
-  getStyle = (comIds, style) => {
+  getSubmitStyle = (style) => {
     const { config } = this.props
+
+    let submit = {...config.submit, style}
+
+    this.props.updatecolumn({...config, submit: submit})
+  }
+
+  getStyle = (style) => {
     const { editStyleCard } = this.state
-
-    if (comIds.length === 2 && comIds[0] === config.uuid && comIds[1] === 'submit') {
-      let submit = {...config.submit, style}
-
-      this.props.updatecolumn({...config, submit: submit})
-
-      return
-    }
-    if (comIds.length !== 1 || !editStyleCard || comIds[0] !== editStyleCard.uuid) return
 
     let _card = {...editStyleCard, style}
     
@@ -554,6 +565,7 @@
           updateCol: this.updateCol,
           addElement: this.addElement,
           editColumn: this.editColumn,
+          pasteCell: this.pasteCell,
           changeStyle: this.changeStyle,
           deleteCol: this.deleteCol,
         }),

--
Gitblit v1.8.0