feat
This commit is contained in:
26
src/api/common/fts.ts
Normal file
26
src/api/common/fts.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
import { AxiosProgressEvent } from "axios";
|
||||
import { request } from "@/api/request";
|
||||
|
||||
/** 上传文件 */
|
||||
const FtsUpload = (data: FormData, onUploadProgress?: (progress: number) => void) => {
|
||||
data.append('provider', 'local');
|
||||
data.append('bucket', 'visual');
|
||||
|
||||
return request.post(
|
||||
`/fts/v1/uploader`,
|
||||
data,
|
||||
{
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data'
|
||||
},
|
||||
onUploadProgress: onUploadProgress ? (progressEvent: AxiosProgressEvent) => {
|
||||
if (progressEvent.total) {
|
||||
const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
|
||||
onUploadProgress(percentCompleted);
|
||||
}
|
||||
} : undefined
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
export default FtsUpload;
|
||||
36
src/api/ops/alertHistory.ts
Normal file
36
src/api/ops/alertHistory.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import { request } from "@/api/request";
|
||||
|
||||
/** 获取 告警记录列表 */
|
||||
export const fetchHistories = (data: {
|
||||
page?: number,
|
||||
page_size?: number,
|
||||
size?: number,
|
||||
policy_id?: number,
|
||||
rule_id?: number,
|
||||
status?: string,
|
||||
severity_id?: number,
|
||||
starts_at?: string,
|
||||
ends_at?: string,
|
||||
keyword?: string
|
||||
}) => {
|
||||
// 兼容 size 参数,转换为 page_size
|
||||
const params: any = { ...data };
|
||||
if (params.size !== undefined && params.page_size === undefined) {
|
||||
params.page_size = params.size;
|
||||
delete params.size;
|
||||
}
|
||||
return request.get("/Alert/v1/record/list", { params });
|
||||
};
|
||||
|
||||
/** 获取 告警记录详情 */
|
||||
export const fetchHistoryDetail = (id: number) => request.get(`/Alert/v1/record/get/${id}`);
|
||||
|
||||
/** 获取 告警统计 */
|
||||
export const fetchAlertStatistics = (data: {
|
||||
policy_id?: number,
|
||||
starts_at?: string,
|
||||
ends_at?: string
|
||||
}) => request.get("/Alert/v1/record/statistics", { params: data });
|
||||
|
||||
/** 获取 告警计数 */
|
||||
export const fetchAlertCount = () => request.get("/Alert/v1/record/count");
|
||||
53
src/api/ops/datacenter.ts
Normal file
53
src/api/ops/datacenter.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
import { request } from "@/api/request";
|
||||
|
||||
/** 获取数据中心列表(分页) */
|
||||
export const fetchDatacenterList = (data?: {
|
||||
page?: number;
|
||||
page_size?: number;
|
||||
keyword?: string;
|
||||
province_id?: number;
|
||||
city_id?: number;
|
||||
status?: string;
|
||||
}) => {
|
||||
return request.post("/Assets/v1/datacenter/list", data || {});
|
||||
};
|
||||
|
||||
/** 获取数据中心详情 */
|
||||
export const fetchDatacenterDetail = (id: number) => {
|
||||
return request.get(`/Assets/v1/datacenter/detail/${id}`);
|
||||
};
|
||||
|
||||
/** 创建数据中心 */
|
||||
export const createDatacenter = (data: any) => {
|
||||
return request.post("/Assets/v1/datacenter/create", data);
|
||||
};
|
||||
|
||||
/** 更新数据中心 */
|
||||
export const updateDatacenter = (data: any) => {
|
||||
return request.put("/Assets/v1/datacenter/update", data);
|
||||
};
|
||||
|
||||
/** 删除数据中心 */
|
||||
export const deleteDatacenter = (id: number) => {
|
||||
return request.delete(`/Assets/v1/datacenter/delete/${id}`);
|
||||
};
|
||||
|
||||
/** 获取省份列表(用于下拉选择) */
|
||||
export const fetchProvinceList = () => {
|
||||
return request.get("/Assets/v1/province/all");
|
||||
};
|
||||
|
||||
/** 获取城市列表(用于下拉选择) */
|
||||
export const fetchCityList = () => {
|
||||
return request.get("/Assets/v1/city/all");
|
||||
};
|
||||
|
||||
/** 根据城市获取数据中心列表 */
|
||||
export const fetchDatacenterByCity = (cityId: number) => {
|
||||
return request.get(`/Assets/v1/datacenter/city/${cityId}`);
|
||||
};
|
||||
|
||||
/** 获取数据中心树形结构 */
|
||||
export const fetchDatacenterTree = () => {
|
||||
return request.get("/Assets/v1/datacenter/tree");
|
||||
};
|
||||
22
src/api/ops/dcControl.ts
Normal file
22
src/api/ops/dcControl.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { request } from "@/api/request";
|
||||
|
||||
/** 获取 采集器 */
|
||||
export const fetchCollectors = (data: { page: number, size: number, keyword?: string }) => request.get("/DC-Control/v1/collectors", { params: data });
|
||||
|
||||
/** 新增 采集器 */
|
||||
export const createCollector = (data: any) => request.post("/DC-Control/v1/collectors", data);
|
||||
|
||||
/** 删除 采集器 */
|
||||
export const deleteCollector = (id: number) => request.delete(`/DC-Control/v1/collectors/${id}`);
|
||||
|
||||
/** 获取 采集器详情 */
|
||||
export const fetchCollectorDetail = (id: number) => request.get(`/DC-Control/v1/collectors/${id}`);
|
||||
|
||||
/** 更新 采集器 */
|
||||
export const updateCollector = (data: any) => request.put(`/DC-Control/v1/collectors/${data.id}`, data);
|
||||
|
||||
/** 获取 采集器统计数据 */
|
||||
export const fetchCollectorStatistics = () => request.get("/DC-Control/v1/statistics");
|
||||
|
||||
/** 获取 许可证信息 */
|
||||
export const fetchLicenseInfo = () => request.get("/DC-Control/v1/license");
|
||||
76
src/api/ops/feedbackTicket.ts
Normal file
76
src/api/ops/feedbackTicket.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
import { request } from "@/api/request";
|
||||
|
||||
/** 获取 工单列表 */
|
||||
export const fetchFeedbackTickets = (data?: {
|
||||
page?: number,
|
||||
page_size?: number,
|
||||
size?: number,
|
||||
keyword?: string,
|
||||
type?: string,
|
||||
priority?: string,
|
||||
status?: string,
|
||||
creator_id?: number,
|
||||
assignee_id?: number
|
||||
}) => {
|
||||
// 兼容 size 参数,转换为 page_size
|
||||
const params: any = data ? { ...data } : {};
|
||||
if (params.size !== undefined && params.page_size === undefined) {
|
||||
params.page_size = params.size;
|
||||
delete params.size;
|
||||
}
|
||||
return request.get("/Feedback/v1/tickets", params ? { params } : undefined);
|
||||
};
|
||||
|
||||
/** 创建 工单 */
|
||||
export const createFeedbackTicket = (data: any) => request.post("/Feedback/v1/tickets", data);
|
||||
|
||||
/** 更新 工单 */
|
||||
export const updateFeedbackTicket = (id: number, data: any) => request.put(`/Feedback/v1/tickets/${id}`, data);
|
||||
|
||||
/** 删除 工单 */
|
||||
export const deleteFeedbackTicket = (id: number) => request.delete(`/Feedback/v1/tickets/${id}`);
|
||||
|
||||
/** 获取 工单详情 */
|
||||
export const fetchFeedbackTicketDetail = (id: number) => request.get(`/Feedback/v1/tickets/${id}`);
|
||||
|
||||
/** 根据工单编号获取详情 */
|
||||
export const fetchFeedbackTicketByNo = (no: string) => request.get(`/Feedback/v1/tickets/no/${no}`);
|
||||
|
||||
/** 接单 */
|
||||
export const acceptFeedbackTicket = (id: number) => request.post(`/Feedback/v1/tickets/${id}/accept`);
|
||||
|
||||
/** 转交 */
|
||||
export const transferFeedbackTicket = (id: number, data: { assignee_id: number, assignee_name: string, reason?: string }) => request.post(`/Feedback/v1/tickets/${id}/transfer`, data);
|
||||
|
||||
/** 撤回 */
|
||||
export const cancelFeedbackTicket = (id: number) => request.post(`/Feedback/v1/tickets/${id}/cancel`);
|
||||
|
||||
/** 挂起 */
|
||||
export const suspendFeedbackTicket = (id: number, data: { content: string }) => request.post(`/Feedback/v1/tickets/${id}/suspend`, data);
|
||||
|
||||
/** 重启 */
|
||||
export const resumeFeedbackTicket = (id: number) => request.post(`/Feedback/v1/tickets/${id}/resume`);
|
||||
|
||||
/** 解决 */
|
||||
export const resolveFeedbackTicket = (id: number, data: { content: string }) => request.post(`/Feedback/v1/tickets/${id}/resolve`, data);
|
||||
|
||||
/** 关闭 */
|
||||
export const closeFeedbackTicket = (id: number, data: { remarks?: string }) => request.post(`/Feedback/v1/tickets/${id}/close`, data);
|
||||
|
||||
/** 添加评论 */
|
||||
export const commentFeedbackTicket = (id: number, data: { content: string }) => request.post(`/Feedback/v1/tickets/${id}/comment`, data);
|
||||
|
||||
/** 获取操作日志 */
|
||||
export const fetchFeedbackTicketLogs = (id: number) => request.get(`/Feedback/v1/tickets/${id}/logs`);
|
||||
|
||||
/** 获取关联关系 */
|
||||
export const fetchFeedbackTicketRelations = (id: number) => request.get(`/Feedback/v1/tickets/${id}/relations`);
|
||||
|
||||
/** 创建关联 */
|
||||
export const createFeedbackTicketRelation = (id: number, data: { target_ticket_id: number, relation_type: string, description?: string }) => request.post(`/Feedback/v1/tickets/${id}/relations`, data);
|
||||
|
||||
/** 删除关联 */
|
||||
export const deleteFeedbackTicketRelation = (relationId: number) => request.delete(`/Feedback/v1/tickets/relations/${relationId}`);
|
||||
|
||||
/** 获取 工单统计数据 */
|
||||
export const fetchFeedbackTicketStatistics = () => request.get("/Feedback/v1/tickets/statistics");
|
||||
37
src/api/ops/floor.ts
Normal file
37
src/api/ops/floor.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import { request } from "@/api/request";
|
||||
|
||||
/** 获取楼层列表(分页) */
|
||||
export const fetchFloorList = (data?: {
|
||||
page?: number;
|
||||
page_size?: number;
|
||||
keyword?: string;
|
||||
datacenter_id?: number;
|
||||
status?: string;
|
||||
}) => {
|
||||
return request.post("/Assets/v1/floor/list", data || {});
|
||||
};
|
||||
|
||||
/** 获取楼层详情 */
|
||||
export const fetchFloorDetail = (id: number) => {
|
||||
return request.get(`/Assets/v1/floor/detail/${id}`);
|
||||
};
|
||||
|
||||
/** 创建楼层 */
|
||||
export const createFloor = (data: any) => {
|
||||
return request.post("/Assets/v1/floor/create", data);
|
||||
};
|
||||
|
||||
/** 更新楼层 */
|
||||
export const updateFloor = (data: any) => {
|
||||
return request.put("/Assets/v1/floor/update", data);
|
||||
};
|
||||
|
||||
/** 删除楼层 */
|
||||
export const deleteFloor = (id: number) => {
|
||||
return request.delete(`/Assets/v1/floor/delete/${id}`);
|
||||
};
|
||||
|
||||
/** 获取数据中心列表(用于下拉选择) */
|
||||
export const fetchDatacenterList = () => {
|
||||
return request.get("/Assets/v1/datacenter/all");
|
||||
};
|
||||
31
src/api/ops/rbac2.ts
Normal file
31
src/api/ops/rbac2.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { request } from '@/api/request'
|
||||
|
||||
/**
|
||||
* 用户列表项接口
|
||||
*/
|
||||
export interface UserItem {
|
||||
id: number;
|
||||
name: string;
|
||||
username?: string;
|
||||
email?: string;
|
||||
phone?: string;
|
||||
status?: string;
|
||||
created_at?: string;
|
||||
updated_at?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户列表响应接口
|
||||
*/
|
||||
export interface UserListResponse {
|
||||
code: number;
|
||||
message: string;
|
||||
data: UserItem[];
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户列表
|
||||
*/
|
||||
export const fetchUserList = async (data: any) => {
|
||||
return request.post<UserListResponse>('/rbac2/v1/user/list', data);
|
||||
};
|
||||
Reference in New Issue
Block a user