Преглед изворни кода

fix: 完成登录页面功能

yuanmingze пре 8 месеци
родитељ
комит
074800e91b
3 измењених фајлова са 28 додато и 10 уклоњено
  1. 21 3
      src/pages/index/index.vue
  2. 6 4
      src/pages/login/index.vue
  3. 1 3
      src/stores/modules/user.ts

+ 21 - 3
src/pages/index/index.vue

@@ -1,10 +1,28 @@
 <template>
-  <view class="content"> </view>
+  <view class="content"></view>
 </template>
 
 <script setup lang="ts">
-uni.reLaunch({
-  url: '/pages/login/index',
+import { onMounted } from 'vue'
+import { storeToRefs } from 'pinia'
+
+import { useUserStore } from '@/stores/modules/user'
+
+const userStore = useUserStore()
+const { currentUserInfo } = storeToRefs(userStore)
+
+onMounted(() => {
+  if (currentUserInfo.value) {
+    // 已登录 → 进入首页
+    uni.reLaunch({
+      url: '/pages/index/index',
+    })
+  } else {
+    // 未登录 → 去登录页
+    uni.reLaunch({
+      url: '/pages/login/index',
+    })
+  }
 })
 </script>
 

+ 6 - 4
src/pages/login/index.vue

@@ -179,12 +179,12 @@ const sendCodeImpl = async () => {
   ])
 
   if (!usernameOk || !passwordOk) return
-
+  uni.showLoading()
   const res = await getAuthTokenApi({
     username: form.username,
     password: form.password,
   })
-
+  uni.hideLoading()
   if (res.access_token) {
     const codeRes = await getMobileCodeApi(form.username)
     if (codeRes.code === 0) {
@@ -212,6 +212,8 @@ const submit = async () => {
   const formOk = await validate()
   if (!agreementOk || !formOk) return
 
+  uni.showLoading()
+
   const res = await userStore.login({
     username: form.username,
     code: form.code,
@@ -226,6 +228,8 @@ const submit = async () => {
     })
     return
   }
+
+  uni.hideLoading()
   uni.reLaunch({
     url: '/pages/index/index',
   })
@@ -243,5 +247,3 @@ const forgetPassword = () => {
 <style lang="scss" scoped>
 @import '../../styles/modules/auth-page.scss';
 </style>
-
-当前页面 重构 登录请求必须继续放在 agreePrivacyAuthorization 事件中触发

+ 1 - 3
src/stores/modules/user.ts

@@ -13,7 +13,6 @@ import type { UserInfoItem } from '@/services/modules/auth/userInfo'
 import { uniStorage } from '@/utils/uniStorage'
 
 interface UserState {
-  token: string
   access_token?: string
   currentUserInfoIndex?: number
   userInfoList: UserInfoItem[]
@@ -22,7 +21,6 @@ interface UserState {
 
 export const useUserStore = defineStore('user', {
   state: (): UserState => ({
-    token: '',
     access_token: '',
     currentUserInfoIndex: 0,
     userInfoList: [],
@@ -80,6 +78,6 @@ export const useUserStore = defineStore('user', {
   persist: {
     key: 'user-store',
     storage: uniStorage,
-    pick: ['token', 'access_token', 'currentUserInfoIndex', 'userInfoList', 'isBlacklisted'],
+    pick: ['access_token', 'currentUserInfoIndex', 'userInfoList', 'isBlacklisted'],
   },
 })