Industrial-image-management.../src/apis/industrial-image/defect.ts

239 lines
5.0 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'
// 缺陷检测请求参数
export interface DefectDetectionRequest {
confThreshold: number
defectTypeList: string[]
imageId: string
modelId: string
}
// 手动添加缺陷请求参数
export interface ManualDefectAddRequest {
attachId: string
axial: number
chordwise: number
defectCode: string
defectLevel: string
defectName: string
defectPosition: string
defectType: string
description: string
detectionDate: string
labelInfo: string
markInfo: {
bbox: number[]
clsId: number
confidence: number
label: string
}
repairIdea: string
repairStatus: string
source: string
}
// 缺陷检测结果
export interface DefectDetectionResult {
attachId: string
attachPath: string
axial: number
chordwise: number
defectCode: string
defectId: string
defectLevel: string
defectLevelLabel: string
defectName: string
defectPosition: string
defectType: string
defectTypeLabel: string
description: string
detectionDate: string
imageId: string
labelInfo: string
markInfo: {
bbox: number[]
clsId: number
confidence: number
label: string
}
repairIdea: string
repairStatus: string
repairStatusLabel: string
source: string
sourceLabel: string
}
// API响应结构
export interface DefectDetectionResponse {
code: number
data: DefectDetectionResult[]
msg: string
status: number
success: boolean
}
// 手动添加缺陷响应结构
export interface ManualDefectAddResponse {
code: number
data: DefectDetectionResult
msg: string
status: number
success: boolean
}
/** @desc 单图自动标注缺陷 */
export const detectDefects = (params: DefectDetectionRequest) => {
return http.post<DefectDetectionResponse>('/defect/detect', params)
}
/** @desc 手动添加缺陷记录 */
export const addManualDefect = (params: ManualDefectAddRequest,imageId:string) => {
return http.post<ManualDefectAddResponse>(`/defect/${imageId}`, params)
}
// 缺陷相关的其他接口
// 缺陷列表查询参数接口
export interface DefectListParams {
defectId?: string;
defectLevel?: string;
defectType?: string;
keyword?: string;
turbineId?: string;
imageId?: string; // 添加imageId参数用于按图像筛选缺陷
}
/** @desc 获取缺陷列表 */
export const getDefectList = (params: DefectListParams) => {
return http.get<{
code: number
data: DefectDetectionResult[]
msg: string
status: number
success: boolean
}>('/defect/list', params )
}
/** @desc 添加缺陷 */
export const addDefect = (params: Partial<DefectDetectionResult>) => {
return http.post<{
code: number
data: DefectDetectionResult
msg: string
status: number
success: boolean
}>('/defect/add', params)
}
/** @desc 更新缺陷 */
export const updateDefect = (defectId: string, params: Partial<DefectDetectionResult>) => {
return http.put<{
code: number
data: DefectDetectionResult
msg: string
status: number
success: boolean
}>(`/defect/${defectId}`, params)
}
/** @desc 删除缺陷 */
export const deleteDefect = (defectId: string) => {
return http.del<{
code: number
msg: string
status: number
success: boolean
}>(`/defect/${defectId}`)
}
/** @desc 上传标注后的图片作为附件 */
export const uploadAnnotatedImage = (imageBlob: Blob, fileName: string) => {
const formData = new FormData()
formData.append('file', imageBlob, fileName)
return http.post<{
code: number
data: AttachInfoData
msg: string
status: number
success: boolean
}>('/attach-info/defect_mark_pic', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
// 附件信息数据类型
export interface AttachInfoData {
attachId: string
attachPath: string
fileName: string
fileSize: number
contentType: string
uploadTime: string
[key: string]: any
}
// 缺陷信息接口
export interface DefectInfo {
id: string;
defectId?: string;
defectName?: string;
defectLevel?: string;
defectType?: string;
defectPosition?: string;
detectionDate?: string;
description?: string;
repairStatus?: string;
repairIdea?: string;
labelInfo?: string;
markInfo?: {
bbox?: number[];
clsId?: number;
confidence?: number;
label?: string;
[key: string]: any;
};
[key: string]: any;
}
// 缺陷等级类型
export interface DefectLevelType {
code: string;
name: string;
value: string;
sort: number;
description?: string;
}
// 缺陷类型
export interface DefectType {
code: string;
name: string;
value: string;
sort: number;
description?: string;
}
// 获取缺陷等级列表
export const getDefectLevels = () => {
return http.get<{
code: number;
data: DefectLevelType[];
msg: string;
status: number;
success: boolean;
}>('/common/list/defect-level')
}
// 获取缺陷类型列表
export const getDefectTypes = () => {
return http.get<{
code: number;
data: DefectType[];
msg: string;
status: number;
success: boolean;
}>('/common/list/defect-type')
}