From 879dd6b31820a4de01062a236ef0e0ace256fec9 Mon Sep 17 00:00:00 2001 From: pany <939630029@qq.com> Date: Sat, 8 Feb 2025 15:21:39 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=87=8D=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BD=BF=E5=85=B6=E6=9B=B4=E5=8A=A0=E9=81=B5?= =?UTF-8?q?=E5=BE=AA=20RESTful=20=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/apis/table/index.ts | 37 ----------------------- src/common/apis/tables/index.ts | 37 +++++++++++++++++++++++ src/common/apis/{table => tables}/type.ts | 0 src/common/apis/user/index.ts | 10 ------ src/common/apis/user/type.ts | 1 - src/common/apis/users/index.ts | 10 ++++++ src/common/apis/users/type.ts | 1 + src/pages/demo/element-plus/index.vue | 4 +-- src/pages/demo/vxe-table/index.vue | 4 +-- src/pages/login/apis/index.ts | 14 ++++----- src/pages/login/apis/type.ts | 2 +- src/pages/login/index.vue | 4 +-- src/pinia/stores/user.ts | 4 +-- 13 files changed, 64 insertions(+), 64 deletions(-) delete mode 100644 src/common/apis/table/index.ts create mode 100644 src/common/apis/tables/index.ts rename src/common/apis/{table => tables}/type.ts (100%) delete mode 100644 src/common/apis/user/index.ts delete mode 100644 src/common/apis/user/type.ts create mode 100644 src/common/apis/users/index.ts create mode 100644 src/common/apis/users/type.ts diff --git a/src/common/apis/table/index.ts b/src/common/apis/table/index.ts deleted file mode 100644 index 531d775..0000000 --- a/src/common/apis/table/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type * as Table from "./type" -import { request } from "@/http/axios" - -/** 增 */ -export function createTableDataApi(data: Table.CreateOrUpdateTableRequestData) { - return request({ - url: "table", - method: "post", - data - }) -} - -/** 删 */ -export function deleteTableDataApi(id: number) { - return request({ - url: `table/${id}`, - method: "delete" - }) -} - -/** 改 */ -export function updateTableDataApi(data: Table.CreateOrUpdateTableRequestData) { - return request({ - url: "table", - method: "put", - data - }) -} - -/** 查 */ -export function getTableDataApi(params: Table.TableRequestData) { - return request<Table.TableResponseData>({ - url: "table", - method: "get", - params - }) -} diff --git a/src/common/apis/tables/index.ts b/src/common/apis/tables/index.ts new file mode 100644 index 0000000..c6f29f4 --- /dev/null +++ b/src/common/apis/tables/index.ts @@ -0,0 +1,37 @@ +import type * as Tables from "./type" +import { request } from "@/http/axios" + +/** 增 */ +export function createTableDataApi(data: Tables.CreateOrUpdateTableRequestData) { + return request({ + url: "tables", + method: "post", + data + }) +} + +/** 删 */ +export function deleteTableDataApi(id: number) { + return request({ + url: `tables/${id}`, + method: "delete" + }) +} + +/** 改 */ +export function updateTableDataApi(data: Tables.CreateOrUpdateTableRequestData) { + return request({ + url: "tables", + method: "put", + data + }) +} + +/** 查 */ +export function getTableDataApi(params: Tables.TableRequestData) { + return request<Tables.TableResponseData>({ + url: "tables", + method: "get", + params + }) +} diff --git a/src/common/apis/table/type.ts b/src/common/apis/tables/type.ts similarity index 100% rename from src/common/apis/table/type.ts rename to src/common/apis/tables/type.ts diff --git a/src/common/apis/user/index.ts b/src/common/apis/user/index.ts deleted file mode 100644 index 7bb11ae..0000000 --- a/src/common/apis/user/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type * as Login from "./type" -import { request } from "@/http/axios" - -/** 获取当前登录用户详情 */ -export function getUserInfoApi() { - return request<Login.UserInfoResponseData>({ - url: "users/info", - method: "get" - }) -} diff --git a/src/common/apis/user/type.ts b/src/common/apis/user/type.ts deleted file mode 100644 index c3f50ed..0000000 --- a/src/common/apis/user/type.ts +++ /dev/null @@ -1 +0,0 @@ -export type UserInfoResponseData = ApiResponseData<{ username: string, roles: string[] }> diff --git a/src/common/apis/users/index.ts b/src/common/apis/users/index.ts new file mode 100644 index 0000000..ccd9f72 --- /dev/null +++ b/src/common/apis/users/index.ts @@ -0,0 +1,10 @@ +import type * as Users from "./type" +import { request } from "@/http/axios" + +/** 获取当前登录用户详情 */ +export function getCurrentUserApi() { + return request<Users.CurrentUserResponseData>({ + url: "users/me", + method: "get" + }) +} diff --git a/src/common/apis/users/type.ts b/src/common/apis/users/type.ts new file mode 100644 index 0000000..6423d98 --- /dev/null +++ b/src/common/apis/users/type.ts @@ -0,0 +1 @@ +export type CurrentUserResponseData = ApiResponseData<{ username: string, roles: string[] }> diff --git a/src/pages/demo/element-plus/index.vue b/src/pages/demo/element-plus/index.vue index 5bba727..aa4cdea 100644 --- a/src/pages/demo/element-plus/index.vue +++ b/src/pages/demo/element-plus/index.vue @@ -1,7 +1,7 @@ <script lang="ts" setup> -import type { CreateOrUpdateTableRequestData, TableData } from "@@/apis/table/type" +import type { CreateOrUpdateTableRequestData, TableData } from "@@/apis/tables/type" import type { FormInstance, FormRules } from "element-plus" -import { createTableDataApi, deleteTableDataApi, getTableDataApi, updateTableDataApi } from "@@/apis/table" +import { createTableDataApi, deleteTableDataApi, getTableDataApi, updateTableDataApi } from "@@/apis/tables" import { usePagination } from "@@/composables/usePagination" import { CirclePlus, Delete, Download, Refresh, RefreshRight, Search } from "@element-plus/icons-vue" import { cloneDeep } from "lodash-es" diff --git a/src/pages/demo/vxe-table/index.vue b/src/pages/demo/vxe-table/index.vue index 2229eca..1fb7fe2 100644 --- a/src/pages/demo/vxe-table/index.vue +++ b/src/pages/demo/vxe-table/index.vue @@ -1,8 +1,8 @@ <script lang="ts" setup> -import type { TableResponseData } from "@@/apis/table/type" +import type { TableResponseData } from "@@/apis/tables/type" import type { ElMessageBoxOptions } from "element-plus" import type { VxeFormInstance, VxeFormProps, VxeGridInstance, VxeGridProps, VxeModalInstance, VxeModalProps } from "vxe-table" -import { deleteTableDataApi, getTableDataApi } from "@@/apis/table" +import { deleteTableDataApi, getTableDataApi } from "@@/apis/tables" import { RoleColumnSlots } from "./tsx/RoleColumnSlots" import { StatusColumnSlots } from "./tsx/StatusColumnSlots" diff --git a/src/pages/login/apis/index.ts b/src/pages/login/apis/index.ts index 894e328..3c559a3 100644 --- a/src/pages/login/apis/index.ts +++ b/src/pages/login/apis/index.ts @@ -1,18 +1,18 @@ -import type * as Login from "./type" +import type * as Auth from "./type" import { request } from "@/http/axios" /** 获取登录验证码 */ -export function getLoginCodeApi() { - return request<Login.LoginCodeResponseData>({ - url: "login/code", +export function getCaptchaApi() { + return request<Auth.CaptchaResponseData>({ + url: "auth/captcha", method: "get" }) } /** 登录并返回 Token */ -export function loginApi(data: Login.LoginRequestData) { - return request<Login.LoginResponseData>({ - url: "users/login", +export function loginApi(data: Auth.LoginRequestData) { + return request<Auth.LoginResponseData>({ + url: "auth/login", method: "post", data }) diff --git a/src/pages/login/apis/type.ts b/src/pages/login/apis/type.ts index edc4cfb..86c0e2e 100644 --- a/src/pages/login/apis/type.ts +++ b/src/pages/login/apis/type.ts @@ -7,6 +7,6 @@ export interface LoginRequestData { code: string } -export type LoginCodeResponseData = ApiResponseData<string> +export type CaptchaResponseData = ApiResponseData<string> export type LoginResponseData = ApiResponseData<{ token: string }> diff --git a/src/pages/login/index.vue b/src/pages/login/index.vue index 721dfc7..5434835 100644 --- a/src/pages/login/index.vue +++ b/src/pages/login/index.vue @@ -5,7 +5,7 @@ import { useSettingsStore } from "@/pinia/stores/settings" import { useUserStore } from "@/pinia/stores/user" import ThemeSwitch from "@@/components/ThemeSwitch/index.vue" import { Key, Loading, Lock, Picture, User } from "@element-plus/icons-vue" -import { getLoginCodeApi, loginApi } from "./apis" +import { getCaptchaApi, loginApi } from "./apis" import Owl from "./components/Owl.vue" import { useFocus } from "./composables/useFocus" @@ -74,7 +74,7 @@ function createCode() { // 清空验证图片 codeUrl.value = "" // 获取验证码图片 - getLoginCodeApi().then((res) => { + getCaptchaApi().then((res) => { codeUrl.value = res.data }) } diff --git a/src/pinia/stores/user.ts b/src/pinia/stores/user.ts index cf198b9..e3c3398 100644 --- a/src/pinia/stores/user.ts +++ b/src/pinia/stores/user.ts @@ -1,7 +1,7 @@ import { pinia } from "@/pinia" import { resetRouter } from "@/router" import { routerConfig } from "@/router/config" -import { getUserInfoApi } from "@@/apis/user" +import { getCurrentUserApi } from "@@/apis/users" import { setToken as _setToken, getToken, removeToken } from "@@/utils/cache/cookies" import { useSettingsStore } from "./settings" import { useTagsViewStore } from "./tags-view" @@ -22,7 +22,7 @@ export const useUserStore = defineStore("user", () => { // 获取用户详情 const getInfo = async () => { - const { data } = await getUserInfoApi() + const { data } = await getCurrentUserApi() username.value = data.username // 验证返回的 roles 是否为一个非空数组,否则塞入一个没有任何作用的默认角色,防止路由守卫逻辑进入无限循环 roles.value = data.roles?.length > 0 ? data.roles : routerConfig.defaultRoles