Browse Source

fix: 相机设备管理三种添加方式同步修改业务场景模版不同情况提示语句

bxy 1 year ago
parent
commit
68c85183af

+ 2 - 2
src/views/cameras/overview/components/AddCameraByIP.vue

@@ -174,9 +174,9 @@
 
   const validateSceneTemplate = (_rule, value, callback) => {
     if (Object.keys(sceneCheckedDataRef.value).length === 0)
-      callback(new Error('请选择至少一个业务场景+应用模版'));
+      callback(new Error('请至少选择一个业务场景及对应应用模版'));
     else if (value && Object.keys(sceneCheckedDataRef.value).length > value.length)
-      callback(new Error('请补充完整已选中业务场景下的应用模版(或取消选中未选择模版的场景)'));
+      callback(new Error('请完成已选业务场景中的应用模版选择'));
   };
 
   const rules = {

+ 13 - 5
src/views/cameras/overview/components/AddCameraByNVR.vue

@@ -75,8 +75,7 @@
             v-model="cameraNVRData.workspaceIdStr"
             :data="workspaceInfo"
             :render-after-expand="false"
-            :default-expand-all="props.formData ? true : false"
-            check-strictly
+            :default-expand-all="true"
             placeholder="请选择工位"
             style="width: 200px"
             @node-click="handleTreeSelect"
@@ -152,19 +151,28 @@
   type CameraDetailForm = CameraDetailServer & { workspaceIdStr?: string };
   const cameraNVRData = ref<CameraDetailForm>({} as CameraDetailForm);
 
+  const validateSceneTemplate = (_rule, value, callback) => {
+    if (Object.keys(sceneCheckedDataRef.value).length === 0)
+      callback(new Error('请至少选择一个业务场景及对应应用模版'));
+    else if (value && Object.keys(sceneCheckedDataRef.value).length > value.length)
+      callback(new Error('请完成已选业务场景中的应用模版选择'));
+  };
+
   const rules = {
     nvrId: [{ required: true, message: '请选择NVR设备', trigger: 'blur' }],
     name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
     code: [{ required: true, message: '请输入设备ID', trigger: 'blur' }],
     nvrChannel: [{ required: true, message: '请输入NVR平台通道号', trigger: 'blur' }],
-    sceneTemplateList: [{ required: true, message: '请选择至少一个业务场景', trigger: 'blur' }],
+    sceneTemplateList: [{ required: true, validator: validateSceneTemplate, trigger: 'blur' }],
     workspaceIdStr: [{ required: true, message: '请选择工位', trigger: 'blur' }],
     cameraType: [{ required: true, message: '请选择协议类型', trigger: 'blur' }],
     videoStandard: [{ required: true, message: '请选择视频编码标准', trigger: 'blur' }],
   };
 
-  const handleUpdateSceneTemplateList = (data) => {
-    cameraNVRData.value.sceneTemplateList = data;
+  const sceneCheckedDataRef = ref([]);
+  const handleUpdateSceneTemplateList = (sceneTemplateData, sceneCheckedData) => {
+    sceneCheckedDataRef.value = sceneCheckedData;
+    cameraNVRData.value.sceneTemplateList = sceneTemplateData;
   };
 
   const handleCancel = () => {

+ 13 - 5
src/views/cameras/overview/components/AddCameraBySRS.vue

@@ -83,8 +83,7 @@
             v-model="CameraSRSData.workspaceIdStr"
             :data="workspaceInfo"
             :render-after-expand="false"
-            :default-expand-all="props.formData ? true : false"
-            check-strictly
+            :default-expand-all="true"
             placeholder="请选择工位"
             style="width: 200px"
             @node-click="handleTreeSelect"
@@ -141,18 +140,27 @@
   type CameraDetailForm = CameraDetailServer & { workspaceIdStr?: string };
   const CameraSRSData = ref<CameraDetailForm>({} as CameraDetailForm);
 
+  const validateSceneTemplate = (_rule, value, callback) => {
+    if (Object.keys(sceneCheckedDataRef.value).length === 0)
+      callback(new Error('请至少选择一个业务场景及对应应用模版'));
+    else if (value && Object.keys(sceneCheckedDataRef.value).length > value.length)
+      callback(new Error('请完成已选业务场景中的应用模版选择'));
+  };
+
   const rules = {
     name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
     code: [{ required: true, message: '请输入设备ID', trigger: 'blur' }],
     cameraIp: [{ required: true, message: '请输入IP地址', trigger: 'blur' }],
     rtspUrl: [{ required: true, message: '请输入流媒体地址', trigger: 'blur' }],
-    sceneTemplateList: [{ required: true, message: '请选择至少一个业务场景', trigger: 'blur' }],
+    sceneTemplateList: [{ required: true, validator: validateSceneTemplate, trigger: 'blur' }],
     workspaceIdStr: [{ required: true, message: '请选择工位', trigger: 'blur' }],
     videoStandard: [{ required: true, message: '请选择视频编码标准', trigger: 'blur' }],
   };
 
-  const handleUpdateSceneTemplateList = (data) => {
-    CameraSRSData.value.sceneTemplateList = data;
+  const sceneCheckedDataRef = ref([]);
+  const handleUpdateSceneTemplateList = (sceneTemplateData, sceneCheckedData) => {
+    sceneCheckedDataRef.value = sceneCheckedData;
+    CameraSRSData.value.sceneTemplateList = sceneTemplateData;
   };
 
   const handleCancel = () => {