|
@@ -8,6 +8,7 @@ import {
|
|
|
ShopInfo,
|
|
|
ShopProductItem,
|
|
|
} from "@/api/depositsApi";
|
|
|
+import { BtnTypeEnum, BtnTypeMap } from "@/enums";
|
|
|
import { useRouter } from "@/i18n/routing";
|
|
|
import { formatAmount } from "@/utils/index";
|
|
|
import { Toast } from "antd-mobile";
|
|
@@ -48,12 +49,32 @@ const CardPage = () => {
|
|
|
try {
|
|
|
setLoading(true);
|
|
|
const res = await getShopInfoApi({ shop_id });
|
|
|
+
|
|
|
if (res?.code === 200 && res?.data?.products) {
|
|
|
+ let actKey = 0;
|
|
|
res.data.products.sort((a: any, b: any) => {
|
|
|
return a.pay - b.pay;
|
|
|
- }); //TODO: sort sho
|
|
|
+ });
|
|
|
+ const result = res.data.products.map((item: ShopProductItem, idx: number) => {
|
|
|
+ item.btnType = BtnTypeEnum.DISABLED;
|
|
|
+ //|| item.is_suss === -1
|
|
|
+ if (item.days <= 0) {
|
|
|
+ item.btnType = BtnTypeEnum.DEPOSITE;
|
|
|
+ }
|
|
|
+ if (!actKey && item.days > 0 && item.is_suss === 0) {
|
|
|
+ actKey = idx;
|
|
|
+ }
|
|
|
+ if (item.days > 0 && item.is_suss === 0) {
|
|
|
+ item.btnType = BtnTypeEnum.CANCLAIM;
|
|
|
+ }
|
|
|
|
|
|
- setShopInfo(res.data);
|
|
|
+ return item;
|
|
|
+ });
|
|
|
+ //自动滚动到第一个买了的商品
|
|
|
+ setTimeout(() => {
|
|
|
+ swiperRef.current?.slideToLoop(actKey, 0, false);
|
|
|
+ }, 100);
|
|
|
+ setShopInfo({ ...res.data, products: result || [] });
|
|
|
}
|
|
|
} finally {
|
|
|
setLoading(false);
|
|
@@ -81,9 +102,9 @@ const CardPage = () => {
|
|
|
const bounsAmount = boundsInfo?.amount || 0;
|
|
|
const bounsValue =
|
|
|
boundsInfo?.reward === 1 ? bounsAmount : (bounsAmount / 100) * itemData.pay_value;
|
|
|
- const amountAmount = boundsInfo?.amount || 0;
|
|
|
+ const amountAmount = amountInfo?.amount || 0;
|
|
|
const amountValue =
|
|
|
- boundsInfo?.reward === 1 ? amountAmount : (amountAmount / 100) * itemData.pay_value;
|
|
|
+ amountInfo?.reward === 1 ? amountAmount : (amountAmount / 100) * itemData.pay_value;
|
|
|
return {
|
|
|
amount: amountValue,
|
|
|
amountRollover: amountInfo?.rollover || 0,
|
|
@@ -97,7 +118,11 @@ const CardPage = () => {
|
|
|
Toast.show({ content: "Missing product ID" });
|
|
|
return;
|
|
|
}
|
|
|
- if (itemData.is_suss !== 0) {
|
|
|
+ if (itemData.btnType === BtnTypeEnum.DEPOSITE) {
|
|
|
+ router.push(`/deposit`);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (itemData.btnType !== BtnTypeEnum.CANCLAIM) {
|
|
|
return;
|
|
|
}
|
|
|
try {
|
|
@@ -185,7 +210,7 @@ const CardPage = () => {
|
|
|
"pr-[.12rem] pt-[.02rem] text-[.1rem]"
|
|
|
)}
|
|
|
>
|
|
|
- {item.is_suss > -1 && "Já foi comprado"}
|
|
|
+ {item.is_buy && "Já foi comprado"}
|
|
|
</div>
|
|
|
</div>
|
|
|
<div className={styles.cardContainerOut}>
|
|
@@ -258,76 +283,82 @@ const CardPage = () => {
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- {item.is_suss > -1 && (
|
|
|
- <div className={styles.lingqu}>
|
|
|
- <div
|
|
|
- className={clsx(
|
|
|
- styles.lingquTop,
|
|
|
- "text-[.15rem] font-bold text-[#e4292d]"
|
|
|
+ <div className={styles.lingqu}>
|
|
|
+ <div
|
|
|
+ className={clsx(
|
|
|
+ styles.lingquTop,
|
|
|
+ "text-[.15rem] font-bold text-[#e4292d]"
|
|
|
+ )}
|
|
|
+ >
|
|
|
+ Receba por dia
|
|
|
+ </div>
|
|
|
+ <div className={clsx(styles.lingquContent)}>
|
|
|
+ <div className={clsx(styles.lingquInfo)}>
|
|
|
+ {item.btnType === BtnTypeEnum.DEPOSITE && (
|
|
|
+ <>
|
|
|
+ <div className="text-center text-[.16rem] font-bold text-[#fffc03]">
|
|
|
+ Você ainda não comprou
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ className={styles.btn2}
|
|
|
+ onClick={() => doClaim(item)}
|
|
|
+ >
|
|
|
+ {BtnTypeMap.get(item.btnType)}
|
|
|
+ </div>
|
|
|
+ </>
|
|
|
)}
|
|
|
- >
|
|
|
- Receba por dia
|
|
|
- </div>
|
|
|
- <div className={clsx(styles.lingquContent)}>
|
|
|
- <div className={clsx(styles.lingquInfo)}>
|
|
|
- {item.id == 2 && (
|
|
|
- <>
|
|
|
- <div className="text-center text-[.16rem] font-bold text-[#fffc03]">
|
|
|
- Você ainda não comprou
|
|
|
- </div>
|
|
|
- <div className={styles.btn2}>
|
|
|
- comprar
|
|
|
- </div>
|
|
|
- </>
|
|
|
- )}
|
|
|
- {item.id !== 2 && (
|
|
|
- <>
|
|
|
- <div
|
|
|
- className={clsx(
|
|
|
- "text-[.18rem] font-bold",
|
|
|
- styles.receiveText
|
|
|
- )}
|
|
|
- >
|
|
|
- NUMERÁRIO {itemInfo.amount}R
|
|
|
- </div>
|
|
|
- <div
|
|
|
- className={clsx(
|
|
|
- "text-[.18rem]",
|
|
|
- styles.receiveText
|
|
|
- )}
|
|
|
- >
|
|
|
- +
|
|
|
- </div>
|
|
|
- <div
|
|
|
- className={clsx(
|
|
|
- "text-[.18rem] font-bold",
|
|
|
- styles.receiveText
|
|
|
- )}
|
|
|
- >
|
|
|
- BÔNUS {itemInfo.bouns}R
|
|
|
- </div>
|
|
|
- <div
|
|
|
- className={clsx(
|
|
|
- "mt-[.08rem] text-[.18rem] font-bold",
|
|
|
- styles.receiveText2
|
|
|
+ {item.btnType !== BtnTypeEnum.DEPOSITE && (
|
|
|
+ <>
|
|
|
+ <div
|
|
|
+ className={clsx(
|
|
|
+ "text-[.18rem] font-bold",
|
|
|
+ styles.receiveText
|
|
|
+ )}
|
|
|
+ >
|
|
|
+ NUMERÁRIO {itemInfo.amount}R
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ className={clsx(
|
|
|
+ "text-[.18rem]",
|
|
|
+ styles.receiveText
|
|
|
+ )}
|
|
|
+ >
|
|
|
+ +
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ className={clsx(
|
|
|
+ "text-[.18rem] font-bold",
|
|
|
+ styles.receiveText
|
|
|
+ )}
|
|
|
+ >
|
|
|
+ BÔNUS {itemInfo.bouns}R
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ className={clsx(
|
|
|
+ "mt-[.08rem] text-[.18rem] font-bold",
|
|
|
+ styles.receiveText2
|
|
|
+ )}
|
|
|
+ >
|
|
|
+ {item.days} DIAS RESTANTES
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ className={clsx(styles.btn, {
|
|
|
+ [styles.disabled]:
|
|
|
+ item.btnType ===
|
|
|
+ BtnTypeEnum.DISABLED,
|
|
|
+ })}
|
|
|
+ onClick={() => doClaim(item)}
|
|
|
+ >
|
|
|
+ {item.btnType != undefined &&
|
|
|
+ BtnTypeMap.get(
|
|
|
+ item.btnType
|
|
|
)}
|
|
|
- >
|
|
|
- {item.days} DIAS RESTANTES
|
|
|
- </div>
|
|
|
- <div
|
|
|
- className={styles.btn}
|
|
|
- onClick={() =>
|
|
|
- doClaim(item)
|
|
|
- }
|
|
|
- >
|
|
|
- Resgatar
|
|
|
- </div>
|
|
|
- </>
|
|
|
- )}
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ </>
|
|
|
+ )}
|
|
|
</div>
|
|
|
</div>
|
|
|
- )}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</SwiperSlide>
|