From cd42d41344f0f780e0c0ac0a3625aeb78160f9dd Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 19 六月 2020 19:58:52 +0800
Subject: [PATCH] 2020-06-19

---
 src/mob/mobshell/index.jsx |   97 +++++++++++++++++++++++++-----------------------
 1 files changed, 51 insertions(+), 46 deletions(-)

diff --git a/src/mob/mobshell/index.jsx b/src/mob/mobshell/index.jsx
index 1d64cca..7c4ec11 100644
--- a/src/mob/mobshell/index.jsx
+++ b/src/mob/mobshell/index.jsx
@@ -1,33 +1,35 @@
-import React from 'react'
-// import React, { useState } from 'react'
+import React, { useState } from 'react'
 import { useDrop } from 'react-dnd'
-// import { is, fromJS } from 'immutable'
-// import update from 'immutability-helper'
-// import Utils from '@/utils/utils.js'
+import { is, fromJS } from 'immutable'
+import update from 'immutability-helper'
+import { message } from 'antd'
+
+import Utils from '@/utils/utils.js'
 import Card from './card'
 import './index.scss'
 
-const Container = ({list, placeholder, handleList, handleMenu, deleteMenu, doubleClickCard }) => {
-  // let target = null
+const Container = ({config, handleList, handleMenu, deleteMenu, doubleClickCard }) => {
+  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]] })
-  //   handleList(_cards)
-  // }
+  const [cards, setCards] = useState(config.components)
+  const moveCard = (id, atIndex) => {
+    const { card, index } = findCard(id)
+    const _cards = update(cards, { $splice: [[index, 1], [atIndex, 0, card]] })
+    handleList({...config, components: _cards})
+    console.log(_cards)
+  }
 
-  // if (!is(fromJS(cards), fromJS(list))) {
-  //   setCards(list)
-  // }
+  if (!is(fromJS(cards), fromJS(config.components))) {
+    setCards(config.components)
+  }
   
-  // const findCard = id => {
-  //   const card = cards.filter(c => `${c.uuid}` === id)[0]
-  //   return {
-  //     card,
-  //     index: cards.indexOf(card),
-  //   }
-  // }
+  const findCard = id => {
+    const card = cards.filter(c => `${c.uuid}` === id)[0]
+    return {
+      card,
+      index: cards.indexOf(card),
+    }
+  }
 
   // const doubleClickBtn = id => {
   //   const { card } = findCard(id)
@@ -44,54 +46,57 @@
   //   deleteMenu(card)
   // }
 
-  // const hasDrop = (item) => {
-  //   target = item
-  // }
+  const hasDrop = (item) => {
+    target = item
+  }
 
   const [, drop] = useDrop({
-    accept: 'action',
+    accept: 'mob',
     drop(item) {
       if (item.hasOwnProperty('originalIndex')) {
         return
       }
 
-      // let newcard = {}
-      // newcard.uuid = Utils.getuuid()
+      if (cards.length > 0 && cards[0].type === 'login') {
+        message.warning('鐧诲綍椤典笉鍙坊鍔犲叾浠栧厓绱狅紒')
+        return
+      }
+
+      let newcard = fromJS(item.param).toJS()
+      newcard.uuid = Utils.getuuid()
       
-      // let targetId = cards.length > 0 ? cards[cards.length - 1].uuid : 0
-      // if (target) {
-      //   targetId = target.uuid
-      // }
+      let targetId = cards.length > 0 ? cards[cards.length - 1].uuid : 0
+      if (target) {
+        targetId = target.uuid
+      }
 
-      // const { index: overIndex } = findCard(`${targetId}`)
-      // let targetIndex = overIndex
+      const { index: overIndex } = findCard(`${targetId}`)
+      let targetIndex = overIndex
 
-      // targetIndex++
+      targetIndex++
 
-      // const _cards = update(cards, { $splice: [[targetIndex, 0, newcard]] })
+      const _cards = update(cards, { $splice: [[targetIndex, 0, newcard]] })
 
-      // handleList(_cards, newcard)
-      // target = null
+      handleList({...config, components: _cards})
+      target = null
     }
   })
 
   return (
     <div ref={drop} className="mob-shell-inner">
-      {/* {cards.map(card => (
+      {cards.map(card => (
         <Card
           id={card.uuid}
           key={card.uuid}
           card={card}
           moveCard={moveCard}
-          editCard={editCard}
-          delCard={delCard}
+          // editCard={editCard}
+          // delCard={delCard}
           findCard={findCard}
           hasDrop={hasDrop}
-          doubleClickCard={doubleClickBtn}
+          // doubleClickCard={doubleClickBtn}
         />
-      ))} */}
-      <Card />
-      
+      ))}
       {/* {cards.length === 0 ?
         <div className="common-drawarea-placeholder">
           {placeholder}

--
Gitblit v1.8.0