From 449a6fd3353b824c0167b985eccfa4145f0d3963 Mon Sep 17 00:00:00 2001 From: alger Date: Wed, 22 May 2024 15:14:26 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20=E7=99=BB=E5=BD=95=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/index.ts | 2 +- src/views/list/index.vue | 1 + src/views/login/index.vue | 1 + src/views/mv/index.vue | 1 - src/views/user/index.vue | 22 ++++++++++++---------- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/store/index.ts b/src/store/index.ts index c6321fe..92914f9 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -25,7 +25,7 @@ const state: State = { isPlay: false, playMusic: {} as SongResult, playMusicUrl: '', - user: null, + user: localStorage.getItem('user') ? JSON.parse(localStorage.getItem('user') as string) : null, playList: [], playListIndex: 0, setData: null, diff --git a/src/views/list/index.vue b/src/views/list/index.vue index 4b9ef77..b74f2f5 100644 --- a/src/views/list/index.vue +++ b/src/views/list/index.vue @@ -48,6 +48,7 @@ watch( () => route.query, async (newParams) => { if (newParams.type) { + recommendList.value = null; loadList(newParams.type as string); } }, diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 938b68a..0036766 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -52,6 +52,7 @@ const timerIsQr = (key: string) => { localStorage.setItem('token', data.cookie); const user = await getUserDetail(); store.state.user = user.data.profile; + localStorage.setItem('user', JSON.stringify(store.state.user)); message.success('登录成功'); clearInterval(timer); diff --git a/src/views/mv/index.vue b/src/views/mv/index.vue index 21ec661..d5aa61e 100644 --- a/src/views/mv/index.vue +++ b/src/views/mv/index.vue @@ -66,7 +66,6 @@ const store = useStore(); onMounted(async () => { const res = await getTopMv(30); mvList.value = res.data.data; - console.log('mvList.value', mvList.value); }); const handleShowMv = async (item: IMvItem) => { diff --git a/src/views/user/index.vue b/src/views/user/index.vue index daf1dfa..fb725ba 100644 --- a/src/views/user/index.vue +++ b/src/views/user/index.vue @@ -21,29 +21,31 @@ const router = useRouter(); const userDetail = ref(); const playList = ref([]); const recordList = ref(); -let { user } = store.state; + +const user = computed(() => store.state.user); const loadPage = async () => { - if (!user) { + if (!user.value) { router.push('/login'); return; } - const { data: userData } = await getUserDetail(user.userId); + const { data: userData } = await getUserDetail(user.value.userId); userDetail.value = userData; - const { data: playlistData } = await getUserPlaylist(user.userId); + const { data: playlistData } = await getUserPlaylist(user.value.userId); playList.value = playlistData.playlist; - const { data: recordData } = await getUserRecord(user.userId); + const { data: recordData } = await getUserRecord(user.value.userId); recordList.value = recordData.allData; }; -onMounted(() => { - const localUser = localStorage.getItem('user'); - store.state.user = localUser ? JSON.parse(localUser) : null; - user = store.state.user; - loadPage(); +onActivated(() => { + if (!user.value) { + router.push('/login'); + } else { + loadPage(); + } }); const isShowList = ref(false);