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