| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414 |
- /** 相机预览的接口 */
- // cameraPreview/getList
- import { http } from '@/utils/http/axios';
- import qs from 'qs';
- /** 相机树的结点类型 */
- export enum CameraTreeNodeType {
- /** 公司 */
- company = 'company',
- /** 车间 */
- workshop = 'workshop',
- /** 工位 */
- workspace = 'workspace',
- /** 相机 */
- camera = 'camera',
- }
- export interface CameraTree {
- id: number;
- name: string;
- code: string;
- children: CameraTree[];
- nodeType: CameraTreeNodeType;
- pushstreamIp: string;
- integrationState: number;
- }
- export interface CameraQueryForm {
- isEnableAlgo: boolean; // 是否添加算法:0-未勾选该条件、1-已添加
- isEnableRender: boolean; // 是否开启渲染:0-未勾选该条件、1-已开启
- queryString: string; // 搜索条件
- }
- /** 获取摄像头所在的树状结构 */
- export const getCameraTree = (param?: CameraQueryForm) => {
- return http.request<CameraTree[]>({
- url: '/cameraPreview/queryCameraListByCondition',
- method: 'post',
- data: param,
- });
- };
- // 适用于Playback.vue/CameraTreeOldVersion.vue
- export const getCameraTreeOldVersion = () => {
- return http.request<CameraTree[]>({
- url: '/cameraPreview/getList',
- method: 'get',
- });
- };
- /** 算法是否启用 */
- export enum ALGO_ENABLED_STATUS {
- // 0代表启用
- enabled = 0,
- disabled = 1,
- }
- /** 电子围栏是否启用 */
- export enum FENCE_ENBALED_STATUS {
- enabled = 0,
- disabled = 1,
- }
- export interface AlgoItem {
- id: number;
- name: string;
- code?: string;
- showName?: string;
- remark?: string;
- url?: string;
- pushStatement?: string;
- pushLinkPrompt?: string;
- status?: ALGO_ENABLED_STATUS;
- createdAt?: string;
- updatedAt?: string;
- extra: string;
- }
- /** 查询所有的算法 */
- export const getAllAlgosApi = () => {
- return http.request<AlgoItem[]>({
- url: '/cameraPreview/getAlgoList',
- method: 'get',
- });
- };
- /** 根据相机code获取算法列表 */
- export const getAlgosByCameraCode = (cameraCode: string) => {
- return http.request<AlgoItem[]>({
- url: `/cameraPreview/getAlgoListWithCamera?cameraCode=${cameraCode}`,
- method: 'get',
- });
- };
- /** 相机关联的算法信息 */
- export interface CameraAlgoItem {
- id?: number;
- algoId: number;
- cameraId?: number;
- code: string;
- name: string;
- detectionFrequency: number;
- detectionTime: string;
- electronicFence: number;
- status: ALGO_ENABLED_STATUS;
- algoInfo: AlgoItem;
- extra: string;
- }
- /** 查询某个camera下的所有算法 */
- export const getCameraAlgoListApi = (cameraId: number): Promise<CameraAlgoItem[]> => {
- return http.request({
- url: '/cameraPreview/getAlgo',
- method: 'get',
- params: { cameraId },
- });
- };
- interface SaveCameraAlgoParam {
- algoId: number;
- cameraId: number;
- detectionFrequency: number;
- detectionTime: string;
- electronicFence: string;
- status: 0 | 1;
- }
- interface CreateCameraAlgoParam {
- algoIds: number[];
- cameraId: number;
- }
- /** 保存相机的某个算法 */
- export const createCameraAlgoApi = (param: CreateCameraAlgoParam) => {
- return http.request({
- url: '/cameraPreview/saveAlgoWithConfig',
- data: param,
- method: 'post',
- });
- };
- /** 更新相机的某个算法 */
- export const updateCameraAlgoApi = (param: SaveCameraAlgoParam & { id: number }) => {
- return http.request({
- url: '/cameraPreview/updateAlgo',
- data: param,
- method: 'put',
- });
- };
- /** 删除相机的某个算法 */
- export const deleteCameraAlgoApi = (params: { cameraId: number; algoId: number }) => {
- const paramString = qs.stringify(params);
- return http.request({
- url: '/cameraPreview/deleteAlgo?' + paramString,
- method: 'delete',
- });
- };
- export interface GetFenceParams {
- algoId: number;
- cameraId: number;
- presetToken: string;
- }
- /** 查询电子围栏 */
- export const getFenceApi = (
- params: GetFenceParams,
- ): Promise<{ id: number; electronicFencePolygon: string }> => {
- return http.request({
- url: '/cameraPreview/getFence',
- method: 'GET',
- params,
- });
- };
- export interface SaveFenceParams {
- algoId: number;
- cameraId: number;
- electronicFencePolygon: string;
- presetToken: string;
- }
- /** 添加电子围栏 */
- export const saveFenceApi = (data: SaveFenceParams) => {
- return http.request({
- url: '/cameraPreview/saveFence',
- method: 'post',
- data,
- });
- };
- interface UpdateFenceParams {
- algoId: number;
- cameraId: number;
- electronicFencePolygon: string;
- id: number;
- presetToken: string;
- }
- /** 编辑电子围栏 */
- export const editFenceApi = (data: UpdateFenceParams) => {
- return http.request({
- url: '/cameraPreview/updateFence',
- method: 'put',
- data,
- });
- };
- /** 删除电子围栏 */
- export const deleteFenceApi = (cameraAlgoPresetRelId: number) => {
- return http.request({
- url: `/cameraPreview/deleteFence?cameraAlgoPresetRelId=${cameraAlgoPresetRelId}`,
- method: 'delete',
- });
- };
- interface CreatePresetParam {
- presetName: string;
- cameraId: number;
- }
- /** 创建预置位 */
- export const createPresetApi = (data: CreatePresetParam) => {
- return http.request({
- url: `/camera/createPreset`,
- method: 'post',
- data,
- });
- };
- interface UpdatePresetNameParam {
- presetToken: string;
- presetName: string;
- cameraId: number;
- }
- /** 修改预置位名称 */
- export const changePresetNameApi = (data: UpdatePresetNameParam) => {
- return http.request({
- url: `/camera/changePresetName`,
- method: 'post',
- data,
- });
- };
- /** 删除预置位 */
- export const deletePresetApi = (data: { presetToken: string; cameraId: number }) => {
- return http.request({
- url: `/camera/deletePreset`,
- method: 'post',
- data,
- });
- };
- interface PresetDetailItem {
- name: string;
- token: string;
- ptzposition: {
- panTilt: {
- x: number;
- y: number;
- space: null;
- };
- zoom: {
- x: number;
- space: null;
- };
- };
- }
- /** 获取预置位列表 */
- export const getPresetListApi = (cameraId: number) => {
- return http.request<PresetDetailItem[]>({
- url: `/camera/getPresets`,
- method: 'get',
- params: { cameraId },
- });
- };
- /** 跳转到对应的预置位 */
- export const goToPresetApi = (data: { presetToken: string; cameraId: number }) => {
- return http.request({
- url: `/camera/gotoPreset`,
- method: 'post',
- data,
- });
- };
- export interface CameraAlgoPresetResp {
- algoId: string;
- algoCode: string;
- cameraId: string;
- cameraCode: string;
- presetToken: string;
- electronicFencePolygon: string;
- status: number;
- }
- /** 获取平台相机展示电子围栏的预置位和算法 */
- export const getAppCameraAlgoPreset = (cameraCode: string): Promise<CameraAlgoPresetResp> => {
- return http.request({
- url: `/cameraPreview/getCameraPreset?cameraCode=${cameraCode}`,
- method: 'get',
- });
- };
- interface CameraMoveParam {
- cameraId: number;
- x: number;
- zoom: number;
- y: number;
- }
- /** 移动相机 */
- export const cameraMoveApi = (data: CameraMoveParam) => {
- return http.request({
- url: `/camera/move`,
- method: 'post',
- data,
- });
- };
- interface SaveCameraParams {
- cameraId: number;
- // 视频录制结束时间(格式"HH:mm")
- endAt: string;
- // 视频录制周期,单位是天;
- period: number;
- // 视频录制开始时间(格式"HH:mm")
- startAt: string;
- /** 分辨率 */
- resolution: number;
- }
- export const saveCameraParamsApi = (data: SaveCameraParams) => {
- return http.request({
- url: `/cameraPreview/saveNvr`,
- method: 'put',
- data,
- });
- };
- interface RenderPara {
- render: number | string;
- cameraId: number;
- }
- //相机是否选择算法渲染
- export const renderCamera = (data: RenderPara) => {
- return http.request({
- url: `/cameraPreview/saveRender`,
- method: 'put',
- data,
- });
- };
- interface PresetType {
- algoCode: string;
- cameraCode: string;
- presetToken: string;
- }
- //选择相机算法预设
- export const choosePreset = (data: PresetType) => {
- return http.request({
- url: `/cameraPreview/choosePreset`,
- method: 'post',
- data,
- });
- };
- interface AlgoInfoType {
- code: string;
- id: number;
- presetInfoList?: AlgoPresetType[];
- cameraCode: string;
- cameraId: number;
- name: string;
- }
- interface AlgoPresetType {
- electronicFencePolygon: string;
- presetToken: string;
- status: number;
- }
- //查询相机算法预设列表
- export const getCameraAlgoPresetList = (
- cameraCode: string,
- ): Promise<{ algoInfoVOList: AlgoInfoType[] }> => {
- return http.request({
- url: `/cameraPreview/getCameraAlgoPresetList?cameraCode=${cameraCode}`,
- method: 'get',
- });
- };
- interface UpdateFenceType {
- cameraCode: string;
- status: number;
- }
- // 开启-关闭平台显示电子围栏
- export const updateFenceDisplayStatus = (data: UpdateFenceType) => {
- return http.request({
- url: `/cameraPreview/updateFenceDisplayStatus`,
- method: 'post',
- data,
- });
- };
- // 根据相机id查询相机detail
- export const getCameraDeatilById = (id: number) => {
- return http.request({
- url: `/cameraPreview/queryCameraDetailById?id=${id}`,
- method: 'post',
- });
- };
|