diff --git a/components/icons/add.vue b/components/icons/add.vue new file mode 100644 index 0000000..a3ed4d1 --- /dev/null +++ b/components/icons/add.vue @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/components/icons/cloud.vue b/components/icons/cloud.vue new file mode 100644 index 0000000..3670508 --- /dev/null +++ b/components/icons/cloud.vue @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/hooks/pinia/useUserStore.ts b/hooks/pinia/useUserStore.ts index 199bc2e..e5237a0 100644 --- a/hooks/pinia/useUserStore.ts +++ b/hooks/pinia/useUserStore.ts @@ -20,9 +20,16 @@ export const useUserStore = defineStore("user", () => { }; const token = computed(() => { + console.log('token') if (_token.value) { return _token.value; } + if(tokenExpireTime.value < Date.now()) { + localStorage.removeItem("miao-token"); + localStorage.removeItem("miao-token-expire-time"); + _token.value = undefined; + return ""; + } const res = localStorage.getItem("miao-token") || "" _token.value = res; return res; diff --git a/nuxt.config.ts b/nuxt.config.ts index b051140..38c12b3 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -18,11 +18,6 @@ export default defineNuxtConfig({ vite: { server: {}, plugins: [], - test: { - deps: { - inline: ['element-plus'] - } - }, }, modules: ["@pinia/nuxt", '@element-plus/nuxt'], compatibilityDate: "2025-01-12", diff --git a/pages/tools/fucksq.vue b/pages/tools/fucksq.vue index 86e8a3e..1252f35 100644 --- a/pages/tools/fucksq.vue +++ b/pages/tools/fucksq.vue @@ -11,22 +11,22 @@ - - 刷赞数: - + + 赞数 + 开始 - + 清空输出
- + {{ `${_fd(message.timestamp)} ==>` }} {{ message.message }} @@ -46,13 +46,15 @@ const status = ref<'waiting' | 'busy'>('waiting') const messages = reactive<{ timestamp: number, - message: string + message: string, + id: number }[]>([]) const log = (...message: string[]) => { - messages.push({ + messages.unshift({ timestamp: Date.now(), - message: message.join('') + message: message.join(''), + id: Math.random() }) } @@ -128,13 +130,14 @@ watchEffect(() => { /* padding: 5px 10px; */ border: 1px solid #ccc; border-radius: 5px; + /* max-height: 500px; */ } .message-container { width: 100%; max-width: 800px; - height: 100%; - max-height: 500px; + height: calc( 100vh - 350px ); + max-height: calc( 100vh - 350px ); overflow-y: auto; display: flex; flex-direction: column; diff --git a/pages/user/index.vue b/pages/user/index.vue index 1f15ee8..bbf61cd 100644 --- a/pages/user/index.vue +++ b/pages/user/index.vue @@ -26,11 +26,29 @@ const userStore = useUserStore() // ] // }) -onBeforeMount(() => { - if (userStore.isLogin === false) { - return router.replace('/user/login') - } else { +onBeforeMount(async () => { + if (userStore && userStore.isLogin) { return router.replace('/user/main') + } else { + try { + if(userStore.token) { + const response = await $fetch('/api/user/refreshToken', { + method: 'POST', + body: { + token: userStore.token + } + }) + userStore.setToken(response.token) + userStore.setTokenExpireTime(response.expiresIn) + userStore.setLoginStatus(true) + router.replace('/user/main') + } else { + router.replace('/user/login') + } + } catch (error) { + console.error(error) + router.replace('/user/login') + } } }) diff --git a/pages/user/main.vue b/pages/user/main.vue index 78b19d3..e7869e7 100644 --- a/pages/user/main.vue +++ b/pages/user/main.vue @@ -44,6 +44,7 @@ import Cat from '~/components/icons/cat.vue' import chevronDown from '~/components/icons/chevronDown.vue'; import Documents from '~/components/icons/documents.vue'; import Home from '~/components/icons/home.vue'; +import Cloud from '~/components/icons/cloud.vue'; const router = useRouter() const userStore = useUserStore() @@ -63,11 +64,16 @@ const menuItem = shallowReactive([ title: '账户', icon: Cat, to: '/user/main/account' + }, { + title: '服务', + icon: Cloud, + iconFill: true, + to: '/user/main/server' }, { title: '测试', icon: Cat, to: '/user/main/test' - } + }, ]) const showSidebar = ref(true) diff --git a/pages/user/main/server.vue b/pages/user/main/server.vue new file mode 100644 index 0000000..489252e --- /dev/null +++ b/pages/user/main/server.vue @@ -0,0 +1,118 @@ + + + + + + \ No newline at end of file