修改获取用户基础信息的位置

This commit is contained in:
2021-09-22 12:02:44 +08:00
parent 65b47d65eb
commit 1228dfc97b
6 changed files with 28 additions and 22 deletions

View File

@@ -1,10 +1,15 @@
import { BaseInfo } from '@/types/user'
import { BaseInfo, UserIndex } from '@/types/user'
import request from '@/utils/request'
const index = (): Promise<UserIndex> => {
return request.get('user')
}
const info = (): Promise<BaseInfo> => {
return request.get('user/info')
}
export default {
index,
info
}

View File

@@ -55,7 +55,7 @@ router.beforeEach((to, from, next) => {
if (to.name !== 'AuthLogin' && to.meta.requiresAuth && !isAuthenticated) {
next({ name: 'AuthLogin', query: { to: to.path }})
} else if (isAuthenticated && (to.name == 'AuthLogin' || to.name == 'AuthRegister')) {
next({ name: 'Home' })
next({ name: 'User' })
} else {
next()
}

View File

@@ -1,4 +1,4 @@
import { auth } from '@/api'
import { auth, user } from '@/api'
import { PERSISTED_KEY, State } from '@/store'
import { LoginData } from '@/types/auth'
import { Module } from 'vuex'
@@ -16,6 +16,9 @@ export default {
commit('setAccessToken', response, { root: true })
// 刷新用户中心页面
commit('refresh/setUser', true, { root: true })
user.info().then(info => {
commit('setUserInfo', info, { root: true })
})
resolve(response)
}).catch(error => {
reject(error)

4
src/types/user.d.ts vendored
View File

@@ -5,6 +5,6 @@ export declare interface BaseInfo {
avatar: string
}
export declare type UserInfo = BaseInfo & {
level: number
export declare type UserIndex = BaseInfo & {
balance: string
}

View File

@@ -7,18 +7,15 @@
</div>
</template>
<script lang="ts">
// 为了兼容vue3的keep-alive页面名称要与router.meta中一致且不能省略
// export default {
// name: 'Home'
// }
</script>
<script lang="ts" setup>
import { useStore } from '@/store'
import { BaseInfo } from '@/types/user'
import { computed } from 'vue'
const store = useStore()
const info = store.getters.userInfo
const info = computed<BaseInfo>(() => {
return store.getters.userInfo
})
</script>
<style scoped>

View File

@@ -17,30 +17,31 @@ export default {
<script lang="ts" setup>
import { user } from '@/api'
import { useStore } from '@/store'
import { UserInfo } from '@/types/user'
import type { BaseInfo, UserIndex } from '@/types/user'
import { onActivated, onMounted, ref } from 'vue'
import { useRouter } from 'vue-router'
const store = useStore()
const router = useRouter()
const info = ref<UserInfo>({})
const info = ref<BaseInfo>({})
const data = ref<UserIndex>({})
onMounted(() => {
loadUserInfo()
info.value = store.getters.userInfo
loadUserData()
})
onActivated(() => {
if (store.getters['refresh/user']) {
loadUserInfo()
loadUserData()
store.dispatch('refresh/setUser', false)
}
})
const loadUserInfo = (): void => {
console.log('加载用户信息')
user.info().then(res => {
store.dispatch('setUserInfo', res)
info.value = res
const loadUserData = (): void => {
console.log('加载用户主页信息')
user.index().then(res => {
data.value = res
})
}