Ver Fonte

no message

zhejiushizhuce há 2 anos atrás
pai
commit
de6313c812

+ 11 - 8
src/App.js

@@ -46,7 +46,7 @@ import {useDispatch, useSelector} from "react-redux";
 import {REQ_STATUS} from "@api/config";
 import {
     reqAgentCheck,
-    reqCustomService, reqGameActivity,
+    reqCustomService, reqFirstPayConfig, reqGameActivity,
     reqGetRoutes,
     reqMailCheck,
     reqRedpackCheck, reqRedpackConfig,
@@ -148,24 +148,27 @@ const App = () => {
             dispatch(connectHall());
             localStorageSet(LOCAL_WHEEL_INVITE_CODE,"");
             localStorageSet(LOCAL_ACTIVITY_C,"");
-            dispatch(reqMailCheck());
+            //Mail红点屏蔽
+            // dispatch(reqMailCheck());
         }
         else
         {
             dispatch(disconnectHall());
         }
         //pay
-        reqPayConfig(dispatch,userInfo);
+        // reqPayConfig(dispatch,userInfo);
+        // dispatch(reqFirstPayConfig(userID))
         //customer
-        dispatch(reqCustomService());
+        // dispatch(reqCustomService());
+        //turnplate
         dispatch(reqTurnplateIndex());
         //redpack
-        dispatch(reqRedpackCheck());
-        dispatch(reqRedpackConfig());
+        // dispatch(reqRedpackCheck());
+        // dispatch(reqRedpackConfig());
         //agent
-        dispatch(reqAgentCheck());
+        // dispatch(reqAgentCheck());
         //activity
-        dispatch(reqGameActivity());
+        // dispatch(reqGameActivity());
     }
     const appInitData=()=>{
         // scroll to top on route change

+ 1 - 0
src/constants/routes.js

@@ -32,6 +32,7 @@ const ROUTE_PATH={
     WITHDRAW_REACORD:"#/withdrawRecord",
     SECURITY:"#/security",
     MONEY_RAIN:"#/moneyrain",
+    AGENT:"#/agent",
     AGENT_POLICY:"#/agentPolicy",
     AGENT_HISTORY:"#/agentHistory",
 }

+ 10 - 2
src/features/activitySlice.js

@@ -1,5 +1,6 @@
 import {createSlice} from "@reduxjs/toolkit";
 import {buildReqReducer, reqGameActivity} from "@features/api";
+import {REQ_STATUS} from "@api/config";
 const reducerActivity=(state,action,arg)=>{
     let payload=action.payload;
     if (payload&&payload.code===200){
@@ -15,20 +16,27 @@ const reducerActivity=(state,action,arg)=>{
         }
     }
 }
+const activityStatus=(state,status,arg)=>{
+    state.status=status;
+}
 const activitySlice = createSlice({
     name: "activity",
     initialState:{
-        list:[]
+        list:[],
+        status:REQ_STATUS.NONE
     },
     reducers:{
 
     },
     extraReducers: (builder) => {
-        buildReqReducer(builder,reqGameActivity,reducerActivity,null);
+        buildReqReducer(builder,reqGameActivity,reducerActivity,activityStatus);
     }
 })
 export const {}=activitySlice.actions;
 export const getActivityList=(state)=>{
     return state.activity.list;
 }
+export const getActivityStatus=(state)=>{
+    return state.activity.status;
+}
 export default activitySlice.reducer;

+ 9 - 1
src/features/agentSlice.js

@@ -13,6 +13,7 @@ const reducerAgentCheck=(state,action,arg)=>{
             if (data.subs)state.subs=data.subs;
             if (data.levels)state.levels=data.levels;
             if (data.history)state.bonusList=data.history;
+            state.isInit=true;
             // state.subs=[
             //     {
             //         NickName:"xdh123dfasdfasdfa",
@@ -86,7 +87,8 @@ export const AgentSlice = createSlice({
             },
             AgentHistory:REQ_STATUS.NONE
         },
-        info:{},
+        isInit:false,
+        info: {},
         subs:[],
         levels:{},
         bonusList:[],
@@ -123,4 +125,10 @@ export const getAgentHistoryStatus=(state)=>{
 export const getAgentHistory=(state)=>{
     return state.agent.history;
 }
+export const getAgentStatus=(state)=>{
+    return state.agent.status.AgentCheck;
+}
+export const getIsInit=(state)=>{
+    return state.agent.isInit;
+}
 export default AgentSlice.reducer;

+ 8 - 1
src/features/mainSlice.js

@@ -293,6 +293,9 @@ const reducerCustom=(state,action,arg)=>{
         state.customerInfo=payload.data;
     }
 }
+const customStatus=(state,status,arg)=>{
+    state.customServiceStatus=status;
+}
 const reducerCustomLeaveMsg=(state,action,arg)=>{
     let payload=action.payload;
     if (payload!=null){
@@ -333,6 +336,7 @@ export const Main=createSlice({
         },
         gameInfoStatus:REQ_STATUS.NONE,
         customLeaveMsgStatus:REQ_STATUS.NONE,
+        customServiceStatus:REQ_STATUS.NONE,
         customerInfo:[]
     },
     reducers: {
@@ -370,7 +374,7 @@ export const Main=createSlice({
         buildReqReducer(builder,reqChangePhone,reducerChangePhone,changePhoneStatus);
         buildReqReducer(builder,reqChangeEmail,reducerChangeEmail,changeEmailStatus);
         buildReqReducer(builder,reqGameInfo,reducerGameInfo,gameInfoStatus);
-        buildReqReducer(builder,reqCustomService,reducerCustom,null);
+        buildReqReducer(builder,reqCustomService,reducerCustom,customStatus);
         buildReqReducer(builder,reqCustomLeaveMsg,reducerCustomLeaveMsg,customLeaveMsgStatus);
     },
 })
@@ -523,6 +527,9 @@ export const getCustomTypeInfo=(type)=>(state)=>{
 export const getCustomStatus=(state)=>{
     return state.main.customLeaveMsgStatus;
 }
+export const getCustomServiceStatus=(state)=>{
+    return state.main.customServiceStatus;
+}
 //数据获取
 export default Main.reducer;
 

+ 3 - 0
src/features/paySlice.js

@@ -368,6 +368,9 @@ export const getWDPayoutStatus=(state)=>{
 export const getShowBonus=(state)=>{
     return state.pay.showBonus;
 }
+export const getPayConfigStatus=(state)=>{
+    return state.pay.status.RechargeConfig;
+}
 export default Pay.reducer;
 
 export const reqPayConfig=(dispatch,userInfo)=>{

+ 3 - 0
src/features/redpackSlice.js

@@ -128,4 +128,7 @@ export const getRedPackConfig=(state)=>{
 export const getReciveStatus=(state)=>{
     return state.redpack.status.RedpackRecive;
 }
+export const getRedConfigStatus=(state)=>{
+    return state.redpack.status.RedpackConfig;
+}
 export default RedpackSlice.reducer;

+ 27 - 8
src/widgets/WAgent/index.jsx

@@ -1,7 +1,14 @@
 import styles from './styles.module.scss';
 import Spring from "@components/Spring";
 import {useDispatch, useSelector} from "react-redux";
-import {getAgentGetStatus, getAgentInfo, getAgentSubs, getBonusList} from "@features/agentSlice";
+import {
+    getAgentGetStatus,
+    getAgentInfo,
+    getAgentStatus,
+    getAgentSubs,
+    getBonusList,
+    getIsInit
+} from "@features/agentSlice";
 import link_icon from "@assets/agent/link.png";
 import doller_icon from "@assets/agent/doller_icon.png";
 import policy_icon from "@assets/agent/policy.png";
@@ -19,7 +26,8 @@ import {useNavigate} from "react-router-dom";
 import {ROUTE_PATH} from "@constants/routes";
 import {REQ_STATUS} from "@api/config";
 import SmallLoading from "@components/SmallLoading";
-import {reqAgentGet} from "@features/api";
+import {reqAgentCheck, reqAgentGet} from "@features/api";
+import {useEffect} from "react";
 const i18n=global.i18n;
 const WAgent=({close})=>{
     const navigate = useNavigate();
@@ -27,8 +35,15 @@ const WAgent=({close})=>{
     const agentSubs=useSelector(getAgentSubs);
     const bonusList=useSelector(getBonusList);
     const agentGetStatus=useSelector(getAgentGetStatus);
+    const agentStatus=useSelector(getAgentStatus);
     const dispatch=useDispatch();
+    const isAgentInit=useSelector(getIsInit);
     const lvnum=4;
+    useEffect(()=>{
+        if (!isAgentInit){
+            dispatch(reqAgentCheck());
+        }
+    },[])
     const getTeamUser=()=>{
         let teamNum=0;
         // for (let i = 0; i < lvnum; i++) {
@@ -314,12 +329,16 @@ const WAgent=({close})=>{
     }
     return (
         <div className={styles.container}>
-            <Spring type="slideUp" className={styles.content}>
-                {renderBase()}
-                {renderAvailable()}
-                {renderTodayInfo()}
-                {renderSubs()}
-            </Spring>
+            {
+                agentStatus===REQ_STATUS.LOADING?(<SmallLoading></SmallLoading>):(
+                    <Spring type="slideUp" className={styles.content}>
+                        {renderBase()}
+                        {renderAvailable()}
+                        {renderTodayInfo()}
+                        {renderSubs()}
+                    </Spring>
+                )
+            }
         </div>
     )
 }

+ 2 - 0
src/widgets/WAgent/styles.module.scss

@@ -1,4 +1,6 @@
 .container{
+  display: flex;
+  flex-direction: column;
   width: 100%;
   min-height: 100%;
   background-color: var(--widget-bg);

+ 27 - 10
src/widgets/WCustomerService/index.jsx

@@ -5,14 +5,20 @@ import {ReactComponent as TGIcon} from '@assets/singlesvg/telegram.svg';
 import {ReactComponent as EamilIcon} from '@assets/singlesvg/email-open.svg';
 import SvgIcon from "@components/SvgIcon";
 import {useDispatch, useSelector} from "react-redux";
-import {getCustomStatus, getCustomTypeInfo, getUserInfo} from "@features/mainSlice";
+import {
+    getCustomInfo,
+    getCustomServiceStatus,
+    getCustomStatus,
+    getCustomTypeInfo,
+    getUserInfo
+} from "@features/mainSlice";
 import {toast} from "react-toastify";
 import {CopyToClipboard} from "react-copy-to-clipboard";
 import {APP_CHANNEL} from "@constants/app";
 import SmallLoading from "@components/SmallLoading";
-import {useState} from "react";
+import {useEffect, useState} from "react";
 import {REQ_STATUS} from "@api/config";
-import {reqCustomLeaveMsg} from "@features/api";
+import {reqCustomLeaveMsg, reqCustomService} from "@features/api";
 const i18n=global.i18n;
 const WCustomerService=({close})=>{
     const whatsInfo=useSelector(getCustomTypeInfo("WhatsApp"));
@@ -23,6 +29,13 @@ const WCustomerService=({close})=>{
     const status=useSelector(getCustomStatus);
     const dispatch=useDispatch();
     const [leaveMsg,setLeaveMsg]=useState("");
+    const config=useSelector(getCustomInfo);
+    const configStatus=useSelector(getCustomServiceStatus);
+    useEffect(()=>{
+        if (config==null||config.length===0){
+            dispatch(reqCustomService())
+        }
+    },[])
     const onClickWS=()=>{
         if (whatsInfo){
             let url=whatsInfo.StatusString+"&gameid="+gameID;
@@ -166,13 +179,17 @@ const WCustomerService=({close})=>{
     }
     return (
         <div className={styles.container}>
-            <Spring type={"slideUp"} className={styles.content}>
-                {renderTips()}
-                {renderCustomBtns()}
-                {renderWhatsApp()}
-                {renderEmail()}
-                {renderReport()}
-            </Spring>
+            {
+                configStatus===REQ_STATUS.LOADING?<SmallLoading></SmallLoading>:(
+                    <Spring type={"slideUp"} className={styles.content}>
+                        {renderTips()}
+                        {renderCustomBtns()}
+                        {renderWhatsApp()}
+                        {renderEmail()}
+                        {renderReport()}
+                    </Spring>
+                )
+            }
         </div>
     )
 }

+ 20 - 1
src/widgets/WDeposit/index.jsx

@@ -1,9 +1,28 @@
 import styles from './styles.module.scss';
 import BRDeposit from "@widgets/WDeposit/BR/BRDeposit";
+import {useDispatch, useSelector} from "react-redux";
+import {getConfig, getPayConfigStatus, reqPayConfig} from "@features/paySlice";
+import {useEffect} from "react";
+import {getUserInfo} from "@features/mainSlice";
+import {reqFirstPayConfig, reqRechargeConfig} from "@features/api";
+import {REQ_STATUS} from "@api/config";
+import SmallLoading from "@components/SmallLoading";
 const WDeposit=({close})=>{
+    const config=useSelector(getConfig);
+    const dispatch = useDispatch();
+    const userInfo=useSelector(getUserInfo);
+    const configStatus=useSelector(getPayConfigStatus);
+    useEffect(()=>{
+        if (config==null||config.length===0){
+            dispatch(reqRechargeConfig());
+        }
+        dispatch(reqFirstPayConfig(userInfo.UserID))
+    },[])
     return (
         <div className={styles.container}>
-            <BRDeposit/>
+            {
+                configStatus===REQ_STATUS.LOADING?(<SmallLoading></SmallLoading>):(<BRDeposit/>)
+            }
         </div>
     )
 }

+ 2 - 0
src/widgets/WDeposit/styles.module.scss

@@ -1,4 +1,6 @@
 .container{
+  display: flex;
+  flex-direction: column;
   width: 100%;
   min-height: 100%;
   background-color: var(--widget-bg);

+ 22 - 6
src/widgets/WMoneyRain/index.jsx

@@ -16,9 +16,15 @@ import rain_bg2 from "@assets/moneyrain/rain_bg2.png";
 import {format2LongChips, formatCash, formatTime, stringFormat} from "@utils/helpers";
 import WRainAni from "@widgets/WMoneyRain/WRainAni/WRainAni";
 import {useDispatch, useSelector} from "react-redux";
-import {getReciveStatus, getRedPackConfig, getRedPackInfo, updateAlRecivedStatus} from "@features/redpackSlice";
+import {
+    getReciveStatus,
+    getRedConfigStatus,
+    getRedPackConfig,
+    getRedPackInfo,
+    updateAlRecivedStatus
+} from "@features/redpackSlice";
 import {useEffect, useState} from "react";
-import {reqRedpackCheck, reqRedpackRecive} from "@features/api";
+import {reqRedpackCheck, reqRedpackConfig, reqRedpackRecive} from "@features/api";
 import {getConfig} from "@features/paySlice";
 import {REQ_STATUS} from "@api/config";
 import SmallLoading from "@components/SmallLoading";
@@ -43,7 +49,11 @@ const WMoneyRain = ({close}) => {
     const reciveStatus=useSelector(getReciveStatus);
     const [open,setOpen]=useState(true);
     const dispatch=useDispatch();
+    const configStatus=useSelector(getRedConfigStatus);
     useEffect(()=>{
+        if (config==null||config.length===0){
+            dispatch(reqRedpackConfig());
+        }
         dispatch(reqRedpackCheck());
         return ()=>{
 
@@ -297,10 +307,16 @@ const WMoneyRain = ({close}) => {
         <Modal open={open} onClose={onClose} closeAfterTransition>
             <Fade in={open} timeout={500}>
                 <div className={styles.container}>
-                    <WRainAni></WRainAni>
-                    <div className={styles.content}>
-                        {renderMain()}
-                    </div>
+                    {
+                        configStatus===REQ_STATUS.LOADING?(<SmallLoading></SmallLoading>):(
+                            <>
+                                <WRainAni></WRainAni>
+                                <div className={styles.content}>
+                                    {renderMain()}
+                                </div>
+                            </>
+                        )
+                    }
                 </div>
             </Fade>
         </Modal>

+ 15 - 57
src/widgets/WPromotion/index.jsx

@@ -1,36 +1,20 @@
 import styles from './styles.module.scss';
 import Spring from "@components/Spring";
 import React, {useEffect} from "react";
-import icon_1 from "@assets/promotion/icon_1.svg";
-import banner_1 from "@assets/promotion/banner_1.png";
-import icon_2 from "@assets/promotion/icon_2.svg";
-import banner_2 from "@assets/promotion/banner_2.png";
-import icon_3 from "@assets/promotion/icon_3.svg";
-import banner_3 from "@assets/promotion/banner_3.png";
 import new_icon from "@assets/promotion/new.png";
 import {useNavigate} from "react-router-dom";
 import {useDispatch, useSelector} from "react-redux";
 import {getRedPackInfo} from "@features/redpackSlice";
 import {formatTime} from "@utils/helpers";
-import {reqRedpackCheck} from "@features/api";
+import {reqGameActivity, reqRedpackCheck} from "@features/api";
 import {getTurnplate} from "@features/turnplateSlice";
-import {getActivityList} from "@features/activitySlice";
+import {getActivityList, getActivityStatus} from "@features/activitySlice";
 import LazyImgix from "@components/Imgix/LazyImgix";
 import {getBonusList} from "@features/agentSlice";
 import clock from "@assets/promotion/clock.json";
 import Lottie from "lottie-react";
-const icons=[
-    null,
-    icon_1,
-    icon_2,
-    icon_3
-]
-const banners=[
-    null,
-    banner_1,
-    banner_2,
-    banner_3
-]
+import {REQ_STATUS} from "@api/config";
+import SmallLoading from "@components/SmallLoading";
 const WPromotion=({close})=>{
     const navigate=useNavigate();
     const redpack=useSelector(getRedPackInfo);
@@ -38,6 +22,7 @@ const WPromotion=({close})=>{
     const agentBonus=useSelector(getBonusList);
     const dispatch=useDispatch();
     const data=useSelector(getActivityList);
+    const status=useSelector(getActivityStatus);
     // let data=[
     //     {
     //         id:1,
@@ -62,42 +47,11 @@ const WPromotion=({close})=>{
     //     }
     // ]
     useEffect(()=>{
+        if (data==null||data.length===0){
+            dispatch(reqGameActivity())
+        }
         dispatch(reqRedpackCheck());
     },[])
-    const checkRenderDot=(item)=>{
-        if (item.id===1){
-            if (turnplate&&turnplate.times>0){
-                return (<div className={styles.red_dot}></div>)
-            }
-        }
-        return (<></>);
-    }
-    const renderRedPackItem=(item)=>{
-        if (redpack==null)return (<></>);
-        let status=redpack.status;
-        let cdLeft=redpack.next_in_seconds;
-        let cdLeftStr=formatTime(cdLeft);
-        return (
-            <>
-                <div className={styles.gift_title}>{status!==0?item.title:cdLeftStr}</div>
-                <button className={styles.git_fun_item} onClick={() => {
-                    navigate(item.link);
-                }}>
-                    <div className={styles.left}>
-                        <div className={styles.icon_con}>
-                            <img className={"iconshake"} src={icons[item.id]}/>
-                            {
-                                status===1? (<div className={styles.red_dot}></div>):(<></>)
-                            }
-                        </div>
-                    </div>
-                    <div className={styles.right}>
-                        <img src={banners[item.id]}/>
-                    </div>
-                </button>
-            </>
-        )
-    }
     const checkDot=(item)=>{
         if (item.id===1){
             if (turnplate&&turnplate.times>0){
@@ -206,9 +160,13 @@ const WPromotion=({close})=>{
     }
     return (
         <div className={styles.container}>
-            <Spring type="slideUp" className={styles.content}>
-                {renderList()}
-            </Spring>
+            {
+                status===REQ_STATUS.LOADING?(<SmallLoading></SmallLoading>):(
+                    <Spring type="slideUp" className={styles.content}>
+                        {renderList()}
+                    </Spring>
+                )
+            }
         </div>
     )
 }