Browse Source

feat: 修改代码

year 3 tháng trước cách đây
mục cha
commit
86b8ce8d69

+ 2 - 2
src/api/user.ts

@@ -276,11 +276,11 @@ export interface Wallet {
     /**
      * 免费币最大提现金额
      */
-    free_transfer_max?:number
+    free_transfer_max?: number;
     /**
      * 重玩币最小提现金额
      */
-    lose_transfer_max?:number
+    lose_transfer_max?: number;
 }
 // 前台用户获取金额信息
 export const getUserMoneyApi = () => {

+ 39 - 9
src/app/[locale]/(TabBar)/[[...share]]/@actionWidget/Service.tsx

@@ -1,14 +1,14 @@
 "use client";
+import { getWheelApi } from "@/api/cashWheel";
 import { ServiceTypes } from "@/api/customservice";
+import { userInfoApi } from "@/api/login";
 import { lredPacketApi, redPacketApi } from "@/api/promo";
+import { getGiveInfoApi } from "@/api/slots";
 import UserRecharge, { ModalRefProps, Timeout } from "@/components/ModalPopup/RechargeModal";
 import RedPacketModal, { RedPacketModalProps } from "@/components/ModalPopup/RedPacketModal";
+import SignInModal, { SignInModalProps } from "@/components/ModalPopup/SignInModal";
 import SlotsModal, { SlotModalRefProps } from "@/components/ModalPopup/SlotsModal";
 import WheelModal, { WheelModalProps } from "@/components/ModalPopup/WheelModal";
-
-import { getWheelApi } from "@/api/cashWheel";
-import { getGiveInfoApi } from "@/api/slots";
-import SignInModal, { SignInModalProps } from "@/components/ModalPopup/SignInModal";
 import { useEventPoint } from "@/hooks/useEventPoint";
 import { Link } from "@/i18n/routing";
 import { useFirstPayStore } from "@/stores/useFirstPayStore";
@@ -20,7 +20,7 @@ import { useRequest } from "ahooks";
 import { Badge } from "antd-mobile";
 import { useTranslations } from "next-intl";
 import Image from "next/image";
-import { FC, useEffect, useRef } from "react";
+import { FC, useEffect, useRef, useState } from "react";
 
 interface Props {
     services: ServiceTypes[];
@@ -290,11 +290,23 @@ const CustomerSection: FC<Omit<Props, "socials">> = (props) => {
     );
 };
 
+const getMaxSignId = (obj: any) => {
+    if (!obj) return null;
+    const signArr: number[] = [];
+    Object.keys(obj).map((key) => {
+        if (obj[key] === 9) {
+            signArr.push(Number(key));
+        }
+    });
+    return signArr.length > 0 ? Math.max(...signArr) : null;
+};
+
 /**
  * 签到活动
  */
 const SignInSection: FC = () => {
     const SignInRef = useRef<SignInModalProps>(null);
+    const [activityId, setActivityId] = useState<number | null>(null);
 
     const { getSignData, signData } = useSignStore((state) => {
         return {
@@ -302,16 +314,34 @@ const SignInSection: FC = () => {
             signData: state.signData,
         };
     });
+    const getUserInfo = async () => {
+        const res: any = await userInfoApi();
+        if (res.code === 200 && res.data?.activity) {
+            const activity_id = getMaxSignId(res.data?.activity);
+            if (activity_id) {
+                setActivityId(activity_id);
+                await getSignData({ activity_id: activity_id });
+                setTimeout(() => {
+                    signInHandle();
+                }, 1000);
+            }
+        }
+    };
+
     useEffect(() => {
-        getSignData({ activity_id: 20 });
+        getUserInfo();
     }, []);
 
     const signInHandle = () => {
         SignInRef.current?.onOpen();
     };
+
+    if (!activityId) {
+        return null;
+    }
     return (
         <>
-            <div
+            {/* <div
                 className={
                     "mt-[0.2778rem] flex h-[0.54rem] w-[0.54rem] items-center justify-center" +
                     " rounded-[50%]" +
@@ -320,7 +350,7 @@ const SignInSection: FC = () => {
                 onClick={signInHandle}
             >
                 Sign
-            </div>
+            </div> */}
             <SignInModal ref={SignInRef}></SignInModal>
         </>
     );
@@ -365,7 +395,7 @@ const ServiceWidget: FC<Props> = (props) => {
                 {/*客服*/}
                 <CustomerSection services={services} />
                 {/* 签到 */}
-                {/* <SignInSection /> */}
+                <SignInSection />
             </div>
 
             <div

+ 7 - 3
src/app/[locale]/(doings)/signIn/page.tsx

@@ -131,8 +131,12 @@ const SignIn: FC = () => {
                 <div className="absolute top-[2.9727rem] w-[100%]">
                     {/* 右上角文本 */}
                     <div className="absolute right-[0.1rem] top-0 z-50 h-[0.32rem] w-[20%] text-center text-[0.11rem] font-bold text-[white]">
-                        <p className={"h-[0.16rem]"}>CountDown</p>
-                        <p className={"h-[0.16rem] text-[yellow]"}>Day 20</p>
+                        <p className={"h-[0.16rem]"}>
+                            {signData?.cur_num ? signData?.cur_num + 1 : 0}
+                        </p>
+                        <p className={"h-[0.16rem] text-[yellow]"}>
+                            Day {signData?.list?.length || 0}
+                        </p>
                     </div>
                     <img
                         src="/signDetails/bg3.png"
@@ -141,7 +145,7 @@ const SignIn: FC = () => {
                     />
                     {/* 免费盒子 */}
                     <div className="mt-[0.4227rem]">
-                        <BoxListCom num={27} type="page" />
+                        <BoxListCom type="page" />
                     </div>
                     {/* 充值盒子 */}
                     {/* <div className="h-[1.3273rem]">

+ 13 - 5
src/components/ModalPopup/SignInModal/index.tsx

@@ -12,14 +12,13 @@ export interface SignInModalProps {
 }
 interface BoxParams {
     startDays?: number;
-    num: number;
     type?: "page" | "modal";
 }
 interface BoxList {
     handleOpening: (index: number) => void;
 }
 export const BoxListCom = forwardRef<BoxList, BoxParams>(function BoxListCom(
-    { startDays = 1, num, type = "modal" }: BoxParams,
+    { startDays = 1, type = "modal" }: BoxParams,
     ref
 ) {
     const signData = useSignStore((state) => state.signData);
@@ -172,7 +171,9 @@ export const PayBoxList: FC<PayProps> = ({ type = "modal" }) => {
 
 const SignInModal = forwardRef(function SignInModal(props, ref) {
     const [visible, setVisible] = useState(false);
+
     const signData = useSignStore((state) => state.signData);
+    const activity_id = useSignStore((state) => state.activity_id);
 
     const totalData = signData.list;
     const isSignNum = totalData?.reduce((pre, cur) => (cur.is_suss ? pre + 1 : pre), 0);
@@ -186,6 +187,7 @@ const SignInModal = forwardRef(function SignInModal(props, ref) {
             onOpen: () => setVisible(true),
         };
     });
+
     return (
         <>
             <Mask visible={visible} destroyOnClose={true} onMaskClick={() => setVisible(false)}>
@@ -239,15 +241,21 @@ const SignInModal = forwardRef(function SignInModal(props, ref) {
                                         {/* 签到body */}
                                         <div className="absolute left-0 top-0 w-[100%]">
                                             <div className="relative mt-[0.51rem] w-[100%]">
-                                                <BoxListCom num={15} ref={boxRef} />
+                                                <BoxListCom ref={boxRef} />
                                                 <div
                                                     className="mt-[0.25rem] flex h-[0.62rem] justify-center"
                                                     onClick={() => {
-                                                        router.push("/signIn");
+                                                        router.push(
+                                                            `/signin?activity_id=${activity_id}`
+                                                        );
                                                     }}
                                                 >
                                                     <img
-                                                        src="/sign/button_signed.png"
+                                                        src={
+                                                            signData?.is_op
+                                                                ? "/sign/button.png"
+                                                                : "/sign/button_signed.png"
+                                                        }
                                                         className={"h-[100%]"}
                                                         alt=""
                                                     />

+ 10 - 2
src/stores/useSignStore.ts

@@ -61,6 +61,8 @@ export interface SignType {
     type: number;
 
     cur_num: number;
+
+    is_op: boolean;
 }
 
 export interface List {
@@ -103,6 +105,7 @@ export interface List {
 }
 interface State {
     signData: Partial<SignType>;
+    activity_id: string | number;
 }
 
 interface Action {
@@ -111,6 +114,7 @@ interface Action {
 
 const initState: State = {
     signData: {},
+    activity_id: 0,
 };
 const getSignDetailsApi = (data: { activity_id: number }) => {
     return server.post<SignType | []>({
@@ -121,7 +125,7 @@ const getSignDetailsApi = (data: { activity_id: number }) => {
 export const useSignStore = create<State & Action>()((set, get) => {
     return {
         ...initState,
-        getSignData: (data) => {
+        getSignData: async (data) => {
             if (Object.keys(get().signData).length === 0 && getToken()) {
                 getSignDetailsApi(data).then((res) => {
                     const resultData: any = Array.isArray(res.data) ? {} : res.data;
@@ -130,7 +134,11 @@ export const useSignStore = create<State & Action>()((set, get) => {
                             return a.id - b.id;
                         });
                     }
-                    set((value) => ({ ...value, signData: resultData }));
+                    set((value) => ({
+                        ...value,
+                        activity_id: data.activity_id,
+                        signData: resultData,
+                    }));
                 });
             }
         },