From 742f7d11557526038d332e60a8c8ca18177bc4e4 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 26 十月 2023 15:51:58 +0800 Subject: [PATCH] Merge branch 'master' into positec --- src/tabviews/custom/components/card/data-card/index.jsx | 55 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 35 insertions(+), 20 deletions(-) diff --git a/src/tabviews/custom/components/card/data-card/index.jsx b/src/tabviews/custom/components/card/data-card/index.jsx index 96e55f2..9cc9fcd 100644 --- a/src/tabviews/custom/components/card/data-card/index.jsx +++ b/src/tabviews/custom/components/card/data-card/index.jsx @@ -1,7 +1,7 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Spin, Empty, notification, message, Row, Col, Pagination, Modal } from 'antd' +import { Spin, Empty, notification, message, Row, Col, Pagination, Modal, Switch } from 'antd' import { DownOutlined } from '@ant-design/icons' import Api from '@/api' @@ -37,13 +37,14 @@ selectedData: [], loading: false, card: null, - data: null, + data: [], total: null, precards: [], nextcards: [], selected: 'false', supNodes: [], - supComs: null + supComs: null, + pickup: false } loaded = false @@ -133,7 +134,7 @@ _config.wrap.scale = _config.wrap.scale === 'true' ? 'scale' : '' _config.wrap.layout = (_config.wrap.layout || 'grid') + '-layout float-' + (_config.wrap.cardFloat || 'left') - _config.wrap.wrapClass = `${_config.wrap.selStyle} ${_config.wrap.cardType || ''} ${_config.wrap.scale}` + _config.wrap.wrapClass = `${_config.wrap.selStyle} ${_config.wrap.cardType || ''} ${_config.wrap.scale}` let pageOptions = ['10', '25', '50', '100', '500', '1000'] @@ -149,7 +150,7 @@ } } - let _data = null + let _data = [] if (_config.setting.sync === 'true') { _config.setting.onload = 'false' @@ -470,7 +471,7 @@ checkTopLine = (id) => { const { config, data, selected } = this.state - if (!data || data.length === 0) { + if (data.length === 0) { this.setState({ activeKey: '', selectKeys: [], @@ -592,7 +593,7 @@ const { config, data, selectedData } = this.state if (config.wrap.cardType !== 'checkbox') return - if (!data || data.length === 0) return + if (data.length === 0) return if (selectedData.length === 0 || selectedData.length < data.length) { let index = '' @@ -822,6 +823,7 @@ selectedData: [], data: data, total: total, + pickup: false, loading: false }) @@ -1125,14 +1127,22 @@ }) } - render() { - const { config, precards, nextcards, loading, data, pageIndex, pageSize, total, card, activeKey, BID, BData, selectedData, selectKeys } = this.state + pickupChange = () => { + this.setState({ + pickup: !this.state.pickup + }) + } - if (config.wrap.empty === 'hidden' && (!data || data.length === 0)) return null + render() { + const { config, precards, nextcards, loading, pageIndex, pageSize, total, card, activeKey, BID, BData, selectedData, selectKeys, pickup } = this.state + + let data = this.state.data + + if (config.wrap.empty === 'hidden' && data.length === 0) return null let _total = 0 let switchable = false - if (config.wrap.pagestyle === 'switch' && total > pageSize && data) { + if (config.wrap.pagestyle === 'switch' && total > pageSize) { _total = pageSize * pageIndex switchable = true } @@ -1142,7 +1152,7 @@ if (config.$extend) { extendData = {$$BID: BID, $$BData: BData, $$selectedData: selectedData, $$type: 'extendCard'} - if (data && data[0]) { + if (data[0]) { if (selectedData[0]) { extendData = {...extendData, ...selectedData[0]} } else { @@ -1158,11 +1168,15 @@ } } + if (pickup) { + data = data.filter(item => selectKeys.includes(item.key)) + } + return ( <div className="custom-data-card-box" id={'anchor' + config.uuid} style={config.style}> {loading ? <div className="loading-mask"> - {data ? <div className="ant-spin-blur"></div> : null} + {data.length ? <div className="ant-spin-blur"></div> : null} <Spin /> </div> : null } @@ -1177,6 +1191,7 @@ selectedData={selectedData} /> : null } + {config.wrap.pickup === 'true' && this.state.data.length > 0 ? <div className="pickup-wrap"><Switch title="鏀惰捣" checkedChildren="寮�" unCheckedChildren="鍏�" checked={pickup} onChange={this.pickupChange} /></div> : null} <div className={`data-zoom ${config.wrap.wrapClass}`}> {switchable ? <div className={'prev-page ' + (pageIndex === 1 ? 'disabled' : '')} onClick={this.prevPage}><div><div><img src={preImg} alt=""/></div></div></div> : null} <Row className={'card-row-list ' + config.wrap.layout}> @@ -1189,7 +1204,7 @@ </CardItem>} </Col> ))} - {data && data.map((item, index) => { + {data.map((item, index) => { let className = 'mk-card ' if (config.wrap.parity === 'true') { if (index % 2 === 1) { @@ -1198,15 +1213,15 @@ } if (item.$disabled) { className = 'mk-disabled' - } else if (activeKey === index) { + } else if (activeKey === item.key) { className += 'active' - } else if (selectKeys.indexOf(index) > -1) { + } else if (selectKeys.indexOf(item.key) > -1) { className += 'selected' } return ( <Col className={className} key={index} style={card.wStyle} span={card.setting.width}> - <CardItem card={card} cards={config} data={item} onClick={() => {this.changeCard(index, item)}}> + <CardItem card={card} cards={config} data={item} onClick={() => {this.changeCard(item.key, item)}}> <span className="circle-select"></span> </CardItem> </Col> @@ -1224,9 +1239,9 @@ </Row> {switchable ? <div className={'prev-page ' + (total <= _total ? 'disabled' : '')} onClick={this.nextPage}><div><div><img src={nextImg} alt=""/></div></div></div> : null} </div> - {config.$empty && (!data || data.length === 0) ? <Empty description={false}/> : null} - {config.wrap.pagestyle === 'page' && data ? <Pagination size="small" total={total} showTotal={(t, range) => total > 0 ? `${range[0]}-${range[1]} 鍏� ${total} 鏉 : `鍏� ${total} 鏉} pageSize={pageSize} showSizeChanger={true} pageSizeOptions={this.state.pageOptions} onChange={this.changePageIndex} onShowSizeChange={this.pageSizeChange} current={pageIndex}/> : null} - {config.wrap.pagestyle === 'more' && data && data.length > 0 ? <div className={'mk-more' + (pageSize * pageIndex >= total ? ' disabled' : '')} onClick={this.loadMore}>鏌ョ湅鏇村<DownOutlined/></div> : null} + {config.$empty && data.length === 0 ? <Empty description={false}/> : null} + {config.wrap.pagestyle === 'page' ? <Pagination size="small" total={total} showTotal={(t, range) => total > 0 ? `${range[0]}-${range[1]} 鍏� ${total} 鏉 : `鍏� ${total} 鏉} pageSize={pageSize} showSizeChanger={true} pageSizeOptions={this.state.pageOptions} onChange={this.changePageIndex} onShowSizeChange={this.pageSizeChange} current={pageIndex}/> : null} + {config.wrap.pagestyle === 'more' && data.length > 0 ? <div className={'mk-more' + (pageSize * pageIndex >= total ? ' disabled' : '')} onClick={this.loadMore}>鏌ョ湅鏇村<DownOutlined/></div> : null} </div> ) } -- Gitblit v1.8.0