From 347c1360ca4b5c6c17353b3e407a26e62c18138b Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 12 五月 2025 16:35:19 +0800
Subject: [PATCH] Merge branch 'master' into positec

---
 src/views/login/index.scss                                     |    6 +
 src/tabviews/custom/components/card/double-data-card/index.jsx |   82 +++++++------
 src/menu/datasource/verifycard/settingform/index.jsx           |    2 
 src/utils/utils-custom.js                                      |  217 ++++++++++++++++++++++++++++++++++--
 src/menu/datasource/verifycard/index.jsx                       |   10 +
 5 files changed, 264 insertions(+), 53 deletions(-)

diff --git a/src/menu/datasource/verifycard/index.jsx b/src/menu/datasource/verifycard/index.jsx
index 72c8e18..b83a387 100644
--- a/src/menu/datasource/verifycard/index.jsx
+++ b/src/menu/datasource/verifycard/index.jsx
@@ -723,6 +723,16 @@
       return
     }
 
+    if (type === 'submit' && config.subtype === 'dualdatacard' && setting.subdata === 'sub_data_string' && !columns.find(col => col.field === 'sub_data_string')) {
+      notification.warning({
+        top: 92,
+        message: '涓昏〃瀛楁闆嗕腑闇�娣诲姞 sub_data_string 瀛楁锛�',
+        duration: 5
+      })
+      reject()
+      return
+    }
+
     if (type === 'change' && columns.length === 0) {
       reject()
       return
diff --git a/src/menu/datasource/verifycard/settingform/index.jsx b/src/menu/datasource/verifycard/settingform/index.jsx
index 786e56e..cfb2a37 100644
--- a/src/menu/datasource/verifycard/settingform/index.jsx
+++ b/src/menu/datasource/verifycard/settingform/index.jsx
@@ -679,7 +679,7 @@
             </Col> : null}
             {config.subtype === 'dualdatacard' ? <Col span={8}>
               <Form.Item label={
-                <Tooltip placement="topLeft" title="瀛愯〃鍦ㄤ富琛ㄤ腑鐨勬暟鎹泦鍚嶇О锛屼娇鐢� sub_data_string 鏃舵暟鎹互 JSON 瀛楃涓插舰寮忚繑鍥烇紙瀛楁闆嗕腑闇�娣诲姞 sub_data_string 瀛楁锛夈��">
+                <Tooltip placement="topLeft" title="瀛愯〃鍦ㄤ富琛ㄤ腑鐨勬暟鎹泦鍚嶇О锛屼娇鐢� sub_data_string 鏃舵暟鎹互 JSON 瀛楃涓插舰寮忚繑鍥烇紙瀛楁闆嗕腑闇�娣诲姞 sub_data_string 瀛楁锛夛紱褰撲富琛ㄥ瓧娈靛瓨鍦� sub_data_string 涓斿�间笉涓虹┖鏃讹紝浼樺厛浣跨敤涓昏〃鐨� sub_data_string銆�">
                   <QuestionCircleOutlined className="mk-form-tip" />
                   瀛愯〃瀛楁
                 </Tooltip>
diff --git a/src/tabviews/custom/components/card/double-data-card/index.jsx b/src/tabviews/custom/components/card/double-data-card/index.jsx
index 223d05d..4fac5cc 100644
--- a/src/tabviews/custom/components/card/double-data-card/index.jsx
+++ b/src/tabviews/custom/components/card/double-data-card/index.jsx
@@ -282,17 +282,18 @@
     if (config.$cache) {
       let getData = (res) => {
         return res.map((item, index) => {
+          let _children = item[config.setting.subdata]
+          
+          delete item[config.setting.subdata]
+          if (config.setting.subdata === 'sub_data_string') {
+            _children = this.parseSubData(_children)
+          } else if (item.sub_data_string) {
+            _children = this.parseSubData(item.sub_data_string)
+          }
+
           let children = []
 
-          if (item[config.setting.subdata]) {
-            let _children = item[config.setting.subdata]
-
-            delete item[config.setting.subdata]
-
-            if (config.setting.subdata === 'sub_data_string') {
-              _children = this.parseSubData(_children)
-            }
-
+          if (_children) {
             _children.forEach((cell, i) => {
               cell.key = i
               cell.$$uuid = cell[config.setting.subKey] || ''
@@ -679,16 +680,17 @@
       if (type === 'plus') {
         let _data = (this.state.data || []).concat(result.data || [])
         data = _data.map((item, index) => {
-          if (item[config.setting.subdata]) {
-            let children = []
-            let _children = item[config.setting.subdata]
+          let _children = item[config.setting.subdata]
+          
+          delete item[config.setting.subdata]
+          if (config.setting.subdata === 'sub_data_string') {
+            _children = this.parseSubData(_children)
+          } else if (item.sub_data_string) {
+            _children = this.parseSubData(item.sub_data_string)
+          }
 
-            delete item[config.setting.subdata]
-
-            if (config.setting.subdata === 'sub_data_string') {
-              _children = this.parseSubData(_children)
-            }
-            
+          let children = []
+          if (_children) {
             _children.forEach((cell, i) => {
               cell.key = i
               cell.$$uuid = cell[config.setting.subKey] || ''
@@ -701,10 +703,9 @@
                 children.push(cell)
               }
             })
-            item.children = children
-          } else if (!item.children) {
-            item.children = []
           }
+          
+          item.children = children
 
           item.key = index
           item.$$uuid = item[config.setting.primaryKey] || ''
@@ -722,17 +723,18 @@
         })
       } else {
         data = result.data.map((item, index) => {
+          let _children = item[config.setting.subdata]
+          
+          delete item[config.setting.subdata]
+          if (config.setting.subdata === 'sub_data_string') {
+            _children = this.parseSubData(_children)
+          } else if (item.sub_data_string) {
+            _children = this.parseSubData(item.sub_data_string)
+          }
+
           let children = []
 
-          if (item[config.setting.subdata]) {
-            let _children = item[config.setting.subdata]
-
-            delete item[config.setting.subdata]
-
-            if (config.setting.subdata === 'sub_data_string') {
-              _children = this.parseSubData(_children)
-            }
-
+          if (_children) {
             _children.forEach((cell, i) => {
               cell.key = i
               cell.$$uuid = cell[config.setting.subKey] || ''
@@ -852,17 +854,19 @@
 
         data = data.map(item => {
           if (item.$$uuid === _data.$$uuid) {
+            let _children = _data[config.setting.subdata]
+
+            delete _data[config.setting.subdata]
+
+            if (config.setting.subdata === 'sub_data_string') {
+              _children = this.parseSubData(_children)
+            } else if (_data.sub_data_string) {
+              _children = this.parseSubData(_data.sub_data_string)
+            }
+
             let children = []
 
-            if (_data[config.setting.subdata]) {
-              let _children = _data[config.setting.subdata]
-
-              delete _data[config.setting.subdata]
-
-              if (config.setting.subdata === 'sub_data_string') {
-                _children = this.parseSubData(_children)
-              }
-
+            if (_children) {
               _children.forEach((cell, i) => {
                 cell.key = i
                 cell.$$uuid = cell[config.setting.subKey] || ''
diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js
index e66d16d..464d315 100644
--- a/src/utils/utils-custom.js
+++ b/src/utils/utils-custom.js
@@ -2762,7 +2762,15 @@
   text = text.filter(Boolean)
   menu = menu.filter(Boolean)
 
-  sql = sql.map(n => n.replace(/(:|锛�)$/g, ''))
+  sql = sql.map(n => n.replace(/^\s+|\s+$/g, '').replace(/(:|锛�)$/g, ''))
+  btn = btn.map(n => n.replace(/^\s+|\s+$/g, ''))
+  ops = ops.map(n => n.replace(/^\s+|\s+$/g, ''))
+  menu = menu.map(n => n.replace(/^\s+|\s+$/g, ''))
+
+  sql = sql.filter(Boolean)
+  btn = btn.filter(Boolean)
+  ops = ops.filter(Boolean)
+  menu = menu.filter(Boolean)
 
   sql = Array.from(new Set(sql))
   btn = Array.from(new Set(btn))
@@ -2810,6 +2818,21 @@
   }
 
   let replaceTitle = (val)聽=> {
+    let s = ''
+    let e = ''
+    if (/^\s+/g) {
+      val = val.replace(/^\s+/g,聽(w) => {
+        s = w
+        return ''
+      })
+    }
+    if (/\s+$/g) {
+      val = val.replace(/\s+$/g,聽(w) => {
+        e = w
+        return ''
+      })
+    }
+
     if聽(/(:|锛�)$/g.test(val)) {
       let _val = val.replace(/(:|锛�)$/g,聽'')
       if聽(titDict[_val]) {
@@ -2820,6 +2843,83 @@
     }聽else if (titDict[val]) {
       val = titDict[val]
     }
+
+    val = s + val + e
+
+    return val
+  }
+
+  let replaceBtn = (val)聽=> {
+    let s = ''
+    let e = ''
+    if (/^\s+/g) {
+      val = val.replace(/^\s+/g,聽(w) => {
+        s = w
+        return ''
+      })
+    }
+    if (/\s+$/g) {
+      val = val.replace(/\s+$/g,聽(w) => {
+        e = w
+        return ''
+      })
+    }
+
+    if (btnDict[val]) {
+      val = btnDict[val]
+    }
+
+    val = s + val + e
+
+    return val
+  }
+
+  let replaceList = (val)聽=> {
+    let s = ''
+    let e = ''
+    if (/^\s+/g) {
+      val = val.replace(/^\s+/g,聽(w) => {
+        s = w
+        return ''
+      })
+    }
+    if (/\s+$/g) {
+      val = val.replace(/\s+$/g,聽(w) => {
+        e = w
+        return ''
+      })
+    }
+
+    if (lisDict[val]) {
+      val = lisDict[val]
+    }
+
+    val = s + val + e
+
+    return val
+  }
+
+  let replaceMenu = (val)聽=> {
+    let s = ''
+    let e = ''
+    if (/^\s+/g) {
+      val = val.replace(/^\s+/g,聽(w) => {
+        s = w
+        return ''
+      })
+    }
+    if (/\s+$/g) {
+      val = val.replace(/\s+$/g,聽(w) => {
+        e = w
+        return ''
+      })
+    }
+
+    if (menuDict[val]) {
+      val = menuDict[val]
+    }
+
+    val = s + val + e
 
     return val
   }
@@ -2856,8 +2956,8 @@
   }
 
   let filterBtn = (btn) => {
-    if (btn.label && btnDict[btn.label]) {
-      btn.label = btnDict[btn.label]
+    if (btn.label) {
+      btn.label = replaceBtn(btn.label)
     }
 
     if (btn.OpenType === 'tab' && btn.linkmenu) {
@@ -2956,8 +3056,8 @@
       n.dataSource = filterSql(n.dataSource)
     } else if (n.options) {
       n.options.forEach(o => {
-        if (o.Text && lisDict[o.Text]) {
-          o.Text = lisDict[o.Text]
+        if (o.Text) {
+          o.Text = replaceList(o.Text)
         }
       })
     }
@@ -3097,8 +3197,8 @@
           item.wrap.linkmenu = item.wrap.linkmenu.slice(0, 24) + tail
         } else if (item.type === 'menubar') {
           item.subMenus = item.subMenus.map(cell => {
-            if (cell.setting.name && menuDict[cell.setting.name]) {
-              cell.setting.name = menuDict[cell.setting.name]
+            if (cell.setting.name) {
+              cell.setting.name = replaceMenu(cell.setting.name)
             }
             if (cell.setting.type === 'linkmenu') {
               cell.setting.linkMenuId = cell.setting.linkMenuId.slice(0, 24) + tail
@@ -3246,6 +3346,20 @@
   }
 
   let replaceTitle = (val)聽=> {
+    let s = ''
+    let e = ''
+    if (/^\s+/g) {
+      val = val.replace(/^\s+/g,聽(w) => {
+        s = w
+        return ''
+      })
+    }
+    if (/\s+$/g) {
+      val = val.replace(/\s+$/g,聽(w) => {
+        e = w
+        return ''
+      })
+    }
     if聽(/(:|锛�)$/g.test(val)) {
       let _val = val.replace(/(:|锛�)$/g,聽'')
       if聽(titDict[_val]) {
@@ -3256,6 +3370,83 @@
     }聽else if (titDict[val]) {
       val = titDict[val]
     }
+
+    val = s + val + e
+
+    return val
+  }
+
+  let replaceBtn = (val)聽=> {
+    let s = ''
+    let e = ''
+    if (/^\s+/g) {
+      val = val.replace(/^\s+/g,聽(w) => {
+        s = w
+        return ''
+      })
+    }
+    if (/\s+$/g) {
+      val = val.replace(/\s+$/g,聽(w) => {
+        e = w
+        return ''
+      })
+    }
+
+    if (btnDict[val]) {
+      val = btnDict[val]
+    }
+
+    val = s + val + e
+
+    return val
+  }
+
+  let replaceList = (val)聽=> {
+    let s = ''
+    let e = ''
+    if (/^\s+/g) {
+      val = val.replace(/^\s+/g,聽(w) => {
+        s = w
+        return ''
+      })
+    }
+    if (/\s+$/g) {
+      val = val.replace(/\s+$/g,聽(w) => {
+        e = w
+        return ''
+      })
+    }
+
+    if (lisDict[val]) {
+      val = lisDict[val]
+    }
+
+    val = s + val + e
+
+    return val
+  }
+
+  let replaceMenu = (val)聽=> {
+    let s = ''
+    let e = ''
+    if (/^\s+/g) {
+      val = val.replace(/^\s+/g,聽(w) => {
+        s = w
+        return ''
+      })
+    }
+    if (/\s+$/g) {
+      val = val.replace(/\s+$/g,聽(w) => {
+        e = w
+        return ''
+      })
+    }
+
+    if (menuDict[val]) {
+      val = menuDict[val]
+    }
+
+    val = s + val + e
 
     return val
   }
@@ -3292,8 +3483,8 @@
   }
 
   let filterBtn = (btn) => {
-    if (btn.label && btnDict[btn.label]) {
-      btn.label = btnDict[btn.label]
+    if (btn.label) {
+      btn.label = replaceBtn(btn.label)
     }
 
     if (!btn.verify) return
@@ -3341,8 +3532,8 @@
       n.dataSource = filterSql(n.dataSource)
     } else if (n.options) {
       n.options.forEach(o => {
-        if (o.Text && lisDict[o.Text]) {
-          o.Text = lisDict[o.Text]
+        if (o.Text) {
+          o.Text = replaceList(o.Text)
         }
       })
     }
@@ -3423,8 +3614,8 @@
 
         if (item.type === 'menubar') {
           item.subMenus = item.subMenus.map(cell => {
-            if (cell.setting.name && menuDict[cell.setting.name]) {
-              cell.setting.name = menuDict[cell.setting.name]
+            if (cell.setting.name) {
+              cell.setting.name = replaceMenu(cell.setting.name)
             }
             return cell
           })
diff --git a/src/views/login/index.scss b/src/views/login/index.scss
index e4b51c4..598e2be 100644
--- a/src/views/login/index.scss
+++ b/src/views/login/index.scss
@@ -220,6 +220,12 @@
           //   width: 15px;
           //   height: 15px;
           // }
+          input[type="checkbox"] {
+            width: 35px;
+            height: 22px;
+            top: -4px;
+            left: -4px;
+          }
 
           a {
             color: var(--mk-sys-color);

--
Gitblit v1.8.0