From b8e1395f02c929eaa96b949cf6027ee2a43856a6 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 06 九月 2022 19:03:37 +0800 Subject: [PATCH] 2022-09-06 --- src/tabviews/zshare/normalTable/index.jsx | 61 +++++++++++++++++++----------- 1 files changed, 39 insertions(+), 22 deletions(-) diff --git a/src/tabviews/zshare/normalTable/index.jsx b/src/tabviews/zshare/normalTable/index.jsx index 4f7ee58..b355463 100644 --- a/src/tabviews/zshare/normalTable/index.jsx +++ b/src/tabviews/zshare/normalTable/index.jsx @@ -2,7 +2,7 @@ import PropTypes from 'prop-types' import md5 from 'md5' import { is, fromJS } from 'immutable' -import { Table, Affix, Typography } from 'antd' +import { Table, Affix, Typography, Col } from 'antd' import asyncComponent from '@/utils/asyncComponent' import MKEmitter from '@/utils/events.js' @@ -18,6 +18,12 @@ const TabButton = asyncComponent(() => import('@/tabviews/zshare/actionList/tabbutton')) const NewPageButton = asyncComponent(() => import('@/tabviews/zshare/actionList/newpagebutton')) const Video = asyncComponent(() => import('@/components/video')) + +const PicRadio = { + '4:3': '75%', '3:2': '66.67%', '16:9': '56.25%', '2:1': '50%', '3:1': '33.33%', '4:1': '25%', + '5:1': '20%', '6:1': '16.67%', '7:1': '14.29%', '8:1': '12.5%', '9:1': '11.11%', + '10:1': '10%', '3:4': '133.33%', '2:3': '150%', '9:16': '177.78%' +} class BodyRow extends React.Component { shouldComponentUpdate (nextProps) { @@ -548,13 +554,13 @@ } if (content !== '') { - let decimal = item.decimal || 0 + content = Math.round(content * item.round) / item.round + if (item.format === 'percent') { content = content * 100 - decimal = decimal > 2 ? decimal - 2 : 0 } - - content = content.toFixed(decimal) + + content = content.toFixed(item.decimal) if (item.format === 'thdSeparator') { content = content.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,') @@ -633,6 +639,7 @@ } } else if (item.type === 'picture') { let photos = '' + let style = {borderRadius: '2px'} if (item.field && record.hasOwnProperty(item.field)) { photos = record[item.field] + '' } @@ -642,19 +649,29 @@ photos = photos.split(',').filter(Boolean) } - let maxHeight = item.maxHeight || 128 + if (PicRadio[item.lenWidRadio]) { + style.paddingTop = PicRadio[item.lenWidRadio] + } else { + style.paddingTop = '100%' + } + + let scale = item.scale === 'true' + return ( <div className="picture-col"> - {photos && photos.map((url, i) => { - if (item.scale === 'true') { - return <img style={{maxHeight: maxHeight}} className="image-scale" onClick={(e) => { + {photos.map((url, i) => (<Col key={i} span={item.span || 24}> + <div + className={'mk-picture' + (scale ? ' image-scale' : '')} + onClick={(e) => { + if (!scale) return + e.stopPropagation() + MKEmitter.emit('mkImageScale', url, photos) - }} key={`${i}`} src={url} alt=""/> - } else { - return <img style={{maxHeight: maxHeight}} key={`${i}`} src={url} alt=""/> - } - })} + }} + style={{...style, backgroundImage: `url('${url}')`}} + ></div> + </Col>))} </div> ) } else if (item.type === 'video') { @@ -814,13 +831,13 @@ } if (content !== '') { - let decimal = col.decimal || 0 + content = Math.round(content * col.round) / col.round + if (col.format === 'percent') { content = content * 100 - decimal = decimal > 2 ? decimal - 2 : 0 } - content = content.toFixed(decimal) + content = content.toFixed(col.decimal) if (col.format === 'thdSeparator') { content = content.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,') @@ -863,7 +880,7 @@ } photos.forEach(photo => { - images.push({url: photo, align: col.Align, scale: col.scale === 'true', maxHeight: col.maxHeight || 128}) + images.push({url: photo, align: col.Align, scale: col.scale === 'true'}) }) } else if (col.type === 'text') { let content = record[col.field] @@ -1002,12 +1019,12 @@ <div className="content-fence-top" style={images[0] ? {textAlign: images[0].align} : null}> {images.map((_img, index) => { if (_img.scale) { - return <img style={{maxHeight: _img.maxHeight}} className="image-scale" onClick={(e) => { + return <img className="image-scale" onClick={(e) => { e.stopPropagation() MKEmitter.emit('mkImageScale', _img.url, images.map(g => g.url)) }} key={`${index}`} src={_img.url} alt=""/> } else { - return (<img style={{maxHeight: _img.maxHeight}} key={`${index}`} src={_img.url} alt=""/>) + return (<img key={`${index}`} src={_img.url} alt=""/>) } })} </div> @@ -1024,11 +1041,11 @@ <div className="content-fence-left" style={images[0] ? {textAlign: images[0].align} : null}> {images.map((_img, index) => { if (_img.scale) { - return <img style={{maxHeight: _img.maxHeight}} className="image-scale" onClick={() => { + return <img className="image-scale" onClick={() => { MKEmitter.emit('mkImageScale', _img.url, images.map(g => g.url)) }} key={`${index}`} src={_img.url} alt=""/> } else { - return (<img style={{maxHeight: _img.maxHeight}} key={`${index}`} src={_img.url} alt=""/>) + return (<img key={`${index}`} src={_img.url} alt=""/>) } })} </div> -- Gitblit v1.8.0