Ver código fonte

feat: 增加请求拦截, 修改跳转方式

Before 1 ano atrás
pai
commit
95f4a41a69

+ 4 - 0
.env

@@ -0,0 +1,4 @@
+
+BASE_URL=http://206.168.191.125:8800
+
+

+ 2 - 1
messages/br.json

@@ -39,7 +39,8 @@
   "Header": {
     "login": "Login",
     "register": "Cadastre-se",
-    "locale": "Preferência de Localização"
+    "locale": "Preferência de Localização",
+    "deposit": "Depósito"
   },
   "Game": {
     "demo":"Demo",

+ 1 - 0
next.config.mjs

@@ -7,6 +7,7 @@ const withNextIntl = createNextIntlPlugin();
 const nextConfig = {
   reactStrictMode: true,
   transpilePackages: ['antd-mobile'],
+
   sassOptions: {
     prependData: `@import "./src/styles/variables.scss";`
   },

BIN
public/logo.png


+ 1 - 0
src/components/Card/SwiperGroup.tsx

@@ -49,6 +49,7 @@ const HomeSwiper: FC<PropsWithChildren<SwiperGroupProps>> = (props) => {
         },
         "mb-[0.11rem]"
     );
+    if (!group.game_list) return;
     const swiperData = Array(Math.ceil(group.game_list!.length / page))
         .fill(0)
         .map((_, index) => {

Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 1
src/components/Header/HerderTitle.tsx


+ 19 - 9
src/components/Header/index.tsx

@@ -21,6 +21,7 @@ const DefaultHeader: FC<HeaderProps> = (props) => {
     const { menuHandler } = props;
     const t = useTranslations("Header");
     const state = useGlobalStore();
+
     return (
         <div className={styles.headerMain}>
             <div className={styles.headerLeft} onClick={menuHandler}>
@@ -30,17 +31,26 @@ const DefaultHeader: FC<HeaderProps> = (props) => {
             <div className={styles.headerRight}>
                 <div className={styles.right}>
                     {state.userInfo ? (
-                        <div className={"flex items-center text-[0.12rem]"}>
-                            <i className={"iconfont icon-yonghu mr-[0.03rem]"}></i>
-                            <span>0.00</span>
-                        </div>
+                        <>
+                            <Link href={"/profile"}>
+                                <div className={"flex items-center text-[0.12rem]"}>
+                                    <i className={"iconfont icon-yonghu mr-[0.03rem]"}></i>
+                                    <span>0.00</span>
+                                </div>
+                            </Link>
+
+                            <Link href={"/deposit"} className={styles.rightActive}>
+                                {t("deposit")}
+                            </Link>
+                        </>
                     ) : (
-                        <Link href={"/login"}>{t("login")}</Link>
+                        <>
+                            <Link href={"/login?redirect=/withdraw"}>{t("login")}</Link>
+                            <Link href={"/login?redirect=/withdraw"} className={styles.rightActive}>
+                                {t("register")}
+                            </Link>
+                        </>
                     )}
-
-                    <Link href={"/login"} className={styles.rightActive}>
-                        {t("register")}
-                    </Link>
                 </div>
             </div>
         </div>

+ 1 - 1
src/components/Header/style.module.scss

@@ -44,7 +44,7 @@
       color: #fff;
       align-items: center;
       img{
-        height: .18rem;
+        height: 0.1389rem;
       }
       .title{
         font-size: .24rem;

+ 0 - 1
src/i18n.ts

@@ -3,7 +3,6 @@ import { getRequestConfig } from "next-intl/server";
 import { notFound } from "next/navigation";
 
 const modulesFiles = require.context("../messages", true, /\.json$/);
-console.log(`🎯🎯🎯🎯🎯-> in i18n.ts on 6`);
 export const locales = modulesFiles.keys().map((modulePath: string) => {
     return modulePath.replace(/^\.\/(.*)\.\w+$/, "$1");
 });

+ 1 - 1
src/utils/server/axios.ts

@@ -99,7 +99,7 @@ export default class Request {
                     if (transform && transform.responseInterceptor) {
                         res = transform.responseInterceptor(res);
                     }
-                    resolve(res.data);
+                    resolve(res?.data);
                 })
                 .catch((error) => {
                     reject(error);

+ 14 - 2
src/utils/server/index.ts

@@ -1,8 +1,11 @@
+"use client";
 import Request from "./axios";
+
+const BASE_URL = process.env.BASE_URL;
+console.log(`🎯🎯🎯🎯🎯-> in index.ts on 5`, process);
 const server = new Request({
     timeout: 10 * 1000,
-    // baseURL: "http://127.0.0.1:4523/m1/4790544-4444647-default",
-    baseURL: "http://192.168.0.66:6060",
+    baseURL: "http://206.168.191.125:8800",
     transform: {
         // instance  interceptor
         requestInterceptor: (config) => {
@@ -15,6 +18,15 @@ const server = new Request({
             return config;
         },
         responseInterceptorCatch: (err) => {
+            const { response } = err;
+            // @ts-ignore
+            const { code } = response!.data;
+            switch (code) {
+                case 401:
+                    window && (location.href = "/br/login");
+                    break;
+            }
+
             return err;
         },
     },

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff