From 5df578ff69f6b02e821d59a8883bc75d78695a62 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 10 十一月 2020 11:07:31 +0800 Subject: [PATCH] 2020-11-10 --- src/menu/menushell/index.jsx | 47 ++++++++++++++++++++++++++--------------------- 1 files changed, 26 insertions(+), 21 deletions(-) diff --git a/src/menu/menushell/index.jsx b/src/menu/menushell/index.jsx index 4e4541d..382b732 100644 --- a/src/menu/menushell/index.jsx +++ b/src/menu/menushell/index.jsx @@ -10,9 +10,7 @@ const { confirm } = Modal -const Container = ({menu, handleList, doubleClickCard }) => { - let target = null - +const Container = ({menu, handleList }) => { const [cards, setCards] = useState(menu.components) const moveCard = (id, atIndex) => { const { card, index } = findCard(id) @@ -32,10 +30,6 @@ } } - const hasDrop = (item) => { - target = item - } - const updateConfig = (element) => { handleList({...menu, components: cards.map(item => item.uuid === element.uuid ? element : item)}) } @@ -53,7 +47,7 @@ } confirm({ - title: `纭畾鍒犻櫎銆�${card.setting.name}銆嬪悧锛焋, + title: `纭畾鍒犻櫎銆�${card.name}銆嬪悧锛焋, content: hasComponent ? '褰撳墠缁勪欢涓惈鏈夊瓙缁勪欢锛�' : '', onOk() { handleList({...menu, components: cards.filter(item => item.uuid !== card.uuid)}) @@ -85,46 +79,59 @@ bar: '鏌辩姸鍥�', line: '鎶樼嚎鍥�', tabs: '鏍囩缁�', + pie: '楗煎浘', + search: '鎼滅储', + table: '琛ㄦ牸', card: '鍗$墖' } let i = 1 while (!name && names[item.component]) { let _name = names[item.component] + i - if (menu.components.filter(com => com.setting && com.setting.name === _name).length === 0) { + if (menu.components.filter(com => com.name === _name).length === 0) { name = _name } i++ + } + + let dataName = '' + while (!dataName) { + let _dataName = Utils.getdataName() + if (menu.components.filter(com => com.dataName === _dataName).length === 0) { + dataName = _dataName + } } let newcard = { uuid: Utils.getuuid(), type: item.component, subtype: item.subtype, + config: item.config, + width: item.width || 24, + dataName: dataName, name: name, floor: 1, // 缁勪欢鐨勫眰绾� 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[cards.length - 1].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({...menu, components: _cards}) - target = null } }) return ( - <div ref={drop} className="menu-shell-inner" style={menu.style}> + <div ref={drop} className="menu-shell-inner" id="menu-shell-inner" style={menu.style}> <div className="ant-row"> {cards.map(card => ( <Card @@ -134,9 +141,7 @@ moveCard={moveCard} delCard={deleteCard} findCard={findCard} - hasDrop={hasDrop} updateConfig={updateConfig} - doubleClickCard={doubleClickCard} /> ))} </div> -- Gitblit v1.8.0