import { http } from '@/utils/http/axios'; import type { QueryPageRequest, QueryPageResponse } from '@/types/basic-query'; /** * ==================== 员工上报隐患管理 hiddenDanger ==================== */ // 隐患上报数据对象(详情 / 列表返回) export interface HiddenDanger { id: number; dangerName: string; dangerType: number; dangerTypeName?: string; dangerLevel: number; dangerLevelName?: string; location: string; description: string; reporterName: string; reporterPhone: string; reporterDept: string; reportTime: string; images?: string[]; status: number; statusName?: string; handlerName?: string; handleTime?: string; handleResult?: string; createdAt?: string; updatedAt?: string; } // 新增隐患上报 export interface SaveHiddenDangerReq { dangerName: string; dangerType: number; dangerLevel: number; location: string; description: string; reporterName: string; reporterPhone: string; reporterDept: string; reportTime: string; images?: string[]; status?: number; } // 编辑隐患上报 export interface UpdateHiddenDangerReq extends SaveHiddenDangerReq { id: number; } // 查询条件 export interface QueryHiddenDangerReq { keyword?: string; dangerType?: number; dangerLevel?: number; status?: number; startDate?: string; endDate?: string; } // 处理隐患 export interface HandleHiddenDangerReq { id: number; status: number; handlerName: string; handleTime: string; handleResult?: string; } // 新增隐患上报 export function saveHiddenDanger(data: SaveHiddenDangerReq) { return http.request({ url: '/admin/prod/hiddenDanger/saveHiddenDanger', method: 'post', data, }); } // 编辑隐患上报 export function updateHiddenDanger(data: UpdateHiddenDangerReq) { return http.request({ url: '/admin/prod/hiddenDanger/updateHiddenDanger', method: 'put', data, }); } // 删除隐患上报 export function deleteHiddenDanger(id: number) { return http.request({ url: `/admin/prod/hiddenDanger/deleteHiddenDanger?id=${id}`, method: 'delete', }); } // 根据 ID 查询隐患详情 export function queryHiddenDangerById(id: number) { return http.request({ url: `/admin/prod/hiddenDanger/queryHiddenDangerById?id=${id}`, method: 'get', }); } // 查询隐患上报列表(不分页) export function queryHiddenDangerList(params?: QueryHiddenDangerReq) { return http.request({ url: '/admin/prod/hiddenDanger/queryHiddenDangerList', method: 'post', data: params, }); } // 分页查询隐患上报 export function queryHiddenDangerPage(query: QueryPageRequest) { return http.request>({ url: '/admin/prod/hiddenDanger/queryHiddenDangerPage', method: 'post', data: query, }); } // 导出隐患上报 export function exportHiddenDanger(params?: QueryHiddenDangerReq) { return http.request( { url: '/admin/prod/hiddenDanger/exportHiddenDanger', method: 'post', data: params, responseType: 'blob', }, { isTransformResponse: false, }, ); } // 导入隐患上报 export interface ImportRes { successCount: number; failCount: number; failMessages: string[]; } export function importHiddenDanger(file: File) { const formData = new FormData(); formData.append('file', file); return http.request({ url: '/admin/prod/hiddenDanger/importHiddenDanger', method: 'post', data: formData, headers: { 'Content-Type': 'multipart/form-data', }, }); } // 处理隐患 export function handleHiddenDanger(data: HandleHiddenDangerReq) { return http.request({ url: '/admin/prod/hiddenDanger/handleHiddenDanger', method: 'put', data, }); } /** * ==================== 隐患类别管理 dangerType ==================== */ export interface DangerType { id: number; typeName: string; parentId: number | null; parentName?: string | null; sort?: number; status: number; statusName?: string; createdAt?: string; updatedAt?: string; children?: DangerType[]; } export interface SaveDangerTypeReq { typeName: string; parentId?: number | null; sort?: number; status?: number; } export interface UpdateDangerTypeReq extends SaveDangerTypeReq { id: number; } export interface QueryDangerTypeReq { keyword?: string; parentId?: number | null; status?: number; } // 新增隐患类别 export function saveDangerType(data: SaveDangerTypeReq) { return http.request({ url: '/admin/prod/dangerType/saveDangerType', method: 'post', data, }); } // 编辑隐患类别 export function updateDangerType(data: UpdateDangerTypeReq) { return http.request({ url: '/admin/prod/dangerType/updateDangerType', method: 'put', data, }); } // 删除隐患类别 export function deleteDangerType(id: number) { return http.request({ url: `/admin/prod/dangerType/deleteDangerType?id=${id}`, method: 'delete', }); } // 根据 ID 查询隐患类别详情 export function queryDangerTypeById(id: number) { return http.request({ url: `/admin/prod/dangerType/queryDangerTypeById?id=${id}`, method: 'get', }); } // 查询隐患类别列表(不分页) export function queryDangerTypeList(params?: QueryDangerTypeReq) { return http.request({ url: '/admin/prod/dangerType/queryDangerTypeList', method: 'post', data: params, }); } // 分页查询隐患类别 export function queryDangerTypePage(query: QueryPageRequest) { return http.request>({ url: '/admin/prod/dangerType/queryDangerTypePage', method: 'post', data: query, }); } // 获取隐患类别树形结构 export function getDangerTypeTree(status?: number) { return http.request({ url: '/admin/prod/dangerType/getDangerTypeTree', method: 'get', params: typeof status === 'number' ? { status } : undefined, }); } // 导出隐患类别 export function exportDangerType(params?: QueryDangerTypeReq) { return http.request( { url: '/admin/prod/dangerType/exportDangerType', method: 'post', data: params, responseType: 'blob', }, { isTransformResponse: false, }, ); } // 导入隐患类别 export function importDangerType(file: File) { const formData = new FormData(); formData.append('file', file); return http.request({ url: '/admin/prod/dangerType/importDangerType', method: 'post', data: formData, headers: { 'Content-Type': 'multipart/form-data', }, }); }