From 1a67732f77de8afd138b6e75235edcc4c0e9a166 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 16 一月 2020 23:29:57 +0800 Subject: [PATCH] 2020-01-16 --- src/templates/formtabconfig/dragelement/index.jsx | 30 +++++++++++------------------- 1 files changed, 11 insertions(+), 19 deletions(-) diff --git a/src/templates/formtabconfig/dragelement/index.jsx b/src/templates/formtabconfig/dragelement/index.jsx index 83ca042..4912156 100644 --- a/src/templates/formtabconfig/dragelement/index.jsx +++ b/src/templates/formtabconfig/dragelement/index.jsx @@ -1,6 +1,7 @@ import React, { useState } from 'react' import { useDrop } from 'react-dnd' import update from 'immutability-helper' +import { is, fromJS } from 'immutable' import { Col } from 'antd' import Utils from '@/utils/utils.js' import Card from './card' @@ -12,13 +13,19 @@ const [cards, setCards] = useState(list) const moveCard = (id, atIndex) => { const { card, index } = findCard(id) + + if (!card) return + const _cards = update(cards, { $splice: [[index, 1], [atIndex, 0, card]] }) - setCards(_cards) if (type === 'action') { handleList(type, _cards) } else { handleList(type, _cards, null, groupId) } + } + + if (!is(fromJS(cards), fromJS(list))) { + setCards(list) } const findCard = id => { @@ -50,8 +57,7 @@ copycard.uuid = Utils.getuuid() copycard.origin = false copycard.label = copycard.label + '(copy)' - - copycard.originCard = card + copycard.focus = true copyElement(copycard) } @@ -95,38 +101,24 @@ newcard.type = item.subType newcard.resourceType = '0' newcard.options = [] - newcard.dataSource = '' newcard.setAll = 'false' - newcard.linkField = '' - newcard.valueField = '' - newcard.valueText = '' - newcard.orderBy = '' newcard.orderType = 'asc' newcard.match = _match newcard.display = 'dropdown' } else if (item.type === 'action') { newcard.label = 'button' - newcard.innerFunc = '' - newcard.outerFunc = '' - newcard.sql = '' - newcard.sqlType = '' newcard.Ot = 'requiredSgl' newcard.OpenType = item.subType newcard.tabType = 'SubTable' newcard.linkTab = '' - newcard.icon = '' newcard.class = 'default' newcard.intertype = 'inner' - newcard.interface = '' newcard.method = 'POST' newcard.position = 'toolbar' newcard.execSuccess = 'grid' newcard.execError = 'never' newcard.popClose = 'never' newcard.errorTime = 15 - newcard.callbackFunc = '' - newcard.pageTemplate = '' - newcard.url = '' newcard.verify = null } @@ -141,7 +133,6 @@ targetIndex++ const _cards = update(cards, { $splice: [[targetIndex, 0, newcard]] }) - setCards(_cards) handleList(type, _cards, newcard, groupId) target = null } @@ -165,12 +156,13 @@ /> ))} {type === 'search' && cards.map(card => ( - <Col key={card.uuid} span={24 / setting.cols}> + <Col key={card.uuid} span={card.type !== 'textarea' ? 24 / setting.cols : 24}> <Card id={card.uuid} key={card.uuid} type={type} card={card} + cols={setting.cols} moveCard={moveCard} editCard={editCard} delCard={delCard} -- Gitblit v1.8.0