From cc1a76df575c18f0d0ee96e8658461efdce3a918 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 17 一月 2023 18:01:01 +0800
Subject: [PATCH] 2023-01-17

---
 src/menu/menushell/index.jsx |   37 +++++++++++++++++++++++++++++++------
 1 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/src/menu/menushell/index.jsx b/src/menu/menushell/index.jsx
index 2656df8..9024341 100644
--- a/src/menu/menushell/index.jsx
+++ b/src/menu/menushell/index.jsx
@@ -1,6 +1,5 @@
 import React, { useState } from 'react'
 import { useDrop } from 'react-dnd'
-import { is, fromJS } from 'immutable'
 import update from 'immutability-helper'
 import { Empty, notification, Modal } from 'antd'
 
@@ -16,9 +15,10 @@
     const { card, index } = findCard(id)
     const _cards = update(cards, { $splice: [[index, 1], [atIndex, 0, card]] })
     handleList({...menu, components: _cards})
+    setCards(_cards)
   }
 
-  if (!is(fromJS(cards), fromJS(menu.components))) {
+  if (menu.components.length > cards.length) {
     setCards(menu.components)
   }
   
@@ -31,7 +31,9 @@
   }
 
   const updateConfig = (element) => {
-    handleList({...menu, components: cards.map(item => item.uuid === element.uuid ? element : item)})
+    const _cards = cards.map(item => item.uuid === element.uuid ? element : item)
+    handleList({...menu, components: _cards})
+    setCards(_cards)
   }
 
   const deleteCard = (id) => {
@@ -50,7 +52,9 @@
       title: `纭畾鍒犻櫎銆�${card.name}銆嬪悧锛焋,
       content: hasComponent ? '褰撳墠缁勪欢涓惈鏈夊瓙缁勪欢锛�' : '',
       onOk() {
-        handleList({...menu, components: cards.filter(item => item.uuid !== card.uuid)})
+        const _cards = cards.filter(item => item.uuid !== card.uuid)
+        handleList({...menu, components: _cards})
+        setCards(_cards)
       },
       onCancel() {}
     })
@@ -63,6 +67,7 @@
         delete item.added // 鍒犻櫎缁勪欢娣诲姞鏍囪
         return
       }
+
       if (item.component === 'search') { // 鎼滅储缁勪欢涓嶅彲閲嶅娣诲姞
         if (cards.filter(card => card.type === 'search').length > 0) {
           notification.warning({
@@ -77,10 +82,25 @@
       let name = ''
       let names = {
         bar: '鏌辩姸鍥�',
+        chart: '鍥捐〃',
         line: '鎶樼嚎鍥�',
         tabs: '鏍囩缁�',
         pie: '楗煎浘',
         search: '鎼滅储',
+        table: '琛ㄦ牸',
+        group: '鍒嗙粍',
+        editor: '瀵屾枃鏈�',
+        code: '鑷畾涔�',
+        carousel: '杞挱',
+        form: '琛ㄥ崟',
+        dashboard: '浠〃鐩�',
+        scatter: '鏁g偣鍥�',
+        tree: '鏍戝舰鍒楄〃',
+        balcony: '娴姩鍗�',
+        timeline: '鏃堕棿杞�',
+        antvG6: '鏍戝浘',
+        iframe: 'iframe',
+        module: '妯″潡',
         card: '鍗$墖'
       }
       let i = 1
@@ -110,18 +130,23 @@
         targetId = item.dropTargetId
         delete item.dropTargetId
       } else if (cards.length > 0) {
-        targetId = cards[cards.length - 1].uuid
+        targetId = cards.slice(-1)[0].uuid
       }
 
       const { index: overIndex } = findCard(`${targetId}`)
       const _cards = update(cards, { $splice: [[overIndex + 1, 0, newcard]] })
 
       handleList({...menu, components: _cards})
+      setCards(_cards)
     }
   })
 
+  let style = JSON.stringify(menu.style || {})
+  style = style.replace(/@mywebsite@\//ig, window.GLOB.baseurl)
+  style = JSON.parse(style)
+
   return (
-    <div ref={drop} className="menu-shell-inner" style={menu.style}>
+    <div ref={drop} className="menu-shell-inner" id="menu-shell-inner" style={style}>
       <div className="ant-row">
         {cards.map(card => (
           <Card

--
Gitblit v1.8.0