camera-overview.ts 4.1 KB

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