From 233709a44a2f5cfff9b8fb955ebcdc6889c0d40b Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 19 十一月 2019 09:12:28 +0800
Subject: [PATCH] 2019-11-19

---
 src/components/sidemenu/comtableconfig/dragelement/index.jsx |   66 +++++++++++++++++++++++++++------
 1 files changed, 54 insertions(+), 12 deletions(-)

diff --git a/src/components/sidemenu/comtableconfig/dragelement/index.jsx b/src/components/sidemenu/comtableconfig/dragelement/index.jsx
index c89134c..9a8425d 100644
--- a/src/components/sidemenu/comtableconfig/dragelement/index.jsx
+++ b/src/components/sidemenu/comtableconfig/dragelement/index.jsx
@@ -30,6 +30,36 @@
     handleMenu(card)
   }
 
+  const copyCard = id => {
+    const { card } = findCard(id)
+    let copycard = JSON.parse(JSON.stringify(card))
+    copycard.uuid = Utils.getuuid()
+    copycard.origin = false
+    let names = cards.map(car => { return car.label })
+    let index = 1
+    let origin = copycard.label.split('(copy')[0] || 'button'
+    let label = origin + '(copy)'
+    while (names.includes(label)) {
+      label = origin + `(copy${index})`
+      index++
+    }
+
+    copycard.label = label
+    
+    let indexes = cards.map(car => { return car.id })
+    let newid = 0
+    while (indexes.includes(newid)) {
+      newid++
+    }
+    copycard.id = newid
+
+    const { index: overIndex } = findCard(`${card.id}`)
+
+    const _cards = update(cards, { $splice: [[overIndex + 1, 0, copycard]] })
+    setCards(_cards)
+    handleList({action: _cards})
+  }
+
   const hasDrop = (item) => {
     target = item
   }
@@ -40,31 +70,42 @@
       if (item.hasOwnProperty('originalIndex')) {
         return
       }
+
       let newcard = {}
       if (item.type === 'search') {
         newcard.uuid = Utils.getuuid()
         newcard.label = 'fieldName'
-        newcard.field = 'field'
+        newcard.field = ''
         newcard.initval = ''
         newcard.type = item.subType
-        if (item.subType === 'select') {
-          newcard.resourceType = 0
-          newcard.options = []
-          newcard.dataSource = ''
-        }
+        newcard.resourceType = '0'
+        newcard.options = []
+        newcard.dataSource = ''
+        newcard.setAll = 'false'
+        newcard.linkField = ''
+        newcard.valueField = ''
+        newcard.valueText = ''
+        newcard.orderBy = ''
+        newcard.orderType = 'asc'
+        newcard.display = 'dropdown'
       } else if (item.type === 'action') {
         newcard.uuid = Utils.getuuid()
         newcard.label = 'button'
-        newcard.func = ''
-        newcard.Ot = 'notRequired'
+        newcard.innerFunc = ''
+        newcard.outerFunc = ''
+        newcard.Ot = 'requiredSgl'
         newcard.OpenType = item.subType
-        newcard.icon = 'plus'
+        newcard.icon = ''
         newcard.class = 'green'
+        newcard.intertype = 'inner'
+        newcard.interface = ''
+        newcard.callbackFunc = ''
+        newcard.pageTemplate = ''
       } else if (item.type === 'columns') {
         newcard.uuid = Utils.getuuid()
         newcard.Align = 'left'
         newcard.label = 'fieldName'
-        newcard.field = 'field'
+        newcard.field = ''
         newcard.Hide = 'false'
         newcard.IsSort = item.subType
         newcard.Width = 120
@@ -98,8 +139,8 @@
     }
   })
   let columns = []
-  if (type === 'columns' && cards.length > 12) {
-    let number = Math.ceil(cards.length / Math.ceil(cards.length / 12))
+  if (type === 'columns' && cards.length > 10) {
+    let number = Math.ceil(cards.length / Math.ceil(cards.length / 10))
     for (let i = 0, len = cards.length; i < len; i += number) {
       columns.push(cards.slice(i, i + number))
     }
@@ -117,6 +158,7 @@
           card={card}
           moveCard={moveCard}
           editCard={editCard}
+          copyCard={copyCard}
           findCard={findCard}
           hasDrop={hasDrop}
         />

--
Gitblit v1.8.0