|
|
@@ -11,36 +11,32 @@
|
|
|
/>
|
|
|
<PresetSelect />
|
|
|
</div>
|
|
|
-
|
|
|
- <div
|
|
|
- class="cameraViewSettingWrapper"
|
|
|
- :style="{
|
|
|
- width: `${cameraDetailStore.videoSize.width}px`,
|
|
|
- height: `${cameraDetailStore.videoSize.height}px`,
|
|
|
- }"
|
|
|
- >
|
|
|
- <FenceEditor
|
|
|
- ref="fenceEditorRef"
|
|
|
- :width="cameraDetailStore.videoSize.width"
|
|
|
- :height="cameraDetailStore.videoSize.height" />
|
|
|
- <div class="cameraVideo">
|
|
|
- <CameraLiveVideo />
|
|
|
+ <div class="cameraViewOverflow" :style="{ width: domWidth + 'px', height: domHeight + 'px' }">
|
|
|
+ <div
|
|
|
+ class="cameraViewSettingWrapper"
|
|
|
+ :style="{ width: canvasWidth + 'px', height: canvasHeight + 'px', scale: scale }"
|
|
|
+ >
|
|
|
+ <FenceEditor ref="fenceEditorRef" />
|
|
|
+ <div class="cameraVideo">
|
|
|
+ <CameraLiveVideo />
|
|
|
+ </div>
|
|
|
+ <div class="presetAddWrapper" :class="{ hidePresetControlCls: isEdit }">
|
|
|
+ <CameraDirectionControl />
|
|
|
+ <ElButton
|
|
|
+ type="primary"
|
|
|
+ @click="handleAddPreset"
|
|
|
+ size="small"
|
|
|
+ style="margin-top: 20px; width: 100px"
|
|
|
+ >添加预置位</ElButton
|
|
|
+ >
|
|
|
+ <AddPresetModal
|
|
|
+ v-if="addPresetModalVisible"
|
|
|
+ @close="handleClose"
|
|
|
+ @ok="handleAddPresetOk"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="presetAddWrapper" :class="{ hidePresetControlCls: isEdit }">
|
|
|
- <CameraDirectionControl />
|
|
|
- <ElButton
|
|
|
- type="primary"
|
|
|
- @click="handleAddPreset"
|
|
|
- size="small"
|
|
|
- style="margin-top: 20px; width: 100px"
|
|
|
- >添加预置位</ElButton
|
|
|
- >
|
|
|
- <AddPresetModal
|
|
|
- v-if="addPresetModalVisible"
|
|
|
- @close="handleClose"
|
|
|
- @ok="handleAddPresetOk"
|
|
|
- /> </div
|
|
|
- ></div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="cameraParamsSettingWrapper">
|
|
|
<div class="cameraParamsSetting">
|
|
|
@@ -67,6 +63,7 @@
|
|
|
import CameraParams from '../CameraParams/CameraParams.vue';
|
|
|
import { ElMessage } from 'element-plus';
|
|
|
import CameraDirectionControl from '../CameraDirectionControl/CameraDirectionControl.vue';
|
|
|
+ import { canvasHeight, canvasWidth, domHeight, domWidth, scale } from './constants';
|
|
|
|
|
|
const fenceEditorRef = ref<typeof FenceEditor | null>(null);
|
|
|
|
|
|
@@ -141,9 +138,6 @@
|
|
|
};
|
|
|
|
|
|
const drawable = computed(() => {
|
|
|
- if (!presetStore.currentPresetToken) return false;
|
|
|
- if (!cameraAlgoStore.selectedAlgoId) return false;
|
|
|
- if (!cameraAlgoStore.selectedAlgoDetail?.electronicFenceBool) return false;
|
|
|
return true;
|
|
|
});
|
|
|
|
|
|
@@ -153,7 +147,7 @@
|
|
|
cameraAlgoStore.selectedAlgoId &&
|
|
|
cameraAlgoStore.selectedAlgoDetail?.electronicFenceBool
|
|
|
) {
|
|
|
- const points = fenceStore.serverFencePoints;
|
|
|
+ const points = fenceStore.serverFencePoints || [];
|
|
|
if (!points) {
|
|
|
fenceEditorRef.value?.clear();
|
|
|
return;
|
|
|
@@ -187,19 +181,15 @@
|
|
|
presetStore.getPresetList(cameraId);
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
- // watchEffect(() => {
|
|
|
- // const scale = cameraDetailStore.params.imageResolution;
|
|
|
- // console.log('scale change', scale);
|
|
|
- // fenceEditorRef.value?.setScale(scale);
|
|
|
- // });
|
|
|
</script>
|
|
|
<style scoped>
|
|
|
.cameraViewSettingWrapper {
|
|
|
position: relative;
|
|
|
- /* width: 720px;
|
|
|
- height: 405px; */
|
|
|
border: 1px solid #ccc;
|
|
|
+ transform-origin: left top;
|
|
|
+ }
|
|
|
+ .cameraViewOverflow {
|
|
|
+ overflow: hidden;
|
|
|
}
|
|
|
|
|
|
.cameraVideo {
|