فهرست منبع

fix: 修改添加相机无响应问题(三种方式)

bxy 1 سال پیش
والد
کامیت
a70300f5d1

+ 11 - 58
src/views/cameras/overview/components/AddCameraByIP.vue

@@ -14,46 +14,22 @@
           <el-input v-model="cameraIPData.name" placeholder="请输入名称" style="width: 200px" />
         </el-form-item>
         <el-form-item label="设备ID:" prop="code">
-          <el-input
-            v-model="cameraIPData.code"
-            placeholder="自定义ID,不能重复"
-            style="width: 200px"
-          />
+          <el-input v-model="cameraIPData.code" placeholder="自定义ID,不能重复" style="width: 200px" />
         </el-form-item>
         <el-form-item label="IP地址:" prop="cameraIp">
-          <el-input
-            v-model="cameraIPData.cameraIp"
-            placeholder="请输入IP地址"
-            style="width: 200px"
-          />
+          <el-input v-model="cameraIPData.cameraIp" placeholder="请输入IP地址" style="width: 200px" />
         </el-form-item>
         <el-form-item label="端口:" prop="cameraPort">
-          <el-input
-            v-model="cameraIPData.cameraPort"
-            placeholder="请输入端口号"
-            style="width: 200px"
-          />
+          <el-input v-model="cameraIPData.cameraPort" placeholder="请输入端口号" style="width: 200px" />
         </el-form-item>
         <el-form-item label="用户名:" prop="username">
-          <el-input
-            v-model="cameraIPData.username"
-            placeholder="请输入用户名"
-            style="width: 200px"
-          />
+          <el-input v-model="cameraIPData.username" placeholder="请输入用户名" style="width: 200px" />
         </el-form-item>
         <el-form-item label="密码:" prop="password">
-          <el-input
-            v-model="cameraIPData.password"
-            placeholder="请输入用户名密码"
-            style="width: 200px"
-          />
+          <el-input v-model="cameraIPData.password" placeholder="请输入用户名密码" style="width: 200px" />
         </el-form-item>
         <el-form-item label="视频编码标准:" prop="videoStandard">
-          <el-select
-            v-model="cameraIPData.videoStandard"
-            placeholder="请选择视频编码标准"
-            style="width: 200px"
-          >
+          <el-select v-model="cameraIPData.videoStandard" placeholder="请选择视频编码标准" style="width: 200px">
             <el-option
               v-for="protocal in standardTypeSelect"
               :key="protocal.value"
@@ -63,11 +39,7 @@
           </el-select>
         </el-form-item>
         <el-form-item label="服务类型:" prop="videoServiceType">
-          <el-select
-            v-model="cameraIPData.videoServiceType"
-            placeholder="请选择服务类型"
-            style="width: 200px"
-          >
+          <el-select v-model="cameraIPData.videoServiceType" placeholder="请选择服务类型" style="width: 200px">
             <el-option
               v-for="protocal in serviceTypeSelect"
               :key="protocal.value"
@@ -79,12 +51,7 @@
 
         <el-form-item label="NVR设备:" prop="nvrId">
           <el-select v-model="cameraIPData.nvrId" placeholder="请选择NVR设备" style="width: 200px">
-            <el-option
-              v-for="item in nvrDevice"
-              :key="item.id"
-              :label="item.label"
-              :value="item.id"
-            />
+            <el-option v-for="item in nvrDevice" :key="item.id" :label="item.label" :value="item.id" />
           </el-select>
           <div style="margin-left: 10px; position: relative; width: 20px; height: 32px">
             <el-tooltip content="选择已添加在【NVR设备管理】中的设备编号">
@@ -93,11 +60,7 @@
           </div>
         </el-form-item>
         <el-form-item label="协议类型:" prop="cameraType">
-          <el-select
-            v-model="cameraIPData.cameraType"
-            placeholder="请选择协议类型"
-            style="width: 200px"
-          >
+          <el-select v-model="cameraIPData.cameraType" placeholder="请选择协议类型" style="width: 200px">
             <el-option
               v-for="protocal in protocalTypeSelect"
               :key="protocal.value"
@@ -148,11 +111,7 @@
   import { ElIcon } from 'element-plus';
   import { InfoFilled } from '@element-plus/icons-vue';
   import { CameraDetailServer } from '@/types/camera/type';
-  import {
-    protocalTypeSelect,
-    serviceTypeSelect,
-    standardTypeSelect,
-  } from '@/types/camera/constant';
+  import { protocalTypeSelect, serviceTypeSelect, standardTypeSelect } from '@/types/camera/constant';
   import useNvrDevice from '../hooks/useNvrDevice';
   import useTreeWorkspaceInfo from '../hooks/useTreeWorkspaceInfo';
   import { cloneDeep } from 'lodash-es';
@@ -204,17 +163,11 @@
   };
 
   const handleConfirm = () => {
-    console.log('1');
-
     IPFormRef.value.validate((valid) => {
       if (valid) {
-        console.log('2');
-
         const copyData = cloneDeep(cameraIPData.value);
         if (cameraIPData.value.workspaceIdStr)
-          copyData.workspaceId = Number(
-            getWorkspaceIdFromTreeNode(cameraIPData.value.workspaceIdStr),
-          );
+          copyData.workspaceId = Number(getWorkspaceIdFromTreeNode(cameraIPData.value.workspaceIdStr));
         delete (copyData as any).principal;
         copyData.sourceType = 'IP';
         emits('confirm-execute', copyData);

+ 9 - 39
src/views/cameras/overview/components/AddCameraByNVR.vue

@@ -14,18 +14,10 @@
           <el-input v-model="cameraNVRData.name" placeholder="请输入名称" style="width: 200px" />
         </el-form-item>
         <el-form-item label="设备ID:" prop="code">
-          <el-input
-            v-model="cameraNVRData.code"
-            placeholder="自定义ID,不能重复"
-            style="width: 200px"
-          />
+          <el-input v-model="cameraNVRData.code" placeholder="自定义ID,不能重复" style="width: 200px" />
         </el-form-item>
         <el-form-item label="视频编码标准:" prop="videoStandard">
-          <el-select
-            v-model="cameraNVRData.videoStandard"
-            placeholder="请选择视频编码标准"
-            style="width: 200px"
-          >
+          <el-select v-model="cameraNVRData.videoStandard" placeholder="请选择视频编码标准" style="width: 200px">
             <el-option
               v-for="protocal in standardTypeSelect"
               :key="protocal.value"
@@ -35,11 +27,7 @@
           </el-select>
         </el-form-item>
         <el-form-item label="服务类型:" prop="videoServiceType">
-          <el-select
-            v-model="cameraNVRData.videoServiceType"
-            placeholder="请选择服务类型"
-            style="width: 200px"
-          >
+          <el-select v-model="cameraNVRData.videoServiceType" placeholder="请选择服务类型" style="width: 200px">
             <el-option
               v-for="protocal in serviceTypeSelect"
               :key="protocal.value"
@@ -50,12 +38,7 @@
         </el-form-item>
         <el-form-item label="NVR设备:" prop="nvrId">
           <el-select v-model="cameraNVRData.nvrId" placeholder="请选择NVR设备" style="width: 200px">
-            <el-option
-              v-for="item in nvrDevice"
-              :key="item.id"
-              :label="item.label"
-              :value="item.id"
-            />
+            <el-option v-for="item in nvrDevice" :key="item.id" :label="item.label" :value="item.id" />
           </el-select>
           <div style="margin-left: 10px; position: relative; width: 20px; height: 32px">
             <el-tooltip content="选择已添加在【NVR设备管理】中的设备编号">
@@ -64,11 +47,7 @@
           </div>
         </el-form-item>
         <el-form-item label="NVR平台通道号:" prop="nvrChannel">
-          <el-input
-            v-model="cameraNVRData.nvrChannel"
-            placeholder="请输入NVR平台通道号"
-            style="width: 200px"
-          />
+          <el-input v-model="cameraNVRData.nvrChannel" placeholder="请输入NVR平台通道号" style="width: 200px" />
         </el-form-item>
         <el-form-item label="所属工位:" prop="workspaceIdStr">
           <el-tree-select
@@ -97,11 +76,7 @@
           />
         </el-form-item>
         <el-form-item label="协议类型:" prop="cameraType">
-          <el-select
-            v-model="cameraNVRData.cameraType"
-            placeholder="请选择协议类型"
-            style="width: 200px"
-          >
+          <el-select v-model="cameraNVRData.cameraType" placeholder="请选择协议类型" style="width: 200px">
             <el-option
               v-for="protocal in protocalTypeSelect"
               :key="protocal.value"
@@ -128,11 +103,7 @@
   import { ElIcon, ElTooltip } from 'element-plus';
   import { InfoFilled } from '@element-plus/icons-vue';
   import { CameraDetailServer } from '@/types/camera/type';
-  import {
-    protocalTypeSelect,
-    serviceTypeSelect,
-    standardTypeSelect,
-  } from '@/types/camera/constant';
+  import { protocalTypeSelect, serviceTypeSelect, standardTypeSelect } from '@/types/camera/constant';
   import useNvrDevice from '../hooks/useNvrDevice';
   import useTreeWorkspaceInfo from '../hooks/useTreeWorkspaceInfo';
   import sysConfigItemOfAddCamera from './sysConfigItemOfAddCamera.vue';
@@ -156,6 +127,7 @@
       callback(new Error('请至少选择一个业务场景及对应应用模版'));
     else if (value && Object.keys(sceneCheckedDataRef.value).length > value.length)
       callback(new Error('请完成已选业务场景中的应用模版选择'));
+    else callback();
   };
 
   const rules = {
@@ -184,9 +156,7 @@
       if (valid) {
         const copyData = cloneDeep(cameraNVRData.value);
         if (cameraNVRData.value.workspaceIdStr)
-          copyData.workspaceId = Number(
-            getWorkspaceIdFromTreeNode(cameraNVRData.value.workspaceIdStr),
-          );
+          copyData.workspaceId = Number(getWorkspaceIdFromTreeNode(cameraNVRData.value.workspaceIdStr));
         delete (copyData as any).principal;
         copyData.sourceType = 'NVR';
         emits('confirm-execute', copyData);

+ 7 - 29
src/views/cameras/overview/components/AddCameraBySRS.vue

@@ -14,11 +14,7 @@
           <el-input v-model="CameraSRSData.name" placeholder="请输入名称" style="width: 200px" />
         </el-form-item>
         <el-form-item label="设备ID:" prop="code">
-          <el-input
-            v-model="CameraSRSData.code"
-            placeholder="自定义ID,不能重复"
-            style="width: 200px"
-          />
+          <el-input v-model="CameraSRSData.code" placeholder="自定义ID,不能重复" style="width: 200px" />
         </el-form-item>
         <el-form-item label="rtsp地址:" prop="rtspUrl">
           <el-input
@@ -29,12 +25,7 @@
         </el-form-item>
         <el-form-item label="NVR设备:" prop="nvrId">
           <el-select v-model="CameraSRSData.nvrId" placeholder="请选择NVR设备" style="width: 200px">
-            <el-option
-              v-for="item in nvrDevice"
-              :key="item.id"
-              :label="item.label"
-              :value="item.id"
-            />
+            <el-option v-for="item in nvrDevice" :key="item.id" :label="item.label" :value="item.id" />
           </el-select>
           <div style="margin-left: 10px; position: relative; width: 20px; height: 32px">
             <el-tooltip content="选择已添加在【NVR设备管理】中的设备编号">
@@ -43,19 +34,11 @@
           </div>
         </el-form-item>
         <el-form-item label="相机IP地址:" prop="cameraIp">
-          <el-input
-            v-model="CameraSRSData.cameraIp"
-            placeholder="请输入IP地址"
-            style="width: 200px"
-          />
+          <el-input v-model="CameraSRSData.cameraIp" placeholder="请输入IP地址" style="width: 200px" />
         </el-form-item>
 
         <el-form-item label="视频编码标准:" prop="videoStandard">
-          <el-select
-            v-model="CameraSRSData.videoStandard"
-            placeholder="请选择视频编码标准"
-            style="width: 200px"
-          >
+          <el-select v-model="CameraSRSData.videoStandard" placeholder="请选择视频编码标准" style="width: 200px">
             <el-option
               v-for="protocal in standardTypeSelect"
               :key="protocal.value"
@@ -65,11 +48,7 @@
           </el-select>
         </el-form-item>
         <el-form-item label="服务类型:" prop="videoServiceType">
-          <el-select
-            v-model="CameraSRSData.videoServiceType"
-            placeholder="请选择服务类型"
-            style="width: 200px"
-          >
+          <el-select v-model="CameraSRSData.videoServiceType" placeholder="请选择服务类型" style="width: 200px">
             <el-option
               v-for="protocal in serviceTypeSelect"
               :key="protocal.value"
@@ -145,6 +124,7 @@
       callback(new Error('请至少选择一个业务场景及对应应用模版'));
     else if (value && Object.keys(sceneCheckedDataRef.value).length > value.length)
       callback(new Error('请完成已选业务场景中的应用模版选择'));
+    else callback();
   };
 
   const rules = {
@@ -172,9 +152,7 @@
       if (valid) {
         const copyData = cloneDeep(CameraSRSData.value);
         if (CameraSRSData.value.workspaceIdStr)
-          copyData.workspaceId = Number(
-            getWorkspaceIdFromTreeNode(CameraSRSData.value.workspaceIdStr),
-          );
+          copyData.workspaceId = Number(getWorkspaceIdFromTreeNode(CameraSRSData.value.workspaceIdStr));
         delete (copyData as any).principal;
         copyData.sourceType = 'RTSP';
         emits('confirm-execute', copyData);