From 6c16e43cd6521460c804391c042348dbb14086fc Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 16 六月 2020 09:44:40 +0800 Subject: [PATCH] 2020-06-16 --- src/tabviews/zshare/cardcomponent/index.jsx | 96 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 70 insertions(+), 26 deletions(-) diff --git a/src/tabviews/zshare/cardcomponent/index.jsx b/src/tabviews/zshare/cardcomponent/index.jsx index 503416b..e9e7cfe 100644 --- a/src/tabviews/zshare/cardcomponent/index.jsx +++ b/src/tabviews/zshare/cardcomponent/index.jsx @@ -4,6 +4,7 @@ import { Icon, Card, Spin, Empty, Tabs } from 'antd' import asyncComponent from '@/utils/asyncComponent' +import '@/assets/css/table.scss' import './index.scss' const NormalButton = asyncComponent(() => import('@/tabviews/zshare/actionList/normalbutton')) @@ -221,6 +222,8 @@ if (mark.match === '=' && originVal === contrastVal) { className = mark.color[1] + } else if (mark.match === '!=' && originVal !== contrastVal) { + className = mark.color[1] } else if (mark.match === 'like' && originVal.indexOf(contrastVal) > -1) { className = mark.color[1] } else if (mark.match === '>' && originVal > contrastVal) { @@ -395,18 +398,18 @@ extra={extra} actions={actions} > - <div className={'ant-card-meta' + (card.switch ? ' switch' : '')} onClick={this.switchCard}> + <div className={'ant-card-meta' + (card.switch ? ' switch' : '')} style={card.flex ? {display: 'flex'} : null} onClick={this.switchCard}> {card.avatar ? - <div className="ant-card-meta-avatar"> - <span className="ant-avatar ant-avatar-circle ant-avatar-image" style={card.avatar.class}> + <div className="ant-card-meta-avatar" style={card.avatar.class}> + <span className="ant-avatar ant-avatar-image" style={card.avatar.radius ? {borderRadius: '50%'} : null}> {this.getAvatar()} </span> </div> : null } - <div className="ant-card-meta-detail" style={card.marginLeft || null}> + <div className="ant-card-meta-detail" style={card.flex ? {flex: 1} : null}> {card.details.map((detail, i) => { return ( - <div className={detail.class} key={i}> + <div className={detail.class} style={detail.style} key={i}> {detail.column ? this.getContent(detail.column) : detail.content} </div> ) @@ -503,44 +506,54 @@ card.avatar = null } else { card.avatar.marks = _marks - card.avatar.outWidth = plot.avatar.size + 16 - card.avatar.class = {width: plot.avatar.size, fontSize: plot.avatar.size + 'px'} + card.avatar.width = plot.avatar.size + card.avatar.class = {width: plot.avatar.size, paddingTop: plot.avatar.size, fontSize: plot.avatar.size + 'px'} } } else if (card.avatar.type === 'picture' && colMap.get(plot.avatar.field)) { card.avatar.field = plot.avatar.field - card.avatar.outWidth = plot.avatar.width + 16 + card.avatar.width = plot.avatar.width + card.avatar.widthType = plot.avatar.widthType + card.avatar.radius = plot.avatar.radius !== 'false' - card.avatar.class = {width: plot.avatar.width} + let _width = card.avatar.width + if (plot.avatar.widthType === 'ratio') { + _width = _width + '%' + } + + card.avatar.class = {width: _width, paddingTop: _width} } - } - - if (card.avatar) { - card.marginLeft = {marginLeft: card.avatar.outWidth} } card.details = [] if (plot.details.length > 0) { - card.details = plot.details.map(item => { + card.details = plot.details.map(_item => { + let item = fromJS(_item).toJS() + if (item.datatype === 'dynamic' && colMap.get(item.field)) { item.column = colMap.get(item.field) } else { item.datatype = 'static' } - let _class = '' - if (item.bold === 'true') { - _class = ' ant-card-meta-title' - } else { - _class = ' ant-card-meta-description' - } - - if (item.width) { - _class += ' ' + item.width - } + item.fontSize = item.fontSize || 14 + item.height = item.height || 1 + item.fontWeight = item.fontWeight || 'normal' + item.width = item.width + '%' + + let _style = {} + _style.fontWeight = item.fontWeight + _style.width = item.width + _style.fontSize = item.fontSize + 'px' + _style.height = item.height * item.fontSize * 1.5 + + item.style = _style + + let _class = 'mk-card-detail-item ' if (item.align) { - _class += ' ' + item.align + _class += item.align + ' ' } + _class += 'line' + item.height item.class = _class return item @@ -605,6 +618,37 @@ return !is(fromJS(this.props), fromJS(nextProps)) || !is(fromJS(this.state), fromJS(nextState)) } + componentDidMount () { + const { plot } = this.props + const { card } = this.state + + let _flex = false + if (card.avatar) { + let _cardWidth = 300 + if (plot.widthType === 'absolute') { + _cardWidth = plot.cardWidth + } else { + let _outWidth = document.body.offsetWidth - 260 + if (this.cardRef.offsetWidth) { + _outWidth = this.cardRef.offsetWidth + } + _cardWidth = Math.floor(_outWidth * plot.cardWidth / 24 - 20) + } + + if (card.avatar.widthType === 'ratio') { + if (card.avatar.width < 90) { + _flex = true + } + } else if (card.avatar.width < _cardWidth * 0.9) { + _flex = true + } + + this.setState({ + card: {...this.state.card, flex: _flex} + }) + } + } + /** * @description 鍗$墖鍒囨崲 */ @@ -623,7 +667,7 @@ const { card, colMap, selectKey } = this.state return ( - <div className="card-row-box mingke-table" style={!plot.title ? {paddingTop: '15px'} : null}> + <div className="card-row-box mingke-table" ref={(ref) => this.cardRef = ref} style={!plot.title ? {paddingTop: '15px'} : null}> {loading ? <div className="loading-mask"> <div className="ant-spin-blur"></div> -- Gitblit v1.8.0