From 34e636d08f28358f00ef8f111370f2b320a6dc81 Mon Sep 17 00:00:00 2001 From: Lan Date: Sun, 6 Oct 2024 15:08:53 +0800 Subject: [PATCH] 1 --- .env.development | 2 +- src/App.vue | 44 ++++++++- src/assets/{ => style}/main.css | 2 +- src/components/AlertComponent.vue | 89 ++++++++++-------- src/main.ts | 2 +- src/router/index.ts | 4 +- src/utils/api.ts | 2 +- src/views/SendFileView.vue | 145 +++++++++++++++++------------- 8 files changed, 179 insertions(+), 111 deletions(-) rename src/assets/{ => style}/main.css (75%) diff --git a/.env.development b/.env.development index d707131..4e8eab4 100644 --- a/.env.development +++ b/.env.development @@ -1 +1 @@ -VITE_API_BASE_URL_DEV=http://localhost:3000/api \ No newline at end of file +VITE_API_BASE_URL_DEV=http://localhost:12345/ \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 34ecd9c..9349a45 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,12 +2,27 @@ import { ref, watchEffect, provide, onMounted } from 'vue' import { RouterView } from 'vue-router' import ThemeToggle from './components/ThemeToggle.vue' +import AlertComponent from './components/AlertComponent.vue' import { useRouter } from 'vue-router' - +import api from './utils/api' const isDarkMode = ref(false) const isLoading = ref(false) const router = useRouter() +const showAlert = ref(false) +const alertMessage = ref('') +const alertType = ref('success') +const closeAlert = () => { + showAlert.value = false +} +const showAlertMessage = ( + message: string, + type: 'success' | 'error' | 'warning' | 'info' = 'success' +) => { + alertMessage.value = message + alertType.value = type + showAlert.value = true +} // 检查系统颜色模式 const checkSystemColorScheme = () => { return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches @@ -35,6 +50,19 @@ onMounted(() => { } else { setColorMode(checkSystemColorScheme()) } + api.post('/', {}).then((res: any) => { + if (res.code === 200) { + localStorage.setItem('config', JSON.stringify(res.detail)) + if ( + res.detail.notify_title && + res.detail.notify_content && + localStorage.getItem('notify') !== res.detail.notify_title + res.detail.notify_content + ) { + localStorage.setItem('notify', res.detail.notify_title + res.detail.notify_content) + showAlertMessage(res.detail.notify_title + ': ' + res.detail.notify_content, 'success') + } + } + }) }) watchEffect(() => { @@ -68,6 +96,12 @@ provide('isLoading', isLoading) + @@ -123,7 +157,11 @@ provide('isLoading', isLoading) } @keyframes spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } } diff --git a/src/assets/main.css b/src/assets/style/main.css similarity index 75% rename from src/assets/main.css rename to src/assets/style/main.css index 1755ca5..c395714 100644 --- a/src/assets/main.css +++ b/src/assets/style/main.css @@ -4,7 +4,7 @@ @font-face { font-family: 'DingTalk'; - src: url('../assets/font/DingTalk.ttf') format('truetype'); + src: url('@/assets/font/DingTalk.ttf') format('truetype'); } * { diff --git a/src/components/AlertComponent.vue b/src/components/AlertComponent.vue index 3f93489..0361c06 100644 --- a/src/components/AlertComponent.vue +++ b/src/components/AlertComponent.vue @@ -1,10 +1,12 @@ \ No newline at end of file + diff --git a/src/main.ts b/src/main.ts index 5dcad83..170dfde 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,4 +1,4 @@ -import './assets/main.css' +import './assets/style/main.css' import { createApp } from 'vue' import { createPinia } from 'pinia' diff --git a/src/router/index.ts b/src/router/index.ts index c83960b..5cc99f5 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,5 +1,4 @@ import { createRouter, createWebHistory } from 'vue-router' -import { defineAsyncComponent } from 'vue' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), @@ -12,7 +11,8 @@ const router = createRouter({ { path: '/send', name: 'Send', - component: defineAsyncComponent(() => import('@/views/SendFileView.vue')) + // 直接使用动态导入,不再包裹在 defineAsyncComponent 中 + component: () => import('@/views/SendFileView.vue') } ] }) diff --git a/src/utils/api.ts b/src/utils/api.ts index 8cacc8d..d090a29 100644 --- a/src/utils/api.ts +++ b/src/utils/api.ts @@ -35,7 +35,7 @@ api.interceptors.request.use( // 响应拦截器 api.interceptors.response.use( (response) => { - return response + return response.data }, (error) => { // 处理错误响应 diff --git a/src/views/SendFileView.vue b/src/views/SendFileView.vue index 4a0e4d4..8dfb8f5 100644 --- a/src/views/SendFileView.vue +++ b/src/views/SendFileView.vue @@ -114,9 +114,9 @@
- + - - +
+ + + {{ getUnit() }} + +