From 72419e2f826031a158173f46d723a672064e37cd Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 31 八月 2021 22:42:51 +0800 Subject: [PATCH] 2021-08-31 --- src/tabviews/custom/components/card/cardcellList/index.jsx | 128 ++++++++++++++++++++++++++++++++++++------ 1 files changed, 109 insertions(+), 19 deletions(-) diff --git a/src/tabviews/custom/components/card/cardcellList/index.jsx b/src/tabviews/custom/components/card/cardcellList/index.jsx index cdb560c..57972fe 100644 --- a/src/tabviews/custom/components/card/cardcellList/index.jsx +++ b/src/tabviews/custom/components/card/cardcellList/index.jsx @@ -7,6 +7,7 @@ import asyncComponent from './asyncButtonComponent' import asyncElementComponent from '@/utils/asyncComponent' +import MKEmitter from '@/utils/events.js' import LostPng from '@/assets/img/lost.png' import './index.scss' @@ -29,10 +30,10 @@ class CardCellComponent extends Component { static propTpyes = { - seq: PropTypes.any, // 搴忓彿 cards: PropTypes.object, // 鑿滃崟閰嶇疆淇℃伅 cardCell: PropTypes.object, data: PropTypes.object, + syncData: PropTypes.array, elements: PropTypes.array, // 鍏冪礌闆� } @@ -265,13 +266,20 @@ } getContent = (card) => { - const { data, cards, seq } = this.props + const { data, cards } = this.props if (card.eleType === 'sequence') { + let _style = {} + if (card.marks) { + _style.width = card.innerHeight + _style.height = card.innerHeight + _style.lineHeight = card.innerHeight + 'px' + this.getMark(card.marks, _style) + } return ( <Col key={card.uuid} span={card.width}> <div style={card.style}> - <div className={'ant-mk-text'}>{seq}</div> + <div className="ant-mk-text"><span className="sequence-wrap" style={_style}>{data.$Index || ''}</span></div> </div> </Col> ) @@ -289,6 +297,10 @@ } } else if (data.hasOwnProperty(card.field)) { val = data[card.field] + } + + if (val === '' && card.noValue === 'hide') { // 绌哄�奸殣钘� + return null } if (val !== '' && card.format) { @@ -429,8 +441,17 @@ ) } else if (card.eleType === 'picture') { let _imagestyle = {} - let _style = card.style ? {...card.style} : {} + let _style = card.style ? {margin: '0 auto', ...card.style} : {} let url = '' + if (card.maxWidth) { + _style.maxWidth = card.maxWidth + if (_style.marginLeft === '0px') { + delete _style.marginLeft + } + if (_style.marginRight === '0px') { + delete _style.marginRight + } + } if (card.datatype === 'static') { url = card.url @@ -458,10 +479,24 @@ _style.cursor = 'pointer' } + let scale = url && card.scale === 'true' + return ( <Col key={card.uuid} span={card.width}> <div style={_style} onClick={(e) => {this.openNewView(e, card)}}> - <div className="ant-mk-picture" style={_imagestyle}></div> + <div + className={'ant-mk-picture' + (scale ? ' scale' : '')} + onClick={(e) => { + if (scale) { + e.stopPropagation() + } else { + return + } + + MKEmitter.emit('mkImageScale', url) + }} + style={_imagestyle} + ></div> </div> </Col> ) @@ -534,13 +569,65 @@ </div> </Col> ) - } else if (card.eleType === 'button') { - if (card.$type === 'tableButton' && card.controlField) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� - if (data[card.controlField] === card.controlVal) { - return null - } else if (card.controlVal && card.controlVal.split(',').includes(data[card.controlField])) { - return null + } else if (card.eleType === 'formula') { + let val = 0 + let _style = card.style ? {...card.style} : {} + + if (card.$sync) { + this.props.syncData.forEach(item => { + let _val = card.formula + Object.keys(item).forEach(key => { + let reg = new RegExp('@' + key + '@', 'ig') + _val = _val.replace(reg, item[key]) + }) + try { + // eslint-disable-next-line + _val = eval(_val) + } catch { + _val = 0 + } + + val += _val + }) + } else if (data) { + let _val = card.formula + Object.keys(data).forEach(key => { + let reg = new RegExp('@' + key + '@', 'ig') + _val = _val.replace(reg, data[key]) + }) + + try { + // eslint-disable-next-line + _val = eval(_val) + } catch { + _val = 0 } + + val = _val + } + + if (val !== '') { + val = `${card.prefix || ''}${val}${card.postfix || ''}` + } + + if (card.marks) { + val = this.getMark(card.marks, _style, val) + } + + return ( + <Col key={card.uuid} span={card.width}> + <div style={_style}> + <div className={'ant-mk-text line' + (card.height || '')} style={{height: card.innerHeight || 'auto'}}>{val}</div> + </div> + </Col> + ) + } else if (card.eleType === 'button') { + let _data = [data] + + if (data.$$type === 'extendCard') { + _data = [] + } else if (card.$sync) { + _data = this.props.syncData } if (['exec', 'prompt', 'pop'].includes(card.OpenType)) { @@ -548,12 +635,13 @@ <Col key={card.uuid} className="mk-cell-btn" span={card.width}> <NormalButton BID={data.$$BID} + BData={data.$$BData || ''} btn={card} show={card.show} style={card.style} setting={cards.setting} columns={cards.columns} - selectedData={[data]} + selectedData={_data} /> </Col> ) @@ -566,7 +654,7 @@ show={card.show} style={card.style} setting={cards.setting} - selectedData={[data]} + selectedData={_data} /> </Col> ) @@ -587,11 +675,12 @@ <Col key={card.uuid} className="mk-cell-btn" span={card.width}> <PopupButton BID={data.$$BID} + BData={data.$$BData || ''} btn={card} show={card.show} style={card.style} setting={cards.setting} - selectedData={[data]} + selectedData={_data} /> </Col> ) @@ -603,7 +692,7 @@ show={card.show} style={card.style} setting={cards.setting} - selectedData={[data]} + selectedData={_data} /> </Col> ) @@ -615,12 +704,12 @@ show={card.show} style={card.style} setting={cards.setting} - selectedData={[data]} + selectedData={_data} /> </Col> ) } else if (card.OpenType === 'funcbutton') { - if (card.funcType === 'changeuser') { + if (card.funcType === 'changeuser' || card.funcType === 'closetab') { return ( <Col key={card.uuid} className="mk-cell-btn" span={card.width}> <ChangeUserButton @@ -629,7 +718,7 @@ show={card.show} style={card.style} setting={cards.setting} - selectedData={[data]} + selectedData={_data} /> </Col> ) @@ -638,11 +727,12 @@ <Col key={card.uuid} className="mk-cell-btn" span={card.width}> <PrintButton BID={data.$$BID} + BData={data.$$BData || ''} btn={card} show={card.show} style={card.style} setting={cards.setting} - selectedData={[data]} + selectedData={_data} /> </Col> ) -- Gitblit v1.8.0