From 8a6ce370f1aa1c061b76fa3e9d2d4d1df53ca4c5 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 21 五月 2024 16:38:09 +0800
Subject: [PATCH] Merge branch 'master' into positec

---
 src/tabviews/custom/components/share/normalTable/index.jsx |   91 +++++++++++++++++++++++++++++----------------
 1 files changed, 59 insertions(+), 32 deletions(-)

diff --git a/src/tabviews/custom/components/share/normalTable/index.jsx b/src/tabviews/custom/components/share/normalTable/index.jsx
index 04f091d..a468ec1 100644
--- a/src/tabviews/custom/components/share/normalTable/index.jsx
+++ b/src/tabviews/custom/components/share/normalTable/index.jsx
@@ -34,21 +34,11 @@
       __param.$searchkey = item.field.toLowerCase()
       __param.$searchval = record[item.field] || ''
     }
-  
-    if (item.linkThdMenu.urlFields) {
-      let lower = {}
-      Object.keys(record).forEach(key => {
-        lower[key.toLowerCase()] = record[key]
-      })
 
-      item.linkThdMenu.urlFields.split(',').forEach(field => {
-        __param[field] = lower[field.toLowerCase()] || ''
-      })
-    } else if (item.linkfields && item.linkfields.length > 0) {
-      item.linkfields.forEach(field => {
-        __param[field] = record[field] || ''
-      })
-    }
+    Object.keys(record).forEach(key => {
+      if (/^\$/.test(key)) return
+      __param[key] = record[key]
+    })
 
     let tabmenu = item.linkThdMenu
 
@@ -58,20 +48,18 @@
   } else if (item.linkurl) {
     let src = item.linkurl
 
-    let con = '?'
+    if (/@/.test(src)) {
+      src = src.replace(/@id@/ig, record.$$uuid)
+      src = src.replace(/@appkey@/ig, window.GLOB.appkey)
+      src = src.replace(/@userid@/ig, sessionStorage.getItem('UserID'))
+      src = src.replace(/@LoginUID@/ig, sessionStorage.getItem('LoginUID'))
 
-    if (/\?/ig.test(src)) {
-      con = '&'
-    }
-
-    if (item.linkfields && item.linkfields.length > 0) {
-      item.linkfields.forEach(field => {
-        if (field.toLowerCase() === 'id') return
-        con += `${field}=${record[field] || ''}&`
+      Object.keys(record).forEach(key => {
+        if (/^\$/.test(key)) return
+        let reg = new RegExp('@' + key + '@', 'ig')
+        src = src.replace(reg, record[key])
       })
     }
-    
-    src = src + `${con}id=${record.$$uuid}&appkey=${window.GLOB.appkey}&userid=${sessionStorage.getItem('UserID')}&LoginUID=${sessionStorage.getItem('LoginUID') || ''}`
 
     window.open(src)
   }
@@ -384,6 +372,17 @@
         } else {
           _href += '?' + _param
         }
+      } else if (/@/.test(_href)) {
+        _href = _href.replace(/@id@/ig, record.$$uuid || '')
+        _href = _href.replace(/@appkey@/ig, window.GLOB.appkey)
+        _href = _href.replace(/@userid@/ig, sessionStorage.getItem('UserID'))
+        _href = _href.replace(/@LoginUID@/ig, sessionStorage.getItem('LoginUID'))
+
+        Object.keys(record).forEach(key => {
+          if (/^\$/.test(key)) return
+          let reg = new RegExp('@' + key + '@', 'ig')
+          _href = _href.replace(reg, record[key])
+        })
       }
 
       if (col.blur) {
@@ -507,7 +506,8 @@
     chgSelectData: PropTypes.func,   // 鏁版嵁鍒囨崲
     autoMatic: PropTypes.any,
     allSearch: PropTypes.any,
-    colsCtrls: PropTypes.any
+    colsCtrls: PropTypes.any,
+    parCtrl: PropTypes.any
   }
 
   state = {
@@ -556,10 +556,7 @@
             if (item.rowspan === 'true') {
               rowspans.push(item.field)
             }
-            if (item.type === 'index') {
-              item.field = '$Index'
-              item.type = 'text'
-            } else if (_format && !Math.floor(Math.random() * radio)) {
+            if (_format && !Math.floor(Math.random() * radio)) {
               item.blur = true
             }
   
@@ -655,7 +652,7 @@
   }
 
   UNSAFE_componentWillReceiveProps(nextProps) {
-    const { allSearch } = this.props
+    const { allSearch, parCtrl } = this.props
     const { allColumns } = this.state
 
     if (allSearch && !is(fromJS(allSearch), fromJS(nextProps.allSearch))) {
@@ -664,6 +661,36 @@
         columns: this.getCurColumns(allColumns, nextProps.allSearch)
       }, () => {
         this.setState({reseting: false})
+      })
+    } else if (parCtrl && !is(fromJS(this.props.columns), fromJS(nextProps.columns))) {
+      let getColumns = (cols) => {
+        return cols.map(item => {
+          let cell = null
+    
+          if (item.type === 'colspan') {
+            cell = { title: item.label, align: item.Align }
+            cell.children = getColumns(item.subcols)
+          } else {
+            cell = {
+              align: item.Align,
+              dataIndex: item.uuid,
+              title: item.label,
+              sorter: (item.field || item.sortField) && item.IsSort === 'true',
+              width: item.Width || 120,
+              onCell: record => ({
+                record,
+                col: item,
+                config: item.type === 'custom' ? {setting: this.props.setting, columns: this.props.fields} : null,
+              })
+            }
+          }
+    
+          return cell
+        })
+      }
+
+      this.setState({
+        columns: getColumns(nextProps.columns)
       })
     }
   }
@@ -1085,7 +1112,7 @@
     if (!setting.doubleClick) return
     if (record.$disabled) return
 
-    MKEmitter.emit('triggerBtnId', setting.doubleClick, [record], 'linkbtn')
+    MKEmitter.emit('triggerBtnId', setting.doubleClick, [record], 'linkbtn', (record.$$uuid || '') + (record.$Index || ''))
   }
 
   render() {

--
Gitblit v1.8.0