From 76a4300654a18d228838c3f27455dc8e7a8cd616 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 15 一月 2021 17:04:42 +0800 Subject: [PATCH] Merge branch 'master' into bms --- src/tabviews/custom/components/card/cardcellList/index.jsx | 75 +++++++++++++++++++++++++++++++------ 1 files changed, 63 insertions(+), 12 deletions(-) diff --git a/src/tabviews/custom/components/card/cardcellList/index.jsx b/src/tabviews/custom/components/card/cardcellList/index.jsx index a65a2cf..961b02b 100644 --- a/src/tabviews/custom/components/card/cardcellList/index.jsx +++ b/src/tabviews/custom/components/card/cardcellList/index.jsx @@ -31,7 +31,6 @@ cardCell: PropTypes.object, data: PropTypes.object, elements: PropTypes.array, // 鍏冪礌闆� - updateStatus: PropTypes.func, // 鐘舵�佹洿鏂� } state = { @@ -180,7 +179,7 @@ } } - if (result) { + if (result && mark.signType) { if (mark.signType[0] === 'font') { style.color = mark.color } else if (mark.signType[0] === 'background') { @@ -207,6 +206,60 @@ }) return content + } + + getColor = (marks) => { + const { data } = this.props + let color = '' + + marks.some(mark => { + let originVal = data[mark.field[0]] + '' + let contrastVal = '' + let result = false + + if (mark.field[1] === 'static') { + contrastVal = mark.contrastValue + '' + } else { + contrastVal = data[mark.field[2]] + '' + } + + if (mark.match === '=') { + result = originVal === contrastVal + } else if (mark.match === '!=') { + result = originVal !== contrastVal + } else if (mark.match === 'like') { + result = originVal.indexOf(contrastVal) > -1 + } else if (mark.match === '>') { + try { + originVal = parseFloat(originVal) + contrastVal = parseFloat(contrastVal) + } catch { + originVal = NaN + } + + if (!isNaN(originVal) && !isNaN(contrastVal) && originVal > contrastVal) { + result = true + } + } else if (mark.match === '<') { + try { + originVal = parseFloat(originVal) + contrastVal = parseFloat(contrastVal) + } catch { + originVal = NaN + } + + if (!isNaN(originVal) && !isNaN(contrastVal) && originVal < contrastVal) { + result = true + } + } + + if (result) { + color = mark.color + } + return result + }) + + return color } getContent = (card) => { @@ -327,6 +380,7 @@ ) } else if (card.eleType === 'slider') { let val = 0 + let color = card.color if (card.datatype === 'static') { val = card.value @@ -347,14 +401,19 @@ _val = `${val}%` } + if (card.marks) { + let _color = this.getColor(card.marks) + color = _color ? _color : color + } + return ( <Col key={card.uuid} span={card.width}> <div style={card.style}> <div className="ant-mk-slider"> <div className="ant-mk-slider-rail"></div> - <div className="ant-mk-slider-track" style={{width: _val, backgroundColor: card.color}}></div> + <div className="ant-mk-slider-track" style={{width: _val, backgroundColor: color}}></div> <Tooltip title={`${val}%`}> - <div className="ant-mk-slider-handle" style={{left: _val, borderColor: card.color}}></div> + <div className="ant-mk-slider-handle" style={{left: _val, borderColor: color}}></div> </Tooltip> </div> </div> @@ -484,7 +543,6 @@ setting={cards.setting} columns={cards.columns} selectedData={[data]} - updateStatus={this.props.updateStatus} /> </div> </Col> @@ -500,7 +558,6 @@ style={card.btnstyle} setting={cards.setting} selectedData={[data]} - updateStatus={this.props.updateStatus} /> </div> </Col> @@ -515,7 +572,6 @@ show={card.show} style={card.btnstyle} setting={cards.setting} - updateStatus={this.props.updateStatus} /> </div> </Col> @@ -531,7 +587,6 @@ style={card.btnstyle} setting={cards.setting} selectedData={[data]} - updateStatus={this.props.updateStatus} /> </div> </Col> @@ -546,7 +601,6 @@ style={card.btnstyle} setting={cards.setting} selectedData={[data]} - updateStatus={this.props.updateStatus} /> </div> </Col> @@ -561,7 +615,6 @@ style={card.btnstyle} setting={cards.setting} selectedData={[data]} - updateStatus={this.props.updateStatus} /> </div> </Col> @@ -578,7 +631,6 @@ style={card.btnstyle} setting={cards.setting} selectedData={[data]} - updateStatus={this.props.updateStatus} /> </div> </Col> @@ -594,7 +646,6 @@ style={card.btnstyle} setting={cards.setting} selectedData={[data]} - updateStatus={this.props.updateStatus} /> </div> </Col> -- Gitblit v1.8.0