refactor: 更新API接口与数据结构,统一分页返回格式
This commit is contained in:
@@ -4,8 +4,8 @@ import type {
|
||||
AiCommandResponse,
|
||||
AiExecuteRequest,
|
||||
AiExecuteResponse,
|
||||
AiCommandRecordPageQuery,
|
||||
AiCommandRecordVo,
|
||||
AiAssistantRecordQueryParams,
|
||||
AiAssistantRecordItem,
|
||||
} from "@/types/api";
|
||||
|
||||
const AI_BASE_URL = "/api/v1/ai/assistant";
|
||||
@@ -48,8 +48,8 @@ const AiCommandApi = {
|
||||
* @param queryParams 查询参数
|
||||
* @returns AI 命令记录分页列表
|
||||
*/
|
||||
getPage(queryParams: AiCommandRecordPageQuery) {
|
||||
return request<any, PageResult<AiCommandRecordVo[]>>({
|
||||
getPage(queryParams: AiAssistantRecordQueryParams) {
|
||||
return request<any, PageResult<AiAssistantRecordItem>>({
|
||||
url: `${AI_BASE_URL}/records`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import request from "@/utils/request";
|
||||
import type { GeneratorPreviewVo, TablePageQuery, TablePageVo, GenConfigForm } from "@/types/api";
|
||||
import type { GeneratorPreviewItem, TableQueryParams, TableItem, GenConfigForm } from "@/types/api";
|
||||
|
||||
const GENERATOR_BASE_URL = "/api/v1/codegen";
|
||||
|
||||
const GeneratorAPI = {
|
||||
/** 获取数据表分页列表 */
|
||||
getTablePage(params: TablePageQuery) {
|
||||
return request<any, PageResult<TablePageVo[]>>({
|
||||
url: `${GENERATOR_BASE_URL}/table/page`,
|
||||
getTablePage(params: TableQueryParams) {
|
||||
return request<any, PageResult<TableItem>>({
|
||||
url: `${GENERATOR_BASE_URL}/table`,
|
||||
method: "get",
|
||||
params,
|
||||
});
|
||||
@@ -32,7 +32,7 @@ const GeneratorAPI = {
|
||||
|
||||
/** 获取代码生成预览数据 */
|
||||
getPreviewData(tableName: string, pageType?: "classic" | "curd") {
|
||||
return request<any, GeneratorPreviewVo[]>({
|
||||
return request<any, GeneratorPreviewItem[]>({
|
||||
url: `${GENERATOR_BASE_URL}/${tableName}/preview`,
|
||||
method: "get",
|
||||
params: pageType ? { pageType } : undefined,
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import request from "@/utils/request";
|
||||
import type { ConfigPageQuery, ConfigForm, ConfigPageVo } from "@/types/api";
|
||||
import type { ConfigQueryParams, ConfigForm, ConfigItem } from "@/types/api";
|
||||
|
||||
const CONFIG_BASE_URL = "/api/v1/configs";
|
||||
|
||||
const ConfigAPI = {
|
||||
/** 获取配置分页数据 */
|
||||
getPage(queryParams?: ConfigPageQuery) {
|
||||
return request<any, PageResult<ConfigPageVo[]>>({
|
||||
url: `${CONFIG_BASE_URL}/page`,
|
||||
getPage(queryParams?: ConfigQueryParams) {
|
||||
return request<any, PageResult<ConfigItem>>({
|
||||
url: `${CONFIG_BASE_URL}`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
import request from "@/utils/request";
|
||||
import type { DeptQuery, DeptVo, DeptForm } from "@/types/api";
|
||||
import type { DeptQueryParams, DeptItem, DeptForm, OptionItem } from "@/types/api";
|
||||
|
||||
const DEPT_BASE_URL = "/api/v1/depts";
|
||||
|
||||
const DeptAPI = {
|
||||
/** 获取部门树形列表 */
|
||||
getList(queryParams?: DeptQuery) {
|
||||
return request<any, DeptVo[]>({ url: `${DEPT_BASE_URL}`, method: "get", params: queryParams });
|
||||
getList(queryParams?: DeptQueryParams) {
|
||||
return request<any, DeptItem[]>({
|
||||
url: `${DEPT_BASE_URL}`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
},
|
||||
/** 获取部门下拉数据源 */
|
||||
getOptions() {
|
||||
return request<any, OptionType[]>({ url: `${DEPT_BASE_URL}/options`, method: "get" });
|
||||
return request<any, OptionItem[]>({ url: `${DEPT_BASE_URL}/options`, method: "get" });
|
||||
},
|
||||
/** 获取部门表单数据 */
|
||||
getFormData(id: string) {
|
||||
|
||||
@@ -1,39 +1,86 @@
|
||||
import request from "@/utils/request";
|
||||
import type {
|
||||
DictPageQuery,
|
||||
DictPageVo,
|
||||
DictForm,
|
||||
DictItemPageQuery,
|
||||
DictItemPageVo,
|
||||
DictTypeQueryParams,
|
||||
DictTypeItem,
|
||||
DictTypeForm,
|
||||
DictItemQueryParams,
|
||||
DictItem,
|
||||
DictItemForm,
|
||||
DictItemOption,
|
||||
OptionItem,
|
||||
} from "@/types/api";
|
||||
|
||||
const DICT_BASE_URL = "/api/v1/dicts";
|
||||
|
||||
type DictTagTypeCode = "N" | "P" | "S" | "W" | "I" | "D";
|
||||
|
||||
const decodeDictTagType = (code?: unknown): DictItemForm["tagType"] => {
|
||||
const val = String(code ?? "")
|
||||
.trim()
|
||||
.toUpperCase();
|
||||
switch (val as DictTagTypeCode) {
|
||||
case "P":
|
||||
return "primary";
|
||||
case "S":
|
||||
return "success";
|
||||
case "W":
|
||||
return "warning";
|
||||
case "I":
|
||||
return "info";
|
||||
case "D":
|
||||
return "danger";
|
||||
case "N":
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
};
|
||||
|
||||
const encodeDictTagType = (tagType?: unknown): DictTagTypeCode => {
|
||||
const val = String(tagType ?? "")
|
||||
.trim()
|
||||
.toLowerCase();
|
||||
switch (val) {
|
||||
case "primary":
|
||||
return "P";
|
||||
case "success":
|
||||
return "S";
|
||||
case "warning":
|
||||
return "W";
|
||||
case "info":
|
||||
return "I";
|
||||
case "danger":
|
||||
case "error":
|
||||
return "D";
|
||||
case "default":
|
||||
case "":
|
||||
default:
|
||||
return "N";
|
||||
}
|
||||
};
|
||||
|
||||
const DictAPI = {
|
||||
/** 字典分页列表 */
|
||||
getPage(queryParams: DictPageQuery) {
|
||||
return request<any, PageResult<DictPageVo[]>>({
|
||||
url: `${DICT_BASE_URL}/page`,
|
||||
getPage(queryParams: DictTypeQueryParams) {
|
||||
return request<any, PageResult<DictTypeItem>>({
|
||||
url: `${DICT_BASE_URL}`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
},
|
||||
/** 字典列表 */
|
||||
getList() {
|
||||
return request<any, OptionType[]>({ url: `${DICT_BASE_URL}`, method: "get" });
|
||||
return request<any, OptionItem[]>({ url: `${DICT_BASE_URL}/options`, method: "get" });
|
||||
},
|
||||
/** 字典表单数据 */
|
||||
getFormData(id: string) {
|
||||
return request<any, DictForm>({ url: `${DICT_BASE_URL}/${id}/form`, method: "get" });
|
||||
return request<any, DictTypeForm>({ url: `${DICT_BASE_URL}/${id}/form`, method: "get" });
|
||||
},
|
||||
/** 新增字典 */
|
||||
create(data: DictForm) {
|
||||
create(data: DictTypeForm) {
|
||||
return request({ url: `${DICT_BASE_URL}`, method: "post", data });
|
||||
},
|
||||
/** 修改字典 */
|
||||
update(id: string, data: DictForm) {
|
||||
update(id: string, data: DictTypeForm) {
|
||||
return request({ url: `${DICT_BASE_URL}/${id}`, method: "put", data });
|
||||
},
|
||||
/** 删除字典 */
|
||||
@@ -42,34 +89,62 @@ const DictAPI = {
|
||||
},
|
||||
|
||||
/** 获取字典项分页列表 */
|
||||
getDictItemPage(dictCode: string, queryParams: DictItemPageQuery) {
|
||||
return request<any, PageResult<DictItemPageVo[]>>({
|
||||
url: `${DICT_BASE_URL}/${dictCode}/items/page`,
|
||||
getDictItemPage(dictCode: string, queryParams: DictItemQueryParams) {
|
||||
return request<any, PageResult<DictItem>>({
|
||||
url: `${DICT_BASE_URL}/${dictCode}/items`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
}).then((res) => ({
|
||||
...res,
|
||||
data: (res.data ?? []).map((item) => ({
|
||||
...item,
|
||||
tagType: decodeDictTagType((item as any).tagType),
|
||||
})),
|
||||
}));
|
||||
},
|
||||
/** 获取字典项列表 */
|
||||
getDictItems(dictCode: string) {
|
||||
return request<any, DictItemOption[]>({
|
||||
url: `${DICT_BASE_URL}/${dictCode}/items`,
|
||||
url: `${DICT_BASE_URL}/${dictCode}/items/options`,
|
||||
method: "get",
|
||||
});
|
||||
}).then((items) =>
|
||||
(items ?? []).map((item) => ({
|
||||
...item,
|
||||
tagType: decodeDictTagType((item as any).tagType),
|
||||
}))
|
||||
);
|
||||
},
|
||||
/** 新增字典项 */
|
||||
createDictItem(dictCode: string, data: DictItemForm) {
|
||||
return request({ url: `${DICT_BASE_URL}/${dictCode}/items`, method: "post", data });
|
||||
return request({
|
||||
url: `${DICT_BASE_URL}/${dictCode}/items`,
|
||||
method: "post",
|
||||
data: {
|
||||
...data,
|
||||
tagType: encodeDictTagType((data as any).tagType),
|
||||
},
|
||||
});
|
||||
},
|
||||
/** 获取字典项表单数据 */
|
||||
getDictItemFormData(dictCode: string, id: string) {
|
||||
return request<any, DictItemForm>({
|
||||
url: `${DICT_BASE_URL}/${dictCode}/items/${id}/form`,
|
||||
method: "get",
|
||||
});
|
||||
}).then((form) => ({
|
||||
...form,
|
||||
tagType: decodeDictTagType((form as any).tagType),
|
||||
}));
|
||||
},
|
||||
/** 修改字典项 */
|
||||
updateDictItem(dictCode: string, id: string, data: DictItemForm) {
|
||||
return request({ url: `${DICT_BASE_URL}/${dictCode}/items/${id}`, method: "put", data });
|
||||
return request({
|
||||
url: `${DICT_BASE_URL}/${dictCode}/items/${id}`,
|
||||
method: "put",
|
||||
data: {
|
||||
...data,
|
||||
tagType: encodeDictTagType((data as any).tagType),
|
||||
},
|
||||
});
|
||||
},
|
||||
/** 删除字典项 */
|
||||
deleteDictItems(dictCode: string, ids: string) {
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import request from "@/utils/request";
|
||||
import type { LogPageQuery, LogPageVo } from "@/types/api";
|
||||
import type { LogQueryParams, LogItem } from "@/types/api";
|
||||
|
||||
const LOG_BASE_URL = "/api/v1/logs";
|
||||
|
||||
const LogAPI = {
|
||||
/** 获取日志分页列表 */
|
||||
getPage(queryParams: LogPageQuery) {
|
||||
return request<any, PageResult<LogPageVo[]>>({
|
||||
url: `${LOG_BASE_URL}/page`,
|
||||
getPage(queryParams: LogQueryParams) {
|
||||
return request<any, PageResult<LogItem>>({
|
||||
url: `${LOG_BASE_URL}`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
|
||||
@@ -1,20 +1,24 @@
|
||||
import request from "@/utils/request";
|
||||
import type { MenuQuery, MenuVo, MenuForm, RouteVo, OptionType } from "@/types/api";
|
||||
import type { MenuQueryParams, MenuItem, MenuForm, RouteItem, OptionItem } from "@/types/api";
|
||||
|
||||
const MENU_BASE_URL = "/api/v1/menus";
|
||||
|
||||
const MenuAPI = {
|
||||
/** 获取当前用户的路由列表 */
|
||||
getRoutes() {
|
||||
return request<any, RouteVo[]>({ url: `${MENU_BASE_URL}/routes`, method: "get" });
|
||||
return request<any, RouteItem[]>({ url: `${MENU_BASE_URL}/routes`, method: "get" });
|
||||
},
|
||||
/** 获取菜单树形列表 */
|
||||
getList(queryParams: MenuQuery) {
|
||||
return request<any, MenuVo[]>({ url: `${MENU_BASE_URL}`, method: "get", params: queryParams });
|
||||
getList(queryParams: MenuQueryParams) {
|
||||
return request<any, MenuItem[]>({
|
||||
url: `${MENU_BASE_URL}`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
},
|
||||
/** 获取菜单下拉数据源 */
|
||||
getOptions(onlyParent?: boolean) {
|
||||
return request<any, OptionType[]>({
|
||||
return request<any, OptionItem[]>({
|
||||
url: `${MENU_BASE_URL}/options`,
|
||||
method: "get",
|
||||
params: { onlyParent },
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import request from "@/utils/request";
|
||||
import type { NoticePageQuery, NoticeForm, NoticePageVo, NoticeDetailVo } from "@/types/api";
|
||||
import type { NoticeQueryParams, NoticeForm, NoticeItem, NoticeDetail } from "@/types/api";
|
||||
|
||||
const NOTICE_BASE_URL = "/api/v1/notices";
|
||||
|
||||
const NoticeAPI = {
|
||||
/** 获取通知公告分页数据 */
|
||||
getPage(queryParams?: NoticePageQuery) {
|
||||
return request<any, PageResult<NoticePageVo[]>>({
|
||||
url: `${NOTICE_BASE_URL}/page`,
|
||||
getPage(queryParams?: NoticeQueryParams) {
|
||||
return request<any, PageResult<NoticeItem>>({
|
||||
url: `${NOTICE_BASE_URL}`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
@@ -38,15 +38,15 @@ const NoticeAPI = {
|
||||
},
|
||||
/** 查看通知 */
|
||||
getDetail(id: string) {
|
||||
return request<any, NoticeDetailVo>({ url: `${NOTICE_BASE_URL}/${id}/detail`, method: "get" });
|
||||
return request<any, NoticeDetail>({ url: `${NOTICE_BASE_URL}/${id}/detail`, method: "get" });
|
||||
},
|
||||
/** 全部已读 */
|
||||
readAll() {
|
||||
return request({ url: `${NOTICE_BASE_URL}/read-all`, method: "put" });
|
||||
},
|
||||
/** 获取我的通知分页列表 */
|
||||
getMyNoticePage(queryParams?: NoticePageQuery) {
|
||||
return request<any, PageResult<NoticePageVo[]>>({
|
||||
getMyNoticePage(queryParams?: NoticeQueryParams) {
|
||||
return request<any, PageResult<NoticeItem>>({
|
||||
url: `${NOTICE_BASE_URL}/my`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
import request from "@/utils/request";
|
||||
import type { RolePageQuery, RolePageVo, RoleForm } from "@/types/api";
|
||||
import type { RoleQueryParams, RoleItem, RoleForm, OptionItem } from "@/types/api";
|
||||
|
||||
const ROLE_BASE_URL = "/api/v1/roles";
|
||||
|
||||
const RoleAPI = {
|
||||
/** 获取角色分页数据 */
|
||||
getPage(queryParams?: RolePageQuery) {
|
||||
return request<any, PageResult<RolePageVo[]>>({
|
||||
url: `${ROLE_BASE_URL}/page`,
|
||||
getPage(queryParams?: RoleQueryParams) {
|
||||
return request<any, PageResult<RoleItem>>({
|
||||
url: `${ROLE_BASE_URL}`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
},
|
||||
/** 获取角色下拉数据源 */
|
||||
getOptions() {
|
||||
return request<any, OptionType[]>({ url: `${ROLE_BASE_URL}/options`, method: "get" });
|
||||
return request<any, OptionItem[]>({ url: `${ROLE_BASE_URL}/options`, method: "get" });
|
||||
},
|
||||
/** 获取角色的菜单ID集合 */
|
||||
getRoleMenuIds(roleId: string) {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import request from "@/utils/request";
|
||||
import type { VisitTrendQuery, VisitTrendVo, VisitStatsVo } from "@/types/api";
|
||||
import type { VisitTrendQueryParams, VisitTrendDetail, VisitStatsDetail } from "@/types/api";
|
||||
|
||||
const STATISTICS_BASE_URL = "/api/v1/statistics";
|
||||
|
||||
const StatisticsAPI = {
|
||||
/** 获取访问趋势统计 */
|
||||
getVisitTrend(queryParams: VisitTrendQuery) {
|
||||
return request<any, VisitTrendVo>({
|
||||
getVisitTrend(queryParams: VisitTrendQueryParams) {
|
||||
return request<any, VisitTrendDetail>({
|
||||
url: `${STATISTICS_BASE_URL}/visits/trend`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
@@ -14,7 +14,7 @@ const StatisticsAPI = {
|
||||
},
|
||||
/** 获取访问概览统计 */
|
||||
getVisitOverview() {
|
||||
return request<any, VisitStatsVo>({
|
||||
return request<any, VisitStatsDetail>({
|
||||
url: `${STATISTICS_BASE_URL}/visits/overview`,
|
||||
method: "get",
|
||||
});
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import request from "@/utils/request";
|
||||
import type {
|
||||
TenantCreateForm,
|
||||
TenantCreateResultVo,
|
||||
TenantForm,
|
||||
TenantInfo,
|
||||
TenantPageQuery,
|
||||
TenantPageVo,
|
||||
TenantCreateResult,
|
||||
TenantQueryParams,
|
||||
TenantItem,
|
||||
} from "@/types/api";
|
||||
|
||||
const TENANT_BASE_URL = "/api/v1/tenants";
|
||||
@@ -20,7 +20,7 @@ const TenantAPI = {
|
||||
*/
|
||||
getTenantList() {
|
||||
return request<any, TenantInfo[]>({
|
||||
url: `${TENANT_BASE_URL}`,
|
||||
url: `${TENANT_BASE_URL}/options`,
|
||||
method: "get",
|
||||
});
|
||||
},
|
||||
@@ -48,9 +48,9 @@ const TenantAPI = {
|
||||
},
|
||||
|
||||
/** 获取租户分页数据(平台租户管理) */
|
||||
getPage(queryParams?: TenantPageQuery) {
|
||||
return request<any, PageResult<TenantPageVo[]>>({
|
||||
url: `${TENANT_BASE_URL}/page`,
|
||||
getPage(queryParams?: TenantQueryParams) {
|
||||
return request<any, PageResult<TenantItem>>({
|
||||
url: `${TENANT_BASE_URL}`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
@@ -66,7 +66,7 @@ const TenantAPI = {
|
||||
|
||||
/** 新增租户并初始化默认数据 */
|
||||
create(data: TenantCreateForm) {
|
||||
return request<any, TenantCreateResultVo>({
|
||||
return request<any, TenantCreateResult>({
|
||||
url: `${TENANT_BASE_URL}`,
|
||||
method: "post",
|
||||
data,
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
import request from "@/utils/request";
|
||||
import type {
|
||||
UserInfo,
|
||||
UserPageQuery,
|
||||
UserPageVo,
|
||||
UserForm,
|
||||
UserProfileVo,
|
||||
UserQueryParams,
|
||||
UserItem,
|
||||
UserProfileDetail,
|
||||
UserProfileForm,
|
||||
PasswordChangeForm,
|
||||
MobileUpdateForm,
|
||||
EmailUpdateForm,
|
||||
OptionItem,
|
||||
} from "@/types/api";
|
||||
|
||||
const USER_BASE_URL = "/api/v1/users";
|
||||
@@ -31,9 +32,9 @@ const UserAPI = {
|
||||
*
|
||||
* @param queryParams 查询参数
|
||||
*/
|
||||
getPage(queryParams: UserPageQuery) {
|
||||
return request<any, PageResult<UserPageVo[]>>({
|
||||
url: `${USER_BASE_URL}/page`,
|
||||
getPage(queryParams: UserQueryParams) {
|
||||
return request<any, PageResult<UserItem>>({
|
||||
url: `${USER_BASE_URL}`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
@@ -119,7 +120,7 @@ const UserAPI = {
|
||||
*
|
||||
* @param queryParams 查询参数
|
||||
*/
|
||||
export(queryParams: UserPageQuery) {
|
||||
export(queryParams: UserQueryParams) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/export`,
|
||||
method: "get",
|
||||
@@ -150,7 +151,7 @@ const UserAPI = {
|
||||
|
||||
/** 获取个人中心用户信息 */
|
||||
getProfile() {
|
||||
return request<any, UserProfileVo>({
|
||||
return request<any, UserProfileDetail>({
|
||||
url: `${USER_BASE_URL}/profile`,
|
||||
method: "get",
|
||||
});
|
||||
@@ -214,7 +215,7 @@ const UserAPI = {
|
||||
* 获取用户下拉列表
|
||||
*/
|
||||
getOptions() {
|
||||
return request<any, OptionType[]>({
|
||||
return request<any, OptionItem[]>({
|
||||
url: `${USER_BASE_URL}/options`,
|
||||
method: "get",
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user