refactor: ♻️ 重构API为静态方法实现模块化管理,并将types.ts重命名为model.ts用于存放接口模型定义

This commit is contained in:
hxr
2024-05-04 12:53:08 +08:00
parent a211053176
commit 088bc5e48f
37 changed files with 875 additions and 831 deletions

View File

@@ -1,44 +1,48 @@
import request from "@/utils/request";
import { CaptchaResult, LoginData, LoginResult } from "./types";
import { CaptchaResult, LoginData, LoginResult } from "./model";
/**
* 登录API
*
* @param data {LoginData}
* @returns
*/
export function loginApi(data: LoginData) {
const formData = new FormData();
formData.append("username", data.username);
formData.append("password", data.password);
formData.append("captchaKey", data.captchaKey || "");
formData.append("captchaCode", data.captchaCode || "");
return request<any, ResponseData<LoginResult>>({
url: "/api/v1/auth/login",
method: "post",
data: formData,
headers: {
"Content-Type": "multipart/form-data",
},
});
class AuthAPI {
/**
* 登录API
*
* @param data {LoginData}
* @returns
*/
static login(data: LoginData) {
const formData = new FormData();
formData.append("username", data.username);
formData.append("password", data.password);
formData.append("captchaKey", data.captchaKey || "");
formData.append("captchaCode", data.captchaCode || "");
return request<any, LoginResult>({
url: "/api/v1/auth/login",
method: "post",
data: formData,
headers: {
"Content-Type": "multipart/form-data",
},
});
}
/**
* 注销API
*/
static logout() {
return request({
url: "/api/v1/auth/logout",
method: "delete",
});
}
/**
* 获取验证码
*/
static getCaptcha() {
return request<any, CaptchaResult>({
url: "/api/v1/auth/captcha",
method: "get",
});
}
}
/**
* 注销API
*/
export function logoutApi() {
return request({
url: "/api/v1/auth/logout",
method: "delete",
});
}
/**
* 获取验证码
*/
export function getCaptchaApi() {
return request<any, ResponseData<CaptchaResult>>({
url: "/api/v1/auth/captcha",
method: "get",
});
}
export default AuthAPI;

View File

@@ -1,76 +1,80 @@
import request from "@/utils/request";
import { DeptForm, DeptQuery, DeptVO } from "./types";
import { DeptForm, DeptQuery, DeptVO } from "./model";
/**
* 部门树形表格
*
* @param queryParams
*/
export function listDepts(queryParams?: DeptQuery) {
return request<any, ResponseData<DeptVO[]>>({
url: "/api/v1/dept",
method: "get",
params: queryParams,
});
class DeptAPI {
/**
* 部门树形表格
*
* @param queryParams
*/
static getList(queryParams?: DeptQuery) {
return request<any, DeptVO[]>({
url: "/api/v1/dept",
method: "get",
params: queryParams,
});
}
/**
* 部门下拉列表
*/
static getOptions() {
return request<any, OptionType[]>({
url: "/api/v1/dept/options",
method: "get",
});
}
/**
* 获取部门详情
*
* @param id
*/
static getFormData(id: number) {
return request<any, DeptForm>({
url: "/api/v1/dept/" + id + "/form",
method: "get",
});
}
/**
* 新增部门
*
* @param data
*/
static add(data: DeptForm) {
return request({
url: "/api/v1/dept",
method: "post",
data: data,
});
}
/**
* 修改部门
*
* @param id
* @param data
*/
static update(id: number, data: DeptForm) {
return request({
url: "/api/v1/dept/" + id,
method: "put",
data: data,
});
}
/**
* 删除部门
*
* @param ids
*/
static deleteByIds(ids: string) {
return request({
url: "/api/v1/dept/" + ids,
method: "delete",
});
}
}
/**
* 部门下拉列表
*/
export function getDeptOptions() {
return request<any, ResponseData<OptionType[]>>({
url: "/api/v1/dept/options",
method: "get",
});
}
/**
* 获取部门详情
*
* @param id
*/
export function getDeptForm(id: number) {
return request<any, ResponseData<DeptForm>>({
url: "/api/v1/dept/" + id + "/form",
method: "get",
});
}
/**
* 新增部门
*
* @param data
*/
export function addDept(data: DeptForm) {
return request({
url: "/api/v1/dept",
method: "post",
data: data,
});
}
/**
* 修改部门
*
* @param id
* @param data
*/
export function updateDept(id: number, data: DeptForm) {
return request({
url: "/api/v1/dept/" + id,
method: "put",
data: data,
});
}
/**
* 删除部门
*
* @param ids
*/
export function deleteDept(ids: string) {
return request({
url: "/api/v1/dept/" + ids,
method: "delete",
});
}
export default DeptAPI;

View File

@@ -6,140 +6,144 @@ import {
DictQuery,
DictForm,
DictPageResult,
} from "./types";
} from "./model";
/**
* 字典类型分页列表
*
* @param queryParams
*/
export function getDictTypePage(queryParams: DictTypeQuery) {
return request<any, ResponseData<DictTypePageResult>>({
url: "/api/v1/dict/types/page",
method: "get",
params: queryParams,
});
class DictAPI {
/**
* 字典类型分页列表
*
* @param queryParams
*/
static getDictTypePage(queryParams: DictTypeQuery) {
return request<any, DictTypePageResult>({
url: "/api/v1/dict/types/page",
method: "get",
params: queryParams,
});
}
/**
* 字典类型表单数据
*
* @param id
*/
static getDictTypeForm(id: number) {
return request<any, ResponseData<DictTypeForm>>({
url: "/api/v1/dict/types/" + id + "/form",
method: "get",
});
}
/**
* 新增字典类型
*
* @param data
*/
static addDictType(data: DictTypeForm) {
return request({
url: "/api/v1/dict/types",
method: "post",
data: data,
});
}
/**
* 修改字典类型
*
* @param id
* @param data
*/
static updateDictType(id: number, data: DictTypeForm) {
return request({
url: "/api/v1/dict/types/" + id,
method: "put",
data: data,
});
}
/**
* 删除字典类型
*/
static deleteDictTypes(ids: string) {
return request({
url: "/api/v1/dict/types/" + ids,
method: "delete",
});
}
/**
* 获取字典类型的数据项
*
* @param typeCode 字典类型编码
*/
static getDictOptions(typeCode: string) {
return request<any, OptionType[]>({
url: "/api/v1/dict/" + typeCode + "/options",
method: "get",
});
}
/**
* 字典分页列表
*/
static getDictPage(queryParams: DictQuery) {
return request<any, DictPageResult>({
url: "/api/v1/dict/page",
method: "get",
params: queryParams,
});
}
/**
* 获取字典表单数据
*
* @param id
*/
static getDictFormData(id: number) {
return request<any, DictForm>({
url: "/api/v1/dict/" + id + "/form",
method: "get",
});
}
/**
* 新增字典
*
* @param data
*/
static addDict(data: DictForm) {
return request({
url: "/api/v1/dict",
method: "post",
data: data,
});
}
/**
* 修改字典项
*
* @param id
* @param data
*/
static updateDict(id: number, data: DictForm) {
return request({
url: "/api/v1/dict/" + id,
method: "put",
data: data,
});
}
/**
* 删除字典
*
* @param ids 字典项ID多个以英文逗号(,)分割
*/
static deleteDictByIds(ids: string) {
return request({
url: "/api/v1/dict/" + ids,
method: "delete",
});
}
}
/**
* 字典类型表单数据
*
* @param id
*/
export function getDictTypeForm(id: number) {
return request<any, ResponseData<DictTypeForm>>({
url: "/api/v1/dict/types/" + id + "/form",
method: "get",
});
}
/**
* 新增字典类型
*
* @param data
*/
export function addDictType(data: DictTypeForm) {
return request({
url: "/api/v1/dict/types",
method: "post",
data: data,
});
}
/**
* 修改字典类型
*
* @param id
* @param data
*/
export function updateDictType(id: number, data: DictTypeForm) {
return request({
url: "/api/v1/dict/types/" + id,
method: "put",
data: data,
});
}
/**
* 删除字典类型
*/
export function deleteDictTypes(ids: string) {
return request({
url: "/api/v1/dict/types/" + ids,
method: "delete",
});
}
/**
* 获取字典类型的数据项
*
* @param typeCode 字典类型编码
*/
export function getDictOptions(typeCode: string) {
return request<any, ResponseData<OptionType[]>>({
url: "/api/v1/dict/" + typeCode + "/options",
method: "get",
});
}
/**
* 字典分页列表
*/
export function getDictPage(queryParams: DictQuery) {
return request<any, ResponseData<DictPageResult>>({
url: "/api/v1/dict/page",
method: "get",
params: queryParams,
});
}
/**
* 获取字典表单数据
*
* @param id
*/
export function getDictFormData(id: number) {
return request<any, ResponseData<DictForm>>({
url: "/api/v1/dict/" + id + "/form",
method: "get",
});
}
/**
* 新增字典
*
* @param data
*/
export function addDict(data: DictForm) {
return request({
url: "/api/v1/dict",
method: "post",
data: data,
});
}
/**
* 修改字典项
*
* @param id
* @param data
*/
export function updateDict(id: number, data: DictForm) {
return request({
url: "/api/v1/dict/" + id,
method: "put",
data: data,
});
}
/**
* 删除字典
*
* @param ids 字典项ID多个以英文逗号(,)分割
*/
export function deleteDict(ids: string) {
return request({
url: "/api/v1/dict/" + ids,
method: "delete",
});
}
export default DictAPI;

View File

@@ -1,33 +1,37 @@
import request from "@/utils/request";
import { FileInfo } from "./types";
import { FileInfo } from "./model";
/**
* 上传文件
*
* @param file
*/
export function uploadFileApi(file: File) {
const formData = new FormData();
formData.append("file", file);
return request<any, ResponseData<FileInfo>>({
url: "/api/v1/files",
method: "post",
data: formData,
headers: {
"Content-Type": "multipart/form-data",
},
});
class FileAPI {
/**
* 上传文件
*
* @param file
*/
static upload(file: File) {
const formData = new FormData();
formData.append("file", file);
return request<any, FileInfo>({
url: "/api/v1/files",
method: "post",
data: formData,
headers: {
"Content-Type": "multipart/form-data",
},
});
}
/**
* 删除文件
*
* @param filePath 文件完整路径
*/
static deleteByPath(filePath?: string) {
return request({
url: "/api/v1/files",
method: "delete",
params: { filePath: filePath },
});
}
}
/**
* 删除文件
*
* @param filePath 文件完整路径
*/
export function deleteFileApi(filePath?: string) {
return request({
url: "/api/v1/files",
method: "delete",
params: { filePath: filePath },
});
}
export default FileAPI;

View File

@@ -1,87 +1,90 @@
import request from "@/utils/request";
import type { RouteRecordRaw } from "vue-router";
import { MenuQuery, MenuVO, MenuForm } from "./types";
import { MenuQuery, MenuVO, MenuForm, RouteVO } from "./model";
/**
* 获取路由列表
*/
export function listRoutes() {
return request<any, ResponseData<RouteRecordRaw[]>>({
url: "/api/v1/menus/routes",
method: "get",
});
class MenuAPI {
/**
* 获取路由列表
*/
static getRoutes() {
return request<any, RouteVO[]>({
url: "/api/v1/menus/routes",
method: "get",
});
}
/**
* 获取菜单树形列表
*
* @param queryParams
*/
static getList(queryParams: MenuQuery) {
return request<any, MenuVO[]>({
url: "/api/v1/menus",
method: "get",
params: queryParams,
});
}
/**
* 获取菜单下拉数据源
*/
static getOptions() {
return request<any, OptionType[]>({
url: "/api/v1/menus/options",
method: "get",
});
}
/**
* 获取菜单表单数据
*
* @param id
*/
static getFormData(id: number) {
return request<any, MenuForm>({
url: "/api/v1/menus/" + id + "/form",
method: "get",
});
}
/**
* 添加菜单
*
* @param data
*/
static add(data: MenuForm) {
return request({
url: "/api/v1/menus",
method: "post",
data: data,
});
}
/**
* 修改菜单
*
* @param id
* @param data
*/
static update(id: string, data: MenuForm) {
return request({
url: "/api/v1/menus/" + id,
method: "put",
data: data,
});
}
/**
* 删除菜单
*
* @param id 菜单ID
*/
static deleteById(id: number) {
return request({
url: "/api/v1/menus/" + id,
method: "delete",
});
}
}
/**
* 获取菜单树形列表
*
* @param queryParams
*/
export function listMenus(queryParams: MenuQuery) {
return request<any, ResponseData<MenuVO[]>>({
url: "/api/v1/menus",
method: "get",
params: queryParams,
});
}
/**
* 获取菜单下拉树形列表
*/
export function getMenuOptions() {
return request<any, ResponseData<OptionType[]>>({
url: "/api/v1/menus/options",
method: "get",
});
}
/**
* 获取菜单表单数据
*
* @param id
*/
export function getMenuForm(id: number) {
return request<any, ResponseData<MenuForm>>({
url: "/api/v1/menus/" + id + "/form",
method: "get",
});
}
/**
* 添加菜单
*
* @param data
*/
export function addMenu(data: MenuForm) {
return request({
url: "/api/v1/menus",
method: "post",
data: data,
});
}
/**
* 修改菜单
*
* @param id
* @param data
*/
export function updateMenu(id: string, data: MenuForm) {
return request({
url: "/api/v1/menus/" + id,
method: "put",
data: data,
});
}
/**
* 删除菜单
*
* @param id 菜单ID
*/
export function deleteMenu(id: number) {
return request({
url: "/api/v1/menus/" + id,
method: "delete",
});
}
export default MenuAPI;

View File

@@ -122,3 +122,60 @@ export interface MenuForm {
*/
alwaysShow?: number;
}
/**
* RouteVO
*/
export interface RouteVO {
/**
*
*/
children: RouteVO[];
/**
*
*/
component?: string;
meta?: Meta;
/**
*
*/
name?: string;
/**
*
*/
path?: string;
/**
*
*/
redirect?: string;
}
/**
* Meta
*/
export interface Meta {
/**
*
*/
alwaysShow?: boolean;
/**
* (true- false-)
*/
hidden?: boolean;
/**
* ICON
*/
icon?: string;
/**
*
*/
keepAlive?: boolean;
/**
*
*/
roles?: string[];
/**
* title
*/
title?: string;
}

View File

@@ -1,104 +1,108 @@
import request from "@/utils/request";
import { RoleQuery, RolePageResult, RoleForm } from "./types";
import { RoleQuery, RolePageResult, RoleForm } from "./model";
/**
* 获取角色分页数据
*
* @param queryParams
*/
export function getRolePage(queryParams?: RoleQuery) {
return request<any, ResponseData<RolePageResult>>({
url: "/api/v1/roles/page",
method: "get",
params: queryParams,
});
class RoleAPI {
/**
* 获取角色分页数据
*
* @param queryParams
*/
static getPage(queryParams?: RoleQuery) {
return request<any, RolePageResult>({
url: "/api/v1/roles/page",
method: "get",
params: queryParams,
});
}
/**
* 获取角色下拉数据源
*
* @param queryParams
*/
static getOptions(queryParams?: RoleQuery) {
return request<any, OptionType[]>({
url: "/api/v1/roles/options",
method: "get",
params: queryParams,
});
}
/**
* 获取角色的菜单ID集合
*
* @param queryParams
*/
static getRoleMenuIds(roleId: number) {
return request<any, number[]>({
url: "/api/v1/roles/" + roleId + "/menuIds",
method: "get",
});
}
/**
* 分配菜单权限给角色
*
* @param queryParams
*/
static updateRoleMenus(roleId: number, data: number[]) {
return request({
url: "/api/v1/roles/" + roleId + "/menus",
method: "put",
data: data,
});
}
/**
* 获取角色表单数据
*
* @param id
*/
static getFormData(id: number) {
return request<any, RoleForm>({
url: "/api/v1/roles/" + id + "/form",
method: "get",
});
}
/**
* 添加角色
*
* @param data
*/
static add(data: RoleForm) {
return request({
url: "/api/v1/roles",
method: "post",
data: data,
});
}
/**
* 更新角色
*
* @param id
* @param data
*/
static update(id: number, data: RoleForm) {
return request({
url: "/api/v1/roles/" + id,
method: "put",
data: data,
});
}
/**
* 批量删除角色,多个以英文逗号(,)分割
*
* @param ids
*/
static deleteByIds(ids: string) {
return request({
url: "/api/v1/roles/" + ids,
method: "delete",
});
}
}
/**
* 获取角色下拉数据
*
* @param queryParams
*/
export function getRoleOptions(queryParams?: RoleQuery) {
return request<any, ResponseData<OptionType[]>>({
url: "/api/v1/roles/options",
method: "get",
params: queryParams,
});
}
/**
* 获取角色的菜单ID集合
*
* @param queryParams
*/
export function getRoleMenuIds(roleId: number) {
return request<any, ResponseData<number[]>>({
url: "/api/v1/roles/" + roleId + "/menuIds",
method: "get",
});
}
/**
* 分配菜单权限给角色
*
* @param queryParams
*/
export function updateRoleMenus(roleId: number, data: number[]) {
return request({
url: "/api/v1/roles/" + roleId + "/menus",
method: "put",
data: data,
});
}
/**
* 获取角色详情
*
* @param id
*/
export function getRoleForm(id: number) {
return request<any, ResponseData<RoleForm>>({
url: "/api/v1/roles/" + id + "/form",
method: "get",
});
}
/**
* 添加角色
*
* @param data
*/
export function addRole(data: RoleForm) {
return request({
url: "/api/v1/roles",
method: "post",
data: data,
});
}
/**
* 更新角色
*
* @param id
* @param data
*/
export function updateRole(id: number, data: RoleForm) {
return request({
url: "/api/v1/roles/" + id,
method: "put",
data: data,
});
}
/**
* 批量删除角色,多个以英文逗号(,)分割
*
* @param ids
*/
export function deleteRoles(ids: string) {
return request({
url: "/api/v1/roles/" + ids,
method: "delete",
});
}
export default RoleAPI;

View File

@@ -1,137 +1,141 @@
import request from "@/utils/request";
import { UserForm, UserInfo, UserPageVO, UserQuery } from "./types";
import { UserForm, UserInfo, UserPageVO, UserQuery } from "./model";
/**
* 登录成功后获取用户信息(昵称、头像、权限集合和角色集合)
*/
export function getUserInfoApi() {
return request<any, ResponseData<UserInfo>>({
url: "/api/v1/users/me",
method: "get",
});
class UserAPI {
/**
* 登录成功后获取用户信息(昵称、头像、权限集合和角色集合)
*/
static getInfo() {
return request<any, UserInfo>({
url: "/api/v1/users/me",
method: "get",
});
}
/**
* 获取用户分页列表
*
* @param queryParams
*/
static getPage(queryParams: UserQuery) {
return request<any, PageResult<UserPageVO[]>>({
url: "/api/v1/users/page",
method: "get",
params: queryParams,
});
}
/**
* 获取用户表单详情
*
* @param userId
*/
static getFormData(userId: number) {
return request<any, UserForm>({
url: "/api/v1/users/" + userId + "/form",
method: "get",
});
}
/**
* 添加用户
*
* @param data
*/
static add(data: UserForm) {
return request({
url: "/api/v1/users",
method: "post",
data: data,
});
}
/**
* 修改用户
*
* @param id
* @param data
*/
static update(id: number, data: UserForm) {
return request({
url: "/api/v1/users/" + id,
method: "put",
data: data,
});
}
/**
* 修改用户密码
*
* @param id
* @param password
*/
static updatePassword(id: number, password: string) {
return request({
url: "/api/v1/users/" + id + "/password",
method: "patch",
params: { password: password },
});
}
/**
* 删除用户
*
* @param ids
*/
static deleteByIds(ids: string) {
return request({
url: "/api/v1/users/" + ids,
method: "delete",
});
}
/**
* 下载用户导入模板
*
* @returns
*/
static downloadTemplate() {
return request({
url: "/api/v1/users/template",
method: "get",
responseType: "arraybuffer",
});
}
/**
* 导出用户
*
* @param queryParams
* @returns
*/
static export(queryParams: UserQuery) {
return request({
url: "/api/v1/users/export",
method: "get",
params: queryParams,
responseType: "arraybuffer",
});
}
/**
* 导入用户
*
* @param file
*/
static import(deptId: number, file: File) {
const formData = new FormData();
formData.append("file", file);
return request({
url: "/api/v1/users/import",
method: "post",
params: { deptId: deptId },
data: formData,
headers: {
"Content-Type": "multipart/form-data",
},
});
}
}
/**
* 获取用户分页列表
*
* @param queryParams
*/
export function getUserPage(queryParams: UserQuery) {
return request<any, ResponseData<PageResult<UserPageVO[]>>>({
url: "/api/v1/users/page",
method: "get",
params: queryParams,
});
}
/**
* 获取用户表单详情
*
* @param userId
*/
export function getUserForm(userId: number) {
return request<any, ResponseData<UserForm>>({
url: "/api/v1/users/" + userId + "/form",
method: "get",
});
}
/**
* 添加用户
*
* @param data
*/
export function addUser(data: UserForm) {
return request({
url: "/api/v1/users",
method: "post",
data: data,
});
}
/**
* 修改用户
*
* @param id
* @param data
*/
export function updateUser(id: number, data: UserForm) {
return request({
url: "/api/v1/users/" + id,
method: "put",
data: data,
});
}
/**
* 修改用户密码
*
* @param id
* @param password
*/
export function updateUserPassword(id: number, password: string) {
return request({
url: "/api/v1/users/" + id + "/password",
method: "patch",
params: { password: password },
});
}
/**
* 删除用户
*
* @param ids
*/
export function deleteUsers(ids: string) {
return request({
url: "/api/v1/users/" + ids,
method: "delete",
});
}
/**
* 下载用户导入模板
*
* @returns
*/
export function downloadTemplateApi() {
return request({
url: "/api/v1/users/template",
method: "get",
responseType: "arraybuffer",
});
}
/**
* 导出用户
*
* @param queryParams
* @returns
*/
export function exportUser(queryParams: UserQuery) {
return request({
url: "/api/v1/users/_export",
method: "get",
params: queryParams,
responseType: "arraybuffer",
});
}
/**
* 导入用户
*
* @param file
*/
export function importUser(deptId: number, file: File) {
const formData = new FormData();
formData.append("file", file);
return request({
url: "/api/v1/users/_import",
method: "post",
params: { deptId: deptId },
data: formData,
headers: {
"Content-Type": "multipart/form-data",
},
});
}
export default UserAPI;