From f9730906ff42d4d2a57a999050dd10b17fe9ee53 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 07 三月 2024 21:05:55 +0800
Subject: [PATCH] 2024-03-07

---
 src/tabviews/custom/components/share/normalTable/index.jsx |   85 +++++++++++++++++++++++++-----------------
 1 files changed, 50 insertions(+), 35 deletions(-)

diff --git a/src/tabviews/custom/components/share/normalTable/index.jsx b/src/tabviews/custom/components/share/normalTable/index.jsx
index b090fc7..66f8c96 100644
--- a/src/tabviews/custom/components/share/normalTable/index.jsx
+++ b/src/tabviews/custom/components/share/normalTable/index.jsx
@@ -110,7 +110,7 @@
     let { col, config, record, className, style, triggerLink, ...resProps } = this.props
 
     if (!col) return (<td {...resProps} className={className} style={style}/>)
-    
+
     if (col.type === 'text') {
       let content = ''
       if (record[col.field] !== undefined) {
@@ -124,6 +124,10 @@
           content = `${content.substr(0, 4)}-${content.substr(5, 2)}-${content.substr(8, 2)} ${content.substr(11, 2)}:${content.substr(14, 2)}:${content.substr(17, 2)}`
         } else if (col.textFormat === 'encryption') {
           content = <span>{col.prefix || ''}<Encrypts value={content} />{col.postfix || ''}</span>
+        }
+
+        if (col.noValue === 'hide' && content < '1949-10-02') {
+          content = ''
         }
 
         if (col.textFormat !== 'encryption') {
@@ -162,21 +166,22 @@
         resProps.rowSpan = record['$$' + col.field]
       }
       
-      if (!record.$disabled && (col.linkThdMenu || col.linkurl)) {
-        content = (
-          <div>
-            <div className="link-menu" onDoubleClick={(e) => triggerLink(e, col, record)}></div>
-            {content}
-          </div>
-        )
-      }
-
       resProps.children = content
+
+      if (!record.$disabled && (col.linkThdMenu || col.linkurl)) {
+        style = style || {}
+        style.cursor = 'pointer'
+
+        return (<td {...resProps} className={className} onDoubleClick={() => triggerLink(col, record)} style={style}/>)
+      }
     } else if (col.type === 'number') {
       let content = ''
       try {
         content = parseFloat(record[col.field])
         if (isNaN(content)) {
+          content = ''
+        }
+        if (col.noValue === 'hide' && content === 0) {
           content = ''
         }
       } catch (e) {
@@ -235,16 +240,14 @@
         resProps.rowSpan = record['$$' + col.field]
       }
 
-      if (!record.$disabled && (col.linkThdMenu || col.linkurl)) {
-        content = (
-          <div>
-            <div className="link-menu" onDoubleClick={(e) => triggerLink(e, col, record)}></div>
-            {content}
-          </div>
-        )
-      }
-
       resProps.children = content
+
+      if (!record.$disabled && (col.linkThdMenu || col.linkurl)) {
+        style = style || {}
+        style.cursor = 'pointer'
+
+        return (<td {...resProps} className={className} onDoubleClick={() => triggerLink(col, record)} style={style}/>)
+      }
     } else if (col.type === 'picture') {
       let photos = ''
       if (record[col.field]) {
@@ -268,7 +271,7 @@
         <div>
           {photos.map((url, i) => (
             <Col key={i} span={col.span || 24}>
-              <MkPicture style={{paddingTop, backgroundSize: col.backgroundSize || 'cover'}} scale={scale} url={url} urls={photos}/>
+              <MkPicture lostTip={col.lostTip !== 'false'} style={{paddingTop, backgroundSize: col.backgroundSize || 'cover'}} scale={scale} url={url} urls={photos}/>
             </Col>
           ))}
         </div>
@@ -352,6 +355,10 @@
           // eslint-disable-next-line
           let func = new Function('data', col.formula)
           content = func([record])
+
+          if (col.noValue === 'hide' && content === 0) {
+            content = ''
+          }
         } catch (e) {
           console.warn(e)
           content = ''
@@ -365,6 +372,10 @@
           try {
             // eslint-disable-next-line
             content = eval(content)
+
+            if (col.noValue === 'hide' && content === 0) {
+              content = ''
+            }
           } catch (e) {
             console.info(content)
             console.warn(e)
@@ -499,10 +510,6 @@
             } else if (_format && !Math.floor(Math.random() * radio)) {
               item.blur = true
             }
-    
-            if (item.marks && item.marks.length === 0) {
-              item.marks = ''
-            }
   
             if (item.field) {
               orderfields[item.uuid] = item.field
@@ -570,6 +577,10 @@
       pageOptions = pageOptions.sort((a, b) => a - b)
     }
 
+    if (setting.maxPageSize) {
+      pageOptions = pageOptions.filter(item => item <= setting.maxPageSize)
+    }
+
     let allColumns = null
     if (colsCtrls) {
       rowspans = null
@@ -585,12 +596,6 @@
       rowspans,
       tableId,
       orderfields
-    }, () => {
-      const element = document.getElementById(tableId)
-      element && element.style.setProperty('--mk-table-border-color', setting.borderColor || '#e8e8e8')
-      element && element.style.setProperty('--mk-table-color', setting.color || 'rgba(0, 0, 0, 0.65)')
-      element && element.style.setProperty('--mk-table-font-size', setting.fontSize || '14px')
-      element && element.style.setProperty('--mk-table-font-weight', setting.fontWeight || 'normal')
     })
   }
 
@@ -657,6 +662,9 @@
         result = originVal === contrastVal
       } else if (item.match === '!=') {
         result = originVal !== contrastVal
+      } else if (item.match === 'regexp') {
+        let reg = new RegExp(item.contrastValue, 'ig')
+        result = reg.test(originVal)
       } else {
         originVal = isNaN(originVal) ? originVal : +originVal
         contrastVal = isNaN(contrastVal) ? contrastVal : +contrastVal
@@ -798,9 +806,7 @@
   }
 
   // 瀛楁閫忚
-  triggerLink = (e, item, record) => {
-    e.stopPropagation()
-
+  triggerLink = (item, record) => {
     let __param = {
       $searchkey: item.field,
       $searchval: record[item.field] || '',
@@ -843,6 +849,8 @@
 
   onSelectChange = (selectedRowKeys, e) => {
     const { setting, MenuID, data } = this.props
+
+    if (this.state.pickup) return
 
     let index = ''
     let _activeIndex = null
@@ -1073,7 +1081,7 @@
 
   render() {
     const { setting, statFValue, lineMarks, data } = this.props
-    const { selectedRowKeys, activeIndex, pickup, tableId, pageOptions, columns, reseting } = this.state
+    const { selectedRowKeys, activeIndex, pickup, pageOptions, columns, reseting } = this.state
 
     if (reseting) return null
 
@@ -1143,8 +1151,15 @@
       }
     }
 
+    let style = {
+      '--mk-table-border-color': setting.borderColor || '#e8e8e8',
+      '--mk-table-color': setting.color || 'rgba(0, 0, 0, 0.65)',
+      '--mk-table-font-size': setting.fontSize || '14px',
+      '--mk-table-font-weight': setting.fontWeight || 'normal'
+    }
+
     return (
-      <div className={`normal-custom-table ${setting.tableHeader || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || 'middle'} table-col-${columns.length} ${fixed}`} id={tableId}>
+      <div className={`normal-custom-table ${setting.tableHeader || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || 'middle'} table-col-${columns.length} ${fixed}`} style={style}>
         {(setting.tableType === 'radio' || setting.tableType === 'checkbox') && data && data.length > 0 ?
           <Switch title="鏀惰捣" className="main-pickup" checkedChildren="寮�" unCheckedChildren="鍏�" checked={pickup} onChange={this.pickupChange} /> : null
         }

--
Gitblit v1.8.0