From 95644362ff736959736bc054ad30b1bb0099f7e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=B5=E5=AE=AA=E7=91=9E?= <9198107+min-xianrui@user.noreply.gitee.com> Date: Tue, 7 Jan 2025 23:15:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=B7=E6=B1=82=E5=86=85?= =?UTF-8?q?=E5=AE=B9~?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 2 +- src/api/user.ts | 25 ---------------- src/api/user/adminUserApi.ts | 51 +++++++++++++++++++++++++++++++++ src/api/user/adminUserUtils.ts | 14 +++++++++ src/composables/adminRequest.ts | 49 ++++++++++++++++--------------- src/pages/login.vue | 24 +++++++++++++--- src/stores/userStore.ts | 2 +- src/utils/utils.ts | 10 +++++++ 8 files changed, 121 insertions(+), 56 deletions(-) delete mode 100644 src/api/user.ts create mode 100644 src/api/user/adminUserApi.ts create mode 100644 src/api/user/adminUserUtils.ts create mode 100644 src/utils/utils.ts diff --git a/.env b/.env index 1d4542e..63dca70 100644 --- a/.env +++ b/.env @@ -1,7 +1,7 @@ # 通用环境变量 # 前端接口 -VITE_API_FRONT_BASE_URL = http://localhost:8081 +VITE_API_FRONT_BASE_URL = http://localhost:18080 #后端接口 VITE_ADMIN_API_BASE_URL = http://localhost:18080 diff --git a/src/api/user.ts b/src/api/user.ts deleted file mode 100644 index 4a7e4df..0000000 --- a/src/api/user.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * 登录 - * @param data - */ -export function login(data: any) { - return http.post("/api/login", data) -} - -/** - * 注册 - * @param data - */ -export function register(data: any) { - return http.post("/api/register", data) -} - -/** - * 获取用户信息 - * @param data - */ -export function userInfo(userId: any) { - return http.get("/api/userInfo", { - params: { userId: userId } - }) -} diff --git a/src/api/user/adminUserApi.ts b/src/api/user/adminUserApi.ts new file mode 100644 index 0000000..1594006 --- /dev/null +++ b/src/api/user/adminUserApi.ts @@ -0,0 +1,51 @@ +import { adminRequest } from '~/composables/adminRequest' + +/** + * 登录 + * @param data + */ +export function captchaAdmin(uid: Number) { + return adminRequest.get("/captcha",{ + params:{uuid:uid} + }) +} + + +/** + * 登录 + * @param data + */ +export function loginAdmin(uuid:String,username:String, password:String,captcha:String) { + const data ={ + "username": username, + "password": password, + "captcha": captcha, + "uuid": uuid + } + return adminRequest.post("/login", data) +} +/** + * 注册 + * @param data + */ +export function registerAdmin(data: any) { + return adminRequest.post("/register", data) +} + +/** + * 退出 + */ +export function logoutAdmin() { + return adminRequest.post("/logout") +} + + +/** + * 获取用户信息 + * @param userId + */ +export function userInfoAdmin(userId: any) { + return adminRequest.get("/userInfo", { + params: { userId: userId } + }) +} diff --git a/src/api/user/adminUserUtils.ts b/src/api/user/adminUserUtils.ts new file mode 100644 index 0000000..148dc3c --- /dev/null +++ b/src/api/user/adminUserUtils.ts @@ -0,0 +1,14 @@ +import { getUuid } from '~/utils/utils' + + +/** + * 获取验证码图 + */ +export function getCaptchaUrl(){ + const uuid = getUuid() + captchaAdmin(uuid) + return { + uid: uuid, + captchaUrl:import.meta.env.VITE_ADMIN_API_BASE_URL + `/captcha?uuid=${uuid}` + } +} diff --git a/src/composables/adminRequest.ts b/src/composables/adminRequest.ts index 0413e19..7c6d856 100644 --- a/src/composables/adminRequest.ts +++ b/src/composables/adminRequest.ts @@ -1,12 +1,17 @@ import axios from 'axios' -export const frontRequest = axios.create({ - baseURL: import.meta.env.VITE_API_FRONT_BASE_URL, +export const adminRequest = axios.create({ + baseURL: import.meta.env.VITE_ADMIN_API_BASE_URL, }) - // 添加请求拦截器 -frontRequest.interceptors.request.use( +adminRequest.interceptors.request.use( function (config) { + // 在发送请求之前做些什么 + const token = userStore().adminToken + if (token !== null || token !== undefined) { + //添加header + config.headers.token = token + } // 在发送请求之前做些什么 return config }, @@ -17,40 +22,34 @@ frontRequest.interceptors.request.use( }, ) // 添加响应拦截器 -frontRequest.interceptors.response.use( +adminRequest.interceptors.response.use( function (response) { // 2xx 范围内的状态码都会触发该函数。 // 对响应数据进行格式化 + if (response.data.code){ + const code = response.data.code + switch (code) { + case 500: + toast.success(response.data.msg) + break + case 401: + toast.success(response.data.msg) + break + default: + toast.success(response.data.msg) + break + } + } if (response.data) { return response.data } return response }, function (error) { - const status = error.response?.status let { msg, message } = error.response?.data ?? {} - if (!msg && message) { msg = message } - - if (!msg) { - switch (status) { - case 400: - msg = '参数错误' - break - case 500: - msg = '服务端错误' - break - case 404: - msg = '路由未找到' - break - default: - msg = error.message ?? '未知响应错误' - break - } - } - toast.warning(msg) // 超出 2xx 范围的状态码都会触发该函数。 // 对响应错误做点什么 diff --git a/src/pages/login.vue b/src/pages/login.vue index dc71223..972db4b 100644 --- a/src/pages/login.vue +++ b/src/pages/login.vue @@ -1,24 +1,40 @@ - { diff --git a/src/stores/userStore.ts b/src/stores/userStore.ts index f134ec2..19894fa 100644 --- a/src/stores/userStore.ts +++ b/src/stores/userStore.ts @@ -4,7 +4,7 @@ export default defineStore('userStore', { state() { return { isLogin: false, - token: "", + adminToken: "", } }, actions: { diff --git a/src/utils/utils.ts b/src/utils/utils.ts new file mode 100644 index 0000000..76cf1d7 --- /dev/null +++ b/src/utils/utils.ts @@ -0,0 +1,10 @@ +/** + * 获取uuid + */ +export const getUuid = (): string => { + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) { + const r = (Math.random() * 16) | 0, + v = c == "x" ? r : (r & 0x3) | 0x8; + return v.toString(16); + }); +};