From 0fb4ca004aa7ae4eaa7485097ece64a9e1aca04b Mon Sep 17 00:00:00 2001 From: zhangyh Date: Mon, 27 Oct 2025 11:08:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=99=BB=E5=BD=95/=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/login.ts | 13 +++-- src/stores/modules/userInfo.ts | 7 +-- src/types/api.d.ts | 45 ++++++++++++++++ src/utils/request.ts | 14 ++++- src/views/login/LoginPage.vue | 25 ++++----- src/views/login/SignupPage.vue | 94 ++++++++++------------------------ src/views/stylist/customer.vue | 6 ++- 7 files changed, 111 insertions(+), 93 deletions(-) create mode 100644 src/types/api.d.ts diff --git a/src/api/login.ts b/src/api/login.ts index b8322e4..3856d97 100644 --- a/src/api/login.ts +++ b/src/api/login.ts @@ -8,7 +8,7 @@ interface LoginParamsType { verifyCode?: string // 验证码 } -export const precheckAndSendEmail = (data: LoginParamsType) => { +export const precheckAndSendEmail = (data: LoginParamsType): Promise => { return request({ url: '/api/auth/precheckAndSendEmail', method: 'post', @@ -16,7 +16,7 @@ export const precheckAndSendEmail = (data: LoginParamsType) => { }) } -export const fetchLogin = (data: LoginParamsType) => { +export const fetchRegisterOrLogin = (data: LoginParamsType): Promise => { return request({ url: '/api/auth/registerOrLogin', method: 'post', @@ -24,10 +24,17 @@ export const fetchLogin = (data: LoginParamsType) => { }) } -export const resetPassword = (data: LoginParamsType) => { +export const resetPassword = (data: LoginParamsType): Promise => { return request({ url: '/api/auth/forgotPwd', method: 'post', data }) } + +export const checkLoginStatus = (): Promise> => { + return request({ + url: '/api/auth/checkLoginStatus', + method: 'get' + }) +} \ No newline at end of file diff --git a/src/stores/modules/userInfo.ts b/src/stores/modules/userInfo.ts index 0cc3f03..5f6c984 100644 --- a/src/stores/modules/userInfo.ts +++ b/src/stores/modules/userInfo.ts @@ -45,10 +45,6 @@ export const useUserInfoStore = defineStore('userInfo', () => { } } - const login = async (data: any) => { - return new Promise((resolve, reject) => {}) - } - const logOut = () => { // 处理退出登录的一些逻辑 return new Promise((resolve) => { @@ -69,7 +65,6 @@ export const useUserInfoStore = defineStore('userInfo', () => { setGenerateParams, getGenerateParams, resetGenerateParams, - logOut, - login + logOut } }) diff --git a/src/types/api.d.ts b/src/types/api.d.ts new file mode 100644 index 0000000..d267c32 --- /dev/null +++ b/src/types/api.d.ts @@ -0,0 +1,45 @@ +// 全局API响应类型定义 +declare global { + // 基础API响应结构 + interface ApiResponse { + success: boolean + message: string + data?: T + code?: number + errMsg?: string + } + + // 登录/注册相关响应 + interface LoginResponse { + token?: string + user?: { + id: string + name: string + email: string + } + } + + // 通用列表响应 + interface ListResponse { + list: T[] + total: number + page: number + pageSize: number + } + + // 分页参数 + interface PaginationParams { + page: number + pageSize: number + } + + // 通用错误响应 + interface ErrorResponse { + success: false + message: string + code?: number + errMsg?: string + } +} + +export {} diff --git a/src/utils/request.ts b/src/utils/request.ts index 2089cd4..d1b7fbf 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -6,6 +6,18 @@ import { getLocal } from '@/utils/local' import router from '@/router/index' import { useOverallStore } from '@/stores' +// 扩展 AxiosRequestConfig 接口 +declare module 'axios' { + interface AxiosRequestConfig { + loading?: boolean + loadingDom?: any + repeatRequest?: boolean + meta?: { + responseAll?: boolean + } + } +} + // 创建axios实例 // console.log(import.meta.env,123) @@ -36,7 +48,7 @@ service.interceptors.request.use( } // 如果登录了,有token,则请求携带token // Do something before request is sent - if (store.token) { + if (store.state.token) { config.headers.Authorization = getLocal('token') // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改 // config.headers['X-Token'] = getLocal('token') // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改 } diff --git a/src/views/login/LoginPage.vue b/src/views/login/LoginPage.vue index 52140bf..4cfe512 100644 --- a/src/views/login/LoginPage.vue +++ b/src/views/login/LoginPage.vue @@ -46,14 +46,16 @@