pujiaming 2 år sedan
förälder
incheckning
2a5ef8126d
5 ändrade filer med 27 tillägg och 27 borttagningar
  1. 6 6
      src/common/request.ts
  2. 11 12
      src/components/layout/header.vue
  3. 2 1
      src/store/user.ts
  4. 4 1
      src/views/home.vue
  5. 4 7
      src/views/login.vue

+ 6 - 6
src/common/request.ts

@@ -1,6 +1,6 @@
-import router from '@/router/index'
+// import router from '@/router/index'
 import axios from 'axios'
-
+import { ElMessage } from 'element-plus'
 const api = import.meta.env.VITE_API_HOST
 
 const instance = axios.create({
@@ -21,10 +21,10 @@ instance.interceptors.response.use(response => {
 }, err => {
   if (err.response.status === 401) {
     sessionStorage.removeItem('token')
-    // Message.error('登录状态已失效!请重新登录!')
-    setTimeout(() => {
-      router.push({ path: '/login' })
-    }, 1000)
+    ElMessage.error('登录状态已失效!请重新登录!')
+    // setTimeout(() => {
+    //   router.push({ path: '/login' })
+    // }, 1000)
   }
   return Promise.reject(err.response)
 })

+ 11 - 12
src/components/layout/header.vue

@@ -42,7 +42,7 @@
       </div>
       <div class="user">
         <span v-if="!user.isLogin" class="el-dropdown-link">
-          <img :src="getAssetsFile('gamer.png')" @click="loginFormVisible = true" />
+          <img :src="getAssetsFile('gamer.png')" @click="user.loginFormVisible = true" />
         </span>
 
         <el-dropdown v-else trigger="click" >
@@ -66,7 +66,7 @@
   </header>
   <div class="header-hidden"/>
   <el-dialog
-    v-model="loginFormVisible"
+    v-model="user.loginFormVisible"
     :center="true"
     title="登录"
     style="min-width: 24rem;max-width: 25rem;"
@@ -111,13 +111,10 @@
             <el-input v-model="loginForm.account"  type="text" placeholder="请输入手机号" clearable :prefix-icon="Cellphone" />
           </el-form-item>
           <el-form-item label="" prop="smsCaptcha">
-            <el-input v-model="loginForm.smsCaptcha" type="number" placeholder="请输入验证码" :prefix-icon="Lock">
-              <template #append>
-                <div>
-                  <el-button @click="getCaptcha" type="primary" style="width: 100px;" :disabled ="!can_send">{{smsMessage}}</el-button>
-                </div>
-              </template>
-            </el-input>
+            <div style="display: flex;align-items: center;justify-content: space-between;width: 100%;">
+              <el-input v-model="loginForm.smsCaptcha"  type="number" placeholder="请输入验证码" :prefix-icon="Lock"/>
+              <el-button @click="getCaptcha" type="primary"  style="width: 100px;" :disabled ="!can_send">{{smsMessage}}</el-button>
+            </div>
           </el-form-item>
         </template>
         <!-- <el-form-item style="margin-top:-10px;margin-bottom:-5px;">
@@ -191,6 +188,8 @@ onMounted(() => {
   if (token) {
     user.isLogin = true
     user.getUserProfile()
+  } else {
+    user.isLogin = false
   }
 })
 
@@ -292,7 +291,7 @@ const toPath = (url: any) => {
 }
 declare let md5: any
 
-const loginFormVisible = ref<boolean>(false)
+// const loginFormVisible = ref<boolean>(false)
 const rules = reactive<FormRules>({
   account: [
     { required: true, message: '请输入账号', trigger: 'blur' },
@@ -381,7 +380,7 @@ const submitForm = async(formEl: FormInstance | undefined) => {
             sessionStorage.setItem('account', loginForm.account)
             localStorage.setItem('from', '1')
             user.isLogin = true
-            loginFormVisible.value = false
+            user.loginFormVisible = false
             await user.getUserProfile()
             // 跳转我的游戏页面
             setTimeout(() => {
@@ -408,7 +407,7 @@ const submitForm = async(formEl: FormInstance | undefined) => {
             sessionStorage.setItem('account', loginForm.account)
             localStorage.setItem('from', '2')
             user.isLogin = true
-            loginFormVisible.value = false
+            user.loginFormVisible = false
             await user.getUserProfile()
             setTimeout(() => {
               router.push({ path: '/my_game', query: { account: loginForm.account }})

+ 2 - 1
src/store/user.ts

@@ -16,7 +16,8 @@ export const user = defineStore('user', {
         { text: '分类', value: 2, url: '/cate' },
         { text: '我的游戏', value: 3, url: '/my_game' }
       ],
-      isLogin: false
+      isLogin: false,
+      loginFormVisible: false
     }
   },
   getters: {

+ 4 - 1
src/views/home.vue

@@ -90,7 +90,7 @@
           </div>
         </el-card>
       </div>
-      <div v-else class="money" @click="router.push('/login')">
+      <div v-else class="money" @click="login">
         <el-card shadow="hover">请登录</el-card>
       </div>
     </div>
@@ -210,6 +210,9 @@ const isLoading = ref<boolean>(true)
 const tagArr = ref<any[]>([])
 const listSwiper: any = ref([])
 
+const login = () => {
+  user.loginFormVisible = true
+}
 onMounted(async() => {
   getIndexGameHot().then(res => {
     console.log('热门游戏', res.data)

+ 4 - 7
src/views/login.vue

@@ -40,13 +40,10 @@
             <el-input v-model="loginForm.account"  type="text" placeholder="请输入手机号" clearable :prefix-icon="Cellphone" />
           </el-form-item>
           <el-form-item label="" prop="smsCaptcha">
-            <el-input v-model="loginForm.smsCaptcha" type="number" placeholder="请输入验证码" :prefix-icon="Lock">
-              <template #append>
-                <div>
-                  <el-button @click="getCaptcha" type="primary" style="width: 100px;" :disabled ="!can_send">{{smsMessage}}</el-button>
-                </div>
-              </template>
-            </el-input>
+            <div style="display: flex;align-items: center;justify-content: space-between;width: 100%;">
+              <el-input v-model="loginForm.smsCaptcha" type="number" placeholder="请输入验证码" :prefix-icon="Lock"/>
+              <el-button @click="getCaptcha" type="primary" style="width: 100px;" :disabled ="!can_send">{{smsMessage}}</el-button>
+            </div>
           </el-form-item>
         </template>
         <!-- <el-form-item style="margin-top:-10px;margin-bottom:-5px;">