From 704f82b06befe96e5f739b2dce419f76f5683a6f Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 15 八月 2022 09:27:54 +0800
Subject: [PATCH] Merge branch 'develop'

---
 src/menu/components/card/data-card/index.jsx |   45 +++++++++++++++++++++++++++++++++++++++------
 1 files changed, 39 insertions(+), 6 deletions(-)

diff --git a/src/menu/components/card/data-card/index.jsx b/src/menu/components/card/data-card/index.jsx
index 67eea0f..bcdde15 100644
--- a/src/menu/components/card/data-card/index.jsx
+++ b/src/menu/components/card/data-card/index.jsx
@@ -197,6 +197,8 @@
     }
 
     card.errors = []
+    let columns = card.columns.map(c => c.field)
+    let lowcols = card.columns.map(c => c.field.toLowerCase())
 
     if (card.setting.interType === 'system' && card.setting.execute !== 'false' && !card.setting.dataresource) {
       card.errors.push({ level: 0, detail: '鏈缃暟鎹簮锛�'})
@@ -204,6 +206,8 @@
       card.errors.push({ level: 0, detail: '鏁版嵁婧愪腑鏃犲彲鐢ㄨ剼鏈紒'})
     } else if (!card.setting.primaryKey) {
       card.errors.push({ level: 0, detail: '鏈缃富閿紒'})
+    } else if (!columns.includes(card.setting.primaryKey)) {
+      card.errors.push({ level: 0, detail: '涓婚敭宸插け鏁堬紒'})
     } else if (card.wrap.supType !== 'multi' && !card.setting.supModule) {
       card.errors.push({ level: 0, detail: '鏈缃笂绾х粍浠讹紒'})
     }
@@ -220,9 +224,6 @@
       }
     }
 
-    let columns = card.columns.map(c => c.field)
-    let lowcols = card.columns.map(c => c.field.toLowerCase())
-
     card.action.forEach(cell => {
       if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) {
         if (!cell.modal || cell.modal.fields.length === 0) {
@@ -237,6 +238,16 @@
           })
         }
       }
+      // $check@鏈夋晥鎬ф娴�
+      // if (['prompt', 'exec', 'pop'].includes(cell.OpenType) && cell.Ot === 'required' && cell.verify && cell.verify.scripts && cell.verify.scripts.length > 0) {
+      //   cell.verify.scripts.some(s => {
+      //     if (s.status !== 'false' && /\$check@|@check\$/ig.test(s.sql)) {
+      //       card.errors.push({ level: 1, detail: `鍙�夋嫨澶氳鐨勬寜閽��${cell.label}鈥濅腑 $check@ 鎴� @check$ 灏嗕笉浼氱敓鏁堬紒`})
+      //       return true
+      //     }
+      //     return false
+      //   })
+      // }
     })
 
     card.subcards.forEach((item, i) => {
@@ -573,7 +584,9 @@
   }
 
   updateWrap = (res) => {
-    let _card = {...this.state.card, wrap: res}
+    const { card } = this.state
+
+    let _card = {...card, wrap: res}
 
     if (res.supNodes) {
       _card.supNodes = res.supNodes
@@ -587,11 +600,31 @@
       delete _card.supNodes
     }
 
+    
     if (res.layout === 'flex') {
       _card.wrap.pagestyle = 'page'
     }
+    
+    if (res.selStyle === 'tabs' && card.wrap.selStyle !== 'tabs') {
+      Object.keys(_card.style).forEach(key => {
+        if (/^border/.test(key)) {
+          delete _card.style[key]
+        }
+      })
+      _card.style.borderBottomColor = '#eeeeee'
+      _card.style.borderBottomWidth = '1px'
+      _card.style.paddingBottom = '0px'
 
-    this.updateComponent(_card)
+      _card.subcards.forEach(item => {
+        delete item.style.marginBottom
+      })
+      
+      this.setState({card: {..._card, subcards: []}}, () => {
+        this.updateComponent(_card)
+      })
+    } else {
+      this.updateComponent(_card)
+    }
   }
 
   pasteComponent = (res, resolve) => {
@@ -760,7 +793,7 @@
           <ToolOutlined />
         </Popover>
         <ActionComponent config={card} type="datacard" setSubConfig={this.setSubConfig} updateaction={this.updateComponent}/>
-        <div className={'float-' + (card.wrap.cardFloat || 'left')}>
+        <div className={'float-' + (card.wrap.cardFloat || 'left') + ' select-' + card.wrap.selStyle}>
           {card.subcards.map((subcard, index) => (<CardComponent key={subcard.uuid} cards={card} card={subcard} move={this.move} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))}
         </div>
         <div style={{clear: 'both'}}></div>

--
Gitblit v1.8.0