From a4a0f84bf4ca2f8fb64c1a7ae0a6e3ce1beaaca7 Mon Sep 17 00:00:00 2001 From: hezhaohui Date: Tue, 14 Jul 2026 15:39:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(frontend):=20=E5=AE=9E=E7=8E=B0=E8=AE=A4?= =?UTF-8?q?=E8=AF=81=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 页面: - views/auth/Login.vue,登录页(用户名密码表单、LDAP 认证入口) API: - api/auth.ts,认证相关接口(登录、登出、获取用户信息) 功能: - 登录表单验证 - Mock 数据支持(MVP 阶段无需后端) - 登录成功后跳转首页 --- frontend/src/api/auth.ts | 71 +++++++++++ frontend/src/views/auth/Login.vue | 198 ++++++++++++++++++++++++++++++ 2 files changed, 269 insertions(+) create mode 100644 frontend/src/api/auth.ts create mode 100644 frontend/src/views/auth/Login.vue diff --git a/frontend/src/api/auth.ts b/frontend/src/api/auth.ts new file mode 100644 index 0000000..06681fd --- /dev/null +++ b/frontend/src/api/auth.ts @@ -0,0 +1,71 @@ +import request from './request' + +export interface LoginRequest { + username: string + password: string +} + +export interface UserInfo { + id: number + username: string + display_name: string + email: string + business_line: string +} + +export interface LoginResponse { + token: string + expires_in: number + user: UserInfo +} + +// Mock 数据 +const mockUser: UserInfo = { + id: 1, + username: 'admin', + display_name: '王晓东', + email: 'admin@qiniu.com', + business_line: 'kodo', +} + +export const authApi = { + // 登录 + login(data: LoginRequest): Promise { + // MVP 阶段使用 Mock 数据 + return new Promise((resolve) => { + setTimeout(() => { + resolve({ + code: 0, + message: 'success', + data: { + token: 'mock-jwt-token-' + Date.now(), + expires_in: 3600, + user: mockUser, + }, + }) + }, 500) + }) + }, + + // 登出 + logout(): Promise { + return new Promise((resolve) => { + setTimeout(() => { + resolve({ code: 0, message: 'success' }) + }, 200) + }) + }, + + // 获取用户信息 + getUserInfo(): Promise { + return new Promise((resolve) => { + setTimeout(() => { + resolve({ + code: 0, + message: 'success', + data: mockUser, + }) + }, 200) + }) + }, +} diff --git a/frontend/src/views/auth/Login.vue b/frontend/src/views/auth/Login.vue new file mode 100644 index 0000000..ebba93f --- /dev/null +++ b/frontend/src/views/auth/Login.vue @@ -0,0 +1,198 @@ + + + + +