camera-overview.ts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. import { http } from '@/utils/http/axios';
  2. import {
  3. CameraIPItem,
  4. CameraShowItem,
  5. CameraRangeItem,
  6. CameraSRS,
  7. CameraNVRItem,
  8. } from '@/views/cameras/overview/type';
  9. export type PaginationArrayData<T> = {
  10. records: T[];
  11. pageNumber: number;
  12. pageSize: number;
  13. totalPage: number;
  14. totalRow: number;
  15. };
  16. export type CameraQueryParams = {
  17. /** 相机协议类型 */
  18. cameraType?: string;
  19. /** 设备ID */
  20. code?: string;
  21. /** 相机IP */
  22. ip?: string;
  23. /** 场景 */
  24. sceneCode?: string;
  25. pageNumber?: number;
  26. pageSize?: number;
  27. sourceType?: string;
  28. };
  29. export enum IsPtz {
  30. disabled = 0,
  31. enbaled = 1,
  32. }
  33. /** 根据后端返回的相机详情 */
  34. export interface CameraDetailServer {
  35. /** 相机IP */
  36. cameraIp: string;
  37. /** 相机协议类型 */
  38. cameraType: string;
  39. /** 相机端口 */
  40. cameraPort: string;
  41. /** 相机ID */
  42. code: string;
  43. /** 工位场景Id */
  44. workspaceId: string;
  45. /** 工位负责人 */
  46. principal?: string;
  47. /** 描述 */
  48. remark?: string;
  49. /** 相机名称 */
  50. name: string;
  51. /** id */
  52. id?: number;
  53. /** 用户名 */
  54. username?: string;
  55. /** 密码 */
  56. password?: string;
  57. /** 相机MAC地址 */
  58. cameraMac: string;
  59. /** 车间场景名称 */
  60. workshopName: string;
  61. /** 工位场景名称 */
  62. workspaceName: string;
  63. /** 联网状态: 0-启用, 1-禁用 */
  64. networkingState: number;
  65. /** 平台状态: 0-启用, 1-禁用 */
  66. integrationState: number;
  67. /** 状态: 0-启用, 1-禁用 */
  68. status: number;
  69. /** 相机流 */
  70. pushstreamIp: string;
  71. /** 渲染相机流 */
  72. pushstreamRenderUrl: string;
  73. /** 工位code */
  74. workspaceCode: string;
  75. /** 是否支持设置相机转动,比如设置预置位,调整视角等 */
  76. isPtz: IsPtz;
  77. /** 录制周期 */
  78. nvrPeriod: number;
  79. /** 录制开始时间 */
  80. nvrStartAt: string;
  81. /** 录制结束时间 */
  82. nvrEndAt: string;
  83. /** 分辨率 */
  84. resolution: number;
  85. //渲染
  86. render: number | string;
  87. }
  88. export const getCameraList = (params: CameraQueryParams) => {
  89. return http.request<PaginationArrayData<CameraDetailServer>>({
  90. url: '/cameraConfig/findCamera',
  91. method: 'get',
  92. params,
  93. headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  94. });
  95. };
  96. export const addCameraItem = (data: CameraIPItem) => {
  97. return http.request({
  98. url: '/cameraConfig/saveCamera',
  99. method: 'post',
  100. data: data,
  101. });
  102. };
  103. export const getCamerasByIPRange = (params: CameraRangeItem) => {
  104. return http.request<CameraShowItem[]>({
  105. url: '/cameraConfig/getCameraByIpSegment',
  106. method: 'get',
  107. params,
  108. });
  109. };
  110. export const updateCameraItem = (data: Partial<CameraIPItem>) => {
  111. return http.request(
  112. {
  113. url: '/cameraConfig/updateCamera',
  114. method: 'put',
  115. data,
  116. },
  117. {
  118. isTransformResponse: false,
  119. },
  120. );
  121. };
  122. export const startCameraStream = (cameraId: number) => {
  123. return http.request({
  124. url: `/cameraConfig/startCameraStream?cameraId=${cameraId}`,
  125. method: 'put',
  126. });
  127. };
  128. export const stopCameraStream = (cameraId: number) => {
  129. return http.request({
  130. url: `/cameraConfig/stopCameraStream?cameraId=${cameraId}`,
  131. method: 'put',
  132. });
  133. };
  134. export const deleteCameraItem = (params: { cameraId: number }) => {
  135. return http.request({
  136. url: `/cameraConfig/deleteCamera?cameraId=${params.cameraId}`,
  137. method: 'delete',
  138. headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  139. });
  140. };
  141. /** 获取相机状态 */
  142. export const getCameraState = (data: { cameraCodeList: string[] }) => {
  143. return http.request<{ cameraCode: string; status: 0 | 1 }[]>({
  144. url: '/cameraConfig/getCameraStatusList',
  145. method: 'post',
  146. data,
  147. });
  148. };
  149. /** 添加流媒体相机 */
  150. export const addSRSCameraItem = (data: CameraSRS) => {
  151. return http.request({
  152. url: '/cameraConfig/saveRstp',
  153. method: 'post',
  154. data,
  155. });
  156. };
  157. /** 添加NVR相机 */
  158. export const addNVRCameraItem = (data: CameraNVRItem) => {
  159. return http.request({
  160. url: '/cameraConfig/saveByNVR',
  161. method: 'post',
  162. data,
  163. });
  164. };