From f393af9623c26ae177a3f69b8676afc4e23bff8d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 08 二月 2022 14:48:51 +0800
Subject: [PATCH] 2022-02-08

---
 src/menu/components/tabs/tabcomponents/index.jsx |   80 +++++++++++++++++++++++++--------------
 1 files changed, 51 insertions(+), 29 deletions(-)

diff --git a/src/menu/components/tabs/tabcomponents/index.jsx b/src/menu/components/tabs/tabcomponents/index.jsx
index 14b4604..1e30e2a 100644
--- a/src/menu/components/tabs/tabcomponents/index.jsx
+++ b/src/menu/components/tabs/tabcomponents/index.jsx
@@ -5,14 +5,14 @@
 import { Empty, notification, Modal } from 'antd'
 
 import Utils from '@/utils/utils.js'
+import MKEmitter from '@/utils/events.js'
+import MenuUtils from '@/utils/utils-custom.js'
 import Card from './card'
 import './index.scss'
 
 const { confirm } = Modal
 
-const Container = ({menu, config, handleList }) => {
-  let target = null
-
+const Container = ({ config, handleList }) => {
   const [cards, setCards] = useState(config.components)
   const moveCard = (id, atIndex) => {
     const { card, index } = findCard(id)
@@ -32,10 +32,6 @@
     }
   }
 
-  const hasDrop = (item) => {
-    target = item
-  }
-
   const updateConfig = (element) => {
     handleList({...config, components: cards.map(item => item.uuid === element.uuid ? element : item)})
   }
@@ -52,11 +48,17 @@
       })
     }
 
+    let uuids = MenuUtils.getDelButtonIds(card)
+
     confirm({
-      title: `纭畾鍒犻櫎銆�${card.setting.name}銆嬪悧锛焋,
+      title: `纭畾鍒犻櫎銆�${card.name}銆嬪悧锛焋,
       content: hasComponent ? '褰撳墠缁勪欢涓惈鏈夊瓙缁勪欢锛�' : '',
       onOk() {
         handleList({...config, components: cards.filter(item => item.uuid !== card.uuid)})
+
+        if (uuids.length === 0) return
+        
+        MKEmitter.emit('delButtons', uuids)
       },
       onCancel() {}
     })
@@ -67,7 +69,10 @@
     drop(item) {
       if (item.hasOwnProperty('originalIndex') || item.added) {
         return
+      } else if (['login', 'navbar', 'topbar'].includes(item.component)) {
+        return
       }
+      
       item.added = true
 
       if (item.component === 'search') { // 鎼滅储缁勪欢涓嶅彲閲嶅娣诲姞
@@ -79,26 +84,44 @@
           })
           return
         }
-      } else if (item.component === 'tabs' && config.floor === 3) {
-        notification.warning({
-          top: 92,
-          message: '鏍囩椤垫渶澶氫负涓夐噸缁撴瀯锛�',
-          duration: 5
-        })
-        return
+      } else if (item.component === 'tabs') {
+        let floor = MenuUtils.getFloor(config.parentId)
+        if (floor >= 3 ) {
+          notification.warning({
+            top: 92,
+            message: '鏍囩椤垫渶澶氫负涓夐噸缁撴瀯锛�',
+            duration: 5
+          })
+          return
+        }
       }
 
       let name = ''
       let names = {
         bar: '鏌辩姸鍥�',
+        chart: '鍥捐〃',
         line: '鎶樼嚎鍥�',
-        tabs: '鏍囩缁�'
+        tabs: '鏍囩缁�',
+        pie: '楗煎浘',
+        search: '鎼滅储',
+        table: '琛ㄦ牸',
+        group: '鍒嗙粍',
+        editor: '瀵屾枃鏈�',
+        code: '鑷畾涔�',
+        carousel: '杞挱',
+        form: '琛ㄥ崟',
+        dashboard: '浠〃鐩�',
+        scatter: '鏁g偣鍥�',
+        tree: '鏍戝舰鍒楄〃',
+        balcony: '娴姩鍗�',
+        timeline: '鏃堕棿杞�',
+        card: '鍗$墖'
       }
       let i = 1
       
       while (!name && names[item.component]) {
         let _name = names[item.component] + i
-        if (config.components.filter(com => com.setting && com.setting.name === _name).length === 0) {
+        if (config.components.filter(com => com.name === _name).length === 0) {
           name = _name
         }
         i++
@@ -110,25 +133,26 @@
         parentId: config.parentId,
         type: item.component,
         subtype: item.subtype,
+        config: item.config,
+        width: item.width || 24,
+        dataName: Utils.getdataName(),
         name: name,
-        floor: config.floor ? (config.floor + 1) : 2, // 缁勪欢鐨勫眰绾�
         isNew: true                                   // 鏂版坊鍔犳爣蹇楋紝鐢ㄤ簬鍒濆鍖�
       }
       
-      let targetId = cards.length > 0 ? cards[cards.length - 1].uuid : 0
-      if (target) {
-        targetId = target.uuid
+      let targetId = ''
+
+      if (item.dropTargetId) {
+        targetId = item.dropTargetId
+        delete item.dropTargetId
+      } else if (cards.length > 0) {
+        targetId = cards.slice(-1)[0].uuid
       }
 
       const { index: overIndex } = findCard(`${targetId}`)
-      let targetIndex = overIndex
-
-      targetIndex++
-
-      const _cards = update(cards, { $splice: [[targetIndex, 0, newcard]] })
+      const _cards = update(cards, { $splice: [[overIndex + 1, 0, newcard]] })
 
       handleList({...config, components: _cards})
-      target = null
     }
   })
 
@@ -138,13 +162,11 @@
         <Card
           id={card.uuid}
           key={card.uuid}
-          menu={menu}
           config={config}
           card={card}
           moveCard={moveCard}
           delCard={deleteCard}
           findCard={findCard}
-          hasDrop={hasDrop}
           updateConfig={updateConfig}
         />
       ))}

--
Gitblit v1.8.0