camera-overview.ts 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import { http } from '@/utils/http/axios';
  2. import { CameraIPItem, CameraShowItem, CameraRangeItem } from '@/views/cameras/overview/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 CameraQueryParams = {
  11. /** 相机协议类型 */
  12. cameraType?: string;
  13. /** 设备ID */
  14. code?: string;
  15. /** 相机IP */
  16. ip?: string;
  17. /** 场景 */
  18. sceneCode?: string;
  19. pageNumber?: number;
  20. pageSize?: number;
  21. };
  22. export enum IsPtz {
  23. disabled = 0,
  24. enbaled = 1,
  25. }
  26. /** 根据后端返回的相机详情 */
  27. export interface CameraDetailServer {
  28. /** 相机IP */
  29. cameraIp: string;
  30. /** 相机协议类型 */
  31. cameraType: string;
  32. /** 相机端口 */
  33. cameraPort: string;
  34. /** 相机ID */
  35. code: string;
  36. /** 工位场景Id */
  37. workspaceId: string;
  38. /** 工位负责人 */
  39. principal?: string;
  40. /** 描述 */
  41. remark?: string;
  42. /** 相机名称 */
  43. name: string;
  44. /** id */
  45. id?: number;
  46. /** 用户名 */
  47. username?: string;
  48. /** 密码 */
  49. password?: string;
  50. /** 相机MAC地址 */
  51. cameraMac: string;
  52. /** 车间场景名称 */
  53. workshopName: string;
  54. /** 工位场景名称 */
  55. workspaceName: string;
  56. /** 联网状态: 0-启用, 1-禁用 */
  57. networkingState: number;
  58. /** 状态: 0-启用, 1-禁用 */
  59. status: number;
  60. /** 相机流 */
  61. pushstreamIp: string;
  62. /** 工位code */
  63. workspaceCode: string;
  64. /** 是否支持设置相机转动,比如设置预置位,调整视角等 */
  65. isPtz: IsPtz;
  66. }
  67. export const getCameraList = (params: CameraQueryParams) => {
  68. return http.request<PaginationArrayData<CameraDetailServer>>({
  69. url: '/cameraConfig/findCamera',
  70. method: 'get',
  71. params,
  72. headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  73. });
  74. };
  75. export const addCameraItem = (data: CameraIPItem) => {
  76. return http.request({
  77. url: '/cameraConfig/saveCamera',
  78. method: 'post',
  79. data: data,
  80. });
  81. };
  82. export const getCamerasByIPRange = (params: CameraRangeItem) => {
  83. return http.request<CameraShowItem[]>({
  84. url: '/cameraConfig/getCameraByIpSegment',
  85. method: 'get',
  86. params,
  87. });
  88. };
  89. export const updateCameraItem = (data: Partial<CameraIPItem>) => {
  90. return http.request({
  91. url: '/cameraConfig/updateCamera',
  92. method: 'put',
  93. data,
  94. });
  95. };
  96. export const deleteCameraItem = (params: { cameraId: number }) => {
  97. return http.request({
  98. url: `/cameraConfig/deleteCamera?cameraId=${params.cameraId}`,
  99. method: 'delete',
  100. headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  101. });
  102. };