From fe21d23b147ed5cec22b4f76a88840b05495d4ad Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 18 六月 2022 22:33:59 +0800
Subject: [PATCH] 2022-06-18

---
 src/utils/utils.js |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index a753811..1f78e17 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -2067,26 +2067,30 @@
  */
 export function getMark (marks, record, style = {}) {
   let icon = null
-  let color = null
+  let innerStyle = null
   let position = null
   style = JSON.parse(JSON.stringify(style))
 
   marks.some(mark => {
-    let originVal = record[mark.field[0]] + ''
+    let originVal = record[mark.field[0]]
     let contrastVal = ''
     let result = false
 
     if (mark.field[1] === 'static') {
-      contrastVal = mark.contrastValue + ''
+      contrastVal = mark.contrastValue
     } else {
-      contrastVal = record[mark.field[2]] + ''
+      contrastVal = record[mark.field[2]]
     }
+
+    if (originVal === undefined || contrastVal === undefined) return false
 
     if (mark.match === '=') {
       result = originVal === contrastVal
     } else if (mark.match === '!=') {
       result = originVal !== contrastVal
     } else if (mark.match === 'like') {
+      originVal = originVal + ''
+      contrastVal = contrastVal + ''
       result = originVal.indexOf(contrastVal) > -1
     } else if (mark.match === '>') {
       result = parseFloat(originVal) > parseFloat(contrastVal)
@@ -2100,20 +2104,24 @@
 
     if (type === 'font') {
       style.color = mark.color
+      innerStyle = {color: mark.color}
     } else if (type === 'background') {
       style.background = mark.color
       if (mark.fontColor) {
         style.color = mark.fontColor
+        innerStyle = {color: mark.fontColor}
       }
     } else if (type === 'underline') {
       style.textDecoration = 'underline'
       style.color = mark.color
+      innerStyle = {color: mark.color, textDecoration: 'underline'}
     } else if (type === 'line-through') {
       style.textDecoration = 'line-through'
       style.color = mark.color
+      innerStyle = {color: mark.color, textDecoration: 'line-through'}
     } else if (type.indexOf('icon') > -1) {
       icon = mark.signType[mark.signType.length - 1]
-      color = mark.color
+      innerStyle = {color: mark.color}
       if (type === 'iconfront' || mark.signType[1] === 'front') {
         position = 'front'
       } else {
@@ -2127,7 +2135,7 @@
   return {
     style,
     icon,
-    color,
+    innerStyle,
     position
   }
 }

--
Gitblit v1.8.0