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