From 8d66ff34fae5b048a6b7923cc75d34f13a08be9d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 02 八月 2022 11:42:43 +0800
Subject: [PATCH] Merge branch 'develop'

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

diff --git a/src/menu/components/form/tab-form/index.jsx b/src/menu/components/form/tab-form/index.jsx
index 5852b91..b8d88ec 100644
--- a/src/menu/components/form/tab-form/index.jsx
+++ b/src/menu/components/form/tab-form/index.jsx
@@ -12,7 +12,7 @@
 import { resetStyle } from '@/utils/utils-custom.js'
 import MKEmitter from '@/utils/events.js'
 import Utils from '@/utils/utils.js'
-import getWrapForm from '../normal-form/options'
+import getWrapForm from '../step-form/options'
 import zhCN from '@/locales/zh-CN/model.js'
 import enUS from '@/locales/en-US/model.js'
 import './index.scss'
@@ -31,7 +31,7 @@
 
 const { confirm } = Modal
 
-class PropCardEditComponent extends Component {
+class TabFormComponent extends Component {
   static propTpyes = {
     card: PropTypes.object,
     deletecomponent: PropTypes.func,
@@ -79,21 +79,21 @@
           sort: 1,
           style: {},
           fields: [],
-          subButton: {label: '鎻愪氦', type: 'submit', enable: 'true', style: {backgroundColor: '#1890ff', color: '#ffffff', paddingLeft: '25px', paddingRight: '25px', paddingTop: '5px', paddingBottom: '5px'}},
+          subButton: {label: '鎻愪氦', type: 'submit', intertype: 'system', reload: 'false', sqlType: 'update', sql: '', Ot: 'notRequired', execSuccess: 'never', enable: 'true', style: {backgroundColor: '#1890ff', color: '#ffffff', paddingLeft: '25px', paddingRight: '25px', paddingTop: '5px', paddingBottom: '5px'}},
         }, {
           uuid: Utils.getuuid(),
           setting: {title: '鍒嗙粍2', align: 'left_right'},
           sort: 1,
           style: {},
           fields: [],
-          subButton: {label: '鎻愪氦', type: 'submit', enable: 'true', style: {backgroundColor: '#1890ff', color: '#ffffff', paddingLeft: '25px', paddingRight: '25px', paddingTop: '5px', paddingBottom: '5px'}},
+          subButton: {label: '鎻愪氦', type: 'submit', intertype: 'system', reload: 'false', sqlType: 'update', sql: '', Ot: 'notRequired', execSuccess: 'never', enable: 'true', style: {backgroundColor: '#1890ff', color: '#ffffff', paddingLeft: '25px', paddingRight: '25px', paddingTop: '5px', paddingBottom: '5px'}},
         }, {
           uuid: Utils.getuuid(),
           setting: {title: '鍒嗙粍3', align: 'left_right'},
           sort: 1,
           style: {},
           fields: [],
-          subButton: {label: '鎻愪氦', type: 'submit', enable: 'true', style: {backgroundColor: '#1890ff', color: '#ffffff', paddingLeft: '25px', paddingRight: '25px', paddingTop: '5px', paddingBottom: '5px'}},
+          subButton: {label: '鎻愪氦', type: 'submit', intertype: 'system', reload: 'false', sqlType: 'update', sql: '', Ot: 'notRequired', execSuccess: 'never', enable: 'true', style: {backgroundColor: '#1890ff', color: '#ffffff', paddingLeft: '25px', paddingRight: '25px', paddingTop: '5px', paddingBottom: '5px'}},
         }]
       }
 
@@ -185,6 +185,33 @@
       } else if (!card.setting.supModule) {
         card.errors.push({ level: 0, detail: '鏈缃笂绾х粍浠讹紒'})
       }
+
+      let supModule = card.setting.supModule ? card.setting.supModule[card.setting.supModule.length - 1] || '' : ''
+      if (supModule === 'empty') {
+        supModule = ''
+      }
+      let columns = card.columns.map(c => c.field)
+      let lowcols = card.columns.map(c => c.field.toLowerCase())
+
+      card.subcards.forEach(item => {
+        item.fields.forEach(m => {
+          if (m.type === 'linkMain' && !supModule) {
+            card.errors.push({ level: 1, detail: `鍒嗙粍鈥�${item.setting.title}鈥濅腑鍏宠仈涓昏〃琛ㄥ崟鈥�${m.label}鈥濇棤鏁坄})
+          } else if (m.field && !columns.includes(m.field) && lowcols.includes(m.field.toLowerCase())) {
+            card.errors.push({ level: 1, detail: `鍒嗙粍鈥�${item.setting.title}鈥濅腑琛ㄥ崟鈥�${m.label}鈥濆ぇ灏忓啓涓庡瓧娈甸泦涓嶄竴鑷碻})
+          }
+        })
+      })
+    } else {
+      let supModule = card.wrap.supModule ? card.wrap.supModule[card.wrap.supModule.length - 1] : ''
+
+      card.subcards.forEach(item => {
+        item.fields.forEach(m => {
+          if (m.type === 'linkMain' && !supModule) {
+            card.errors.push({ level: 1, detail: `鍒嗙粍鈥�${item.setting.title}鈥濅腑鍏宠仈涓昏〃琛ㄥ崟鈥�${m.label}鈥濇棤鏁坄})
+          }
+        })
+      })
     }
 
     this.setState({
@@ -247,7 +274,7 @@
       sort: card.subcards.length + 1,
       style: {},
       fields: [],
-      subButton: {label: '鎻愪氦', type: 'submit', enable: 'true', style: {backgroundColor: '#1890ff', color: '#ffffff', paddingLeft: '25px', paddingRight: '25px', paddingTop: '5px', paddingBottom: '5px'}},
+      subButton: {label: '鎻愪氦', type: 'submit', intertype: 'system', reload: 'false', sqlType: 'update', sql: '', Ot: 'notRequired', enable: 'true', style: {backgroundColor: '#1890ff', color: '#ffffff', paddingLeft: '25px', paddingRight: '25px', paddingTop: '5px', paddingBottom: '5px'}},
     }
 
     card.subcards.push(newcard)
@@ -602,10 +629,10 @@
           LText: res.dataSource
         }
 
-        param.LText = param.LText.replace(/@\$|\$@/ig, '')
+        param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
+        param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@(BID|ID|LoginUID|SessionUid|UserID|Appkey|time_id)@/ig, `'${param.timestamp}'`)
         
         param.LText = Utils.formatOptions(param.LText)
-        param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
         param.secretkey = Utils.encrypt('', param.timestamp)
 
         if (window.GLOB.mainSystemApi && res.database === 'sso') {
@@ -639,6 +666,37 @@
   }
 
   pasteForm = (res) => {
+    if (res.subtype === 'simpleform') {
+      res = res.subcards[0]
+    }
+    if (res.subButton) {
+      let card = fromJS(this.state.card).toJS()
+
+      res.uuid = Utils.getuuid()
+      res.sort = card.subcards.length + 1
+
+      res.fields.forEach(item => {
+        item.uuid = Utils.getuuid()
+      })
+
+      delete res.prevButton
+      delete res.nextButton
+
+      card.subcards.push(res)
+      
+      this.setState({
+        group: res
+      })
+      this.updateComponent(card)
+
+      notification.success({
+        top: 92,
+        message: '绮樿创鎴愬姛锛�',
+        duration: 2
+      })
+      return
+    }
+
     let _config = fromJS(this.state.group).toJS()
     let fieldrepet = false // 瀛楁閲嶅
 
@@ -674,7 +732,17 @@
   }
 
   updateWrap = (res) => {
-    this.updateComponent({...this.state.card, wrap: res})
+    let _card = {...this.state.card, wrap: res}
+
+    if (res.datatype === 'static') {
+      if (res.supModule && res.supModule.length > 0) {
+        _card.setting.supModule = res.supModule
+      } else {
+        _card.setting.supModule = ''
+      }
+    }
+
+    this.updateComponent(_card)
   }
 
   clearGroup = () => {
@@ -720,7 +788,7 @@
               <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/>
             </NormalForm>
             <CopyComponent type="tabform" card={card}/>
-            <PasteComponent config={card} options={['form']} updateConfig={this.pasteForm} />
+            <PasteComponent config={card} options={['form', 'formgroup', 'simpleform']} updateConfig={this.pasteForm} />
             <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/>
             <UserComponent config={card}/>
             <DeleteOutlined className="close" title="鍒犻櫎缁勪欢" onClick={() => this.props.deletecomponent(card.uuid)} />
@@ -805,4 +873,4 @@
   }
 }
 
-export default PropCardEditComponent
\ No newline at end of file
+export default TabFormComponent
\ No newline at end of file

--
Gitblit v1.8.0