From f3ec8c20eeabee6eaab1508d2f3896c28aab611c Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 22 七月 2021 14:42:42 +0800 Subject: [PATCH] 修改页面中按钮保存 --- src/menu/menushell/index.jsx | 87 ++++++++++++------------------------------- 1 files changed, 25 insertions(+), 62 deletions(-) diff --git a/src/menu/menushell/index.jsx b/src/menu/menushell/index.jsx index 36a5852..7e03f6c 100644 --- a/src/menu/menushell/index.jsx +++ b/src/menu/menushell/index.jsx @@ -1,11 +1,11 @@ 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' import Utils from '@/utils/utils.js' import MKEmitter from '@/utils/events.js' +import MenuUtils from '@/utils/utils-custom.js' import Card from './card' import './index.scss' @@ -17,9 +17,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) } @@ -32,7 +33,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) => { @@ -47,62 +50,19 @@ }) } - let uuids = [] - const getUuids = (item) => { - if (item.type === 'tabs') { - item.subtabs.forEach(tab => { - tab.components.forEach(c => { - getUuids(c) - }) - }) - } else { - if (item.action && item.action.length) { - item.action.forEach(act => { - if (!act.origin) { - uuids.push(act.uuid) - } - }) - } - if (item.type === 'card') { - item.subcards.forEach(_card => { - _card.elements && _card.elements.forEach(cell => { - if (cell.eleType === 'button') { - uuids.push(cell.uuid) - } - }) - _card.backElements && _card.backElements.forEach(cell => { - if (cell.eleType === 'button') { - uuids.push(cell.uuid) - } - }) - }) - } else if (item.type === 'table' && item.subtype === 'tablecard') { - item.subcards.forEach(_card => { - _card.elements && _card.elements.forEach(cell => { - if (cell.eleType === 'button') { - uuids.push(cell.uuid) - } - }) - }) - } else if (item.type === 'table' && item.subtype === 'normaltable') { - item.cols && item.cols.forEach(col => { - if (col.type !== 'action') return - col.elements && col.elements.forEach(cell => { - uuids.push(cell.uuid) - }) - }) - } - } - } - - getUuids(card) + let uuids = MenuUtils.getDelButtonIds(card) confirm({ title: `纭畾鍒犻櫎銆�${card.name}銆嬪悧锛焋, content: hasComponent ? '褰撳墠缁勪欢涓惈鏈夊瓙缁勪欢锛�' : '', onOk() { + const _cards = cards.filter(item => item.uuid !== card.uuid) + handleList({...menu, components: _cards}) + setCards(_cards) + + if (uuids.length === 0) return + MKEmitter.emit('delButtons', uuids) - handleList({...menu, components: cards.filter(item => item.uuid !== card.uuid)}) }, onCancel() {} }) @@ -115,6 +75,7 @@ delete item.added // 鍒犻櫎缁勪欢娣诲姞鏍囪 return } + if (item.component === 'search') { // 鎼滅储缁勪欢涓嶅彲閲嶅娣诲姞 if (cards.filter(card => card.type === 'search').length > 0) { notification.warning({ @@ -134,6 +95,15 @@ pie: '楗煎浘', search: '鎼滅储', table: '琛ㄦ牸', + group: '鍒嗙粍', + editor: '瀵屾枃鏈�', + code: '鑷畾涔�', + carousel: '杞挱', + form: '琛ㄥ崟', + dashboard: '浠〃鐩�', + scatter: '鏁g偣鍥�', + tree: '鏍戝舰鍒楄〃', + balcony: '娴姩鍗�', card: '鍗$墖' } let i = 1 @@ -146,21 +116,13 @@ 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, + dataName: Utils.getdataName(), name: name, floor: 1, // 缁勪欢鐨勫眰绾� isNew: true // 鏂版坊鍔犳爣蹇楋紝鐢ㄤ簬鍒濆鍖� @@ -179,6 +141,7 @@ const _cards = update(cards, { $splice: [[overIndex + 1, 0, newcard]] }) handleList({...menu, components: _cards}) + setCards(_cards) } }) -- Gitblit v1.8.0