From 137fb8ea6af2789b3238b22bac31d80bced41dfe Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 28 七月 2021 11:39:39 +0800
Subject: [PATCH] 2021-07-28

---
 src/mob/mobshell/index.jsx |   65 ++++++++++++++++++++++++++++----
 1 files changed, 56 insertions(+), 9 deletions(-)

diff --git a/src/mob/mobshell/index.jsx b/src/mob/mobshell/index.jsx
index ee23621..5cdb407 100644
--- a/src/mob/mobshell/index.jsx
+++ b/src/mob/mobshell/index.jsx
@@ -19,6 +19,10 @@
     handleList({...menu, components: _cards})
     setCards(_cards)
   }
+
+  if (menu.components.length > cards.length) {
+    setCards(menu.components)
+  }
   
   const findCard = id => {
     const card = cards.filter(c => `${c.uuid}` === id)[0]
@@ -49,13 +53,16 @@
     let uuids = MenuUtils.getDelButtonIds(card)
 
     confirm({
-      title: `纭畾鍒犻櫎銆�${card.name}銆嬪悧锛焋,
+      title: `纭畾鍒犻櫎${card.name ? `銆�${card.name}銆媊 : '缁勪欢'}鍚楋紵`,
       content: hasComponent ? '褰撳墠缁勪欢涓惈鏈夊瓙缁勪欢锛�' : '',
       onOk() {
-        MKEmitter.emit('delButtons', uuids)
         const _cards = cards.filter(item => item.uuid !== card.uuid)
         handleList({...menu, components: _cards})
         setCards(_cards)
+
+        if (uuids.length === 0) return
+        
+        MKEmitter.emit('delButtons', uuids)
       },
       onCancel() {}
     })
@@ -78,6 +85,24 @@
           })
           return
         }
+      } else if (item.component === 'navbar') {
+        if (cards.filter(card => card.type === 'navbar').length > 0) {
+          notification.warning({
+            top: 92,
+            message: '鑿滃崟鏍忎笉鍙噸澶嶆坊鍔狅紒',
+            duration: 5
+          })
+          return
+        }
+      } else if (item.component === 'topbar') {
+        if (cards.filter(card => card.type === 'topbar').length > 0) {
+          notification.warning({
+            top: 92,
+            message: '瀵艰埅鏍忎笉鍙噸澶嶆坊鍔狅紒',
+            duration: 5
+          })
+          return
+        }
       }
 
       let name = ''
@@ -92,8 +117,12 @@
         editor: '瀵屾枃鏈�',
         code: '鑷畾涔�',
         carousel: '杞挱',
+        dashboard: '浠〃鐩�',
         form: '琛ㄥ崟',
-        card: '鍗$墖'
+        card: '鍗$墖',
+        navbar: '瀵艰埅鏍�',
+        menubar: '鑿滃崟鏍�',
+        login: '鐧诲綍'
       }
       let i = 1
       
@@ -127,7 +156,25 @@
       }
 
       const { index: overIndex } = findCard(`${targetId}`)
-      const _cards = update(cards, { $splice: [[overIndex + 1, 0, newcard]] })
+      let _cards = update(cards, { $splice: [[overIndex + 1, 0, newcard]] })
+      let Topbar = null
+      let Navbar = null
+      _cards = _cards.filter(item => {
+        if (item.type === 'topbar') {
+          Topbar = item
+        } else if (item.type === 'navbar') {
+          Navbar = item
+        }
+
+        return item.type !== 'topbar' && item.type !== 'navbar'
+      })
+
+      if (Topbar) {
+        _cards.unshift(Topbar)
+      }
+      if (Navbar) {
+        _cards.push(Navbar)
+      }
 
       handleList({...menu, components: _cards})
       setCards(_cards)
@@ -135,8 +182,8 @@
   })
 
   return (
-    <div ref={drop} className="mob-shell-inner" id="menu-shell-inner" style={menu.style}>
-      <div className="ant-row">
+    <div ref={drop} className="mob-shell-inner" id="menu-shell-inner">
+      <div className="ant-row" style={menu.style}>
         {cards.map(card => (
           <Card
             id={card.uuid}
@@ -148,10 +195,10 @@
             updateConfig={updateConfig}
           />
         ))}
+        {cards.length === 0 ?
+          <Empty description="璇锋坊鍔犵粍浠�" /> : null
+        }
       </div>
-      {cards.length === 0 ?
-        <Empty description="璇锋坊鍔犵粍浠�" /> : null
-      }
     </div>
   )
 }

--
Gitblit v1.8.0