From 8cab124b299785d6423f467197b66bd6f84b4e37 Mon Sep 17 00:00:00 2001
From: pengjun <158915633@qq.com>
Date: Mon, 5 Feb 2024 11:54:46 +0800
Subject: [PATCH] color
---
 src/components/doctorCheck/CheckItemList.vue | 201 ++++++++++++++++---
 1 file changed, 170 insertions(+), 31 deletions(-)
diff --git a/src/components/doctorCheck/CheckItemList.vue b/src/components/doctorCheck/CheckItemList.vue
index d74d4dd..3c3966f 100644
--- a/src/components/doctorCheck/CheckItemList.vue
+++ b/src/components/doctorCheck/CheckItemList.vue
@@ -14,7 +14,7 @@
       
       
         
-           
         
       
@@ -57,6 +57,24 @@ export default {
   data() {
     return {
       resultStatus:[], //结果状态提示数据
+      tipsNormal:{
+        displayName: "正常",
+        dataInputPrompt: "正常",
+        reportPrompt: "正常",
+        reportBackgroundColor: 16777215,
+        reportFontColor: 0,
+        dataInputBackgroundColor: 16777215,
+        dataInputFontColor: 0,
+      }, //正常提示
+      tipsError:{}, //错误提示
+      tipsNegative:{}, //阴性提示
+      tipsLowPositive:{}, //弱阳性提示
+      tipsPositive:{}, //阳性提示      
+      tipsLow:{}, //偏低提示
+      tipsHigh:{}, //偏高提示
+      tipsSuperLow:{}, //超低提示
+      tipsSuperHigh:{}, //超高提示      
+
       restaurants: [], //结果模版
       currentRow: -1, //当前操作的行
     };
@@ -78,9 +96,125 @@ export default {
     dictInit(){
       //获取结果状态提示数据
       getapi('/api/app/result-status').then(res =>{
-        if(res.code != -1) resultStatus = res.data.items
+        if(res.code != -1){
+          this.resultStatus = res.data.items
+          this.resultStatus.forEach(e => {
+            if(e.displayName.indexOf("正常") > -1){
+              this.colorTrans(e,'tipsNormal')
+            }else if(e.displayName.indexOf("错误") > -1){
+              this.colorTrans(e,'tipsError')
+            }else if(e.displayName.indexOf("阴性") > -1){
+              this.colorTrans(e,'tipsNegative')
+            }else if(e.displayName.indexOf("弱阳性") > -1){
+              this.colorTrans(e,'tipsLowPositive')
+            }else if(e.displayName.indexOf("阳性") > -1){
+              this.colorTrans(e,'tipsPositive')
+            }else if(e.displayName.indexOf("偏低") > -1){
+              this.colorTrans(e,'tipsLow')
+            }else if(e.displayName.indexOf("偏高") > -1){
+              this.colorTrans(e,'tipsHigh')
+            }else if(e.displayName.indexOf("危急值下限") > -1){
+              this.colorTrans(e,'tipsSuperLow')
+            }else if(e.displayName.indexOf("危急值上限") > -1){
+              this.colorTrans(e,'tipsSuperHigh')
+            }
+          });
+        }
       })
     },
+
+    // 颜色转换
+    // displayName: "错误",
+    // dataInputPrompt: "×",
+    // reportPrompt: "×",
+    // reportBackgroundColor: 2427166,
+    // reportFontColor: 1070166,
+    // dataInputBackgroundColor: 321313,
+    // dataInputFontColor: 12991019,
+    colorTrans(dataColor,frontColor){
+      let tempColor = '000000' + Number(dataColor.dataInputBackgroundColor).toString(16)
+      let backgroundColor = '#' + tempColor.substring(tempColor.length - 6)
+      tempColor = '000000' + Number(dataColor.dataInputFontColor).toString(16)
+      let color = '#' + tempColor.substring(tempColor.length - 6)
+      this[frontColor] = Object.assign(
+        {},
+        dataColor,
+        {backgroundColor,color}
+      )
+      console.log(`this.${frontColor}`,this[frontColor])
+    },
+
+    // "referenceRangeValue": "15-55",
+    // "referenceRangeTypeFlag": "1",
+    // "criticalRangeValue": null,
+    // "result"
+    madeTooltips(index){
+      // let ts = confirm('提示')      
+      let checkItem = this.doctorCheck.checkItemList[index]
+      let tooltips = 'tipsNormal'
+      checkItem.class = tooltips
+      let referenceRangeTypeFlag = checkItem.referenceRangeTypeFlag||'0' //参考范围类别0-无参考范围,1-数字型,2-字符型,3-性激素
+      // console.log('madeTooltips',index,referenceRangeTypeFlag)
+      switch (referenceRangeTypeFlag) {
+        case '3':  // 1 是数字型,3 是性激素期
+        case '1':
+          // console.log('1、3')
+          if(checkItem.result && checkItem.referenceRangeValue){
+            let tempResult = checkItem.result.replaceAll('<','').replaceAll('>','').replaceAll('=','').replaceAll('≤','').replaceAll('≥','').replaceAll(' ','')
+            // console.log('tempResult',isNaN(tempResult),tempResult)
+            if(isNaN(tempResult)) break;            
+            let result = Number(tempResult)
+            let criticalRangeValue = checkItem.criticalRangeValue
+            let valueArr = checkItem.referenceRangeValue.split('-')
+            if(valueArr.length == 1) valueArr.unshift(0)
+            // console.log('valueArr',checkItem.referenceRangeValue,valueArr)
+            if(criticalRangeValue){
+              let criticalArr = criticalRangeValue.split('-')
+              if(criticalArr.length == 1) criticalArr.unshift(0)
+
+              // console.log('criticalArr',checkItem.criticalRangeValue,criticalArr)
+
+              if(result < Number(criticalArr[0])){
+                tooltips = 'tipsSuperLow'
+              }else if(result > Number(criticalArr[1])){
+                tooltips = 'tipsSuperHigh'
+              }else if(result < Number(valueArr[0])){
+                tooltips = 'tipsLow'
+              }else if(result > Number(valueArr[1])){
+                tooltips = 'tipsHigh'
+              }
+            }else{
+              if(result < Number(valueArr[0])){
+                tooltips = 'tipsLow'
+              }else if(result > Number(valueArr[1])){
+                tooltips = 'tipsHigh'
+              }
+            }
+          }
+          break;
+        case '2':
+          if(checkItem.result){
+            if(checkItem.result.indexOf('阴性') > -1 || checkItem.result.indexOf('-') > -1){
+              tooltips = 'tipsNegative'
+            }else if(checkItem.result.indexOf('弱阳性') > -1 || checkItem.result.indexOf('±') > -1){
+              tooltips = 'tipsLowPositive'
+            }else if(checkItem.result.indexOf('阳性') > -1 || checkItem.result.indexOf('+') > -1){
+              tooltips = 'tipsPositive'
+            }
+          }          
+          break;        
+        default:
+          break;
+      }
+
+      // 判断后重新赋值
+      checkItem.class = tooltips
+      checkItem.tooltips = this[tooltips].dataInputPrompt
+
+      // console.log('checkItem',checkItem)
+      // console.log(`this.${tooltips}`,this[tooltips])
+    },
+
     //选择项目
     rowClick(row) {
       this.doctorCheck.checkItem = row;
@@ -213,54 +347,59 @@ export default {
   padding: 2px 15px 2px 2px;
 }
 
+/*正常*/ 
+::v-deep .tipsNormal .el-textarea__inner {
+  background-color: v-bind("tipsNormal.backgroundColor") !important; 
+  color: v-bind("tipsNormal.color") !important;
+}
 /*错误*/ 
-::v-deep .error .el-textarea__inner {
-  background-color: yellow !important; 
-  color: red !important;
+::v-deep .tipsError .el-textarea__inner {
+  background-color: v-bind("tipsError.backgroundColor") !important; 
+  color: v-bind("tipsError.color") !important;
 }
 
 /*阴性  v-bind("(window.pageHeight > 600 ? (window.pageHeight - 250) : 350) + 'px'") */
-::v-deep .negative .el-textarea__inner {
-  background-color: yellow !important; 
-  color: red !important;
+::v-deep .tipsNegative .el-textarea__inner {
+  background-color: v-bind("tipsNegative.backgroundColor") !important; 
+  color: v-bind("tipsNegative.color") !important;
 }
 
-/*阳性  v-bind("(window.pageHeight > 600 ? (window.pageHeight - 250) : 350) + 'px'") */
-::v-deep .positive .el-textarea__inner {
-  background-color: yellow !important; 
-  color: red !important;
+/*弱阳性  v-bind("(window.pageHeight > 600 ? (window.pageHeight - 250) : 350) + 'px'") */
+::v-deep .tipsLowPositive .el-textarea__inner {
+  background-color: v-bind("tipsLowPositive.backgroundColor") !important; 
+  color: v-bind("tipsLowPositive.color") !important;
 }
 
-/*弱阳性  v-bind("(window.pageHeight > 600 ? (window.pageHeight - 250) : 350) + 'px'") */
-::v-deep .lowPositive .el-textarea__inner {
-  background-color: yellow !important; 
-  color: red !important;
+/*阳性  v-bind("(window.pageHeight > 600 ? (window.pageHeight - 250) : 350) + 'px'") */
+::v-deep .tipsPositive .el-textarea__inner {
+  background-color: v-bind("tipsPositive.backgroundColor") !important; 
+  color: v-bind("tipsPositive.color") !important;
 }
 
 /*偏低  v-bind("(window.pageHeight > 600 ? (window.pageHeight - 250) : 350) + 'px'") */
-::v-deep .low .el-textarea__inner {
-  background-color: yellow !important; 
-  color: red !important;
+::v-deep .tipsLow .el-textarea__inner {
+  background-color: v-bind("tipsLow.backgroundColor") !important; 
+  color: v-bind("tipsLow.color") !important;
 }
 
 /*偏高  v-bind("(window.pageHeight > 600 ? (window.pageHeight - 250) : 350) + 'px'") */
-::v-deep .high .el-textarea__inner {
-  background-color: yellow !important; 
-  color: red !important;
+::v-deep .tipsHigh .el-textarea__inner {
+  background-color: v-bind("tipsHigh.backgroundColor") !important; 
+  color: v-bind("tipsHigh.color") !important;
 }
 
 /*超低  v-bind("(window.pageHeight > 600 ? (window.pageHeight - 250) : 350) + 'px'") */
-::v-deep .superLow .el-textarea__inner {
-  background-color: yellow !important; 
-  color: red !important;
+::v-deep .tipsSuperLow .el-textarea__inner {
+  background-color: v-bind("tipsSuperLow.backgroundColor") !important; 
+  color: v-bind("tipsSuperLow.color") !important;
 }
 
 /*偏高  v-bind("(window.pageHeight > 600 ? (window.pageHeight - 250) : 350) + 'px'") */
-::v-deep .superHigh .el-textarea__inner {
-  background-color: yellow !important; 
-  color: red !important;
+::v-deep .tipsSuperHigh .el-textarea__inner {
+  background-color: v-bind("tipsSuperHigh.backgroundColor") !important; 
+  color: v-bind("tipsSuperHigh.color") !important;
 }
-
+