camera-overview.ts 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  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. url: '/cameraConfig/updateCamera',
  113. method: 'put',
  114. data,
  115. });
  116. };
  117. export const startCameraStream = (cameraId: number) => {
  118. return http.request({
  119. url: `/cameraConfig/startCameraStream?cameraId=${cameraId}`,
  120. method: 'put',
  121. });
  122. };
  123. export const stopCameraStream = (cameraId: number) => {
  124. return http.request({
  125. url: `/cameraConfig/stopCameraStream?cameraId=${cameraId}`,
  126. method: 'put',
  127. });
  128. };
  129. export const deleteCameraItem = (params: { cameraId: number }) => {
  130. return http.request({
  131. url: `/cameraConfig/deleteCamera?cameraId=${params.cameraId}`,
  132. method: 'delete',
  133. headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  134. });
  135. };
  136. /** 获取相机状态 */
  137. export const getCameraState = (data: { cameraCodeList: string[] }) => {
  138. return http.request<{ cameraCode: string; status: 0 | 1 }[]>({
  139. url: '/cameraConfig/getCameraStatusList',
  140. method: 'post',
  141. data,
  142. });
  143. };
  144. /** 添加流媒体相机 */
  145. export const addSRSCameraItem = (data: CameraSRS) => {
  146. return http.request({
  147. url: '/cameraConfig/saveRstp',
  148. method: 'post',
  149. data,
  150. });
  151. };
  152. /** 添加NVR相机 */
  153. export const addNVRCameraItem = (data: CameraNVRItem) => {
  154. return http.request({
  155. url: '/cameraConfig/saveByNVR',
  156. method: 'post',
  157. data,
  158. });
  159. };