فهرست منبع

fix: 更新品牌变量增加br测试服

Before 8 ماه پیش
والد
کامیت
a14e424dba

+ 13 - 0
.env.br

@@ -0,0 +1,13 @@
+#baseurl
+NEXT_PUBLIC_BASE_URL=https://br-api.tiktokjakjkl.icu
+#share link
+NEXT_PUBLIC_SHARE_URL=https://br-site.tiktokjakjkl.icu
+#firebase
+NEXT_PUBLIC_FIREBASE_APIKEY=AIzaSyCIE8xtySsYztsSgmQJx_aqPrrpHEuvgvw
+NEXT_PUBLIC_FIREBASE_AUTHDOMAIN=bcwin777-1bdda.firebaseapp.com
+NEXT_PUBLIC_FIREBASE_PROJECTID=bcwin777-1bdda
+NEXT_PUBLIC_FIREBASE_STORAGEBUCKET=bcwin777-1bdda.firebasestorage.app
+NEXT_PUBLIC_FIREBASE_MESSAGINGSENDERID=542456379513
+NEXT_PUBLIC_FIREBASE_APPID=1:542456379513:web:851a46fc639085170bfca8
+NEXT_PUBLIC_FIREBASE_MEASUREMENTID=G-GV6Y8DXHHD
+NEXT_PUBLIC_FIREBASE_KEYS=BOCfpA08vK6uxhMdRblnx9gPVBLx9WpTn9AutVNhHQQpVtXzDIKW0X6cmsNRaFDhyFDJfMqWjqC7mq6uDFIKU_M

+ 1 - 0
messages/br.json

@@ -373,6 +373,7 @@
     "1018": "The withdrawal channel is closed",
     "1019": "The amount of coding done is too small",
     "1020": "Too many withdrawals in the same day",
+    "1021": "The payment account is invalid",
     "1200":"Insufficient inventory",
     "1201": "",
     "1202":"",

+ 1 - 0
messages/en.json

@@ -370,6 +370,7 @@
     "1018": "The withdrawal channel is closed",
     "1019": "The amount of coding done is too small",
     "1020": "Too many withdrawals in the same day",
+    "1021": "The payment account is invalid",
     "1200":"Insufficient inventory",
     "1201": "",
     "1202":"",

+ 1 - 0
package.json

@@ -15,6 +15,7 @@
     "build:third": "node scripts/swEnv.js .env.third .env.local  && next build",
     "dev:hk": "node scripts/swEnv.js .env.hk .env.local  && next dev",
     "build:hk": "node scripts/swEnv.js .env.hk .env.local  && next build",
+    "build:br": "node scripts/swEnv.js .env.br .env.local  && next build",
     "start": "next start",
     "lint": "next lint",
     "build": "next build",

BIN
public/wheels/pointer.png


BIN
public/wheels/prizes-empty.png


BIN
public/wheels/prizes-goldcoin.png


BIN
public/wheels/prizes-money.png


+ 2 - 4
src/api/cashWheel.ts

@@ -1,7 +1,3 @@
-export interface Response {
-    total: number;
-}
-
 export interface Activity {
     /**
      * ID 编号
@@ -39,6 +35,8 @@ export interface WheelsType {
     activate: Activate;
     activities: Activity[];
     not_receive: NotReceive[];
+    total: number;
+    num: number;
 }
 
 /**

+ 124 - 64
src/app/[locale]/(navbar)/cashWheel/CashWheelClient.tsx

@@ -1,5 +1,6 @@
 "use client";
 
+import { WheelsType } from "@/api/cashWheel";
 import Box from "@/components/Box";
 import { Link } from "@/i18n/routing";
 import { useUserInfoStore } from "@/stores/useUserInfoStore";
@@ -10,9 +11,14 @@ import { Popup, Toast } from "antd-mobile";
 import clsx from "clsx";
 import { useTranslations } from "next-intl";
 import Image from "next/image";
-import { useRef, useState } from "react";
+import { createContext, FC, useContext, useRef, useState } from "react";
 import LotteryWheel from "./LotteryWheel";
 import styles from "./style.module.scss";
+interface Props {
+    wheel: WheelsType;
+}
+const WheelContext = createContext<Partial<WheelsType>>({});
+
 const CashMainCom = () => {
     return (
         <div className={`${styles.cashMain} ${styles.cashMain} ${styles.type1}`}>
@@ -170,6 +176,7 @@ const Report = () => {
 };
 const WheelWallet = () => {
     const user = useUserInfoStore((state) => state.userInfo);
+    const wheel = useContext(WheelContext);
     return (
         <Box className={"absolute top-0 w-[100%]"}>
             <div
@@ -186,42 +193,84 @@ const WheelWallet = () => {
                 </div>
                 <div className={"text-[0.3472rem] font-bold text-[#008213]"}>
                     R$
-                    <span>111</span>
+                    <span>{wheel.activate?.amount || 0}</span>
                 </div>
                 <div className={"mt-[0.2083rem] w-[100%] text-center text-[18px]"}>
                     <span className={"mr-[10px] text-[#008213]"}>Faltam para O saque</span>
-                    <span className={"text-[yellow]"}>R$9.36</span>
+                    <span className={"text-[yellow]"}>
+                        R${wheel.num! - wheel.activate?.amount! || 0}
+                    </span>
                 </div>
             </div>
         </Box>
     );
 };
+
+// 数据
+const blocks = [
+    {
+        padding: "0",
+        imgs: [
+            {
+                src: "/wheels/wheel.png",
+                width: "100%",
+                height: "100%",
+                rotate: true,
+            },
+        ],
+    },
+];
+const prizes = [
+    {
+        imgs: [
+            {
+                src: "/wheels/prizes-money.png",
+                top: "30%",
+                width: "0.3472rem",
+            },
+        ],
+    },
+    {
+        imgs: [
+            {
+                src: "/wheels/prizes-empty.png",
+                top: "30%",
+                width: "0.2778rem",
+            },
+        ],
+    },
+    { fonts: [{ text: "5000", top: "30%", fontColor: "#a47716", fontWeight: "bold" }] },
+    { fonts: [{ text: "1000", top: "30%", fontColor: "#a47716", fontWeight: "bold" }] },
+    { fonts: [{ text: "50", top: "30%", fontColor: "#a47716", fontWeight: "bold" }] },
+    { fonts: [{ text: "1", top: "30%", fontColor: "#a47716", fontWeight: "bold" }] },
+    {
+        imgs: [
+            {
+                src: "/wheels/prizes-empty.png",
+                top: "30%",
+                width: "0.2778rem",
+                height: "0.2778rem",
+            },
+        ],
+    },
+    {
+        imgs: [
+            {
+                src: "/wheels/prizes-money.png",
+                top: "30%",
+                width: "0.3472rem",
+            },
+        ],
+    },
+];
 const DrawMain = () => {
     const myLucky = useRef<any>();
     const desktopWheelRef = useRef<any>();
-    const [blocks] = useState([
-        {
-            padding: "0",
-            imgs: [
-                {
-                    src: "/wheels/wheel.png",
-                    width: "100%",
-                    height: "100%",
-                },
-            ],
-        },
-    ]);
-    const [prizes] = useState([
-        { fonts: [{ text: "0", top: "20%" }] },
-        { fonts: [{ text: "1", top: "20%" }] },
-        { fonts: [{ text: "2", top: "20%" }] },
-        { fonts: [{ text: "3", top: "20%" }] },
-        { fonts: [{ text: "4", top: "20%" }] },
-        { fonts: [{ text: "5", top: "20%" }] },
-        { fonts: [{ text: "6", top: "20%" }] },
-        { fonts: [{ text: "7", top: "20%" }] },
-    ]);
-    const [buttons] = useState([
+    const wheel = useContext(WheelContext);
+    console.log(`🚀🚀🚀🚀🚀-> in CashWheelClient.tsx on 213`, wheel);
+    const [count, setCount] = useState(0);
+
+    const [buttons, setButtons] = useState([
         {
             radius: "30%",
             imgs: [
@@ -231,12 +280,37 @@ const DrawMain = () => {
                     top: "-130%",
                 },
             ],
+            fonts: [
+                {
+                    text: count,
+                    top: -5,
+                    fontColor: "#ffdb0e",
+                    fontSize: "22px",
+                },
+            ],
         },
     ]);
-
     const [defaultConfig] = useState({
         offsetDegree: 20,
     });
+
+    const startRotate = () => {
+        // 点击抽奖按钮会触发star回调
+        myLucky.current?.play();
+        setTimeout(() => {
+            const index = (Math.random() * 6) >> 0;
+            myLucky.current?.stop(index);
+            setButtons((value) => {
+                const newValue = [...value];
+                newValue[0].fonts[0].text = index;
+                return newValue;
+            });
+        }, 2500);
+    };
+    const endRotate = (prize: any) => {
+        console.log(`🚀🚀🚀🚀🚀-> in CashWheelClient.tsx on 304`, prize);
+    };
+
     return (
         <div className={"relative"}>
             <WheelWallet />
@@ -284,18 +358,8 @@ const DrawMain = () => {
                                 defaultConfig={defaultConfig}
                                 prizes={prizes}
                                 buttons={buttons}
-                                onStart={() => {
-                                    // 点击抽奖按钮会触发star回调
-                                    myLucky.current?.play();
-                                    setTimeout(() => {
-                                        const index = (Math.random() * 6) >> 0;
-                                        myLucky.current?.stop(index);
-                                    }, 2500);
-                                }}
-                                onEnd={(prize: any) => {
-                                    // 抽奖结束会触发end回调
-                                    alert("恭喜你抽到 " + prize.fonts[0].text + " 号奖品");
-                                }}
+                                onStart={startRotate}
+                                onEnd={(prize: any) => endRotate(prize)}
                             />
                         </div>
                     </div>
@@ -345,18 +409,8 @@ const DrawMain = () => {
                                 defaultConfig={defaultConfig}
                                 prizes={prizes}
                                 buttons={buttons}
-                                onStart={() => {
-                                    // 点击抽奖按钮会触发star回调
-                                    desktopWheelRef.current?.play();
-                                    setTimeout(() => {
-                                        const index = (Math.random() * 6) >> 0;
-                                        desktopWheelRef.current?.stop(index);
-                                    }, 2500);
-                                }}
-                                onEnd={(prize: any) => {
-                                    // 抽奖结束会触发end回调
-                                    alert("恭喜你抽到 " + prize.fonts[0].text + " 号奖品");
-                                }}
+                                onStart={startRotate}
+                                onEnd={(prize: any) => endRotate(prize)}
                             />
                         </div>
                     </div>
@@ -366,8 +420,10 @@ const DrawMain = () => {
     );
 };
 const CountdownClient = () => {
+    const wheel = useContext(WheelContext);
+
     const [_, formattedRes] = useCountDown({
-        leftTime: 60 * 100000,
+        leftTime: wheel.activate?.end_time,
     });
     const { days, hours, minutes, seconds } = formattedRes;
     return (
@@ -554,20 +610,24 @@ const ShareClient = () => {
         </>
     );
 };
-const CashWheelClient = () => {
+
+const CashWheelClient: FC<Props> = (props) => {
+    const values = { ...props.wheel, num: 100 };
     return (
         <>
-            <DrawMain />
-            {/*倒计时*/}
-            <CountdownClient />
-            {/*分享*/}
-            <ShareClient />
-            <div className={styles.cashWheelClient}>
-                {/*<CashMainCom />*/}
-                {/*<DrawContent />*/}
-                <Report />
-                {/*<LotteryWheel />*/}
-            </div>
+            <WheelContext.Provider value={values}>
+                <DrawMain />
+                {/*倒计时*/}
+                <CountdownClient />
+                {/*分享*/}
+                <ShareClient />
+                <div className={styles.cashWheelClient}>
+                    {/*<CashMainCom />*/}
+                    {/*<DrawContent />*/}
+                    <Report />
+                    {/*<LotteryWheel />*/}
+                </div>
+            </WheelContext.Provider>
         </>
     );
 };

+ 11 - 7
src/app/[locale]/(navbar)/cashWheel/page.tsx

@@ -1,14 +1,18 @@
-import { BannerRep } from "@/api/home";
-import Empty from "@/components/Empty";
+import { WheelsType } from "@/api/cashWheel"; // 引入客户端组件
 import { server } from "@/utils/server";
-import CashWheelClient from "./CashWheelClient"; // 引入客户端组件
-
-
+import CashWheelClient from "./CashWheelClient";
 
+const getWheelApi = () => {
+    return server.request<WheelsType>({
+        url: "/v1/api/user/turntable/info",
+        method: "post",
+        data: {},
+    });
+};
 const CashWheel = async () => {
-    
+    const result = await getWheelApi();
     // 将数据传递给客户端组件
-    return <CashWheelClient />;
+    return <CashWheelClient wheel={result.data} />;
 };
 
 export default CashWheel;

+ 274 - 23
src/utils/constant.ts

@@ -1,80 +1,331 @@
 export const brandList = [
     {
-        gid: "0600003",
+        gid: "600001",
+        grand: "3f",
+    },
+
+    {
+        gid: "600002",
+        brand: "9f",
+    },
+    {
+        gid: "600003",
+        brand: "9f",
+    },
+    {
+        gid: "400001",
+        brand: "fac",
+    },
+    {
+        gid: "400002",
+        brand: "fac",
+    },
+    {
+        gid: "400003",
+        brand: "fac",
+    },
+    {
+        gid: "400004",
+        brand: "fac",
+    },
+
+    {
+        gid: "400005",
+        brand: "fac",
+    },
+    {
+        gid: "400006",
+        brand: "fac",
+    },
+    {
+        gid: "400007",
+        brand: "fac",
+    },
+    {
+        gid: "400008",
+        brand: "fac",
+    },
+    {
+        gid: "300001",
+        brand: "jili",
+    },
+    {
+        gid: "300002",
+        brand: "jili",
+    },
+    {
+        gid: "300003",
+        brand: "jili",
+    },
+    {
+        gid: "300004",
+        brand: "jili",
+    },
+    {
+        gid: "300005",
+        brand: "jili",
+    },
+    {
+        gid: "300006",
+        brand: "jili",
+    },
+    {
+        gid: "300007",
+        brand: "jili",
+    },
+    {
+        gid: "300008",
+        brand: "jili",
+    },
+    {
+        gid: "300009",
+        brand: "jili",
+    },
+    {
+        gid: "300010",
+        brand: "jili",
+    },
+    {
+        gid: "300011",
+        brand: "jili",
+    },
+    {
+        gid: "300012",
+        brand: "jili",
+    },
+    {
+        gid: "300013",
+        brand: "jili",
+    },
+    {
+        gid: "300014",
+        brand: "jili",
+    },
+    {
+        gid: "300015",
+        brand: "jili",
+    },
+    {
+        gid: "300016",
+        brand: "jili",
+    },
+    {
+        gid: "300017",
+        brand: "jili",
+    },
+    {
+        gid: "300018",
+        brand: "jili",
+    },
+    {
+        gid: "300019",
+        brand: "jili",
+    },
+    {
+        gid: "200001",
         brand: "pg",
     },
     {
-        gid: "0600004",
+        gid: "200002",
         brand: "pg",
     },
     {
-        gid: "0600005",
+        gid: "200003",
         brand: "pg",
     },
     {
-        gid: "0610002",
+        gid: "200004",
         brand: "pg",
     },
     {
-        gid: "0610003",
+        gid: "200005",
         brand: "pg",
     },
     {
-        gid: "0610004",
+        gid: "200006",
         brand: "pg",
     },
     {
-        gid: "2000003",
-        brand: "jili",
+        gid: "200007",
+        brand: "pg",
     },
     {
-        gid: "0600006",
-        brand: "jili",
+        gid: "200008",
+        brand: "pg",
     },
     {
-        gid: "0600007",
-        brand: "jili",
+        gid: "200009",
+        brand: "pg",
+    },
+    {
+        gid: "200010",
+        brand: "pg",
+    },
+    {
+        gid: "200011",
+        brand: "pg",
+    },
+    {
+        gid: "200012",
+        brand: "pg",
+    },
+    {
+        gid: "200013",
+        brand: "pg",
+    },
+    {
+        gid: "200014",
+        brand: "pg",
+    },
+    {
+        gid: "200015",
+        brand: "pg",
     },
     {
-        gid: "1610002",
-        brand: "",
+        gid: "200016",
+        brand: "pg",
     },
     {
-        gid: "1600001",
+        gid: "200017",
         brand: "pg",
     },
     {
-        gid: "1600002",
+        gid: "200018",
         brand: "pg",
     },
     {
-        gid: "1600003",
+        gid: "200019",
         brand: "pg",
     },
     {
-        gid: "1600004",
+        gid: "200020",
         brand: "pg",
     },
     {
-        gid: "1600005",
+        gid: "200024",
         brand: "pg",
     },
     {
-        gid: "1600006",
+        gid: "200026",
         brand: "pg",
     },
     {
-        gid: "1600007",
+        gid: "200030",
         brand: "pg",
     },
     {
-        gid: "1600008",
+        gid: "200037",
         brand: "pg",
     },
     {
-        gid: "1600009",
+        gid: "200039",
         brand: "pg",
     },
+    {
+        gid: "500001",
+        brand: "pl",
+    },
+    {
+        gid: "500002",
+        brand: "pl",
+    },
+    {
+        gid: "500003",
+        brand: "pl",
+    },
+    {
+        gid: "500004",
+        brand: "pl",
+    },
+    {
+        gid: "500005",
+        brand: "pl",
+    },
+    {
+        gid: "500006",
+        brand: "pl",
+    },
+    {
+        gid: "500007",
+        brand: "pl",
+    },
+    {
+        gid: "500008",
+        brand: "pl",
+    },
+    {
+        gid: "500009",
+        brand: "pl",
+    },
+    {
+        gid: "500010",
+        brand: "pl",
+    },
+    {
+        gid: "100001",
+        brand: "pp",
+    },
+
+    {
+        gid: "100002",
+        brand: "pp",
+    },
+    {
+        gid: "100004",
+        brand: "pp",
+    },
+    {
+        gid: "100005",
+        brand: "pp",
+    },
+    {
+        gid: "100006",
+        brand: "pp",
+    },
+    {
+        gid: "100007",
+        brand: "pp",
+    },
+    {
+        gid: "100008",
+        brand: "pp",
+    },
+    {
+        gid: "100009",
+        brand: "pp",
+    },
+    {
+        gid: "100010",
+        brand: "pp",
+    },
+    {
+        gid: "100011",
+        brand: "pp",
+    },
+    {
+        gid: "100012",
+        brand: "pp",
+    },
+    {
+        gid: "100013",
+        brand: "pp",
+    },
+    {
+        gid: "100014",
+        brand: "pp",
+    },
+    {
+        gid: "100015",
+        brand: "pp",
+    },
+    {
+        gid: "100017",
+        brand: "pp",
+    },
+    {
+        gid: "100018",
+        brand: "pp",
+    },
 ];
 
 export const vipImages = [