king
2023-06-14 08cce3334a2dc81d690b518136b0aaea64e48b0b
src/menu/components/share/actioncomponent/dragaction/index.jsx
@@ -1,13 +1,14 @@
import React, { useState } from 'react'
import { useDrop } from 'react-dnd'
import { is, fromJS } from 'immutable'
import { message } from 'antd'
import update from 'immutability-helper'
import Utils from '@/utils/utils.js'
import Card from './card'
import './index.scss'
const Container = ({list, handleList, handleMenu, deleteMenu, profileMenu, changeBtnStyle, dropButton, doubleClickCard }) => {
const Container = ({list, type, handleList, handleMenu, deleteMenu, profileMenu, changeBtnStyle, dropButton, doubleClickCard }) => {
  const [cards, setCards] = useState(list)
  const moveCard = (id, atIndex) => {
    const { card, index } = findCard(id)
@@ -63,12 +64,23 @@
    let _val = fromJS(copycard).toJS()
    if (_val.control) {
      delete _val.controlField
      delete _val.controlVal
    }
    copycard.uuid = Utils.getuuid()
    copycard.originCard = card
    try {
      delete _val.$srcId
      let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId')
      if (srcid) {
        _val.$srcId = srcid
      }
      _val = window.btoa(window.encodeURIComponent(JSON.stringify(_val)))
    } catch {
    } catch (e) {
      console.warn('Stringify Failure')
      _val = ''
    }
@@ -80,18 +92,61 @@
      oInput.select()
      document.execCommand('Copy')
      document.body.removeChild(oInput)
      message.success('复制成功。')
    } else {
      message.warning('复制失败。')
    }
    const { index: overIndex } = findCard(id)
    // const { index: overIndex } = findCard(id)
    const _cards = update(cards, { $splice: [[overIndex + 1, 0, copycard]] })
    // const _cards = update(cards, { $splice: [[overIndex + 1, 0, copycard]] })
    handleList(_cards, copycard)
    // handleList(_cards, copycard)
  }
  const [, drop] = useDrop({
    accept: 'action',
    drop(item) {
      if (item.$init) { // 拖拽添加
        if (item.class === 'element') {
          delete item.overIndex
          return
        }
        let newcard = {}
        newcard.uuid = Utils.getuuid()
        newcard.focus = true
        newcard.label = 'button'
        newcard.verify = null
        newcard.show = 'button'
        newcard.Ot = 'requiredSgl'
        newcard.OpenType = item.value
        newcard.class = 'primary'
        newcard.style = { marginRight: '15px' }
        if (newcard.OpenType === 'excelIn') {
          newcard.label = item.text
          newcard.class = 'border-dgreen'
          newcard.Ot = 'notRequired'
        } else if (newcard.OpenType === 'excelOut') {
          newcard.label = item.text
          newcard.execSuccess = 'never'
          newcard.class = 'dgreen'
          newcard.Ot = 'requiredOnce'
        }
        if (item.overIndex) {
          const { index } = findCard(item.overIndex)
          const _cards = update(cards, { $splice: [[index + 1, 0, newcard]] })
          handleList(_cards, newcard)
        } else {
          handleList([...cards, newcard], newcard)
        }
        delete item.overIndex
        return
      }
      const { index } = findCard(item.id)
      if (index > -1) return
      dropButton(item.id)
@@ -105,6 +160,7 @@
          id={card.uuid}
          key={card.uuid}
          card={card}
          type={type}
          moveCard={moveCard}
          copyCard={copyCard}
          editCard={editCard}