| | |
| | | sync: false, // 是否统一请求数据 |
| | | card: null, // 卡片设置 |
| | | data: null, // 数据 |
| | | total: null |
| | | total: null, |
| | | precards: [], |
| | | nextcards: [], |
| | | } |
| | | |
| | | UNSAFE_componentWillMount () { |
| | | const { data, initdata, BID } = this.props |
| | | let _config = fromJS(this.props.config).toJS() |
| | | |
| | | _config.subcards = _config.subcards.map(item => { |
| | | let _card = null |
| | | let precards = [] |
| | | let nextcards = [] |
| | | |
| | | _config.subcards.forEach(item => { |
| | | item.setting.$click = '' |
| | | if (item.setting.click === 'button') { |
| | | if (item.elements.filter(ele => ele.eleType === 'button').length < 2) { |
| | |
| | | } |
| | | item.setting.click = '' |
| | | } |
| | | return item |
| | | |
| | | if (item.$cardType !== 'extendCard') { |
| | | _card = item |
| | | } else if (!_card) { |
| | | precards.push(item) |
| | | } else { |
| | | nextcards.push(item) |
| | | } |
| | | }) |
| | | |
| | | let _card = _config.subcards.shift() |
| | | _config.subcards = null |
| | | |
| | | let _cols = new Map() |
| | | |
| | | let _data = null |
| | |
| | | |
| | | if (_config.wrap.cardFloat && _config.wrap.cardFloat !== 'left') { |
| | | let _width = 0 |
| | | _config.subcards.forEach(card => { |
| | | precards.forEach(card => { |
| | | _width += card.setting.width |
| | | }) |
| | | nextcards.forEach(card => { |
| | | _width += card.setting.width |
| | | }) |
| | | |
| | | _config.$offset = _width |
| | | } else { |
| | | _config.wrap.cardFloat = null |
| | | } |
| | | |
| | | if (_data) { |
| | |
| | | }) |
| | | |
| | | this.setState({ |
| | | precards, |
| | | nextcards, |
| | | sync: _sync, |
| | | data: _data, |
| | | BID: BID || '', |
| | |
| | | } |
| | | |
| | | render() { |
| | | const { config, loading, data, pageIndex, total, card, activeKey, BID, BData, selectedData, selectKeys } = this.state |
| | | const { config, precards, nextcards, loading, data, pageIndex, total, card, activeKey, BID, BData, selectedData, selectKeys } = this.state |
| | | |
| | | let _total = 0 |
| | | let switchable = false |
| | |
| | | } |
| | | let offset = 0 |
| | | |
| | | if (config.wrap.cardFloat && config.wrap.cardFloat !== 'left') { |
| | | if (config.wrap.cardFloat) { |
| | | let length = data ? data.length : 0 |
| | | if (card.setting.width * length + config.$offset < 24) { |
| | | offset = 24 - card.setting.width * length - config.$offset |
| | |
| | | <div className={`data-zoom ${config.wrap.cardType || ''} ${config.wrap.scale || ''}`}> |
| | | {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"> |
| | | {offset ? <Col span={offset} style={{height: '10px'}}> </Col> : null} |
| | | {precards.map((item, index) => ( |
| | | <Col key={'pre' + index} className={item.setting.$click} span={item.setting.width || 6}> |
| | | <CardItem card={item} cards={config} data={{$$BID: BID, $$type: 'extendCard'}}/> |
| | | </Col> |
| | | ))} |
| | | {data && data.map((item, index) => ( |
| | | <Col className={(activeKey === index ? ' active' : (selectKeys.indexOf(index) > -1 ? ' selected' : '')) + (card.setting.$click ? ' pointer' : '') + card.setting.$click} key={index} span={card.setting.width} offset={!index ? offset : 0} onClick={() => {this.changeCard(index, item)}}> |
| | | <Col className={(activeKey === index ? ' active' : (selectKeys.indexOf(index) > -1 ? ' selected' : '')) + (card.setting.$click ? ' pointer' : '') + card.setting.$click} key={index} span={card.setting.width} onClick={() => {this.changeCard(index, item)}}> |
| | | <CardItem card={card} cards={config} data={item}/> |
| | | </Col> |
| | | ))} |
| | | {config.subcards.map((item, index) => ( |
| | | <Col key={'mk' + index} className={item.setting.$click} span={item.setting.width || 6} offset={(!data || data.length === 0) ? offset : 0}> |
| | | {nextcards.map((item, index) => ( |
| | | <Col key={'next' + index} className={item.setting.$click} span={item.setting.width || 6}> |
| | | <CardItem card={item} cards={config} data={{$$BID: BID, $$type: 'extendCard'}}/> |
| | | </Col> |
| | | ))} |
| | | </Row> |
| | | {switchable ? <div className={'prev-page ' + (total <= _total ? 'disabled' : '')} onClick={this.nextPage}><div><div><img src={nextImg} alt=""/></div></div></div> : null} |
| | | {config.subcards.length === 0 && (!data || data.length === 0) ? <Empty description={false}/> : null} |
| | | {precards.length === 0 && nextcards.length === 0 && (!data || data.length === 0) ? <Empty description={false}/> : null} |
| | | </div> |
| | | {config.wrap.pagestyle !== 'switch' && config.setting.laypage && data ? <Pagination size="small" total={total} showTotal={t => `共 ${t} 条`} pageSize={config.setting.pageSize} onChange={this.changePageIndex} current={pageIndex}/> : null} |
| | | </div> |