瀏覽代碼

no message

zhejiushizhuce 2 年之前
父節點
當前提交
707e34deaf
共有 2 個文件被更改,包括 34 次插入 和 9 次删除
  1. 19 4
      src/features/mainSlice.js
  2. 15 5
      src/features/pageSlice.js

+ 19 - 4
src/features/mainSlice.js

@@ -13,7 +13,7 @@ import {REQ_STATUS} from "@api/config";
 import {
     buildReqReducer, reqChangeEmail,
     reqChangeInfo,
-    reqChangePass, reqChangePhone, reqCustomLeaveMsg, reqCustomService, reqGameInfo,
+    reqChangePass, reqChangePhone, reqCustomLeaveMsg, reqCustomService, reqFavoGet, reqGameInfo,
     reqGetRoutes,
     reqLogin,
     reqLogout,
@@ -187,8 +187,8 @@ const reducerRoutes=(state,action)=>{
             }
         }
         //favorites
-        let favorites=getFavorites(json.favorites);
-        Object.assign(state, {routes:state.routes,asyncRoutes:data,styles:styles,blocks:blocks,...generData,isLogin:isLogin,userInfo:userInfo,hallServerUrl:hallServerUrl,favorites:favorites});
+        // let favorites=getFavorites(json.favorites);
+        Object.assign(state, {routes:state.routes,asyncRoutes:data,styles:styles,blocks:blocks,...generData,isLogin:isLogin,userInfo:userInfo,hallServerUrl:hallServerUrl});
     }
 }
 const routesStatus=(state,status,arg)=>{
@@ -370,6 +370,20 @@ const reducerUpdateFavoInfo=(state,action,arg)=>{
         }
     }
 }
+const reducerFavoGet=(state,action,arg)=>{
+    let payload=action.payload;
+    if (payload&&payload.code===200){
+        let data=payload.data;
+        let favorites=[];
+        if (data!=null){
+            for (let i = 0; i < data.length; i++) {
+                let item=data[i];
+                if(item)favorites.push(item.id);
+            }
+        }
+        state.favorites=favorites;
+    }
+}
 //custom
 export const Main=createSlice({
     name: 'main',
@@ -441,7 +455,7 @@ export const Main=createSlice({
                     state.favorites=favorites;
                 }
             }
-            localStorageSet(LOCAL_FAVO_IDS,JSON.stringify(favorites));
+            // localStorageSet(LOCAL_FAVO_IDS,JSON.stringify(favorites));
         }
     },
     extraReducers: (builder) => {
@@ -459,6 +473,7 @@ export const Main=createSlice({
         buildReqReducer(builder,reqCustomService,reducerCustom,customStatus);
         buildReqReducer(builder,reqCustomLeaveMsg,reducerCustomLeaveMsg,customLeaveMsgStatus);
         buildReqReducer(builder,reqUpdateFavoInfo,reducerUpdateFavoInfo,null);
+        buildReqReducer(builder,reqFavoGet,reducerFavoGet,null);
     },
 })
 export const {logout,updateUserInfo,updateUserScore,updateAddScore,updateGameLike} = Main.actions;

+ 15 - 5
src/features/pageSlice.js

@@ -1,6 +1,6 @@
 import {createAction, createSlice} from "@reduxjs/toolkit";
 import {REQ_STATUS} from "@api/config";
-import {buildReqReducer, reqPageModules} from "@features/api";
+import {buildReqReducer, reqFavoGet, reqPageModules} from "@features/api";
 import {localStorageGet, localStorageRemove, localStorageSet} from "@utils/helpers";
 import {LOCAL_FAVO_DATA, LOCAL_FAVO_IDS} from "@constants/localkey";
 const addFavoriteKey=(state,key)=>{
@@ -67,14 +67,14 @@ const getLocalFavorite=()=>{
 const parseFavorite=(state)=>{
     let favoriteKeys=state.favoriteKeys;
     if (favoriteKeys!=null&&favoriteKeys.length>0){
-        let localFavorite=null;
+        // let localFavorite=null;
         for (let i = 0; i < favoriteKeys.length; i++) {
             let module=getModuleData(state.pageData,favoriteKeys[i]);
             if (module!=null){
                 let data=module.data;
                 if (data==null||data.length===0){
-                    if (localFavorite==null)localFavorite=getLocalFavorite();
-                    data=localFavorite;
+                    // if (localFavorite==null)localFavorite=getLocalFavorite();
+                    data=state.favoriteData;
                 }
                 module.data=data;
             }
@@ -96,12 +96,20 @@ const pageStatus=(state,status,arg)=>{
     state.status=status;
 }
 //page modules
+const reducerFavoGet=(state,action,arg)=>{
+    let payload=action.payload;
+    if (payload&&payload.code===200){
+        state.favoriteData=payload.data;
+        parseFavorite(state);
+    }
+}
 export const Page=createSlice({
     name: 'page',
     initialState: {
         status:REQ_STATUS.NONE,
         pageData:{},
-        favoriteKeys:[]
+        favoriteKeys:[],
+        favoriteData:[]
     },
     reducers: {
         updateGameList:((state, action) => {
@@ -148,6 +156,7 @@ export const Page=createSlice({
                             }
                         }
                         module.data=oldData;
+                        state.favoriteData=oldData;
                     }
                 }
             }
@@ -157,6 +166,7 @@ export const Page=createSlice({
     },
     extraReducers: (builder) => {
         buildReqReducer(builder,reqPageModules,reducerPage,pageStatus);
+        buildReqReducer(builder,reqFavoGet,reducerFavoGet,null);
     },
 })
 export const {updateGameList,updatePageGameLike} = Page.actions;