camera-overview.ts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. import { http } from '@/utils/http/axios';
  2. import { CameraAddItem, CameraDetailServer, CameraRangeItem } from '@/types/camera/type';
  3. export type PaginationArrayData<T> = {
  4. records: T[];
  5. pageNumber: number;
  6. pageSize: number;
  7. totalPage: number;
  8. totalRow: number;
  9. };
  10. export type CameraQueryParamDetails = {
  11. ip?: string; // 相机IP
  12. code?: string; // 相机code
  13. cameraType?: string; // 相机协议类型
  14. workspaceId?: number; // 工位id
  15. sourceType?: string; // 添加方式:IP,NVR,RTSP
  16. integrationState?: number; // 是否接入平台
  17. networkingState?: number; // 联网状态
  18. openEagle?: number; // 是否开启鹰眼追踪
  19. };
  20. export type CameraQueryParams = {
  21. pageNumber?: number;
  22. pageSize?: number;
  23. queryParam: CameraQueryParamDetails;
  24. };
  25. export interface CameraStatus {
  26. cameraCode: string;
  27. integrationState: number;
  28. networkingState: number;
  29. }
  30. export const getCameraList = (data: CameraQueryParams) => {
  31. return http.request<PaginationArrayData<CameraDetailServer>>({
  32. url: '/admin/cameraConfig/queryCameraPageByFilters',
  33. method: 'post',
  34. data: data,
  35. });
  36. };
  37. // 添加相机,三种方式,共用此接口
  38. export const addCameraItem = (data: CameraAddItem) => {
  39. return http.request({
  40. url: '/admin/cameraConfig/saveCamera',
  41. method: 'post',
  42. data: data,
  43. });
  44. };
  45. export const getCamerasByIPRange = (params: CameraRangeItem) => {
  46. return http.request<CameraDetailServer[]>({
  47. url: '/cameraConfig/getCameraByIpSegment',
  48. method: 'get',
  49. params,
  50. });
  51. };
  52. export const updateCameraItem = (data: CameraAddItem) => {
  53. return http.request(
  54. {
  55. url: '/admin/cameraConfig/updateCamera',
  56. method: 'put',
  57. data,
  58. },
  59. {
  60. isTransformResponse: false,
  61. },
  62. );
  63. };
  64. export const startCameraStream = (cameraId: number) => {
  65. return http.request({
  66. url: `/cameraConfig/startCameraStream?cameraId=${cameraId}`,
  67. method: 'put',
  68. });
  69. };
  70. export const stopCameraStream = (cameraId: number) => {
  71. return http.request({
  72. url: `/cameraConfig/stopCameraStream?cameraId=${cameraId}`,
  73. method: 'put',
  74. });
  75. };
  76. export const deleteCameraItem = (params: { cameraId: number }) => {
  77. return http.request({
  78. url: `/admin/cameraConfig/deleteCamera?cameraId=${params.cameraId}`,
  79. method: 'delete',
  80. headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  81. });
  82. };
  83. // 批量删除相机
  84. export const deleteCameraItems = (data: number[]) => {
  85. return http.request({
  86. url: '/admin/cameraConfig/deleteCameraList',
  87. method: 'post',
  88. data,
  89. });
  90. };
  91. /**
  92. * 通过codes获取相机状态。后期会废弃。建议使用 ids 获取
  93. * @param data 、
  94. * @returns
  95. */
  96. export const getCameraStateByCodes = (data: { cameraCodeList: string[] }) => {
  97. return http.request<CameraStatus[]>({
  98. url: '/admin/cameraConfig/queryCameraStatusListByCameraCodes',
  99. method: 'post',
  100. data,
  101. });
  102. };
  103. /**
  104. * v4: 根据相机 id 查询相机联网状态
  105. * @param data
  106. * @returns
  107. */
  108. export const getCameraStateByIds = (data: { cameraIdList: number[] | string[] }) => {
  109. return http.request<CameraStatus[]>({
  110. url: '/admin/cameraConfig/queryCameraStatusListByCameraIds',
  111. method: 'post',
  112. data,
  113. });
  114. };
  115. // 批量添加相机 - 下载场景code
  116. export function downloadSpaceCode() {
  117. return http.request(
  118. {
  119. url: '/admin/cameraConfig/exportWorkspaceCodeForm',
  120. method: 'post',
  121. responseType: 'blob',
  122. },
  123. { isShowErrorMessage: false, isTransformResponse: false },
  124. );
  125. }
  126. // 批量添加相机 - 下载模板
  127. export function downloadBatchTemplate() {
  128. return http.request(
  129. {
  130. url: '/skyeye/CAMERALIST_TEMPLATE/camera-upload-template.xlsx',
  131. method: 'get',
  132. responseType: 'blob',
  133. },
  134. { urlPrefix: '/skyeye-file-upload', isShowErrorMessage: false, isTransformResponse: false },
  135. );
  136. }
  137. export function getTreeWorkspaceInfo() {
  138. return http.request({
  139. url: '/admin/workshop/queryCompanyShopSpaceList',
  140. method: 'get',
  141. headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  142. });
  143. }