From 49f09cc6f8ff8c30a75ed1a9d6f510b69b73962a Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 12 十二月 2023 21:05:37 +0800 Subject: [PATCH] 2023-12-12 --- src/menu/components/tabs/tabcomponents/index.jsx | 83 +++++++++++++++++++++++++++-------------- 1 files changed, 54 insertions(+), 29 deletions(-) diff --git a/src/menu/components/tabs/tabcomponents/index.jsx b/src/menu/components/tabs/tabcomponents/index.jsx index 62d2cb7..8f345f6 100644 --- a/src/menu/components/tabs/tabcomponents/index.jsx +++ b/src/menu/components/tabs/tabcomponents/index.jsx @@ -11,8 +11,6 @@ const { confirm } = Modal const Container = ({ config, handleList }) => { - let target = null - const [cards, setCards] = useState(config.components) const moveCard = (id, atIndex) => { const { card, index } = findCard(id) @@ -32,12 +30,27 @@ } } - const hasDrop = (item) => { - target = item - } - const updateConfig = (element) => { handleList({...config, components: cards.map(item => item.uuid === element.uuid ? element : item)}) + } + + const unGroup = (id) => { + let { card, index } = findCard(`${id}`) + let components = [...card.components].map(item => { + if (item.wrap) { + item.wrap.width = card.width + item.width = card.width + } else if (item.plot) { + item.plot.width = card.width + item.width = card.width + } + return item + }) + card.components = [] + + const _cards = update(cards, { $splice: [[index, 1, card, ...components]] }) + + handleList({...config, components: _cards}) } const deleteCard = (id) => { @@ -53,7 +66,7 @@ } confirm({ - title: `纭畾鍒犻櫎銆�${card.setting.name}銆嬪悧锛焋, + title: `纭畾鍒犻櫎銆�${card.name}銆嬪悧锛焋, content: hasComponent ? '褰撳墠缁勪欢涓惈鏈夊瓙缁勪欢锛�' : '', onOk() { handleList({...config, components: cards.filter(item => item.uuid !== card.uuid)}) @@ -67,7 +80,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 +95,37 @@ }) return } - } else if (item.component === 'tabs' && config.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: '鏃堕棿杞�', + antvG6: '鏍戝浘', + antvX6: '娴佺▼鍥�', + calendar: '鏃ュ巻', + 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++ @@ -106,29 +133,27 @@ let newcard = { uuid: Utils.getuuid(), - tabId: config.uuid, - parentId: config.parentId, type: item.component, subtype: item.subtype, + config: item.config, + width: item.width || 24, 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 } }) @@ -142,8 +167,8 @@ card={card} moveCard={moveCard} delCard={deleteCard} + unGroup={unGroup} findCard={findCard} - hasDrop={hasDrop} updateConfig={updateConfig} /> ))} -- Gitblit v1.8.0