feat(system): 优化删除操作并添加清除在线用户功能

- 重构了多个模块的删除操作,支持批量删除
- 在线监控模块增加了清除所有在线用户的功能
- 优化了前端API接口,提高了可维护性
This commit is contained in:
zhangtao
2025-07-14 00:52:32 +08:00
parent 4d08c96087
commit 90832d0fa2
41 changed files with 301 additions and 265 deletions
+10 -2
View File
@@ -11,11 +11,19 @@ const OnlineAPI = {
},
// 强退用户
deleteOnline(body: any) {
deleteOnline(session_id: string) {
return request<ApiResponse>({
url: `/monitor/online/delete`,
method: "delete",
data: body,
data: session_id,
});
},
// 强退用户
clearOnline() {
return request<ApiResponse>({
url: `/monitor/online/clear`,
method: "delete",
});
},
};
+1 -1
View File
@@ -23,7 +23,7 @@ const AuthAPI = {
getCaptcha() {
return request<ApiResponse<CaptchaInfo>>({
url: `/system/auth/captcha/get`,
method: "post",
method: "get",
});
},
+5 -5
View File
@@ -25,11 +25,11 @@ const ConfigAPI = {
});
},
getConfigDetail(query: any) {
getConfigDetail(id: number) {
return request<ApiResponse<ConfigTable>>({
url: `/system/config/detail`,
method: "get",
params: query,
params: id,
});
},
@@ -49,15 +49,15 @@ const ConfigAPI = {
});
},
deleteConfig(query: any) {
deleteConfig(body: DeleteType) {
return request<ApiResponse>({
url: `/system/config/delete`,
method: "delete",
params: query,
data: body,
});
},
exportConfig(body: any) {
exportConfig(body: any[]) {
return request<ApiResponse>({
url: `/system/config/export`,
method: "post",
+4 -4
View File
@@ -9,11 +9,11 @@ const DeptAPI = {
});
},
getDeptDetail(query: any) {
getDeptDetail(id: number) {
return request<ApiResponse<DeptTable>>({
url: `/system/dept/detail`,
method: "get",
params: query,
params: id,
});
},
@@ -33,7 +33,7 @@ const DeptAPI = {
});
},
deleteDept(query: any) {
deleteDept(query: DeleteType) {
return request<ApiResponse>({
url: `/system/dept/delete`,
method: "delete",
@@ -41,7 +41,7 @@ const DeptAPI = {
});
},
batchAvailableDept(body: any) {
batchAvailableDept(body: BatchType) {
return request<ApiResponse>({
url: `/system/dept/available/setting`,
method: "patch",
+9 -9
View File
@@ -16,11 +16,11 @@ const DictAPI = {
});
},
getDictTypeDetail(query: any) {
getDictTypeDetail(id: number) {
return request<ApiResponse<DictTable>>({
url: `/system/dict/type/detail`,
method: "get",
params: query,
params: id,
});
},
@@ -40,7 +40,7 @@ const DictAPI = {
});
},
deleteDictType(query: any) {
deleteDictType(query: DeleteType) {
return request<ApiResponse>({
url: `/system/dict/type/delete`,
method: "delete",
@@ -65,11 +65,11 @@ const DictAPI = {
});
},
getDictDataDetail(query: any) {
getDictDataDetail(id: number) {
return request<ApiResponse<DictDataTable>>({
url: `/system/dict/data/detail`,
method: "get",
params: query,
params: id,
});
},
@@ -89,7 +89,7 @@ const DictAPI = {
});
},
deleteDictData(query: any) {
deleteDictData(query: DeleteType) {
return request<ApiResponse>({
url: `/system/dict/data/delete`,
method: "delete",
@@ -97,7 +97,7 @@ const DictAPI = {
});
},
exportDictData(body: any) {
exportDictData(body: any[]) {
return request<ApiResponse>({
url: `/system/dict/data/export`,
method: "post",
@@ -106,9 +106,9 @@ const DictAPI = {
});
},
getInitDict(query: any) {
getInitDict(dict_type: string) {
return request<ApiResponse>({
url: `/system/dict/data/info/${query}`,
url: `/system/dict/data/info/${dict_type}`,
method: "get",
});
},
+15 -10
View File
@@ -1,23 +1,23 @@
import request from "@/utils/request";
const JobAPI = {
getJobList(query: any) {
return request<ApiResponse>({
getJobList(query: JobPageQuery) {
return request<ApiResponse<PageResult<JobTable>>>({
url: `/system/job/list`,
method: "get",
params: query,
});
},
getJobDetail(query: any) {
return request<ApiResponse>({
getJobDetail(id: number) {
return request<ApiResponse<JobTable>>({
url: `/system/job/detail`,
method: "get",
params: query,
params: id,
});
},
createJob(body: any) {
createJob(body: JobForm) {
return request<ApiResponse>({
url: `/system/job/create`,
method: "post",
@@ -25,7 +25,7 @@ const JobAPI = {
});
},
updateJob(body: any) {
updateJob(body: JobForm) {
return request<ApiResponse>({
url: `/system/job/update`,
method: "put",
@@ -33,7 +33,7 @@ const JobAPI = {
});
},
deleteJob(query: any) {
deleteJob(query: DeleteType) {
return request<ApiResponse>({
url: `/system/job/delete`,
method: "delete",
@@ -41,7 +41,7 @@ const JobAPI = {
});
},
exportJob(body: any) {
exportJob(body: any[]) {
return request<ApiResponse>({
url: `/system/job/export`,
method: "post",
@@ -57,7 +57,7 @@ const JobAPI = {
});
},
OptionJob(params: any) {
OptionJob(params: JobPageQuery) {
return request<ApiResponse>({
url: `/system/job/option`,
method: "put",
@@ -77,6 +77,11 @@ export interface JobPageQuery extends PageQuery {
end_time?: string;
}
export interface JobPageQuery extends PageQuery {
id?: number;
option?: number; //操作类型 1: 暂停 2: 恢复 3: 重启
}
export interface JobTable {
index?: number;
id?: number;
+4 -4
View File
@@ -9,15 +9,15 @@ const LogAPI = {
});
},
getLogDetail(query: any) {
getLogDetail(id: number) {
return request<ApiResponse<LogTable>>({
url: `/system/log/detail`,
method: "get",
params: query,
params: id,
});
},
deleteLog(query: any) {
deleteLog(query: DeleteType) {
return request<ApiResponse>({
url: `/system/log/delete`,
method: "delete",
@@ -25,7 +25,7 @@ const LogAPI = {
});
},
exportLog(query: any) {
exportLog(query: any[]) {
return request<ApiResponse>({
url: `/system/log/export`,
method: "post",
+4 -4
View File
@@ -9,11 +9,11 @@ const MenuAPI = {
});
},
getMenuDetail(query: any) {
getMenuDetail(id: number) {
return request<ApiResponse<MenuTable>>({
url: `/system/menu/detail`,
method: "get",
params: query,
params: id,
});
},
@@ -33,7 +33,7 @@ const MenuAPI = {
});
},
deleteMenu(query: any) {
deleteMenu(query: DeleteType) {
return request<ApiResponse>({
url: `/system/menu/delete`,
method: "delete",
@@ -41,7 +41,7 @@ const MenuAPI = {
});
},
batchAvailableMenu(body: any) {
batchAvailableMenu(body: BatchType) {
return request<ApiResponse>({
url: `/system/menu/available/setting`,
method: "patch",
+5 -5
View File
@@ -16,11 +16,11 @@ const NoticeAPI = {
});
},
getNoticeDetail(query: any) {
getNoticeDetail(id: number) {
return request<ApiResponse<NoticeTable>>({
url: `/system/notice/detail`,
method: "get",
params: query,
params: id,
});
},
@@ -40,7 +40,7 @@ const NoticeAPI = {
});
},
deleteNotice(query: any) {
deleteNotice(query: DeleteType) {
return request<ApiResponse>({
url: `/system/notice/delete`,
method: "delete",
@@ -48,7 +48,7 @@ const NoticeAPI = {
});
},
batchAvailableNotice(body: any) {
batchAvailableNotice(body: BatchType) {
return request<ApiResponse>({
url: `/system/notice/available/setting`,
method: "patch",
@@ -56,7 +56,7 @@ const NoticeAPI = {
});
},
exportNotice(body: any) {
exportNotice(body: any[]) {
return request<ApiResponse>({
url: `/system/notice/export`,
method: "post",
+5 -5
View File
@@ -9,11 +9,11 @@ const PositionAPI = {
});
},
getPositionDetail(query: any) {
getPositionDetail(id: number) {
return request<ApiResponse<PositionTable>>({
url: `/system/position/detail`,
method: "get",
params: query,
params: id,
});
},
@@ -33,7 +33,7 @@ const PositionAPI = {
});
},
deletePosition(query: any) {
deletePosition(query: DeleteType) {
return request<ApiResponse>({
url: `/system/position/delete`,
method: "delete",
@@ -41,7 +41,7 @@ const PositionAPI = {
});
},
batchAvailablePosition(body: any) {
batchAvailablePosition(body: BatchType) {
return request<ApiResponse>({
url: `/system/position/available/setting`,
method: "patch",
@@ -49,7 +49,7 @@ const PositionAPI = {
});
},
exportPosition(body: any) {
exportPosition(body: any[]) {
return request<ApiResponse>({
url: `/system/position/export`,
method: "post",
+5 -5
View File
@@ -9,11 +9,11 @@ const RoleAPI = {
});
},
getRoleDetail(query: any) {
getRoleDetail(id: number) {
return request<ApiResponse<RoleTable>>({
url: `/system/role/detail`,
method: "get",
params: query,
params: id,
});
},
@@ -33,7 +33,7 @@ const RoleAPI = {
});
},
deleteRole(query: any) {
deleteRole(query: DeleteType) {
return request<ApiResponse>({
url: `/system/role/delete`,
method: "delete",
@@ -41,7 +41,7 @@ const RoleAPI = {
});
},
batchAvailableRole(body: any) {
batchAvailableRole(body: BatchType) {
return request<ApiResponse>({
url: `/system/role/available/setting`,
method: "patch",
@@ -57,7 +57,7 @@ const RoleAPI = {
});
},
exportRole(body: any) {
exportRole(body: any[]) {
return request<ApiResponse>({
url: `/system/role/export`,
method: "post",
+12 -11
View File
@@ -18,7 +18,7 @@ export const UserAPI = {
});
},
updateCurrentUserInfo(body: any) {
updateCurrentUserInfo(body: InfoFormState) {
return request<ApiResponse>({
url: `/system/user/current/info/update`,
method: "put",
@@ -26,7 +26,7 @@ export const UserAPI = {
});
},
changeCurrentUserPassword(body: any) {
changeCurrentUserPassword(body: PasswordFormState) {
return request<ApiResponse>({
url: `/system/user/current/password/change`,
method: "put",
@@ -50,23 +50,23 @@ export const UserAPI = {
});
},
getUserList(query: any) {
return request<ApiResponse>({
getUserList(query: UserPageQuery) {
return request<ApiResponse<PageResult<UserInfo[]>>>({
url: `/system/user/list`,
method: "get",
params: query,
});
},
getUserDetail(query: any) {
getUserDetail(id: number) {
return request<ApiResponse>({
url: `/system/user/detail`,
method: "get",
params: query,
params: id,
});
},
createUser(body: any) {
createUser(body: InfoFormState) {
return request<ApiResponse>({
url: `/system/user/create`,
method: "post",
@@ -74,7 +74,7 @@ export const UserAPI = {
});
},
updateUser(body: any) {
updateUser(body: InfoFormState) {
return request<ApiResponse>({
url: `/system/user/update`,
method: "put",
@@ -82,7 +82,7 @@ export const UserAPI = {
});
},
deleteUser(query: any) {
deleteUser(query: DeleteType) {
return request<ApiResponse>({
url: `/system/user/delete`,
method: "delete",
@@ -90,7 +90,7 @@ export const UserAPI = {
});
},
batchAvailableUser(body: any) {
batchAvailableUser(body: BatchType) {
return request<ApiResponse>({
url: `/system/user/available/setting`,
method: "patch",
@@ -98,7 +98,7 @@ export const UserAPI = {
});
},
exportUser(query: any) {
exportUser(query: any[]) {
return request<ApiResponse>({
url: `/system/user/export`,
method: "post",
@@ -208,6 +208,7 @@ export interface positionSelectorType {
}
export interface InfoFormState {
id?: number;
name: string;
gender: number;
mobile: string;