|
@@ -2,7 +2,7 @@
|
|
|
import { GameListRep } from "@/api/home";
|
|
|
import { userInfoApi } from "@/api/login";
|
|
|
import { Wallet } from "@/api/user";
|
|
|
-import { ChannelType, getWithDrawApi, WithDrawType } from "@/api/withdraw";
|
|
|
+import { ChannelType, getWithDrawApi, WithDrawParams, WithDrawType } from "@/api/withdraw";
|
|
|
import { clearWallet } from "@/app/[locale]/(navbar)/withdraw/actions";
|
|
|
import Box from "@/components/Box";
|
|
|
import ButtonOwn from "@/components/ButtonOwn";
|
|
@@ -115,7 +115,9 @@ const WithdrawWidget: FC<Props> = (props) => {
|
|
|
|
|
|
const score = useWalletStore((state) => state.score)!;
|
|
|
|
|
|
+ // 彩金
|
|
|
const withdrawRef = useRef<ModalProps>(null);
|
|
|
+ const bounsModalRef = useRef<ModalProps>(null);
|
|
|
// 积分
|
|
|
const scoreRef = useRef<ModalProps>(null);
|
|
|
// 未完成游戏
|
|
@@ -125,8 +127,6 @@ const WithdrawWidget: FC<Props> = (props) => {
|
|
|
const formRef = useRef<FormInstance>(null);
|
|
|
|
|
|
// 是否能提现
|
|
|
- const [isPay, setIsPay] = useState(false);
|
|
|
-
|
|
|
const [activeWallet, setActiveWallet] = useState<WithDrawType>(channels[0]);
|
|
|
const walletAction =
|
|
|
activeWallet &&
|
|
@@ -143,7 +143,7 @@ const WithdrawWidget: FC<Props> = (props) => {
|
|
|
passport: userInfo.passport,
|
|
|
user_name: userInfo.user_name,
|
|
|
};
|
|
|
- const paramsTarget = useRef<any>(null);
|
|
|
+ const paramsTarget = useRef<WithDrawParams | null>(null);
|
|
|
|
|
|
const AmountValidator = (rules: any, value: string) => {
|
|
|
const num = +value;
|
|
@@ -189,26 +189,31 @@ const WithdrawWidget: FC<Props> = (props) => {
|
|
|
|
|
|
const { data } = await userInfoApi();
|
|
|
|
|
|
+ // 如果有未完成游戏
|
|
|
if (data.play_list && data.play_list.length > 0) {
|
|
|
game.current = data.play_list[0];
|
|
|
gameModelRef.current?.onOpen();
|
|
|
return;
|
|
|
}
|
|
|
- paramsTarget.current = params;
|
|
|
+ // 如果彩金 || 彩金打码量不为0
|
|
|
if (
|
|
|
- flatPoint(wallet.target_point_rollover - wallet.current_point_rollover) !== 0 &&
|
|
|
- !isPay
|
|
|
+ flatPoint(wallet.target_point_rollover - wallet.current_point_rollover) > 0 ||
|
|
|
+ (wallet.point || 0) > 0
|
|
|
) {
|
|
|
- withdrawRef.current?.onOpen();
|
|
|
- setIsPay(true);
|
|
|
+ paramsTarget.current = params;
|
|
|
+ bounsModalRef.current?.onOpen();
|
|
|
return;
|
|
|
}
|
|
|
+ extractHandler(params);
|
|
|
+ };
|
|
|
+ const extractHandler = async (params: WithDrawParams) => {
|
|
|
const withResult = await getWithDrawApi(params).catch((error) => {
|
|
|
Toast.show(t(`code.${error.data.code}`));
|
|
|
});
|
|
|
if (withResult && withResult.code === 200) {
|
|
|
Toast.show(t("code.200"));
|
|
|
}
|
|
|
+
|
|
|
await clearWallet();
|
|
|
};
|
|
|
|
|
@@ -444,24 +449,61 @@ const WithdrawWidget: FC<Props> = (props) => {
|
|
|
{/*彩金*/}
|
|
|
<TipsModal
|
|
|
title={
|
|
|
- isPay ? (
|
|
|
- <div className={"text-left text-[0.12rem] font-medium text-[#666]"}>
|
|
|
- Retirar bem sucedido, seu dinheiro de prémio será limpo. Você tem
|
|
|
- certeza?
|
|
|
- </div>
|
|
|
- ) : (
|
|
|
+ <div className={"flex items-center"}>
|
|
|
+ <i
|
|
|
+ className={"iconfont icon-liwuhuodong mr-[0.0694rem] text-[0.2778rem]"}
|
|
|
+ ></i>
|
|
|
+ {t("WithdrawPage.pointTitle")}
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ ref={withdrawRef}
|
|
|
+ >
|
|
|
+ <ul>
|
|
|
+ <li className={"mb-[0.0694rem]"}>
|
|
|
+ <span>{t("WithdrawPage.pointTips")}</span>
|
|
|
+ <span>{wallet.point}</span>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
<div className={"flex items-center"}>
|
|
|
- <i
|
|
|
- className={
|
|
|
- "iconfont icon-liwuhuodong mr-[0.0694rem] text-[0.2778rem]"
|
|
|
- }
|
|
|
- ></i>
|
|
|
- {t("WithdrawPage.pointTitle")}
|
|
|
+ <ProgressBar
|
|
|
+ percent={percentage(
|
|
|
+ wallet.current_point_rollover,
|
|
|
+ wallet.target_point_rollover
|
|
|
+ )}
|
|
|
+ className={"mr-[0.0694rem] flex-1"}
|
|
|
+ style={{
|
|
|
+ "--fill-color": "#fb8b05",
|
|
|
+ "--track-width": "0.0694rem",
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ <span>
|
|
|
+ {percentage(
|
|
|
+ wallet.current_point_rollover,
|
|
|
+ wallet.target_point_rollover
|
|
|
+ )}
|
|
|
+ %
|
|
|
+ </span>
|
|
|
</div>
|
|
|
- )
|
|
|
+
|
|
|
+ <div>
|
|
|
+ <span>{t("WithdrawPage.pointBet")}</span>
|
|
|
+ <span>
|
|
|
+ {flatPoint(
|
|
|
+ wallet.target_point_rollover - wallet.current_point_rollover
|
|
|
+ )}
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </TipsModal>
|
|
|
+ {/*含有彩金提现拦截*/}
|
|
|
+ <TipsModal
|
|
|
+ title={
|
|
|
+ <div className={"text-left text-[0.12rem] font-medium text-[#666]"}>
|
|
|
+ Retirar bem sucedido, seu dinheiro de prémio será limpo. Você tem certeza?
|
|
|
+ </div>
|
|
|
}
|
|
|
- ref={withdrawRef}
|
|
|
- onBeforeClose={() => setIsPay(false)}
|
|
|
+ ref={bounsModalRef}
|
|
|
>
|
|
|
<ul>
|
|
|
<li className={"mb-[0.0694rem]"}>
|
|
@@ -499,34 +541,35 @@ const WithdrawWidget: FC<Props> = (props) => {
|
|
|
</span>
|
|
|
</div>
|
|
|
|
|
|
- {isPay ? (
|
|
|
- <div className={"mt-[20px] flex justify-around"}>
|
|
|
- <Button
|
|
|
- color={"default"}
|
|
|
- fill={"none"}
|
|
|
- style={{
|
|
|
- "--text-color": "var(--primary-color)",
|
|
|
- }}
|
|
|
- onClick={() => {
|
|
|
- setIsPay(false);
|
|
|
- withdrawRef.current?.onClose();
|
|
|
- }}
|
|
|
- >
|
|
|
- cancelar
|
|
|
- </Button>
|
|
|
- <Button
|
|
|
- color={"primary"}
|
|
|
- className={"ml-[30px]"}
|
|
|
- style={{
|
|
|
- "--background-color": "var(--primary-color)",
|
|
|
- "--border-color": "var(--primary-color)",
|
|
|
- }}
|
|
|
- onClick={() => onFinish(paramsTarget.current)}
|
|
|
- >
|
|
|
- confirmação
|
|
|
- </Button>
|
|
|
- </div>
|
|
|
- ) : null}
|
|
|
+ <div className={"mt-[20px] flex justify-around"}>
|
|
|
+ <Button
|
|
|
+ color={"default"}
|
|
|
+ fill={"none"}
|
|
|
+ style={{
|
|
|
+ "--text-color": "var(--primary-color)",
|
|
|
+ }}
|
|
|
+ onClick={() => {
|
|
|
+ bounsModalRef.current?.onClose();
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ cancelar
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ color={"primary"}
|
|
|
+ className={"ml-[30px]"}
|
|
|
+ style={{
|
|
|
+ "--background-color": "var(--primary-color)",
|
|
|
+ "--border-color": "var(--primary-color)",
|
|
|
+ }}
|
|
|
+ onClick={() => {
|
|
|
+ // 关闭彩金弹窗
|
|
|
+ bounsModalRef.current?.onClose();
|
|
|
+ extractHandler(paramsTarget.current!);
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ confirmação
|
|
|
+ </Button>
|
|
|
+ </div>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</TipsModal>
|