From f9f60bb0dd17a764ba03faa8041f5b6e9e071553 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 18 一月 2025 23:37:44 +0800
Subject: [PATCH] 2025-01-18

---
 src/mob/components/formdragelement/index.jsx |   52 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 41 insertions(+), 11 deletions(-)

diff --git a/src/mob/components/formdragelement/index.jsx b/src/mob/components/formdragelement/index.jsx
index 38485bc..794fa72 100644
--- a/src/mob/components/formdragelement/index.jsx
+++ b/src/mob/components/formdragelement/index.jsx
@@ -1,6 +1,7 @@
 import React, { useState } from 'react'
 import { useDrop } from 'react-dnd'
 import { is, fromJS } from 'immutable'
+import { Col } from 'antd'
 import update from 'immutability-helper'
 import Utils from '@/utils/utils.js'
 import Card from './card'
@@ -41,6 +42,14 @@
     closeForm(card)
   }
 
+  const setStyle = (style, id) => {
+    const { card, index } = findCard(id)
+    
+    const _cards = update(cards, { $splice: [[index, 1, {...card, style}]] })
+
+    handleList(_cards)
+  }
+
   const copyCard = id => {
     const { card, index: overIndex } = findCard(id)
 
@@ -52,6 +61,8 @@
     let oInput = document.createElement('input')
     let val = JSON.parse(JSON.stringify(_card))
     val.copyType = 'form'
+
+    _card.$copy = true
 
     oInput.value = window.btoa(window.encodeURIComponent(JSON.stringify(val)))
     document.body.appendChild(oInput)
@@ -83,7 +94,15 @@
       newcard.options = []
       newcard.readonly = 'false'
       newcard.required = 'true'
+      newcard.span = 24
       newcard.focus = true
+
+      if (item.subType === 'linkMain') {
+        newcard.hidden = 'true'
+        newcard.verifyVal = 'true'
+      } else if (item.subType === 'textarea') {
+        newcard.required = 'false'
+      }
 
       let targetId = ''
 
@@ -111,20 +130,31 @@
     style.paddingRight = setting.paddingRight
   }
 
+  if (setting.display === 'drawer' && (setting.placement === 'top' || setting.placement === 'bottom') && setting.width !== 100) {
+    style.minHeight = 'auto'
+  }
+
   return (
     <div ref={drop} className="ant-row modal-fields-row mob-form" style={style}>
       {cards.map(card => {
-        return <Card
-          id={card.uuid}
-          key={card.uuid}
-          card={card}
-          showField={showField}
-          moveCard={moveCard}
-          editCard={editCard}
-          closeCard={closeCard}
-          copyCard={copyCard}
-          findCard={findCard}
-        />
+        let span = card.span || 24
+        if (![24, 12, 8, 6].includes(span)) {
+          span = 24
+        }
+        return <Col key={card.uuid} span={span}>
+          <Card
+            id={card.uuid}
+            key={card.uuid}
+            card={card}
+            showField={showField}
+            moveCard={moveCard}
+            editCard={editCard}
+            setStyle={setStyle}
+            closeCard={closeCard}
+            copyCard={copyCard}
+            findCard={findCard}
+          />
+        </Col>
       })}
     </div>
   )

--
Gitblit v1.8.0