diff --git a/src/api/account.ts b/src/api/account.ts index 5e0310c..5b1dfb0 100644 --- a/src/api/account.ts +++ b/src/api/account.ts @@ -36,19 +36,6 @@ export async function verifyTokenApi(token: string) { const user = await describeApi() if (user) { - const userRole = user.roles ? user.roles[0] : null - if (userRole) { - setData('user-role', userRole) - } - const email = user.email ? user.email : '' - if (user.id) { - setData('email', email) - } - const userId = user.id - if (userId) { - setData('user-id', userId) - } - return true } return false diff --git a/src/desktop/views/Logout.vue b/src/desktop/views/Logout.vue index 3272c24..e5d3210 100644 --- a/src/desktop/views/Logout.vue +++ b/src/desktop/views/Logout.vue @@ -9,14 +9,18 @@ import { onMounted } from 'vue' import { removeData } from '@/utils' import { useRouter } from 'vue-router' +import { useUserStore } from '@/stores/user'; +import { useGameHubStore } from '@/stores/gamehub'; const router = useRouter() +const user = useUserStore() +const gameHub = useGameHubStore() onMounted(async () => { removeData('jwt-token') - removeData('user-role') - removeData('user-id') - removeData('email') + + user.reset() + gameHub.close() // 给点延迟让大家看看可爱的兔兔! setTimeout(async () => await router.push('/login'), 1500) diff --git a/src/mobile/components/ChatBoard.vue b/src/mobile/components/ChatBoard.vue index 85dcd55..c0ce3de 100644 --- a/src/mobile/components/ChatBoard.vue +++ b/src/mobile/components/ChatBoard.vue @@ -4,22 +4,34 @@ - - - + + +
+ +
+ {{ currentMessage.nickname }} : {{ currentMessage.content }} +
+
+ +
- + -
+
{{ item.nickname }} @@ -78,6 +90,13 @@ const inputMessage = ref('') const chatBoard = ref() const showChatLog = ref(false) const unreadMessage = ref(0) +const currentMessage = ref({ + userId: '', + nickname: '阿米娅', + avatar: '/avatar.webp', + content: '这是一条消息', + show: false +}) function openChatLog() { unreadMessage.value = 0 @@ -121,14 +140,32 @@ async function chatListener(response: SignalrResponse) { } } +var lastMessagePopupCloseInterval: NodeJS.Timeout | null = null + function pushMessage(msg: Message) { messages.value.push(msg) - if ( (user.userInfo?.id || '') !== msg.userId) { + if ((user.userInfo?.id || '') !== msg.userId) { if (!showChatLog.value) { unreadMessage.value++ } } + + currentMessage.value = { + userId: msg.userId, + nickname: msg.nickname, + avatar: msg.avatar, + content: msg.content, + show: true + } + + if(lastMessagePopupCloseInterval) { + clearTimeout(lastMessagePopupCloseInterval) + } + + lastMessagePopupCloseInterval = setTimeout(() => { + currentMessage.value.show = false + }, 5000) } defineExpose({ pushMessage }) @@ -171,7 +208,17 @@ onUnmounted(async () => { } } +.instant-message-container { + display: flex; + flex-direction: row; + .instant-message { + margin-left: 5px; + white-space: nowrap; + overflow: hidden; + max-width: 80%; + } +} .message-window { height: calc(80vh); diff --git a/src/mobile/views/Logout.vue b/src/mobile/views/Logout.vue index 3272c24..2617ef9 100644 --- a/src/mobile/views/Logout.vue +++ b/src/mobile/views/Logout.vue @@ -9,14 +9,18 @@ import { onMounted } from 'vue' import { removeData } from '@/utils' import { useRouter } from 'vue-router' +import { useUserStore } from '@/stores/user'; +import { useGameHubStore } from '@/stores/gamehub'; const router = useRouter() +const user = useUserStore() +const gameHub = useGameHubStore() onMounted(async () => { removeData('jwt-token') - removeData('user-role') - removeData('user-id') - removeData('email') + + user.reset() + gameHub.close() // 给点延迟让大家看看可爱的兔兔! setTimeout(async () => await router.push('/login'), 1500) diff --git a/src/mobile/views/game/CypherChallenge.vue b/src/mobile/views/game/CypherChallenge.vue index 851bd9f..bba593e 100644 --- a/src/mobile/views/game/CypherChallenge.vue +++ b/src/mobile/views/game/CypherChallenge.vue @@ -36,8 +36,8 @@
-
- +
+