king
2019-12-06 2cb65d99c9aebf8293cb2838fcfe3e09fb2739ce
src/templates/modalconfig/dragelement/index.jsx
@@ -7,14 +7,14 @@
import ItemTypes from './itemtypes'
import './index.scss'
const Container = ({list, type, placeholder, handleList, handleMenu }) => {
const Container = ({list, setting, placeholder, handleList, handleForm, closeForm }) => {
  let target = null
  const [cards, setCards] = useState(list)
  const moveCard = (id, atIndex) => {
    const { card, index } = findCard(id)
    const _cards = update(cards, { $splice: [[index, 1], [atIndex, 0, card]] })
    setCards(_cards)
    handleList({[type]: _cards})
    handleList(_cards)
  }
  const findCard = id => {
@@ -27,7 +27,12 @@
  const editCard = id => {
    const { card } = findCard(id)
    handleMenu(card)
    handleForm(card)
  }
  const closeCard = id => {
    const { card } = findCard(id)
    closeForm(card)
  }
  
  const hasDrop = (item) => {
@@ -35,30 +40,27 @@
  }
  const [, drop] = useDrop({
    accept: ItemTypes[type],
    accept: ItemTypes.form,
    drop(item) {
      if (item.hasOwnProperty('originalIndex')) {
        return
      }
      let newcard = {}
      if (item.type === 'search') {
        newcard.uuid = Utils.getuuid()
        newcard.label = 'fieldName'
        newcard.field = ''
        newcard.initval = ''
        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.display = 'dropdown'
      }
      newcard.uuid = Utils.getuuid()
      newcard.label = 'label'
      newcard.field = ''
      newcard.initval = ''
      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'
      
      let indexes = cards.map(car => {return car.id})
      let newid = 0
@@ -83,22 +85,24 @@
      const _cards = update(cards, { $splice: [[targetIndex, 0, newcard]] })
      setCards(_cards)
      handleList({[type]: _cards})
      handleList(_cards)
      target = null
    }
  })
  let _cols = 24 / (setting.cols || 2)
  
  return (
    <div ref={drop} className="ant-row">
      {type === 'search' && cards.map(card => (
        <Col key={card.uuid} span={6}>
      {cards.map(card => (
        <Col key={card.uuid} span={_cols}>
          <Card
            key={card.uuid}
            id={`${card.id}`}
            type={type}
            card={card}
            moveCard={moveCard}
            editCard={editCard}
            closeCard={closeCard}
            findCard={findCard}
            hasDrop={hasDrop}
          />