From c8082e6fab6a95b87dc0e2ec302e0450c02e9dba Mon Sep 17 00:00:00 2001 From: nanxun Date: Mon, 3 Nov 2025 15:07:36 +0800 Subject: [PATCH] =?UTF-8?q?add(main)=EF=BC=9A=E6=B7=BB=E5=8A=A0=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=A1=B5=EF=BC=8C=E4=B8=BB=E7=AA=97=E5=8F=A3=E7=BB=84?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/web/index.html | 1 + frontend/web/src/App.vue | 2 +- frontend/web/src/components/Layout.vue | 262 -------- frontend/web/src/components/Window.vue | 136 ++++ frontend/web/src/router/index.js | 7 +- frontend/web/src/views/Main.vue | 829 +++++++++++++++++++++++++ frontend/web/src/views/auth/Login.vue | 540 +++++++--------- 7 files changed, 1182 insertions(+), 595 deletions(-) delete mode 100644 frontend/web/src/components/Layout.vue create mode 100644 frontend/web/src/components/Window.vue create mode 100644 frontend/web/src/views/Main.vue diff --git a/frontend/web/index.html b/frontend/web/index.html index b19040a..4c929da 100644 --- a/frontend/web/index.html +++ b/frontend/web/index.html @@ -3,6 +3,7 @@ + Vite App diff --git a/frontend/web/src/App.vue b/frontend/web/src/App.vue index af331b0..59f2b39 100644 --- a/frontend/web/src/App.vue +++ b/frontend/web/src/App.vue @@ -11,7 +11,7 @@ diff --git a/frontend/web/src/components/Layout.vue b/frontend/web/src/components/Layout.vue deleted file mode 100644 index c00ea60..0000000 --- a/frontend/web/src/components/Layout.vue +++ /dev/null @@ -1,262 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/web/src/components/Window.vue b/frontend/web/src/components/Window.vue new file mode 100644 index 0000000..874c1aa --- /dev/null +++ b/frontend/web/src/components/Window.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/frontend/web/src/router/index.js b/frontend/web/src/router/index.js index 29e07eb..7fef57a 100644 --- a/frontend/web/src/router/index.js +++ b/frontend/web/src/router/index.js @@ -1,6 +1,11 @@ import { createRouter, createWebHistory } from 'vue-router' +import MainView from '@/views/Main.vue' -const routes = [{ path: '/auth/login', component: () => import('@/views/auth/Login.vue') }] +const routes = [ + { path: '/auth/login', component: () => import('@/views/auth/Login.vue') }, + { path: '/', component: MainView }, + { path: '/index', component: MainView }, +] const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), diff --git a/frontend/web/src/views/Main.vue b/frontend/web/src/views/Main.vue new file mode 100644 index 0000000..265a33b --- /dev/null +++ b/frontend/web/src/views/Main.vue @@ -0,0 +1,829 @@ + + + + + \ No newline at end of file diff --git a/frontend/web/src/views/auth/Login.vue b/frontend/web/src/views/auth/Login.vue index 7bd501e..f5667df 100644 --- a/frontend/web/src/views/auth/Login.vue +++ b/frontend/web/src/views/auth/Login.vue @@ -1,58 +1,76 @@ @@ -62,325 +80,185 @@ import { ref } from 'vue' const username = ref('') const password = ref('') +const remember = ref(false) const errorMsg = ref('') +const loading = ref(false) + +const usernameFocused = ref(false) +const passwordFocused = ref(false) const handleLogin = () => { - if (!username.value || !password.value) { + errorMsg.value = '' + if (!username.value.trim() || !password.value) { errorMsg.value = '用户名或密码不能为空' return } - - if (username.value === 'admin' && password.value === '123456') { - alert('登录成功!') - errorMsg.value = '' - // TODO: 跳转到IM主界面 - } else { - errorMsg.value = '用户名或密码错误' - } + loading.value = true + // 模拟登录延迟(客户端示例),生产中替换为 API 调用 + setTimeout(() => { + loading.value = false + if (username.value === 'admin' && password.value === '123456') { + errorMsg.value = '' + alert('登录成功!') + // TODO: 跳转到 IM 主界面 + } else { + errorMsg.value = '用户名或密码错误' + } + }, 700) } \ No newline at end of file +