From e0aff8f4c0e9c8f16d1ba07863cf600638067514 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 13 四月 2021 15:08:47 +0800
Subject: [PATCH] 2021-04-13

---
 src/mob/mobshell/card.jsx |   87 +++++++++++++++++++++++++++++++++----------
 1 files changed, 66 insertions(+), 21 deletions(-)

diff --git a/src/mob/mobshell/card.jsx b/src/mob/mobshell/card.jsx
index 5b7a510..a034fe3 100644
--- a/src/mob/mobshell/card.jsx
+++ b/src/mob/mobshell/card.jsx
@@ -2,56 +2,101 @@
 import { useDrag, useDrop } from 'react-dnd'
 
 import asyncComponent from '@/utils/asyncComponent'
-
 import './index.scss'
 
-// const Home = asyncComponent(() => import('@/mob/home'))
-const MobLogin1 = asyncComponent(() => import('@/mob/components/login/mob-login-1'))
-const MobLogin2 = asyncComponent(() => import('@/mob/components/login/mob-login-2'))
+const AntvBar = asyncComponent(() => import('@/menu/components/chart/antv-bar'))
+const MainSearch = asyncComponent(() => import('@/menu/components/search/main-search'))
+const AntvPie = asyncComponent(() => import('@/menu/components/chart/antv-pie'))
+const AntvTabs = asyncComponent(() => import('@/menu/components/tabs/antv-tabs'))
+const DataCard = asyncComponent(() => import('@/menu/components/card/data-card'))
+const PropCard = asyncComponent(() => import('@/menu/components/card/prop-card'))
+const CarouselDataCard = asyncComponent(() => import('@/menu/components/carousel/data-card'))
+const CarouselPropCard = asyncComponent(() => import('@/menu/components/carousel/prop-card'))
+const TableCard = asyncComponent(() => import('@/menu/components/card/table-card'))
+const NormalTable = asyncComponent(() => import('@/menu/components/table/normal-table'))
+const NormalForm = asyncComponent(() => import('@/menu/components/form/normal-form'))
+const NormalGroup = asyncComponent(() => import('@/menu/components/group/normal-group'))
+const CodeSandbox = asyncComponent(() => import('@/menu/components/code/sandbox'))
+const NormalLogin = asyncComponent(() => import('@/pc/components/login/normal-login'))
 
-const Card = ({ id, card, moveCard, findCard, editId, editCard, delCard, doubleClickCard, updateConfig }) => {
+const Card = ({ id, card, moveCard, findCard, delCard, updateConfig }) => {
   const originalIndex = findCard(id).index
   const [{ isDragging }, drag] = useDrag({
-    item: { type: 'mob', id, originalIndex },
+    item: { type: 'menu', id, originalIndex, floor: card.floor },
     collect: monitor => ({
       isDragging: monitor.isDragging(),
     }),
   })
   const [, drop] = useDrop({
-    accept: 'mob',
+    accept: 'menu',
     canDrop: () => true,
     drop: (item) => {
-      const { id: draggedId, originalIndex } = item
-
+      const { id: draggedId, originalIndex, floor } = item
       if (originalIndex === undefined) {
         item.dropTargetId = id
-      } else if (draggedId && draggedId !== id) {
+      } else if (draggedId && floor === card.floor) {
+        if (draggedId === id) return
+        const { index: originIndex } = findCard(draggedId)
+
+        if (originIndex === -1) return
+
         const { index: overIndex } = findCard(id)
+
         moveCard(draggedId, overIndex)
       }
     }
   })
 
   let style = { opacity: 1}
-  if (isDragging && card.type !== 'login') {
+  if (isDragging) {
     style = { opacity: 0.3}
-  }
-  if (card.type === 'login') {
-    style.height = '100%'
   }
 
   const getCardComponent = () => {
-    if (card.type === 'login') {
-      if (card.subtype === 'mob-login-1') {
-        return (<MobLogin1 card={card} triggerEdit={editCard} editId={editId} onDoubleClick={doubleClickCard} updateConfig={updateConfig} />)
-      } else if (card.subtype === 'mob-login-2') {
-        return (<MobLogin2 card={card} triggerEdit={editCard} editId={editId} onDoubleClick={doubleClickCard} updateConfig={updateConfig} />)
+    if (card.type === 'bar' || card.type === 'line') {
+      return (<AntvBar card={card} updateConfig={updateConfig} deletecomponent={delCard}/>)
+    } else if (card.type === 'search') {
+      return (<MainSearch card={card} updateConfig={updateConfig} deletecomponent={delCard}/>)
+    } else if (card.type === 'pie') {
+      return (<AntvPie card={card} updateConfig={updateConfig} deletecomponent={delCard}/>)
+    } else if (card.type === 'form') {
+      return (<NormalForm card={card} updateConfig={updateConfig} deletecomponent={delCard}/>)
+    } else if (card.type === 'tabs') {
+      return (<AntvTabs tabs={card} updateConfig={updateConfig} deletecomponent={delCard}/>)
+    } else if (card.type === 'card' && card.subtype === 'datacard') {
+      return (<DataCard card={card} updateConfig={updateConfig} deletecomponent={delCard}/>)
+    } else if (card.type === 'card' && card.subtype === 'propcard') {
+      return (<PropCard card={card} updateConfig={updateConfig} deletecomponent={delCard}/>)
+    } else if (card.type === 'carousel' && card.subtype === 'datacard') {
+      return (<CarouselDataCard card={card} updateConfig={updateConfig} deletecomponent={delCard}/>)
+    } else if (card.type === 'carousel' && card.subtype === 'propcard') {
+      return (<CarouselPropCard card={card} updateConfig={updateConfig} deletecomponent={delCard}/>)
+    } else if (card.type === 'table' && card.subtype === 'tablecard') {
+      return (<TableCard card={card} updateConfig={updateConfig} deletecomponent={delCard}/>)
+    } else if (card.type === 'table' && card.subtype === 'normaltable') {
+      return (<NormalTable card={card} updateConfig={updateConfig} deletecomponent={delCard}/>)
+    } else if (card.type === 'group' && card.subtype === 'normalgroup') {
+      return (<NormalGroup group={card} updateConfig={updateConfig} deletecomponent={delCard}/>)
+    } else if (card.type === 'code') {
+      return (<CodeSandbox card={card} updateConfig={updateConfig} deletecomponent={delCard}/>)
+    } else if (card.type === 'login') {
+      let height = ''
+      if (card.wrap && card.wrap.height) {
+        height = card.wrap.height.replace(/\d+vw/ig, (word) => {
+          return parseFloat(word) * 350 / 100 + 'px'
+        }).replace(/\d+vh/ig, (word) => {
+          return parseFloat(word) * 615 / 100 + 'px'
+        })
       }
+      
+      return (<>
+        <NormalLogin card={card} updateConfig={updateConfig} deletecomponent={delCard}/>
+        <div style={{float: 'right', height}}></div>
+      </>)
     }
   }
-
   return (
-    <div className="mk-component-card" ref={node => drag(drop(node))} style={style}>
+    <div className={'ant-col mk-component-card ant-col-' + (card.width || 24)} ref={node => drag(drop(node))} style={style}>
       {getCardComponent()}
     </div>
   )

--
Gitblit v1.8.0