|
@@ -17,7 +17,7 @@
|
|
|
|
|
|
|
|
<div class="cameraVideo"><CameraLiveVideo /></div>
|
|
<div class="cameraVideo"><CameraLiveVideo /></div>
|
|
|
<div class="presetAddWrapper">
|
|
<div class="presetAddWrapper">
|
|
|
- <CameraDirectionControl />
|
|
|
|
|
|
|
+ <!-- <CameraDirectionControl /> -->
|
|
|
<ElButton type="primary" @click="handleAddPreset" size="small">添加预置位</ElButton>
|
|
<ElButton type="primary" @click="handleAddPreset" size="small">添加预置位</ElButton>
|
|
|
<AddPresetModal
|
|
<AddPresetModal
|
|
|
v-if="addPresetModalVisible"
|
|
v-if="addPresetModalVisible"
|
|
@@ -34,7 +34,7 @@
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
<script lang="ts" setup>
|
|
<script lang="ts" setup>
|
|
|
- import { computed, ref, watch } from 'vue';
|
|
|
|
|
|
|
+ import { computed, ref, watch, watchEffect } from 'vue';
|
|
|
import FenceToolbar from '../FenceToolbar/FenceToolbar.vue';
|
|
import FenceToolbar from '../FenceToolbar/FenceToolbar.vue';
|
|
|
import FenceEditor from '../FenceEditor/FenceEditor.vue';
|
|
import FenceEditor from '../FenceEditor/FenceEditor.vue';
|
|
|
import CameraLiveVideo from '../CameraLiveVideo/CameraLiveVideo.vue';
|
|
import CameraLiveVideo from '../CameraLiveVideo/CameraLiveVideo.vue';
|
|
@@ -126,20 +126,25 @@
|
|
|
console.log('viewType', t);
|
|
console.log('viewType', t);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- const handleUpdatePreset = (val: string) => {
|
|
|
|
|
- console.log('val', val);
|
|
|
|
|
- };
|
|
|
|
|
- watch(
|
|
|
|
|
- () => fenceStore.serverFencePoints,
|
|
|
|
|
- (newVal) => {
|
|
|
|
|
- console.log('newVal', newVal);
|
|
|
|
|
- if (!newVal) {
|
|
|
|
|
|
|
+ const drawable = computed(() => {
|
|
|
|
|
+ if (!presetStore.currentPresetToken) return false;
|
|
|
|
|
+ if (!cameraAlgoStore.selectedAlgoId) return false;
|
|
|
|
|
+ if (!cameraAlgoStore.selectedAlgoDetail?.electronicFenceBool) return false;
|
|
|
|
|
+ return true;
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ watchEffect(() => {
|
|
|
|
|
+ if (
|
|
|
|
|
+ presetStore.currentPresetToken &&
|
|
|
|
|
+ cameraAlgoStore.selectedAlgoId &&
|
|
|
|
|
+ cameraAlgoStore.selectedAlgoDetail?.electronicFenceBool
|
|
|
|
|
+ ) {
|
|
|
|
|
+ const points = fenceStore.serverFencePoints;
|
|
|
|
|
+ if (!points) {
|
|
|
fenceEditorRef.value?.clear();
|
|
fenceEditorRef.value?.clear();
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- // const rawLinePoints = newVal[0];
|
|
|
|
|
-
|
|
|
|
|
- const rawLinePoints = newVal.map((x) => {
|
|
|
|
|
|
|
+ const rawLinePoints = points.map((x) => {
|
|
|
const points: number[] = [];
|
|
const points: number[] = [];
|
|
|
x.forEach((line) => {
|
|
x.forEach((line) => {
|
|
|
points.push(line[0], line[1]);
|
|
points.push(line[0], line[1]);
|
|
@@ -150,30 +155,11 @@
|
|
|
/** 先清空原有的 */
|
|
/** 先清空原有的 */
|
|
|
fenceEditorRef.value?.clear();
|
|
fenceEditorRef.value?.clear();
|
|
|
fenceEditorRef.value?.createLines(rawLinePoints);
|
|
fenceEditorRef.value?.createLines(rawLinePoints);
|
|
|
- },
|
|
|
|
|
- { immediate: true },
|
|
|
|
|
- );
|
|
|
|
|
-
|
|
|
|
|
- watch(
|
|
|
|
|
- () => cameraAlgoStore.selectedAlgoDetail?.status,
|
|
|
|
|
- (newVal) => {
|
|
|
|
|
- if (newVal) {
|
|
|
|
|
- fenceEditorRef.value?.setEditMode();
|
|
|
|
|
- } else {
|
|
|
|
|
- fenceEditorRef.value?.exitEditMode();
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- immediate: true,
|
|
|
|
|
- deep: true,
|
|
|
|
|
- },
|
|
|
|
|
- );
|
|
|
|
|
-
|
|
|
|
|
- const drawable = computed(() => {
|
|
|
|
|
- if (!presetStore.currentPresetToken) return false;
|
|
|
|
|
- if (!cameraAlgoStore.selectedAlgoId) return false;
|
|
|
|
|
- if (!cameraAlgoStore.selectedAlgoDetail?.electronicFenceBool) return false;
|
|
|
|
|
- return true;
|
|
|
|
|
|
|
+ fenceEditorRef.value?.setEditMode();
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ fenceEditorRef.value?.exitEditMode();
|
|
|
|
|
+ fenceEditorRef.value?.clear();
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
const handleAddPreset = () => {
|
|
const handleAddPreset = () => {
|