Jelajahi Sumber

刷新页面 保留之前楼层 建筑

zhaojijng 2 tahun lalu
induk
melakukan
5be18e6f46

+ 10 - 1
src/layouts/index.jsx

@@ -10,6 +10,7 @@ import NavMenu from '@/sagacare_components/navMenu';
 export default (props) => {
   const { menuVisible, closeMenu, toggleMenu } = useModel('controller');
   const { initialState, setInitialState } = useModel('@@initialState');
+  const { changeLastBuildId, changeLastFloorId } = useModel('sagacare_buildFloor');
   const [notifyList] = useState([
     {
       title: '管理员操作指南',
@@ -79,11 +80,19 @@ export default (props) => {
     //     return { ...s, currentUser: currentUser };
     //   });
     // }
-
+    //debugger;
     //关闭
     document.querySelector('#root').addEventListener('click', closeNotify, true);
     const { REACT_APP_ENV } = process.env;
     console.log('REACT_APP_ENV', REACT_APP_ENV);
+
+    //读取缓存的 楼层id 建筑id
+    var lastBuildId = sessionStorage.getItem('lastBuildId') || '';
+    var lastFloorId = sessionStorage.getItem('lastFloorId') || '';
+    changeLastBuildId(lastBuildId);
+    changeLastFloorId(lastFloorId);
+    //console.log('lastBuildId,lastFloorId', lastBuildId, lastFloorId);
+
     return () => {
       console.log('layout-useEffect-off');
       document.querySelector('#root').removeEventListener('click', closeNotify, true);

+ 2 - 0
src/models/sagacare_buildFloor.ts

@@ -5,10 +5,12 @@ export default function () {
   const [lastFloorId, setLastFloorId] = useState<string>(''); //最后选择的楼层id
 
   const changeLastBuildId = useCallback((value: string) => {
+    sessionStorage.setItem('lastBuildId', value);
     setLastBuildId(value);
   }, []);
 
   const changeLastFloorId = useCallback((value: string) => {
+    sessionStorage.setItem('lastFloorId', value);
     setLastFloorId(value);
   }, []);
 

+ 13 - 1
src/sagacare_components/topNavigator/index.tsx

@@ -140,7 +140,17 @@ const TopNavigator: React.FC<topNavigatorProps> = ({
             return { label: item.localName, value: item.id };
           }),
         );
-        setCurrentBuild(lastBuildId || (resData[0] || {}).id); //设置第一个建筑值
+
+        var lastFilter = resData.filter((item) => {
+          return item.id == lastBuildId;
+        });
+
+        var lastBuildIdTemp = '';
+        if (lastFilter.length > 0) {
+          lastBuildIdTemp = lastBuildId;
+        }
+
+        setCurrentBuild(searchBuildId || lastBuildIdTemp || (resData[0] || {}).id); //设置第一个建筑值
         //changeBuildId && changeBuildId(lastBuildId || (resData[0] || {}).id);
       });
     }
@@ -166,6 +176,7 @@ const TopNavigator: React.FC<topNavigatorProps> = ({
           return { label: item.localName, value: item.id };
         }),
       );
+
       //如果最后选中的
       var lastFilter = resData.filter((item) => {
         return item.id == lastFloorId;
@@ -175,6 +186,7 @@ const TopNavigator: React.FC<topNavigatorProps> = ({
       if (lastFilter.length > 0) {
         lastFloorIdTemp = lastFloorId;
       }
+      //debugger;
       setCurrentFloor(searchFloorId || lastFloorIdTemp || (resData[0] || {}).id); //如果有搜索的楼层id 则用搜索的结果
       changeFloorId && changeFloorId(searchFloorId || lastFloorIdTemp || (resData[0] || {}).id); //改变父组件的floorId的值
     }