소스 검색

no message

zhejiushizhuce 2 년 전
부모
커밋
e40cd64273

+ 2 - 1
package.json

@@ -20,6 +20,7 @@
     "@emotion/cache": "^11.10.5",
     "@emotion/react": "^11.10.6",
     "@emotion/styled": "^11.10.5",
+    "@fingerprintjs/fingerprintjs": "^4.4.0",
     "@fingerprintjs/fingerprintjs-pro": "^3.9.5",
     "@loadable/component": "^5.15.3",
     "@mui/base": "^5.0.0-beta.19",
@@ -79,7 +80,7 @@
     "styled-components": "^5.3.6",
     "styled-theming": "^2.2.0",
     "stylis-plugin-rtl": "^2.1.1",
-    "swiper": "^8.4.6",
+    "swiper": "^11.1.4",
     "use-gauge": "^0.5.0",
     "use-mobile-detect-hook": "^1.0.5"
   },

+ 2 - 2
public/index.html

@@ -76,8 +76,8 @@
       }
       function initProgressier(){
         window.addEventListener("load", function(){
-          if (progressier!=null){
-            progressier.add({
+          if (window.progressier!=null){
+            window.progressier.add({
               id: "pDy0w3lGo3j9gL2zwK"
             });
             reProgressiermeta();

+ 26 - 2
src/api/request.js

@@ -39,8 +39,31 @@ const service = axios.create({
     baseURL: BASE_API,
     withCredentials: true,
     timeout: 10000, // Request timeout
+    retry:5,//重复5次
+    retryDelay:1000
 });
+//出错重试 retry
+const checkRetryRequest=(error)=>{
+    let config = error.config;
+    if(!config || !config.retry) return Promise.reject(error);
+    config.__retryCount = config.__retryCount || 0;
+    if(config.__retryCount >= config.retry) {
+        // Reject with the error
+        return Promise.reject(error);
+    }
+    config.__retryCount += 1;
+    // Create new promise to handle exponential backoff
+    let backoff = new Promise(function(resolve) {
+        setTimeout(function() {
+            resolve();
+        }, config.retryDelay || 1);
+    });
 
+    // Return the promise in which recalls axios to retry the request
+    return backoff.then(function() {
+        return service(config);
+    });
+}
 // Request intercepter
 service.interceptors.request.use(
     config => {
@@ -63,8 +86,9 @@ service.interceptors.response.use(
     error => {
         let message = error.message;
         // console.log(error);
-
-        return Promise.reject(error);
+        //重试
+        // return Promise.reject(error);
+        return checkRetryRequest(error);
     }
 );
 

+ 4 - 4
src/components/AutoBanner/BannerPagination.jsx

@@ -6,16 +6,16 @@ const BannerPagination = ({pageCount,swiper}) => {
     const pages = Array.from({ length: pageCount }, (_, index) => index);
     const checkActive=(index)=>{
         if (swiper!=null){
-            let activeIndex=swiper.activeIndex;
+            let activeIndex=swiper.realIndex;
             if (activeIndex>pageCount)activeIndex=activeIndex%pageCount;
-            return activeIndex==index+1;
+            return activeIndex==index;
         }
         return false;
     }
     const changeIndex =(index)=>{
         // slideTo
         if (swiper!=null){
-            if (swiper.activeIndex!=index){
+            if (swiper.realIndex!=index){
                 swiper.slideTo(index);
             }
         }
@@ -25,7 +25,7 @@ const BannerPagination = ({pageCount,swiper}) => {
             {
                 pages.map((page,index)=>(
                     <span onClick={()=>{
-                        changeIndex(index+1);
+                        changeIndex(index);
                     }} key={index} className={`${checkActive(index)?styles.banner_pagination_dot_active:''}`}></span>
                 ))
             }

+ 16 - 14
src/components/AutoBanner/index.jsx

@@ -17,7 +17,7 @@ import {
     EffectFade,
     EffectFlip,
     Manipulation
-} from "swiper";
+} from "swiper/modules";
 import {useThemeProvider} from "@contexts/themeContext";
 import Spring from "@components/Spring";
 import {StyledSwiper} from "@components/AutoBanner/style";
@@ -85,17 +85,19 @@ const AutoBanner = ({data,perview=3,spaceBetween=15,delay=3000,speed=1000}) => {
             <>
                 {
                     itemsData.map((items, index) => (
-                        <SwiperSlide className="d-flex flex-row w-100" style={{gap:`${spaceBetween}px`}} key={index}>
-                            {
-                                items.map((item,iIndex)=>(
-                                    <button key={iIndex} className="img-box w-100" onClick={()=>{
-                                        onClickNav(item);
-                                    }}>
-                                        <LazyImage style={{borderRadius:"var(--border-radius)"}} className="img-box-content" src={item.img} alt={item.alt}>
-                                        </LazyImage>
-                                    </button>
-                                ))
-                            }
+                        <SwiperSlide key={index}>
+                            <div className="d-flex flex-row w-100" style={{gap:`${spaceBetween}px`}}>
+                                {
+                                    items.map((item,iIndex)=>(
+                                        <button key={iIndex} className="img-box w-100" onClick={()=>{
+                                            onClickNav(item);
+                                        }}>
+                                            <LazyImage style={{borderRadius:"var(--border-radius)"}} className="img-box-content" src={item.img} alt={item.alt}>
+                                            </LazyImage>
+                                        </button>
+                                    ))
+                                }
+                            </div>
                         </SwiperSlide>
                     ))
                 }
@@ -114,9 +116,9 @@ const AutoBanner = ({data,perview=3,spaceBetween=15,delay=3000,speed=1000}) => {
                               fadeEffect={{crossFade: true}}
                               modules={[Autoplay]}
                               speed={speed}
-                              onActiveIndexChange={()=>{
+                              onRealIndexChange={()=>{
                                   if (swiper){
-                                      setActiveIndex(swiper.activeIndex);
+                                      setActiveIndex(swiper.realIndex);
                                   }
                               }}
                 >

+ 3 - 2
src/components/AutoWinList/index.jsx

@@ -2,7 +2,7 @@ import styles from './styles.module.scss';
 import {useThemeProvider} from "@contexts/themeContext";
 import React, {useRef, useState,useEffect} from 'react';
 import {Swiper, SwiperSlide} from "swiper/react";
-import {Autoplay, EffectCube, EffectFade} from "swiper";
+import {Autoplay, EffectCube, EffectFade,Virtual} from "swiper/modules";
 import {StyledSwiper} from "@components/AutoBanner/style";
 import {NavLink} from "react-router-dom";
 import LazyImage from "@components/LazyImage";
@@ -277,8 +277,9 @@ const AutoWinList=({data})=>{
                     autoplay={{delay: 1000, disableOnInteraction: false}}
                     effect="fade"
                     fadeEffect={{crossFade: true}}
-                    modules={[Autoplay, EffectCube]}
+                    modules={[Autoplay, EffectCube,Virtual]}
                     speed={1000}
+                    virtual={true}
                 >
                     {
                         list.map((item,index)=>{

+ 31 - 38
src/components/GameList/index.jsx

@@ -7,6 +7,9 @@ import {useThemeProvider} from "@contexts/themeContext";
 import GameRoom from "@components/GameRoom";
 import {total} from "react-big-calendar/lib/utils/dates";
 const i18n =global.i18n;
+const objInfo={
+    timer:null
+}
 const GameList=({data,status,reqMore,user})=>{
     // data={
     //     type:0,//游戏分类
@@ -79,7 +82,8 @@ const GameList=({data,status,reqMore,user})=>{
     const [selected,setSelected]=useState(-1);
     const [roomRow,setRoomRow]=useState({});
     const [showPopRoom,setShowPopRoom]=useState(false);
-    const roomHeight="5.2rem"
+    const roomHeight=5.2;
+    const rowTop=roomHeight+0.75;
     const handleReset=(e)=>{
         setSelected(-1);
         setRoomRow({});
@@ -88,8 +92,15 @@ const GameList=({data,status,reqMore,user})=>{
         document.addEventListener("click",handleReset);
         return ()=>{
             document.removeEventListener("click",handleReset);
+            resetTimer();
         }
     },[])
+    const resetTimer=()=>{
+        if (objInfo.timer!=null){
+            clearTimeout(objInfo.timer);
+            objInfo.timer=null;
+        }
+    }
     const checkSetRoom=(e,item,row,total)=>{
         let target=e.target;
         if (target){
@@ -99,10 +110,21 @@ const GameList=({data,status,reqMore,user})=>{
             if (cH-cB>80)row=row+1;
         }else row=row+1;
         if (row>=total)row=total-1;
-        setRoomRow({
+        let roomRowItem={
             row:row,
             data:item
-        });
+        }
+        if (roomRow.row===row){
+            setRoomRow({
+                hide:true,
+                ...roomRowItem
+            });
+            resetTimer();
+            objInfo.timer=setTimeout(()=>{
+                setRoomRow(roomRowItem);
+            },10)
+        }
+        else setRoomRow(roomRowItem);
     }
     const handleSelect=(e,data,row,total)=>{
         e.stopPropagation();
@@ -118,7 +140,7 @@ const GameList=({data,status,reqMore,user})=>{
     const handlePopSelected=(e,data,row,totall)=>{
         e.stopPropagation();
         setRoomRow({
-            row:0,
+            row:-1,
             data:data
         });
         setShowPopRoom(true);
@@ -157,13 +179,12 @@ const GameList=({data,status,reqMore,user})=>{
     }
     const renderRoom=(row,len)=>{
         if (roomRow==null)return (<></>);
+        if (roomRow.hide)return (<></>);
         let rrow=roomRow.row;
         let data=roomRow.data;
         if (rrow===row){
-            // let level_info=data.level_info;
-            let open=true;
             return (
-                <GameRoom open={open} data={data} height={roomHeight} mobile={true} user={user}></GameRoom>
+                <GameRoom open={true} data={data} height={roomHeight+"rem"} mobile={true} user={user}></GameRoom>
             )
         }
         else return (<></>);
@@ -173,34 +194,6 @@ const GameList=({data,status,reqMore,user})=>{
         if (list==null)list=[];
         list=formatMList(list);
         let len=list.length;
-        // return (
-        //     <div id={"gameList"} className={styles.game_list}>
-        //         {
-        //             list.map((item,index)=>{
-        //                 let itemStyle={}
-        //                 if (selected!==-1){
-        //                     if (index!==selected){
-        //                         itemStyle.filter="brightness(60%)"
-        //                     }
-        //                     else
-        //                     {
-        //                         itemStyle.transform="scale(1.05)";
-        //                     }
-        //                     let col=getColNum();
-        //                     let s_row=Math.floor(selected/col);
-        //                     let row=Math.floor(index/col);
-        //                     if (s_row===row){
-        //                         itemStyle.marginBottom="100px";
-        //                     }
-        //                 }
-        //                 return (
-        //                     <GameItem style={itemStyle} key={index} data={item} index={index} onClickItem={handleSelect}></GameItem>
-        //                 )
-        //             })
-        //         }
-        //     </div>
-        // )
-
         return (
             <div id={"gameList"} className={styles.game_list_mobile}>
                 {
@@ -210,7 +203,7 @@ const GameList=({data,status,reqMore,user})=>{
                             // if (roomRow.row===row){
                             if (row>=roomRow.row){
                                 // rowStyle.marginTop=roomHeight;
-                                rowStyle.transform=`translateY(${roomHeight})`;
+                                rowStyle.transform=`translateY(${rowTop+"rem"})`;
                             }
                             // if (roomRow.row===row){
                             //     rowStyle.marginTop=roomHeight;
@@ -300,8 +293,8 @@ const GameList=({data,status,reqMore,user})=>{
         if (roomRow&&roomRow.row!=null){
             let row=roomRow.row;
             if (row>=0){
-                moreStyle.transform=`translateY(${roomHeight})`;
-                moreStyle.marginBottom=roomHeight;
+                moreStyle.transform=`translateY(${rowTop+"rem"})`;
+                moreStyle.marginBottom=rowTop+"rem";
             }
         }
         return (

+ 3 - 2
src/components/GameList/styles.module.scss

@@ -12,7 +12,7 @@
   & .game_list_mobile{
     display: flex;
     flex-direction: column;
-    gap: .75rem;
+    //gap: .75rem;
     transition: all var(--transition);
     //will-change: transform;
     & .list_row{
@@ -21,6 +21,7 @@
       grid-template-columns: repeat(3,1fr);
       transition: all var(--transition);
       //will-change: transform;
+      margin-bottom: .75rem;
     }
   }
   & .page_con{
@@ -34,7 +35,7 @@
     align-items: center;
     justify-content: center;
     margin-bottom: 1.0625rem;
-    margin-top: 3.75rem;
+    margin-top: 3rem;
     & .progress {
       width: 5rem;
       height: .375rem;

+ 36 - 21
src/components/GameRoom/index.jsx

@@ -4,7 +4,7 @@ import bg_2 from "@assets/gameroom/room_act.png";
 import bg_3 from "@assets/gameroom/room_deact.png";
 import {animated, useSpring} from '@react-spring/web';
 import CSSTransition from "react-transition-group/CSSTransition";
-import React, {cloneElement, useEffect, useState} from "react";
+import React, {cloneElement, useEffect, useRef, useState} from "react";
 import TransitionGroup from "react-transition-group/TransitionGroup";
 import {useNavigate} from "react-router-dom";
 import {formatCash, localStorageSet} from "@utils/helpers";
@@ -13,6 +13,7 @@ import {ROUTE_PATH} from "@constants/routes";
 import styled from 'styled-components/macro';
 import Button from "@mui/material/Button";
 import Popup from "@components/Popup";
+import {useSpringRef} from "@react-spring/core";
 const gameBgs=[null,bg_1,bg_2,bg_3,bg_2];
 const fontColors=["","#bc9350","#208e3c","#bc9350","#208e3c"];
 const i18n=global.i18n;
@@ -28,20 +29,24 @@ const GameRoom = ({open,data,height="5rem",mobile=false,user,onClose,...props})
     const timeout=200;
     const [show,setShow]=useState(open);
     const navigate=useNavigate();
+    let fromStyle={opacity: 0, transform: 'scaleY(0)'};
+    let toStyle={opacity: 1, transform: 'scaleY(1)'};
     let openAni=useSpring({
-        from: {opacity: 0, transform: 'scaleY(0.5)'},
-        to: {opacity: 1, transform: 'scaleY(1)'},
-        config: {duration: timeout},
-    })
+            from: fromStyle,
+            to: toStyle,
+            config: {duration: timeout},
+        })
     let closeAni=useSpring({
-        from: {opacity: 1, transform: 'scaleY(1)'},
-        to: {opacity: 0, transform: 'scaleY(0.5)'},
+        from: toStyle,
+        to: fromStyle,
         config: {duration: timeout},
     })
+    const conRef=useRef();
+    // const [cstyle,setCstyle]=useState(null)
     useEffect(()=>{
-        return ()=>{
+       return ()=>{
 
-        }
+       };
     },[])
     const lackCash=()=>{
         let onSure=()=>{
@@ -55,15 +60,9 @@ const GameRoom = ({open,data,height="5rem",mobile=false,user,onClose,...props})
         global.msgBoxShow(data)
     }
     const handleGame=(item)=>{
-        let limit=item.value;
-        let golds=0;
-        if (user){
-            golds=Number(user.Score)*global.CASH_BASE;
-            limit=Number(limit);
-            if (golds<limit){
-                lackCash();
-                return;
-            }
+        if (checkLack(item)){
+            lackCash();
+            return;
         }
         let id=data.id;
         let url=data.link;
@@ -74,6 +73,16 @@ const GameRoom = ({open,data,height="5rem",mobile=false,user,onClose,...props})
         global.authLockPath=path;
         navigate(path);
     }
+    const checkLack=(item)=>{
+        if (user){
+            let golds=Number(user.Score)*global.CASH_BASE;
+            let limit=Number(item.value);
+            if (golds<limit){
+                return true;
+            }
+        }
+        return false;
+    }
     const renderMobile=()=>{
         if (data==null)return (<></>);
         let level_info=data.level_info;
@@ -86,12 +95,15 @@ const GameRoom = ({open,data,height="5rem",mobile=false,user,onClose,...props})
         if (show)cstyle=openAni;
         else cstyle=closeAni;
         return (
-            <animated.div className={styles.cotiner_m} style={cstyle}>
+            <animated.div ref={conRef} className={styles.cotiner_m} style={cstyle}>
                 <div className={styles.room_con}>
                     {
                         list.map((item, index) => {
+                            let isLack=checkLack(item);
+                            let color=isLack?fontColors[1]:fontColors[2];
+                            let background=isLack?gameBgs[1]:gameBgs[2];
                             return (
-                                <StyledRoomButton color={fontColors[item.type]} background={gameBgs[item.type]} key={index} className={styles.room_item} style={{height: height}} onClick={(e)=>{
+                                <StyledRoomButton color={color} background={background} key={index} className={styles.room_item} style={{height: height}} onClick={(e)=>{
                                     e.stopPropagation();
                                     handleGame(item);
                                 }}>
@@ -126,8 +138,11 @@ const GameRoom = ({open,data,height="5rem",mobile=false,user,onClose,...props})
                     <div className={styles.room_con}>
                         {
                             list.map((item, index) => {
+                                let isLack=checkLack(item);
+                                let color=isLack?fontColors[1]:fontColors[2];
+                                let background=isLack?gameBgs[1]:gameBgs[2];
                                 return (
-                                    <StyledRoomButton color={fontColors[item.type]} background={gameBgs[item.type]} key={index} className={`${styles.room_item} ${styles.room_item_desk}`} onClick={(e)=>{
+                                    <StyledRoomButton color={color} background={background} key={index} className={`${styles.room_item} ${styles.room_item_desk}`} onClick={(e)=>{
                                         e.stopPropagation();
                                         handleGame(item);
                                     }}>

+ 16 - 10
src/features/mainSlice.js

@@ -21,7 +21,7 @@ import {toast} from 'react-toastify';
 import {getHttpMsg, localStorageGet, localStorageSet} from "@utils/helpers";
 import {LOCAL_CUSTOM_LOCK, LOCAL_IS_LOGIN, LOCAL_SIGN, LOCAL_USER_INFO, LOCAL_VISTOR_ID} from "@constants/localkey";
 import {reqPayConfig} from "@features/paySlice";
-import FingerprintJS from '@fingerprintjs/fingerprintjs-pro'
+import FingerprintJS from '@fingerprintjs/fingerprintjs'
 const i18n=global.i18n;
 const generateNavs=(routes)=>{
     const navs=[];
@@ -525,15 +525,21 @@ export const getBFP=()=>{
             global.BFP=bfp;
             return bfp;
         }
-        const fpPromise = FingerprintJS.load({
-            apiKey: "W7zWifGvJhjacPekHi64"
-        })
-        let fp=await fpPromise;
-        let result=await fp.get();
-        if (result!=null){
-            bfp=result.visitorId;
-            localStorageSet(LOCAL_VISTOR_ID,bfp);
-            global.BFP=bfp;
+        // const fpPromise = FingerprintJS.load({
+        //     apiKey: "W7zWifGvJhjacPekHi64"
+        // })
+        const fpPromise =FingerprintJS.load();
+        try {
+            let fp=await fpPromise;
+            let result=await fp.get();
+            if (result!=null){
+                bfp=result.visitorId;
+                localStorageSet(LOCAL_VISTOR_ID,bfp);
+                global.BFP=bfp;
+            }
+        }
+        catch (err){
+            console.log(err);
         }
         return bfp;
     }

+ 1 - 1
src/features/paySlice.js

@@ -365,6 +365,6 @@ export default Pay.reducer;
 export const reqPayConfig=(dispatch,userInfo)=>{
     dispatch(reqRechargeConfig());
     dispatch(reqFirstPayConfig(userInfo.UserID));
-    dispatch(reqGetAccountsPayInfo(userInfo.UserID));
+    // dispatch(reqGetAccountsPayInfo(userInfo.UserID));
     // dispatch(reqWithdrawTax());
 }

+ 7 - 4
src/layout/Navbar/index.jsx

@@ -317,10 +317,13 @@ const PageHeader = () => {
             document.querySelectorAll("." + banner.className).forEach(function(e) {
                 e.remove()
             });
-            banner.element = window.progressier.utils.node("div", banner.className, {
-                parent: document.querySelector("#installBanner")
-            });
-            banner.element.classList.add(styles.install_banner);
+            let installBanner=document.querySelector("#installBanner");
+            if (installBanner){
+                banner.element = window.progressier.utils.node("div", banner.className, {
+                    parent: installBanner
+                });
+                banner.element.classList.add(styles.install_banner);
+            }
         }
         window.install_banner=banner;
         return banner;

+ 1 - 1
src/layout/Sidebar/index.jsx

@@ -343,7 +343,7 @@ const Sidebar = () => {
     }
     const renderBonus=()=>{
         let styles=getolstyles(0);
-        let herf="/bonus";
+        let herf=ROUTE_PATH.PROMOTION;
         let link={type:0,title:'links.bonus',icon:'icon_Gift',path:herf}
         return (
             <StyledBlock open={open}>

+ 4 - 3
src/widgets/WCashWheel/WPopInfo/WPopInfo.jsx

@@ -9,7 +9,7 @@ import {formatCash, stringFormat} from "@utils/helpers";
 import cash_2 from "@assets/wheel/cash_2.png";
 import CountUp from "react-countup";
 import coin from "@assets/wheel/pix_2.png";
-import {Autoplay} from "swiper";
+import {Autoplay, Virtual} from "swiper/modules";
 import {Swiper, SwiperSlide} from "swiper/react";
 import styled from 'styled-components/macro';
 const i18n=global.i18n;
@@ -103,8 +103,9 @@ const WPopInfo=({open,onClose,openShare})=>{
                                 autoplay={{delay: 0, disableOnInteraction: false}}
                                 effect="fade"
                                 fadeEffect={{crossFade: true}}
-                                modules={[Autoplay]}
+                                modules={[Autoplay,Virtual]}
                                 speed={800}
+                                virtual={true}
                             >
                                 {
                                     list.map((item,index)=>{
@@ -112,7 +113,7 @@ const WPopInfo=({open,onClose,openShare})=>{
                                         let name=item.name;
                                         let amount=item.amount;
                                         return (
-                                            <SwiperSlide key={index}>
+                                            <SwiperSlide key={index} virtualIndex={index}>
                                                 <div className={styles.swiper_item}>
                                                     <div>{phone}</div>
                                                     <div className={styles.name}>{name}</div>

+ 3 - 3
src/widgets/WCashWheel/WPopInfo/styles.module.scss

@@ -119,9 +119,9 @@
   position: relative;
   height: 8rem;
   & .swiper_list{
-    display: flex;
-    flex-direction: column;
-    gap: 1rem;
+    //display: flex;
+    //flex-direction: column;
+    //gap: 1rem;
     width: 100%;
     & .swiper_item{
       display: flex;

+ 10 - 7
src/widgets/WCashWheel/index.jsx

@@ -7,7 +7,7 @@ import {useDispatch, useSelector} from "react-redux";
 import {getBonusStatus, getMyRecord, getRecord, getTurnplate} from "@features/turnplateSlice";
 import {formatCash, stringFormat} from "@utils/helpers";
 import React, {useEffect, useState} from "react";
-import {Autoplay, EffectCube,EffectCoverflow} from "swiper";
+import {Autoplay, EffectCube, EffectCoverflow, Virtual} from "swiper/modules";
 import {Swiper, SwiperSlide} from "swiper/react";
 import styled from 'styled-components/macro';
 import CountUp from "react-countup";
@@ -22,9 +22,9 @@ import {reqTurnplateBonus} from "@features/api";
 import {REQ_STATUS} from "@api/config";
 const i18n=global.i18n;
 const StyledSwiper=styled(Swiper)`
-.swiper-wrapper{
-    transition-timing-function: cubic-bezier(1.00, 1.00, 0.00, 0.00);
- }
+    .swiper-wrapper{
+        transition-timing-function: cubic-bezier(1.00, 1.00, 0.00, 0.00);
+     }
 `
 const WCashWheel=({close})=>{
     let turnplate=useSelector(getTurnplate);
@@ -44,6 +44,8 @@ const WCashWheel=({close})=>{
         if (swiper) {
             swiper.update();
         }
+        return ()=>{
+        }
     }, [swiper]);
     useEffect(()=>{
 
@@ -157,13 +159,14 @@ const WCashWheel=({close})=>{
                                 onSwiper={setSwiper}
                                 direction={"vertical"}
                                 spaceBetween={0}
-                                slidesPerView={5}
+                                slidesPerView={6}
                                 loop={true}
                                 autoplay={{delay: 0, disableOnInteraction: false}}
                                 effect="fade"
                                 fadeEffect={{crossFade: true}}
-                                modules={[Autoplay]}
+                                modules={[Autoplay,Virtual]}
                                 speed={800}
+                                virtual={true}
                             >
                                 {
                                     list.map((item,index)=>{
@@ -171,7 +174,7 @@ const WCashWheel=({close})=>{
                                         let name=item.name;
                                         let amount=item.amount;
                                         return (
-                                            <SwiperSlide key={index}>
+                                            <SwiperSlide key={index} virtualIndex={index}>
                                                 <div className={styles.swiper_item}>
                                                     <div>{phone}</div>
                                                     <div className={styles.name}>{name}</div>

+ 7 - 4
src/widgets/WCashWheel/styles.module.scss

@@ -149,15 +149,18 @@
     }
   }
   & .swiper_list{
-    display: flex;
-    flex-direction: column;
-    gap: 1rem;
-    padding: 1rem;
+    //display: flex;
+    //flex-direction: column;
+    //gap: 1rem;
+    //padding: 1rem;
     width: 100%;
+    //height: 100%;
     & .swiper_item{
       display: flex;
       align-items: center;
       justify-content: space-between;
+      width: 100%;
+      height: 100%;
       color: var(--text);
       font-size: 1rem;
       font-weight: 500;