| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- import { get, post } from '@/utils/request'
- import type {
- IBaseResponse,
- IListResponse,
- IPageResponse,
- BaseResponse,
- CameraDTO,
- ChannelDTO,
- CameraInfoDTO,
- CameraAddRequest,
- CameraUpdateRequest,
- CameraListRequest,
- SwitchChannelRequest
- } from '@/types'
- // ==================== Controller APIs ====================
- // 获取摄像头列表
- export interface ListCamerasRequest {
- machineId?: string
- }
- export function listCameras(data?: ListCamerasRequest): Promise<IListResponse<CameraDTO>> {
- return post('/camera/list', data || {})
- }
- // 获取摄像头信息
- export interface GetCameraRequest {
- cameraId: string
- }
- export function getCamera(data: GetCameraRequest): Promise<IBaseResponse<CameraDTO>> {
- return get(`/cameras/${data.cameraId}`)
- }
- // 切换摄像头通道
- export function switchChannel(data: SwitchChannelRequest): Promise<IBaseResponse<ChannelDTO>> {
- return post('/camera/switch', data)
- }
- // 获取当前活动通道
- export interface GetCurrentChannelRequest {
- machineId: string
- }
- export function getCurrentChannel(data: GetCurrentChannelRequest): Promise<IBaseResponse<ChannelDTO>> {
- return get('/camera/current', data)
- }
- // ==================== PTZ 控制 (代理到 PTZ 服务) ====================
- // PTZ 控制
- // PTZ 方向动作
- // up: 向上, down: 向下, left: 向左, right: 向右
- // up_left: 左上, up_right: 右上, down_left: 左下, down_right: 右下
- // zoom_in: 放大, zoom_out: 缩小
- // stop: 停止
- export interface PTZControlRequest {
- cameraId: string
- action:
- | 'up'
- | 'down'
- | 'left'
- | 'right'
- | 'up_left'
- | 'up_right'
- | 'down_left'
- | 'down_right'
- | 'zoom_in'
- | 'zoom_out'
- | 'stop'
- speed: number
- }
- export function ptzControl(data: PTZControlRequest): Promise<BaseResponse> {
- return post(`/camera/control/ptz/control`, data)
- }
- // PTZ 能力
- export interface PTZCapabilitiesRequest {
- cameraId: string
- }
- export function getPTZCapabilities(data: PTZCapabilitiesRequest): Promise<BaseResponse> {
- return post(`/camera/control/ptz/capabilities`, data)
- }
- // ==================== 预置位 ====================
- export interface PresetInfo {
- id: string
- name: string
- time: number
- }
- // 获取预置位列表
- export interface PresetListRequest {
- cameraId: string
- }
- export function presetList(data: PresetListRequest): Promise<IBaseResponse<PresetInfo[]>> {
- return post(`/camera/control/preset/list`, data)
- }
- // 跳转预置位
- export interface PresetGotoRequest {
- cameraId: string
- presetId: number
- }
- export function presetGoto(data: PresetGotoRequest): Promise<IBaseResponse<boolean>> {
- return post(`/camera/control/preset/goto`, data)
- }
- // 设置预置位
- export interface PresetSetRequest {
- cameraId: string
- presetId: number
- presetName?: string
- presetTime?: number // 该预置位停留时间(秒)
- presetTotalTime?: number // 巡航总时长(秒)
- }
- export function presetSet(data: PresetSetRequest): Promise<BaseResponse> {
- return post(`/camera/control/preset/set`, data)
- }
- // 删除预置位
- export interface PresetRemoveRequest {
- cameraId: string
- presetId: number
- }
- export function presetRemove(data: PresetRemoveRequest): Promise<BaseResponse> {
- return post(`/camera/control/preset/remove`, data)
- }
- // ==================== Admin APIs ====================
- // 获取摄像头列表 (分页)
- export function adminListCameras(data?: CameraListRequest): Promise<IPageResponse<CameraInfoDTO>> {
- return post('/admin/cameras/list', data || {})
- }
- // 获取摄像头列表 (全部)
- export interface AdminListAllCamerasRequest {
- machineId?: string
- }
- export function adminListAllCameras(data?: AdminListAllCamerasRequest): Promise<IListResponse<CameraInfoDTO>> {
- return get('/admin/cameras/listAll', data)
- }
- // 获取摄像头详情
- export interface AdminGetCameraRequest {
- id: number
- }
- export function adminGetCamera(data: AdminGetCameraRequest): Promise<IBaseResponse<CameraInfoDTO>> {
- return get('/admin/cameras/detail', data)
- }
- // 添加摄像头
- export function adminAddCamera(data: CameraAddRequest): Promise<IBaseResponse<CameraInfoDTO>> {
- return post('/admin/cameras/add', data)
- }
- // 更新摄像头
- export function adminUpdateCamera(data: CameraUpdateRequest): Promise<IBaseResponse<CameraInfoDTO>> {
- return post('/admin/cameras/update', data)
- }
- // 删除摄像头
- export interface AdminDeleteCameraRequest {
- id: number
- }
- export function adminDeleteCamera(data: AdminDeleteCameraRequest): Promise<BaseResponse> {
- return post('/admin/cameras/delete', undefined, { params: data })
- }
- // 检测摄像头连通性
- export interface AdminCheckCameraRequest {
- id: number
- }
- export function adminCheckCamera(data: AdminCheckCameraRequest): Promise<IBaseResponse<boolean>> {
- return post('/admin/cameras/check', undefined, { params: data })
- }
- // 获取摄像头快照
- export interface AdminGetSnapshotRequest {
- id: number
- }
- export function adminGetSnapshot(data: AdminGetSnapshotRequest): Promise<IBaseResponse<Blob>> {
- return get('/admin/cameras/snapshot', data, { responseType: 'blob' })
- }
|