From b6ccd63b80fc7017bfabc446787732a98c7cbab7 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 06 一月 2021 19:10:28 +0800 Subject: [PATCH] 2021-01-06 --- src/tabviews/custom/components/card/cardcellList/index.jsx | 66 +++++++++++++++++++++++++++++++- 1 files changed, 63 insertions(+), 3 deletions(-) diff --git a/src/tabviews/custom/components/card/cardcellList/index.jsx b/src/tabviews/custom/components/card/cardcellList/index.jsx index a65a2cf..ed89792 100644 --- a/src/tabviews/custom/components/card/cardcellList/index.jsx +++ b/src/tabviews/custom/components/card/cardcellList/index.jsx @@ -180,7 +180,7 @@ } } - if (result) { + if (result && mark.signType) { if (mark.signType[0] === 'font') { style.color = mark.color } else if (mark.signType[0] === 'background') { @@ -207,6 +207,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 +381,7 @@ ) } else if (card.eleType === 'slider') { let val = 0 + let color = card.color if (card.datatype === 'static') { val = card.value @@ -347,14 +402,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> -- Gitblit v1.8.0