Ver código fonte

电子围栏增加选中和未选中状态

louhangfei 2 anos atrás
pai
commit
c5c9891079

+ 5 - 0
src/views/cameras/preview/components/FenceEditorV2/FenceEditor.vue

@@ -20,6 +20,7 @@
             :draggable="!drawingGroupId"
             @select-group="handleSelectGroup"
             :is-edit="isEdit"
+            :current-group-id="currentGroupId"
           />
         </v-layer>
       </v-stage>
@@ -121,6 +122,7 @@
     if (!drawingGroupId.value) {
       const groupConfig = createGroupConfig(point, scale.value);
       drawingGroupId.value = groupConfig.uid;
+      currentGroupId.value = groupConfig.uid;
       groupConfig._temp.points = point;
       fenceGroups.value.push(groupConfig);
     } else {
@@ -141,6 +143,7 @@
           });
           groupConfig.lineConfig.points = [];
           groupConfig.circleConfigs = [];
+          currentGroupId.value = '';
         } else {
           groupConfig.lineConfig.points = groupConfig._temp.points;
         }
@@ -158,6 +161,7 @@
       const finalPoints = [...tempPoints, ...point];
       groupConfig.lineConfig.points = finalPoints;
       groupConfig._temp.points = finalPoints;
+      currentGroupId.value = groupConfig.uid;
 
       const circleConfig = createCircleConfigItem(
         point,
@@ -206,6 +210,7 @@
   /** 删除当前选中的group项 */
   const remove = () => {
     fenceGroups.value = fenceGroups.value.filter((x) => x.uid !== currentGroupId.value);
+    currentGroupId.value = '';
   };
 
   /** 导出为json格式 */

+ 3 - 1
src/views/cameras/preview/components/FenceEditorV2/FenceItem.vue

@@ -10,7 +10,7 @@
   >
     <v-line :config="group.lineConfig" />
     <v-circle
-      v-if="props.isEdit"
+      v-if="props.isEdit && props.currentGroupId === group.uid"
       v-for="circleConfig in group.circleConfigs"
       :config="circleConfig"
       :key="circleConfig"
@@ -26,6 +26,8 @@
     fenceGroups: FenceGroup[];
     draggable: boolean;
     isEdit: boolean;
+    /** 当前选中的分组 */
+    currentGroupId: string;
   }>();
 
   const emits = defineEmits<{ (e: 'selectGroup', groupId: string): unknown }>();