Просмотр исходного кода

环境参数界面 在切换参数时 颜色显示问题,未获取值之前 先不显示颜色

zhaojijng 2 лет назад
Родитель
Сommit
97e9478b83
2 измененных файлов с 23 добавлено и 9 удалено
  1. 19 9
      src/pages/Environment/index.tsx
  2. 4 0
      src/sagacare_components/topNavigator/index.tsx

+ 19 - 9
src/pages/Environment/index.tsx

@@ -100,7 +100,7 @@ const Environment: React.FC = () => {
       unit: 'mg/m³',
       color: '#140050',
       colorStr: '20,0,80,',
-      opacity: 0.25,
+      opacity: 0.15,
       indicator: [0, 0.05, 0.1, 0.15], //指标梯度
       fixed: 2,
     },
@@ -128,6 +128,12 @@ const Environment: React.FC = () => {
   };
   //导航切换时
   const navigatorChange = (item: navigatorItem) => {
+    //在切了参数导航之后 把空间的平均值 设置为空
+    mapCombineList.forEach((item, index) => {
+      item.avgValues = null;
+    });
+    setMapCombineList(mapCombineList);
+
     setSelNav(item);
     setSelNavId(item.id);
   };
@@ -135,14 +141,15 @@ const Environment: React.FC = () => {
   //根据指标的值  得到不同的透明度等级 第一级0.2 第二级0.4 依次往后
   const getColorOpacity = (value: number): number => {
     var indicator: number[] = selNav.indicator || []; //指标梯度
-    var number = indicator.length;
+
     var res = 1;
-    for (var i = 0; i < number; i++) {
-      if (value >= indicator[i] && value < indicator[i + 1]) {
-        res = i + 1;
-        break;
-      }
-    }
+
+    let indicatorArr = [value, ...indicator].sort((a, b) => {
+      return a - b;
+    });
+    res = indicatorArr.findIndex((item) => item === value);
+
+    //console.log('getColorOpacity-value', value, indicator, res);
     return res;
   };
 
@@ -245,6 +252,7 @@ const Environment: React.FC = () => {
         .catch(function (err) {});
     }
   }, [selNavId, selFloorId]);
+
   //合并空间环境数据 和 空间数据
   useEffect(() => {
     var combineList: any = [];
@@ -352,7 +360,9 @@ const Environment: React.FC = () => {
                     background: item.roomFuncType
                       ? item.avgValues || item.avgValues == 0
                         ? selNav.id == 'Tdb' || selNav.id == 'RH'
-                          ? selNav.colorStr[getColorOpacity(item.avgValues) - 1]
+                          ? item.avgValues
+                            ? selNav.colorStr[getColorOpacity(item.avgValues) - 1]
+                            : ''
                           : 'rgba(' +
                             selNav.colorStr +
                             (selNav.opacity as number) * getColorOpacity(item.avgValues) +

+ 4 - 0
src/sagacare_components/topNavigator/index.tsx

@@ -69,6 +69,9 @@ const TopNavigator: React.FC<topNavigatorProps> = ({
     let levelTxt = '';
 
     if (type === 'enviroment') {
+      if (selParamObj.avgValues == undefined) {
+        return { level: -1, levelTxt: '' };
+      }
       var tdbParam = {
         Cooling: {
           range: [22, 26],
@@ -108,6 +111,7 @@ const TopNavigator: React.FC<topNavigatorProps> = ({
       });
 
       level = sortArr.findIndex((item) => item === selParamObj.avgValues);
+
       levelTxt = objList[selParamObj.id].text[level];
     }
     return { level, levelTxt };