From 9e0a0749233c15711fd3259afa1f19867d214df7 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 22 六月 2020 16:07:35 +0800
Subject: [PATCH] 2020-06-22

---
 src/tabviews/zshare/normalTable/index.jsx |   39 ++++++++++++++++++++++++++++-----------
 1 files changed, 28 insertions(+), 11 deletions(-)

diff --git a/src/tabviews/zshare/normalTable/index.jsx b/src/tabviews/zshare/normalTable/index.jsx
index 4952d86..0ffe91a 100644
--- a/src/tabviews/zshare/normalTable/index.jsx
+++ b/src/tabviews/zshare/normalTable/index.jsx
@@ -43,7 +43,8 @@
     imgShow: false,       // 鍥剧墖鏀惧ぇ妯℃�佹
     imgSrc: '',           // 鍥剧墖璺緞
     lineMarks: null,      // 琛屾爣璁�
-    colMap: null          // 鍒椾俊鎭紙鍏ㄩ儴锛�
+    colMap: null,         // 鍒椾俊鎭紙鍏ㄩ儴锛�
+    activeIndex: null     // 鏍囪褰撳墠閫変腑琛�
   }
 
   UNSAFE_componentWillMount () {
@@ -689,14 +690,21 @@
    * 
    */
   onSelectChange = selectedRowKeys => {
+    const { setting } = this.props
+
     let index = ''
+    let _activeIndex = null
     if (selectedRowKeys.length > 0) {
       index = selectedRowKeys[selectedRowKeys.length - 1]
     }
 
+    if (setting.tableType === 'checkbox') {
+      _activeIndex = index === '' ? null : index
+    }
+
     this.changedata(index)
 
-    this.setState({ selectedRowKeys })
+    this.setState({ selectedRowKeys, activeIndex: _activeIndex })
 
     let selects = []
     selectedRowKeys.forEach(item => {
@@ -719,16 +727,20 @@
       this.changedata(index)
       this.setState({ selectedRowKeys: newkeys })
     } else {
-      let _re = newkeys.includes(index)
-      if (_re) {
+      let _index = ''
+      if (newkeys.includes(index)) {
         newkeys = newkeys.filter(item => item !== index)
-        this.changedata('')
+        if (newkeys.length > 0) {
+          _index = newkeys[newkeys.length - 1]
+        }
+        this.changedata(_index)
       } else {
+        _index = index
         newkeys.push(index)
         this.changedata(index)
       }
 
-      this.setState({ selectedRowKeys: newkeys })
+      this.setState({ selectedRowKeys: newkeys, activeIndex: _index !== '' ? _index : null })
     }
 
     let selects = []
@@ -743,7 +755,8 @@
     this.setState({
       pageIndex: pagination.current,
       pageSize: pagination.pageSize,
-      selectedRowKeys: []
+      selectedRowKeys: [],
+      activeIndex: null
     })
     this.props.refreshdata(pagination, filters, sorter)
   }
@@ -767,13 +780,14 @@
   resetTable = () => {
     this.setState({
       pageIndex: 1,
-      selectedRowKeys: []
+      selectedRowKeys: [],
+      activeIndex: null
     })
   }
 
   render() {
     const { setting, pickup } = this.props
-    const { selectedRowKeys, lineMarks, colMap } = this.state
+    const { selectedRowKeys, lineMarks, colMap, activeIndex } = this.state
 
     // 璁剧疆琛ㄦ牸閫夋嫨灞炴�э細鍗曢�夈�佸閫夈�佷笉鍙��
     let rowSelection = null
@@ -843,9 +857,12 @@
           columns={this.state.columns}
           dataSource={_data}
           rowClassName={(record) => {
-            if (lineMarks.length === 0) return ''
-
             let className = ''
+            if (setting.tableType === 'checkbox' && record.key === activeIndex) {
+              className = 'mk-row-active '
+            }
+
+            if (lineMarks.length === 0) return className
 
             lineMarks.some(mark => {
               let originType = colMap.get(mark.field).type

--
Gitblit v1.8.0