refactor: 优化代码规范和可读性

This commit is contained in:
Ray.Hao
2026-05-25 22:22:42 +08:00
parent e3e5b87f89
commit 2a538d7da7
56 changed files with 324 additions and 294 deletions

View File

@@ -6,7 +6,10 @@ const AUTH_BASE_URL = "/api/v1/auth";
const AuthAPI = {
/** 登录接口*/
login(data: LoginRequest) {
const payload: Record<string, any> = {
const payload: Pick<
LoginRequest,
"username" | "password" | "captchaId" | "captchaCode" | "tenantId"
> = {
username: data.username,
password: data.password,
captchaId: data.captchaId,
@@ -18,7 +21,7 @@ const AuthAPI = {
payload.tenantId = data.tenantId;
}
return request<any, LoginResponse>({
return request<unknown, LoginResponse>({
url: `${AUTH_BASE_URL}/login`,
method: "post",
data: payload,
@@ -27,7 +30,7 @@ const AuthAPI = {
/** 切换租户(平台用户) - 返回新的 token */
switchTenant(tenantId: number) {
return request<any, LoginResponse>({
return request<unknown, LoginResponse>({
url: `${AUTH_BASE_URL}/switch-tenant`,
method: "post",
params: { tenantId },
@@ -36,7 +39,7 @@ const AuthAPI = {
/** 刷新 token 接口*/
refreshToken(refreshToken: string) {
return request<any, LoginResponse>({
return request<unknown, LoginResponse>({
url: `${AUTH_BASE_URL}/refresh-token`,
method: "post",
params: { refreshToken },
@@ -56,7 +59,7 @@ const AuthAPI = {
/** 获取验证码接口*/
getCaptcha() {
return request<any, CaptchaInfo>({
return request<unknown, CaptchaInfo>({
url: `${AUTH_BASE_URL}/captcha`,
method: "get",
});

View File

@@ -6,7 +6,7 @@ const GENERATOR_BASE_URL = "/api/v1/codegen";
const GeneratorAPI = {
/** 获取数据表分页列表 */
getTablePage(params: TableQueryParams) {
return request<any, PageResult<TableItem>>({
return request<unknown, PageResult<TableItem>>({
url: `${GENERATOR_BASE_URL}/table`,
method: "get",
params,
@@ -15,7 +15,7 @@ const GeneratorAPI = {
/** 获取代码生成配置 */
getGenConfig(tableName: string) {
return request<any, GenConfigForm>({
return request<unknown, GenConfigForm>({
url: `${GENERATOR_BASE_URL}/${tableName}/config`,
method: "get",
});
@@ -39,7 +39,7 @@ const GeneratorAPI = {
if (type) {
params.type = type;
}
return request<any, GeneratorPreviewItem[]>({
return request<unknown, GeneratorPreviewItem[]>({
url: `${GENERATOR_BASE_URL}/${tableName}/preview`,
method: "get",
params: Object.keys(params).length ? params : undefined,

View File

@@ -3,7 +3,7 @@
*/
/** API 响应结构 */
export interface ApiResponse<T = any> {
export interface ApiResponse<T = unknown> {
/** 响应码 */
code: string;
/** 响应数据 */

View File

@@ -4,7 +4,7 @@ import type { FileInfo } from "./types";
const FileAPI = {
/** 上传文件 (传入 FormData上传进度回调 */
upload(formData: FormData, onProgress?: (percent: number) => void) {
return request<any, FileInfo>({
return request<unknown, FileInfo>({
url: "/api/v1/files",
method: "post",
data: formData,
@@ -22,7 +22,7 @@ const FileAPI = {
uploadFile(file: File) {
const formData = new FormData();
formData.append("file", file);
return request<any, FileInfo>({
return request<unknown, FileInfo>({
url: "/api/v1/files",
method: "post",
data: formData,

View File

@@ -6,7 +6,7 @@ const CONFIG_BASE_URL = "/api/v1/configs";
const ConfigAPI = {
/** 获取配置分页数据 */
getPage(queryParams?: ConfigQueryParams) {
return request<any, PageResult<ConfigItem>>({
return request<unknown, PageResult<ConfigItem>>({
url: `${CONFIG_BASE_URL}`,
method: "get",
params: queryParams,
@@ -14,7 +14,7 @@ const ConfigAPI = {
},
/** 获取配置表单数据 */
getFormData(id: string) {
return request<any, ConfigForm>({
return request<unknown, ConfigForm>({
url: `${CONFIG_BASE_URL}/${id}/form`,
method: "get",
});

View File

@@ -7,7 +7,7 @@ const DEPT_BASE_URL = "/api/v1/depts";
const DeptAPI = {
/** 获取部门树形列表 */
getList(queryParams?: DeptQueryParams) {
return request<any, DeptItem[]>({
return request<unknown, DeptItem[]>({
url: `${DEPT_BASE_URL}`,
method: "get",
params: queryParams,
@@ -15,11 +15,11 @@ const DeptAPI = {
},
/** 获取部门下拉数据源 */
getOptions() {
return request<any, OptionItem[]>({ url: `${DEPT_BASE_URL}/options`, method: "get" });
return request<unknown, OptionItem[]>({ url: `${DEPT_BASE_URL}/options`, method: "get" });
},
/** 获取部门表单数据 */
getFormData(id: string) {
return request<any, DeptForm>({ url: `${DEPT_BASE_URL}/${id}/form`, method: "get" });
return request<unknown, DeptForm>({ url: `${DEPT_BASE_URL}/${id}/form`, method: "get" });
},
/** 新增部门 */
create(data: DeptForm) {

View File

@@ -12,9 +12,11 @@ import type { OptionItem } from "@/api/common";
const DICT_BASE_URL = "/api/v1/dicts";
type DictTagType = DictItemForm["tagType"];
type DictTagTypeCode = "N" | "P" | "S" | "W" | "I" | "D";
const decodeDictTagType = (code?: unknown): DictItemForm["tagType"] => {
// 将后端标签类型转换为前端标签类型
const decodeDictTagType = (code?: unknown): DictTagType => {
const val = String(code ?? "")
.trim()
.toUpperCase();
@@ -35,6 +37,7 @@ const decodeDictTagType = (code?: unknown): DictItemForm["tagType"] => {
}
};
// 将前端标签类型转换为后端标签类型
const encodeDictTagType = (tagType?: unknown): DictTagTypeCode => {
const val = String(tagType ?? "")
.trim()
@@ -58,10 +61,20 @@ const encodeDictTagType = (tagType?: unknown): DictTagTypeCode => {
}
};
// 统一转换字典项标签类型
const normalizeDictTagType = <T extends { tagType?: unknown }>(
item: T
): Omit<T, "tagType"> & {
tagType: DictTagType;
} => ({
...item,
tagType: decodeDictTagType(item.tagType),
});
const DictAPI = {
/** 字典分页列表 */
getPage(queryParams: DictTypeQueryParams) {
return request<any, PageResult<DictTypeItem>>({
return request<unknown, PageResult<DictTypeItem>>({
url: `${DICT_BASE_URL}`,
method: "get",
params: queryParams,
@@ -69,11 +82,11 @@ const DictAPI = {
},
/** 字典列表 */
getList() {
return request<any, OptionItem[]>({ url: `${DICT_BASE_URL}/options`, method: "get" });
return request<unknown, OptionItem[]>({ url: `${DICT_BASE_URL}/options`, method: "get" });
},
/** 字典表单数据 */
getFormData(id: string) {
return request<any, DictTypeForm>({ url: `${DICT_BASE_URL}/${id}/form`, method: "get" });
return request<unknown, DictTypeForm>({ url: `${DICT_BASE_URL}/${id}/form`, method: "get" });
},
/** 新增字典 */
create(data: DictTypeForm) {
@@ -90,29 +103,21 @@ const DictAPI = {
/** 获取字典项分页列表 */
getDictItemPage(dictCode: string, queryParams: DictItemQueryParams) {
return request<any, PageResult<DictItem>>({
return request<unknown, PageResult<DictItem>>({
url: `${DICT_BASE_URL}/${dictCode}/items`,
method: "get",
params: queryParams,
}).then((data) => ({
...data,
list: (data.list ?? []).map((item: DictItem & { tagType?: string }) => ({
...item,
tagType: decodeDictTagType(item.tagType),
})),
list: (data.list ?? []).map(normalizeDictTagType),
}));
},
/** 获取字典项列表 */
getDictItems(dictCode: string) {
return request<any, DictItemOption[]>({
return request<unknown, DictItemOption[]>({
url: `${DICT_BASE_URL}/${dictCode}/items/options`,
method: "get",
}).then((items) =>
(items ?? []).map((item) => ({
...item,
tagType: decodeDictTagType((item as any).tagType),
}))
);
}).then((items) => (items ?? []).map(normalizeDictTagType));
},
/** 新增字典项 */
createDictItem(dictCode: string, data: DictItemForm) {
@@ -121,19 +126,16 @@ const DictAPI = {
method: "post",
data: {
...data,
tagType: encodeDictTagType((data as any).tagType),
tagType: encodeDictTagType(data.tagType),
},
});
},
/** 获取字典项表单数据 */
getDictItemFormData(dictCode: string, id: string) {
return request<any, DictItemForm>({
return request<unknown, DictItemForm>({
url: `${DICT_BASE_URL}/${dictCode}/items/${id}/form`,
method: "get",
}).then((form) => ({
...form,
tagType: decodeDictTagType((form as any).tagType),
}));
}).then(normalizeDictTagType);
},
/** 修改字典项 */
updateDictItem(dictCode: string, id: string, data: DictItemForm) {
@@ -142,7 +144,7 @@ const DictAPI = {
method: "put",
data: {
...data,
tagType: encodeDictTagType((data as any).tagType),
tagType: encodeDictTagType(data.tagType),
},
});
},

View File

@@ -12,7 +12,7 @@ const LOG_BASE_URL = "/api/v1/logs";
const LogAPI = {
/** 获取日志分页列表 */
getPage(queryParams: LogQueryParams) {
return request<any, PageResult<LogItem>>({
return request<unknown, PageResult<LogItem>>({
url: `${LOG_BASE_URL}`,
method: "get",
params: queryParams,
@@ -21,7 +21,7 @@ const LogAPI = {
/** 获取访问趋势统计 */
getVisitTrend(queryParams: VisitTrendQueryParams) {
return request<any, VisitTrendDetail>({
return request<unknown, VisitTrendDetail>({
url: `${LOG_BASE_URL}/analytics/trend`,
method: "get",
params: queryParams,
@@ -30,7 +30,7 @@ const LogAPI = {
/** 获取访问概览统计 */
getVisitOverview() {
return request<any, VisitOverviewDetail>({
return request<unknown, VisitOverviewDetail>({
url: `${LOG_BASE_URL}/analytics/overview`,
method: "get",
});

View File

@@ -7,11 +7,11 @@ const MENU_BASE_URL = "/api/v1/menus";
const MenuAPI = {
/** 获取当前用户的路由列表 */
getRoutes() {
return request<any, RouteItem[]>({ url: `${MENU_BASE_URL}/routes`, method: "get" });
return request<unknown, RouteItem[]>({ url: `${MENU_BASE_URL}/routes`, method: "get" });
},
/** 获取菜单树形列表 */
getList(queryParams: MenuQueryParams) {
return request<any, MenuItem[]>({
return request<unknown, MenuItem[]>({
url: `${MENU_BASE_URL}`,
method: "get",
params: queryParams,
@@ -19,7 +19,7 @@ const MenuAPI = {
},
/** 获取菜单下拉数据源 */
getOptions(onlyParent?: boolean, scope?: number) {
return request<any, OptionItem[]>({
return request<unknown, OptionItem[]>({
url: `${MENU_BASE_URL}/options`,
method: "get",
params: { onlyParent, scope },
@@ -27,7 +27,7 @@ const MenuAPI = {
},
/** 获取菜单表单数据 */
getFormData(id: string) {
return request<any, MenuForm>({ url: `${MENU_BASE_URL}/${id}/form`, method: "get" });
return request<unknown, MenuForm>({ url: `${MENU_BASE_URL}/${id}/form`, method: "get" });
},
/** 新增菜单 */
create(data: MenuForm) {

View File

@@ -109,7 +109,7 @@ export interface Meta {
/** 【菜单】是否开启页面缓存 */
keepAlive?: boolean;
/** 路由参数 */
params?: Record<string, any>;
params?: Record<string, unknown>;
/** 角色集合 */
roles?: string[];
/** 路由title */

View File

@@ -6,7 +6,7 @@ const NOTICE_BASE_URL = "/api/v1/notices";
const NoticeAPI = {
/** 获取通知公告分页数据 */
getPage(queryParams?: NoticeQueryParams) {
return request<any, PageResult<NoticeItem>>({
return request<unknown, PageResult<NoticeItem>>({
url: `${NOTICE_BASE_URL}`,
method: "get",
params: queryParams,
@@ -14,7 +14,7 @@ const NoticeAPI = {
},
/** 获取通知公告表单数据 */
getFormData(id: string) {
return request<any, NoticeForm>({ url: `${NOTICE_BASE_URL}/${id}/form`, method: "get" });
return request<unknown, NoticeForm>({ url: `${NOTICE_BASE_URL}/${id}/form`, method: "get" });
},
/** 添加通知公告 */
create(data: NoticeForm) {
@@ -38,7 +38,10 @@ const NoticeAPI = {
},
/** 查看通知 */
getDetail(id: string) {
return request<any, NoticeDetail>({ url: `${NOTICE_BASE_URL}/${id}/detail`, method: "get" });
return request<unknown, NoticeDetail>({
url: `${NOTICE_BASE_URL}/${id}/detail`,
method: "get",
});
},
/** 全部已读 */
readAll() {
@@ -46,7 +49,7 @@ const NoticeAPI = {
},
/** 获取我的通知分页列表 */
getMyNoticePage(queryParams?: NoticeQueryParams) {
return request<any, PageResult<NoticeItem>>({
return request<unknown, PageResult<NoticeItem>>({
url: `${NOTICE_BASE_URL}/my`,
method: "get",
params: queryParams,

View File

@@ -7,7 +7,7 @@ const ROLE_BASE_URL = "/api/v1/roles";
const RoleAPI = {
/** 获取角色分页数据 */
getPage(queryParams?: RoleQueryParams) {
return request<any, PageResult<RoleItem>>({
return request<unknown, PageResult<RoleItem>>({
url: `${ROLE_BASE_URL}`,
method: "get",
params: queryParams,
@@ -15,11 +15,14 @@ const RoleAPI = {
},
/** 获取角色下拉数据源 */
getOptions() {
return request<any, OptionItem[]>({ url: `${ROLE_BASE_URL}/options`, method: "get" });
return request<unknown, OptionItem[]>({ url: `${ROLE_BASE_URL}/options`, method: "get" });
},
/** 获取角色的菜单ID集合 */
getRoleMenuIds(roleId: string) {
return request<any, string[]>({ url: `${ROLE_BASE_URL}/${roleId}/menu-ids`, method: "get" });
return request<unknown, string[]>({
url: `${ROLE_BASE_URL}/${roleId}/menu-ids`,
method: "get",
});
},
/** 分配菜单权限 */
updateRoleMenus(roleId: string, data: number[]) {
@@ -27,11 +30,14 @@ const RoleAPI = {
},
/** 获取角色表单数据 */
getFormData(id: string) {
return request<any, RoleForm>({ url: `${ROLE_BASE_URL}/${id}/form`, method: "get" });
return request<unknown, RoleForm>({ url: `${ROLE_BASE_URL}/${id}/form`, method: "get" });
},
/** 获取角色的部门ID集合(自定义数据权限) */
getRoleDeptIds(roleId: string) {
return request<any, string[]>({ url: `${ROLE_BASE_URL}/${roleId}/dept-ids`, method: "get" });
return request<unknown, string[]>({
url: `${ROLE_BASE_URL}/${roleId}/dept-ids`,
method: "get",
});
},
/** 新增角色 */
create(data: RoleForm) {

View File

@@ -7,7 +7,7 @@ const TENANT_PLAN_BASE_URL = "/api/v1/tenant-plans";
const TenantPlanAPI = {
/** 获取租户套餐分页数据 */
getPage(queryParams?: TenantPlanQueryParams) {
return request<any, PageResult<TenantPlanItem>>({
return request<unknown, PageResult<TenantPlanItem>>({
url: `${TENANT_PLAN_BASE_URL}`,
method: "get",
params: queryParams,
@@ -16,7 +16,7 @@ const TenantPlanAPI = {
/** 获取租户套餐表单数据 */
getFormData(planId: string) {
return request<any, TenantPlanForm>({
return request<unknown, TenantPlanForm>({
url: `${TENANT_PLAN_BASE_URL}/${planId}/form`,
method: "get",
});
@@ -39,7 +39,7 @@ const TenantPlanAPI = {
/** 获取租户方案下拉选项 */
getOptions() {
return request<any, OptionItem[]>({
return request<unknown, OptionItem[]>({
url: `${TENANT_PLAN_BASE_URL}/options`,
method: "get",
});
@@ -47,7 +47,7 @@ const TenantPlanAPI = {
/** 获取方案菜单ID集合 */
getPlanMenuIds(planId: number) {
return request<any, number[]>({
return request<unknown, number[]>({
url: `${TENANT_PLAN_BASE_URL}/${planId}/menuIds`,
method: "get",
});

View File

@@ -19,7 +19,7 @@ const TenantAPI = {
* 获取当前用户可访问的租户列表
*/
getTenantList() {
return request<any, TenantInfo[]>({
return request<unknown, TenantInfo[]>({
url: `${TENANT_BASE_URL}/options`,
method: "get",
});
@@ -29,7 +29,7 @@ const TenantAPI = {
* 获取当前租户信息
*/
getCurrentTenant() {
return request<any, TenantInfo>({
return request<unknown, TenantInfo>({
url: `${TENANT_BASE_URL}/current`,
method: "get",
});
@@ -41,7 +41,7 @@ const TenantAPI = {
* @param tenantId 目标租户ID
*/
switchTenant(tenantId: number) {
return request<any, TenantInfo>({
return request<unknown, TenantInfo>({
url: `${TENANT_BASE_URL}/${tenantId}/switch`,
method: "post",
});
@@ -49,7 +49,7 @@ const TenantAPI = {
/** 获取租户分页数据(平台租户管理) */
getPage(queryParams?: TenantQueryParams) {
return request<any, PageResult<TenantItem>>({
return request<unknown, PageResult<TenantItem>>({
url: `${TENANT_BASE_URL}`,
method: "get",
params: queryParams,
@@ -58,7 +58,7 @@ const TenantAPI = {
/** 获取租户表单数据 */
getFormData(tenantId: string) {
return request<any, TenantForm>({
return request<unknown, TenantForm>({
url: `${TENANT_BASE_URL}/${tenantId}/form`,
method: "get",
});
@@ -66,7 +66,7 @@ const TenantAPI = {
/** 新增租户并初始化默认数据 */
create(data: TenantCreateForm) {
return request<any, TenantCreateResult>({
return request<unknown, TenantCreateResult>({
url: `${TENANT_BASE_URL}`,
method: "post",
data,
@@ -101,7 +101,7 @@ const TenantAPI = {
/** 获取租户菜单ID集合 */
getTenantMenuIds(tenantId: number) {
return request<any, number[]>({
return request<unknown, number[]>({
url: `${TENANT_BASE_URL}/${tenantId}/menuIds`,
method: "get",
});

View File

@@ -22,7 +22,7 @@ const UserAPI = {
* @returns 登录用户昵称、头像信息,包括角色和权限
*/
getInfo() {
return request<any, UserInfo>({
return request<unknown, UserInfo>({
url: `${USER_BASE_URL}/me`,
method: "get",
});
@@ -34,7 +34,7 @@ const UserAPI = {
* @param queryParams 查询参数
*/
getPage(queryParams: UserQueryParams) {
return request<any, PageResult<UserItem>>({
return request<unknown, PageResult<UserItem>>({
url: `${USER_BASE_URL}`,
method: "get",
params: queryParams,
@@ -48,7 +48,7 @@ const UserAPI = {
* @returns 用户表单详情
*/
getFormData(userId: string) {
return request<any, UserForm>({
return request<unknown, UserForm>({
url: `${USER_BASE_URL}/${userId}/form`,
method: "get",
});
@@ -138,7 +138,7 @@ const UserAPI = {
import(file: File) {
const formData = new FormData();
formData.append("file", file);
return request<any, ExcelResult>({
return request<unknown, ExcelResult>({
url: `${USER_BASE_URL}/import`,
method: "post",
data: formData,
@@ -150,7 +150,7 @@ const UserAPI = {
/** 获取个人中心用户信息 */
getProfile() {
return request<any, UserProfileDetail>({
return request<unknown, UserProfileDetail>({
url: `${USER_BASE_URL}/profile`,
method: "get",
});
@@ -232,7 +232,7 @@ const UserAPI = {
* 获取用户下拉列表
*/
getOptions() {
return request<any, OptionItem[]>({
return request<unknown, OptionItem[]>({
url: `${USER_BASE_URL}/options`,
method: "get",
});