From 79006d19801eb10e7532eaf8478d1dd2c239954b Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 07 三月 2023 01:41:28 +0800
Subject: [PATCH] 2023-03-07

---
 src/menu/components/form/tab-form/index.jsx |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/src/menu/components/form/tab-form/index.jsx b/src/menu/components/form/tab-form/index.jsx
index 1de74ec..b8c0790 100644
--- a/src/menu/components/form/tab-form/index.jsx
+++ b/src/menu/components/form/tab-form/index.jsx
@@ -713,6 +713,74 @@
     })
   }
 
+  parseForm = (g, res) => {
+    let _group = fromJS(g).toJS()
+    let _confirm = false
+
+    if (res.copyType === 'form') {
+      let fieldrepet = false // 瀛楁閲嶅
+      res.uuid = Utils.getuuid()
+  
+      _group.fields.forEach(item => {
+        if (res.field && item.field && item.field.toLowerCase() === res.field.toLowerCase()) {
+          fieldrepet = true
+        }
+      })
+  
+      if (fieldrepet) {
+        notification.warning({
+          top: 92,
+          message: '瀛楁宸插瓨鍦紒',
+          duration: 10
+        })
+        return
+      }
+      _group.fields.push(res)
+    } else {
+      if (_group.fields.length > 0) {
+        _confirm = true
+      }
+
+      _group.fields = res.fields.map(item => {
+        item.uuid = Utils.getuuid()
+        return item
+      })
+    }
+
+    if (_confirm) {
+      let that = this
+      confirm({
+        title: '纭畾鏇挎崲琛ㄥ崟鍚楋紵',
+        content: '鍘熻〃鍗曞皢鍒犻櫎銆�',
+        onOk() {
+          that.updateForms(_group)
+        },
+        onCancel() {}
+      })
+    } else {
+      this.updateForms(_group)
+    }
+  }
+
+  updateForms = (_group) => {
+    const { group } = this.state
+    let card = fromJS(this.state.card).toJS()
+
+    card.subcards = card.subcards.map(item => {
+      if (item.uuid === _group.uuid) {
+        return _group
+      }
+      return item
+    })
+
+    if (_group.uuid === group.uuid) {
+      this.setState({group: _group})
+      this.updateComponent(card)
+    } else {
+      this.updateComponent(card)
+    }
+  }
+
   clickComponent = (e) => {
     if (sessionStorage.getItem('style-control') === 'true' || sessionStorage.getItem('style-control') === 'component') {
       e.stopPropagation()
@@ -760,6 +828,7 @@
           selectId={group ? group.uuid : ''}
           handleList={this.changecards}
           handleGroup={this.updateGroup}
+          handleForm={this.parseForm}
           closeGroup={this.closeGroup}
           selectGroup={this.selectGroup}
         />

--
Gitblit v1.8.0