Files
frontend-template-i18n/src/api/system.ts

597 lines
12 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { http } from "@/utils/http";
import type {
ConfigInfo,
DepartmentInfo,
DepartmentRoleInfo,
PermissionInfo,
RoleInfo,
RolePermissionInfo,
UserInfo
} from "types/system";
import { filterEmptyObject } from "./utils";
// ---------------------------部门相关-------------------------------------
/**
* 获取部门列表参数
*/
type GetDepartmentListParams = {
/**当前页 */
page: number;
/**每页数量 */
pageSize: number;
/**部门ID */
id?: string;
/**部门名称 */
name?: string;
/**附属部门ID */
parent_id?: string;
/**部门负责人 */
principal?: string;
/**部门电话 */
phone?: number | string;
/**部门邮件 */
email?: string;
/**备注 */
remark?: string;
/**排序 */
sort?: number | string;
};
/**获取部门列表 */
export const getDepartmentListAPI = (params: GetDepartmentListParams) => {
return http.request<QueryListResult<DepartmentInfo>>(
"get",
`/api/department/list`,
{
params: filterEmptyObject(params)
}
);
};
/**更新部门数据 */
export const putUpdateDepartmentAPI = (
data: AddDepartmentParams,
id: string
) => {
return http.request<null>("post", `/api/department/update/${id}`, {
data
});
};
/**添加部门数据参数 */
type AddDepartmentParams = {
/**部门名称 */
name: string;
/**父部门ID */
parent_id: string;
/**排序 */
sort: number;
/**部门负责人 */
principal: string;
/**部门电话 */
phone: number | string;
/**部门邮件 */
email: string;
/**备注 */
remark: string;
/**状态 */
status: number;
};
/**添加部门数据 */
export const postAddDepartmentAPI = (data: AddDepartmentParams) => {
return http.request<null>("post", `/api/department/add`, {
data
});
};
/**删除部门及其附属部门 */
export const deleteDepartmentAPI = (id: string) => {
return http.request<null>("post", `/api/department/delete/${id}`);
};
// ----------------------------权限相关------------------------------------
/** 获取权限列表参数 */
type GetPermissionListParams = {
/** 当前页码 */
page: number;
/** 每页条数 */
pageSize: number;
/** 主键 */
id?: string;
/** 权限名称 */
name?: string;
/** 父权限ID */
parentId?: string;
/** 权限路径 */
path?: string;
/** 排序权重 */
rank?: number;
/** 菜单类型0菜单、1iframe、2外链、3按钮 */
menuType?: number;
/** 显示菜单 */
showLink?: boolean;
/** 显示父级菜单 */
showParent?: boolean;
/** 激活路径 */
activePath?: string;
/** 组件路径 */
component?: string;
/** 重定向路径 */
redirect?: string;
/** iframe路径 */
frameSrc?: string;
/** iframe加载动画 */
frameLoading?: boolean;
/** 缓存组件 */
keepAlive?: boolean;
/** 权限标识 */
auths?: string;
/** 菜单图标 */
icon?: string;
/** 右侧图标 */
extraIcon?: string;
/** 进场动画 */
enterTransition?: string;
/** 离场动画 */
leaveTransition?: string;
/** 固定标签页 */
fixedTag?: boolean;
/** 隐藏标签页 */
hiddenTag?: boolean;
};
/**获取权限列表 */
export const getPermissionListAPI = (params: GetPermissionListParams) => {
return http.request<QueryListResult<PermissionInfo>>(
"get",
`/api/permission/list`,
{
params: filterEmptyObject(params)
}
);
};
/**添加权限参数 */
type AddPermissionParams = {
/** 路由名称 */
name: string;
/** 路由路径 */
path: string;
/** 菜单名称 */
title: string;
/** 组件路径 */
component?: string;
/** 菜单排序 */
rank: number;
/** 路由重定向 */
redirect?: string;
/** 菜单图标 */
icon?: string;
/** 右侧图标 */
extra_icon?: string;
/** 进场动画 */
enter_transition?: string;
/** 离场动画 */
leave_transition?: string;
/** 菜单激活路径 */
active_path?: string;
/** 权限标识 */
auths?: string;
/** iframe链接地址 */
frame_src?: string;
/** iframe加载动画 */
frame_loading: boolean;
/** 缓存页面 */
keep_alive: boolean;
/** 隐藏标签页 */
hidden_tag: boolean;
/** 固定标签页 */
fixed_tag: boolean;
/** 显示菜单 */
show_link: boolean;
/** 显示父级菜单 */
show_parent: boolean;
/** 父级菜单ID */
parent_id: string;
/** 菜单类型 */
menu_type: number;
};
/**
* 添加权限
* @param data 添加权限参数
* @returns
*/
export const postAddPermissionAPI = (data: AddPermissionParams) => {
return http.request<null>("post", `/api/permission/add`, {
data
});
};
/**
* 删除权限
* @param id 权限ID
* @returns
*/
export const deletePermissionAPI = (id: string) => {
return http.request<null>("post", `/api/permission/delete/${id}`);
};
/**更新权限信息 */
type UpdatePermissionParams = {} & AddPermissionParams;
/**
*
* @param id 权限ID
* @param data 更新权限信息参数
* @returns
*/
export const putUpdatePermissionAPI = (
id: string,
data: UpdatePermissionParams
) => {
return http.request<null>("post", `/api/permission/update/${id}`, {
data
});
};
/**
* 获取角色权限列表
* @param id 角色ID
* @returns
*/
export const getRolePermissionsAPI = (id: string) => {
return http.request<QueryListResult<RolePermissionInfo>>(
"get",
`/api/role/permissionList/${id}`
);
};
/**
* 更新角色权限信息
* @param id 角色ID
* @param data 角色权限列表
* @returns
*/
export const putUpdateRolePermissionsAPI = (
id: string,
data: {
permission_ids: string[];
}
) => {
return http.request<null>("put", `/api/role/updatePermission/${id}`, {
data
});
};
// -----------------------------角色相关-----------------------------------
type GetRoleListParams = {
/**当前页 */
page: number;
/**每页数量 */
pageSize: number;
/**角色名称 */
name?: string;
/**角色标识符 */
code?: string;
/**角色描述 */
description?: string;
/**所属部门ID */
department_id?: string;
};
/**获取角色列表 */
export const getRoleListAPI = (params: GetRoleListParams) => {
return http.request<QueryListResult<RoleInfo>>("get", `/api/role/list`, {
params: filterEmptyObject(params)
});
};
/**添加角色参数 */
type AddRoleParams = {
/**角色姓名 */
name: string;
/**角色标识 */
code: string;
/**角色描述 */
description: string;
/**所属部门ID */
department_id: string;
/**状态 */
status: number | string;
};
/**更新角色数据 */
export const putUpdateRoleAPI = (data: AddRoleParams, id: string) => {
return http.request<null>("post", `/api/role/update/${id}`, {
data
});
};
/**添加角色数据 */
export const postAddRoleAPI = (data: AddRoleParams) => {
return http.request<null>("post", `/api/role/add`, {
data
});
};
/**删除角色 */
export const deleteRoleAPI = (id: string) => {
return http.request<null>("post", `/api/role/delete/${id}`);
};
// --------------------------用户相关--------------------------------------
/**添加用户参数 */
type AddUserParams = {
/**用户账号 */
username: string;
/**用户密码 */
password: string;
/**用户性别 */
gender: number;
/**用户头像 */
avatar: string;
/**用户邮箱 */
email: string;
/**用户姓名 */
nickname: string;
/**用户手机号 */
phone: string;
/**用户状态 */
status: number;
/**用户部门 */
department_id: string;
};
/**
* 添加用户
* @param data
* @returns
*/
export const postAddUserAPI = (data: AddUserParams) => {
return http.request<null>("post", `/api/user/add`, {
data
});
};
/**获取用户列表参数 */
type GetUserListParams = {
/**当前页 */
page: number;
/**每页数量 */
pageSize: number;
/**部门ID */
department_id?: string;
/**用户账号 */
username?: string;
/**用户姓名 */
nickname?: string;
/**用户ID */
id?: string;
/**用户状态 */
status?: string;
/**用户手机号 */
phone?: string;
/**用户邮箱 */
email?: string;
/**用户性别 */
gender?: number | string;
};
/**获取用户列表 */
export const getUserListAPI = (params: GetUserListParams) => {
return http.request<QueryListResult<UserInfo>>("get", `/api/user/list`, {
params: filterEmptyObject(params)
});
};
/**更新用户参数 */
type UpdateUserParams = {
/**用户账号 */
username: string;
/**用户性别 */
gender: number;
/**用户头像 */
avatar: string;
/**用户邮箱 */
email: string;
/**用户姓名 */
nickname: string;
/**用户手机号 */
phone: string;
/**用户状态 */
status: number;
/**用户部门 */
department_id: string;
};
/**
* 更新用户信息
* @param id 角色ID
* @param data 更新角色参数
* @returns
*/
export const putUpdateUserAPI = (id: string, data: UpdateUserParams) => {
return http.request<null>("put", `/api/user/update/${id}`, {
data
});
};
/**
* 删除用户
* @param id 用户ID
* @returns
*/
export const deleteUserAPI = (id: string) => {
return http.request<null>("post", `/api/user/delete/${id}`);
};
/**
* 批量删除用户
* @param data 用户ID列表
* @returns
*/
export const deleteUserListAPI = (data: { ids: string[] }) => {
return http.request<null>("post", `/api/user/deleteUserList`, { data });
};
/**
* 更新用户密码
* @param id 用户ID
* @param data 用户新密码
* @returns
*/
export const putUpdateUserPasswordAPI = (
id: string,
data: { password: string }
) => {
return http.request<null>("post", `/api/user/updateUserPassword/${id}`, {
headers: {
"content-type": "application/x-www-form-urlencoded"
},
data
});
};
/**
* 获取用户角色列表
* @param id 用户ID
* @returns
*/
export const getUserRolesAPI = (id: string) => {
return http.request<QueryListResult<DepartmentRoleInfo>>(
"get",
`/api/user/roleList/${id}`
);
};
type UpdateUserRoleParams = {
/**用户ID */
user_id: string;
/**角色ID */
role_ids: string[];
};
/**
* 更新用户角色信息
* @param id 用户ID
* @param data 用户角色列表
* @returns
*/
export const putUpdateUserRolesAPI = (data: UpdateUserRoleParams) => {
return http.request<null>("post", `/api/user/updateRole`, {
data
});
};
/**
* 获取用户权限列表
* @param id 用户ID
* @returns
*/
export const getUserPermissionsAPI = (id: string) => {
return http.request<string[]>("get", `/api/user/permissionList/${id}`);
};
/**用户获取部门角色列表 */
export const getUserGetDepartmentRolesAPI = (id: string) => {
return http.request<QueryListResult<DepartmentRoleInfo>>(
"get",
`/api/department/roleList/${id}`
);
};
// ---------------------------配置相关-------------------------------------
/**
* 添加配置参数
*/
interface AddConfigParams {
/**配置名称 */
name: string;
/**配置键值 */
key: string;
/**配置值 */
value: string;
/**系统配置 */
type: string;
/**备注 */
remark?: string;
}
/**
* 添加配置
* @param data
* @returns
*/
export const postAddConfigAPI = (data: AddConfigParams) => {
return http.request<null>("post", `/api/config/add`, {
data
});
};
/**
* 删除配置
*/
export const deleteConfigAPI = (id: string) => {
return http.request<null>("post", `/api/config/delete/${id}`);
};
/**
* 批量删除配置
* @param data 配置ID列表
*/
export const deleteConfigListAPI = (data: { ids: string[] }) => {
return http.request<null>("post", `/api/config/deleteList`, { data });
};
/**
* 更新配置
*/
export const putUpdateConfigAPI = (data: AddConfigParams, id: string) => {
return http.request<null>("post", `/api/config/update/${id}`, {
data
});
};
/**
* 获取配置信息
* @param id 配置ID
*/
export const getConfigAPI = (id: string) => {
return http.request<ConfigInfo>("get", `/api/config/info/${id}`);
};
/**
* 获取配置列表参数
*/
interface GetConfigListParams {
/**
* 页码
*/
page: number;
/**
* 每页数量
*/
pageSize: number;
/**
* 配置名称
*/
name?: string;
/**
* 配置键值
*/
key?: string;
/**
* 系统配置
*/
type?: string;
}
/**
* 获取配置列表
* @param params
*/
export const getConfigListAPI = (params: GetConfigListParams) => {
return http.request<QueryListResult<ConfigInfo>>("get", `/api/config/list`, {
params: filterEmptyObject(params)
});
};