import { http } from '@/utils/http/axios'; import { CameraAddItem, CameraDetailServer, CameraRangeItem } from '@/types/camera/type'; export type PaginationArrayData = { records: T[]; pageNumber: number; pageSize: number; totalPage: number; totalRow: number; }; export type CameraQueryParamDetails = { ip?: string; // 相机IP code?: string; // 相机code cameraType?: string; // 相机协议类型 workspaceId?: number; // 工位id sourceType?: string; // 添加方式:IP,NVR,RTSP integrationState?: number; // 是否接入平台 networkingState?: number; // 联网状态 openEagle?: number; // 是否开启鹰眼追踪 }; export type CameraQueryParams = { pageNumber?: number; pageSize?: number; queryParam: CameraQueryParamDetails; }; export interface CameraStatus { cameraCode: string; integrationState: number; networkingState: number; } export const getCameraList = (data: CameraQueryParams) => { return http.request>({ url: '/admin/cameraConfig/queryCameraPageByFilters', method: 'post', data: data, }); }; // 添加相机,三种方式,共用此接口 export const addCameraItem = (data: CameraAddItem) => { return http.request({ url: '/admin/cameraConfig/saveCamera', method: 'post', data: data, }); }; export const getCamerasByIPRange = (params: CameraRangeItem) => { return http.request({ url: '/cameraConfig/getCameraByIpSegment', method: 'get', params, }); }; export const updateCameraItem = (data: CameraAddItem) => { return http.request( { url: '/admin/cameraConfig/updateCamera', method: 'put', data, }, { isTransformResponse: false, }, ); }; export const startCameraStream = (cameraId: number) => { return http.request({ url: `/cameraConfig/startCameraStream?cameraId=${cameraId}`, method: 'put', }); }; export const stopCameraStream = (cameraId: number) => { return http.request({ url: `/cameraConfig/stopCameraStream?cameraId=${cameraId}`, method: 'put', }); }; export const deleteCameraItem = (params: { cameraId: number }) => { return http.request({ url: `/admin/cameraConfig/deleteCamera?cameraId=${params.cameraId}`, method: 'delete', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, }); }; // 批量删除相机 export const deleteCameraItems = (data: number[]) => { return http.request({ url: '/admin/cameraConfig/deleteCameraList', method: 'post', data, }); }; /** * 通过codes获取相机状态。后期会废弃。建议使用 ids 获取 * @param data 、 * @returns */ export const getCameraStateByCodes = (data: { cameraCodeList: string[] }) => { return http.request({ url: '/admin/cameraConfig/queryCameraStatusListByCameraCodes', method: 'post', data, }); }; /** * v4: 根据相机 id 查询相机联网状态 * @param data * @returns */ export const getCameraStateByIds = (data: { cameraIdList: number[] | string[] }) => { return http.request({ url: '/admin/cameraConfig/queryCameraStatusListByCameraIds', method: 'post', data, }); }; // 批量添加相机 - 下载场景code export function downloadSpaceCode() { return http.request( { url: '/admin/cameraConfig/exportWorkspaceCodeForm', method: 'post', responseType: 'blob', }, { isShowErrorMessage: false, isTransformResponse: false }, ); } // 批量添加相机 - 下载模板 export function downloadBatchTemplate() { return http.request( { url: '/skyeye/CAMERALIST_TEMPLATE/camera-upload-template.xlsx', method: 'get', responseType: 'blob', }, { urlPrefix: '/skyeye-file-upload', isShowErrorMessage: false, isTransformResponse: false }, ); } export function getTreeWorkspaceInfo() { return http.request({ url: '/admin/workshop/queryCompanyShopSpaceList', method: 'get', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, }); }