Kaynağa Gözat

导航显示设备

anxiaoxia 2 yıl önce
ebeveyn
işleme
4c8ad49f16

+ 1 - 1
src/config/api.js

@@ -2,5 +2,5 @@ export const BASE_PATH = '/api';
 //export const projectId = 'Pj3301100002';//之江
 //export const projectId = 'Pj1101080259';//博锐
 //export const projectId = 'Pj1101140020';//吉因加
-export const projectObj = { projectId: 'Pj1101080259' };
+export const projectObj = { projectId: 'Pj1101140020' };
 // export const projectObj = { projectId: 'Pj3301100002' };

+ 0 - 1
src/pages/Equipment/components/topNavRight/index.tsx

@@ -25,7 +25,6 @@ const TopNavRight: React.FC<topNavRightProps> = ({
 }) => {
   //const [modalvisible, setModalvisible] = useState<boolean>(false);
   //去掉全部设备的 设备列表
-
   const [deviceList, setDeviceList] = useState<navigatorItem[]>([]);
   useEffect(() => {
     setDeviceList(navigatorList.slice(1));

+ 24 - 21
src/pages/Equipment/index.tsx

@@ -54,7 +54,7 @@ const Environment: React.FC = () => {
 
   const [showModal, setShowModal] = useState<boolean>(false);
   const [showSpace, setShowSpace] = useState<API.MapInfo>({}); //当前弹框选中的空间
-  const [navigatorList, setNavigatorList] = useState<navigatorItem[]>([
+  const initNavigatorList = [
     {
       name: '全部设备',
       id: 'all',
@@ -87,7 +87,8 @@ const Environment: React.FC = () => {
       color: '#E89E32',
       colorStr: '232, 158, 50,',
     },
-  ]);
+  ];
+  const [navigatorList, setNavigatorList] = useState<any[]>([]);
   const [scale, setScale] = useState<number>(0.8);
   const [maxScale, setMaxScale] = useState<number>(1);
   const [transXInit, setTransXInit] = useState<number>(0);
@@ -99,7 +100,7 @@ const Environment: React.FC = () => {
   const [equipMapList, setEquipMapList] = useState<any[]>([]);
   const [timeMapList, setTimeMapList] = useState<any[]>([]);
 
-  const [selNav, setSelNav] = useState<navigatorItem>(navigatorList[0]);
+  const [selNav, setSelNav] = useState<navigatorItem>(initNavigatorList[0]);
   const [selFloorId, setSelFloorId] = useState<string>();
   const [mapCombineList, setMapCombineList] = useState<any[]>([]);
   const [loading, setLoading] = useState<boolean>(false);
@@ -215,9 +216,8 @@ const Environment: React.FC = () => {
   };
   //获取地图 mapList
   useEffect(() => {
+    getProjectEquipType();
     if (selFloorId) {
-      getProjectEquipType();
-
       changeLastFloorId(selFloorId);
       setLoading(true);
 
@@ -299,15 +299,14 @@ const Environment: React.FC = () => {
         //if (!setTimer.current) return;
         var statistics = res.data.statistics || [];
         //赋值 运行中的设备数量
+
         navigatorList.forEach(function (nItem) {
           var fres = statistics.filter((sItem: statistics) => {
             return sItem.equipType == nItem.id;
           });
           nItem.num = (fres[0] || {}).runCount;
         });
-
         setNavigatorList(navigatorList);
-
         //设备空间信息
         var spaceList = res.data.spaceList || [];
         spaceList.forEach((item: any) => {
@@ -362,24 +361,26 @@ const Environment: React.FC = () => {
     // 项目拥有的设备
     return queryProjectEquipType().then((res) => {
       const resData = res.data || [];
-      const copynNavigatorList = JSON.parse(JSON.stringify(navigatorList));
-
-      copynNavigatorList.map((item: any, idx: any) => {
-        if (idx === 0) return; // 第一个为全部设备,不参与对比
+      let arr: any = [];
+      initNavigatorList.map((item: any, idx: any) => {
+        if (idx === 0) {
+          arr.push(item);
+          return;
+        } // 第一个为全部设备,不参与对比
         let hasEquip = false; // 没有此设备
         resData.map((resItem: any) => {
           if (item.id === resItem) {
             hasEquip = true;
           }
         });
-        if (!hasEquip) {
-          navigatorList.splice(idx, 1);
-          setNavigatorList(navigatorList);
+        if (hasEquip) {
+          arr.push(item);
         }
       });
-      //   console.log(navigatorList, '-----navigatorList');
+      setNavigatorList(arr);
     });
   }
+
   function getSpaceHasPerson(sfId: any) {
     //获取有人无人
     querySpaceAdjustList(sfId).then((res) => {
@@ -470,12 +471,14 @@ const Environment: React.FC = () => {
         type={'equipment'}
         navigatorChange={navigatorChange}
         action={
-          <TopNavRight
-            selNavObj={selNav}
-            navigatorList={navigatorList}
-            mapList={mapCombineList}
-            queryDeviceManage={queryDeviceManage}
-          ></TopNavRight>
+          navigatorList.length > 0 && (
+            <TopNavRight
+              selNavObj={selNav}
+              navigatorList={navigatorList}
+              mapList={mapCombineList}
+              queryDeviceManage={queryDeviceManage}
+            ></TopNavRight>
+          )
         }
         changeFloorId={changeFloorId}
         selParamObj={selNav}