From 51a60b5cb00fdeaf9e42c29341242460bf2154e8 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 18 九月 2020 09:37:22 +0800
Subject: [PATCH] 2020-09-18

---
 src/menu/components/tabs/tabcomponents/index.jsx |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 54 insertions(+), 6 deletions(-)

diff --git a/src/menu/components/tabs/tabcomponents/index.jsx b/src/menu/components/tabs/tabcomponents/index.jsx
index 1d409e6..14b4604 100644
--- a/src/menu/components/tabs/tabcomponents/index.jsx
+++ b/src/menu/components/tabs/tabcomponents/index.jsx
@@ -2,13 +2,15 @@
 import { useDrop } from 'react-dnd'
 import { is, fromJS } from 'immutable'
 import update from 'immutability-helper'
-import { Empty, notification } from 'antd'
+import { Empty, notification, Modal } from 'antd'
 
 import Utils from '@/utils/utils.js'
 import Card from './card'
 import './index.scss'
 
-const Container = ({menu, parentId, config, handleList, deleteCard, doubleClickCard }) => {
+const { confirm } = Modal
+
+const Container = ({menu, config, handleList }) => {
   let target = null
 
   const [cards, setCards] = useState(config.components)
@@ -38,6 +40,28 @@
     handleList({...config, components: cards.map(item => item.uuid === element.uuid ? element : item)})
   }
 
+  const deleteCard = (id) => {
+    const { card } = findCard(id)
+
+    let hasComponent = false
+    if (card.type === 'tabs') {
+      card.subtabs.forEach(tab => {
+        if (tab.components.length > 0) {
+          hasComponent = true
+        }
+      })
+    }
+
+    confirm({
+      title: `纭畾鍒犻櫎銆�${card.setting.name}銆嬪悧锛焋,
+      content: hasComponent ? '褰撳墠缁勪欢涓惈鏈夊瓙缁勪欢锛�' : '',
+      onOk() {
+        handleList({...config, components: cards.filter(item => item.uuid !== card.uuid)})
+      },
+      onCancel() {}
+    })
+  }
+
   const [, drop] = useDrop({
     accept: 'menu',
     drop(item) {
@@ -55,15 +79,40 @@
           })
           return
         }
+      } else if (item.component === 'tabs' && config.floor === 3) {
+        notification.warning({
+          top: 92,
+          message: '鏍囩椤垫渶澶氫负涓夐噸缁撴瀯锛�',
+          duration: 5
+        })
+        return
+      }
+
+      let name = ''
+      let names = {
+        bar: '鏌辩姸鍥�',
+        line: '鎶樼嚎鍥�',
+        tabs: '鏍囩缁�'
+      }
+      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) {
+          name = _name
+        }
+        i++
       }
       
       let newcard = {
         uuid: Utils.getuuid(),
+        tabId: config.uuid,
+        parentId: config.parentId,
         type: item.component,
         subtype: item.subtype,
-        parentId: parentId,
-        floor: 2,   // 缁勪欢鐨勫眰绾�
-        isNew: true // 鏂版坊鍔犳爣蹇楋紝鐢ㄤ簬鍒濆鍖�
+        name: name,
+        floor: config.floor ? (config.floor + 1) : 2, // 缁勪欢鐨勫眰绾�
+        isNew: true                                   // 鏂版坊鍔犳爣蹇楋紝鐢ㄤ簬鍒濆鍖�
       }
       
       let targetId = cards.length > 0 ? cards[cards.length - 1].uuid : 0
@@ -97,7 +146,6 @@
           findCard={findCard}
           hasDrop={hasDrop}
           updateConfig={updateConfig}
-          doubleClickCard={doubleClickCard}
         />
       ))}
       {cards.length === 0 ?

--
Gitblit v1.8.0