From b23db4e1b9e8bc813b4b3b95d35552e5e2e980c6 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 01 二月 2021 18:51:00 +0800
Subject: [PATCH] 2021-02-01

---
 src/tabviews/custom/components/share/normalTable/index.jsx |   66 +++++++++++++++++++++++----------
 1 files changed, 46 insertions(+), 20 deletions(-)

diff --git a/src/tabviews/custom/components/share/normalTable/index.jsx b/src/tabviews/custom/components/share/normalTable/index.jsx
index e377073..ca764a7 100644
--- a/src/tabviews/custom/components/share/normalTable/index.jsx
+++ b/src/tabviews/custom/components/share/normalTable/index.jsx
@@ -170,7 +170,7 @@
   }
 
   render() {
-    let { col, config, record, className, style, triggerLink, updateStatus, ...resProps } = this.props
+    let { col, config, record, className, style, triggerLink, ...resProps } = this.props
 
     if (!col) return (<td {...resProps} className={className} style={style}/>)
     
@@ -246,6 +246,10 @@
 
       if (col.blur) {
         content = md5(content)
+      }
+
+      if (col.rowspan === 'true') {
+        resProps.rowSpan = record['$$' + col.field]
       }
 
       if (col.linkThdMenu || col.linkurl) {
@@ -347,12 +351,12 @@
     } else if (col.type === 'custom') {
       style.padding = '0px'
       resProps.children = (
-        <CardCellComponent data={record} cards={config} elements={col.elements} updateStatus={this.props.updateStatus}/>
+        <CardCellComponent data={record} cards={config} elements={col.elements}/>
       )
     } else if (col.type === 'action') {
       style.padding = '0px 5px'
       resProps.children = (
-        <CardCellComponent data={record} cards={config} elements={col.elements} updateStatus={this.props.updateStatus}/>
+        <CardCellComponent data={record} cards={config} elements={col.elements}/>
       )
     }
 
@@ -376,18 +380,19 @@
     loading: PropTypes.bool,         // 琛ㄦ牸鍔犺浇涓�
     refreshdata: PropTypes.func,     // 琛ㄦ牸涓帓搴忓垪銆侀〉鐮佺殑鍙樺寲鏃跺埛鏂�
     chgSelectData: PropTypes.func,   // 鏁版嵁鍒囨崲
-    refreshbyaction: PropTypes.func, // 鎸夐挳鎵ц瀹屾垚鍚庡埛鏂�
   }
 
   state = {
     dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
+    tableId: '',          // 琛ㄦ牸ID
     selectedRowKeys: [],  // 琛ㄦ牸涓�変腑琛�
     pageIndex: 1,         // 鍒濆椤甸潰绱㈠紩
     pageSize: 10,         // 姣忛〉鏁版嵁鏉℃暟
     columns: null,        // 鏄剧ず鍒�
     activeIndex: null,    // 鏍囪褰撳墠閫変腑琛�
     rowspans: null,       // 琛屽悎骞跺瓧娈典俊鎭�
-    pickup: false
+    pickup: false,        // 鏀惰捣鏈�夋嫨椤�
+    orderfields: {}       // 鎺掑簭id涓巉ield杞崲
   }
 
   UNSAFE_componentWillMount () {
@@ -395,6 +400,7 @@
     let radio = 5          // 铏氬寲姣斾緥
     let _format = false    // 鏄惁铏氬寲澶勭悊
     let rowspans = []
+    let orderfields = {}
 
     if (window.GLOB.dataFormat && menuType !== 'HS' && memberLevel) {
       _format = true
@@ -424,7 +430,11 @@
           if (item.marks && item.marks.length === 0) {
             item.marks = ''
           }
-  
+
+          if (item.field) {
+            orderfields[item.uuid] = item.field
+          }
+
           cell = {
             align: item.Align,
             dataIndex: item.uuid,
@@ -435,8 +445,7 @@
               record,
               col: item,
               config: item.type === 'custom' || item.type === 'action' ? {setting, columns: fields} : null,
-              triggerLink: this.triggerLink,
-              updateStatus: this.updateStatus
+              triggerLink: this.triggerLink
             })
           }
         }
@@ -451,9 +460,27 @@
       rowspans = null
     }
 
+    let tableId = (() => {
+      let uuid = []
+      let _options = 'abcdefghigklmnopqrstuv'
+      for (let i = 0; i < 19; i++) {
+        uuid.push(_options.substr(Math.floor(Math.random() * 0x20), 1))
+      }
+      return uuid.join('')
+    }) ()
+
+    if (setting.borderColor) { // 杈规棰滆壊
+      let style = `#${tableId} table, #${tableId} tr, #${tableId} th, #${tableId} td {border-color: ${setting.borderColor}}`
+      let ele = document.createElement('style')
+      ele.innerHTML = style
+      document.getElementsByTagName('head')[0].appendChild(ele)
+    }
+
     this.setState({
       columns: _columns,
-      rowspans
+      rowspans,
+      tableId,
+      orderfields
     })
   }
 
@@ -473,12 +500,6 @@
       return
     }
     MKEmitter.removeListener('resetTable', this.resetTable)
-  }
-
-  updateStatus = (type, positon, btn) => {
-    if (type === 'refresh') {
-      this.props.refreshbyaction(positon, btn)
-    }
   }
 
   // 瀛楁閫忚
@@ -606,6 +627,8 @@
   }
 
   changeTable = (pagination, filters, sorter) => {
+    const { orderfields } = this.state
+
     this.setState({
       pageIndex: pagination.current,
       pageSize: pagination.pageSize,
@@ -613,6 +636,9 @@
       activeIndex: null,
       pickup: false
     })
+
+    sorter.field = orderfields[sorter.field] || ''
+
     this.props.refreshdata(pagination, filters, sorter)
   }
 
@@ -667,13 +693,13 @@
         let preItem = data[index - 1]
         rowspans.forEach((cell, i) => {
           if (i === 0) {
-            if ((item[cell] || item[cell] === 0) && preItem[cell] === item[cell]) {
+            if (preItem[cell] === item[cell]) {
               item['$' + cell] = preItem['$' + cell] + 1
             } else {
               item['$' + cell] = 1
             }
           } else {
-            if ((item[cell] || item[cell] === 0) && preItem[cell] === item[cell]) {
+            if (preItem[cell] === item[cell]) {
               item['$' + cell] = preItem['$' + cell] + 1
             } else {
               item['$' + cell] = 1
@@ -721,7 +747,7 @@
 
   render() {
     const { setting, statFValue, lineMarks, data } = this.props
-    const { selectedRowKeys, activeIndex, pickup } = this.state
+    const { selectedRowKeys, activeIndex, pickup, tableId } = this.state
 
     // 璁剧疆琛ㄦ牸閫夋嫨灞炴�э細鍗曢�夈�佸閫夈�佷笉鍙��
     let rowSelection = null
@@ -768,13 +794,13 @@
     }
 
     return (
-      <div className="normal-custom-table">
+      <div className={'normal-custom-table ' + setting.tableHeader} id={tableId}>
         {(setting.tableType === 'radio' || setting.tableType === 'checkbox') && data && data.length > 0 ?
           <Switch title="鏀惰捣" className="main-pickup" checkedChildren="寮�" unCheckedChildren="鍏�" defaultChecked={pickup} onChange={this.pickupChange} /> : null
         }
         <Table
-          size="middle"
           components={components}
+          size={setting.size || 'middle'}
           bordered={setting.bordered !== 'false'}
           rowSelection={rowSelection}
           columns={this.state.columns}

--
Gitblit v1.8.0