|
@@ -53,6 +53,7 @@
|
|
|
@toggle-editable="toggleEditable"
|
|
@toggle-editable="toggleEditable"
|
|
|
@toggle-range="toggleRange"
|
|
@toggle-range="toggleRange"
|
|
|
@select="handleSelectFenceList"
|
|
@select="handleSelectFenceList"
|
|
|
|
|
+ @toggle-fence-status="paramsSettingFn.toggleFenceStatus"
|
|
|
/>
|
|
/>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
@@ -64,41 +65,36 @@
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
<script lang="ts" setup>
|
|
<script lang="ts" setup>
|
|
|
- import { computed, onMounted, ref, watchEffect } from 'vue';
|
|
|
|
|
|
|
+ import { computed, onMounted, ref } from 'vue';
|
|
|
import FenceToolbar from '../FenceToolbar/FenceToolbar.vue';
|
|
import FenceToolbar from '../FenceToolbar/FenceToolbar.vue';
|
|
|
import FenceEditor from '../FenceEditorV2/FenceEditor.vue';
|
|
import FenceEditor from '../FenceEditorV2/FenceEditor.vue';
|
|
|
import CameraLiveVideo from '../CameraLiveVideo/CameraLiveVideo.vue';
|
|
import CameraLiveVideo from '../CameraLiveVideo/CameraLiveVideo.vue';
|
|
|
- import PresetSelect from '../PresetSelect/PresetSelect.vue';
|
|
|
|
|
- // import { ViewType } from '../ViewWindowSetting/types';
|
|
|
|
|
import useFenceStore from '../../store/useFenceStore';
|
|
import useFenceStore from '../../store/useFenceStore';
|
|
|
import AddPresetModal from '../AddPresetModal/AddPresetModal.vue';
|
|
import AddPresetModal from '../AddPresetModal/AddPresetModal.vue';
|
|
|
import usePresetListStore from '../../store/usePresetListStore';
|
|
import usePresetListStore from '../../store/usePresetListStore';
|
|
|
import useCameraDetailStore from '../../store/useCameraDetailStore';
|
|
import useCameraDetailStore from '../../store/useCameraDetailStore';
|
|
|
import useCameraAlgoStore from '../../store/useCameraAlgoStore';
|
|
import useCameraAlgoStore from '../../store/useCameraAlgoStore';
|
|
|
import AlgorithmsSetting from '../AlgorithmsSetting/AlgorithmsSetting.vue';
|
|
import AlgorithmsSetting from '../AlgorithmsSetting/AlgorithmsSetting.vue';
|
|
|
- import RenderSwitch from '../RenderSwitch/RenderSwitch.vue';
|
|
|
|
|
- import { FullscreenExitOutlined } from '@vicons/antd';
|
|
|
|
|
- import FenceAppSetting from '../FenceAppSetting/FenceAppSetting.vue';
|
|
|
|
|
|
|
|
|
|
import { ElMessage } from 'element-plus';
|
|
import { ElMessage } from 'element-plus';
|
|
|
import CameraDirectionControl from '../CameraDirectionControl/CameraDirectionControl.vue';
|
|
import CameraDirectionControl from '../CameraDirectionControl/CameraDirectionControl.vue';
|
|
|
import CameraViewScale from './CameraViewScale.vue';
|
|
import CameraViewScale from './CameraViewScale.vue';
|
|
|
import { canvasHeight, canvasWidth, domHeight, domWidth } from './constants';
|
|
import { canvasHeight, canvasWidth, domHeight, domWidth } from './constants';
|
|
|
- import useFullscreen from 'vue-hooks-plus/lib/useFullscreen';
|
|
|
|
|
- import { createCameraAlgoApi, editFenceApi, saveFenceApi, updateCameraAlgoApi } from '@/api/camera/camera-preview';
|
|
|
|
|
|
|
+ import { createCameraAlgoApi, FENCE_ENBALED_STATUS, updateCameraAlgoApi } from '@/api/camera/camera-preview';
|
|
|
import { RegionJudge } from '../FenceToolbar/constants';
|
|
import { RegionJudge } from '../FenceToolbar/constants';
|
|
|
import AlgoCanSelect from '../AlgoCanSelect/AlgoCanSelect.vue';
|
|
import AlgoCanSelect from '../AlgoCanSelect/AlgoCanSelect.vue';
|
|
|
import { AlgoDetail, queryAlgoInfoAllByCameraId } from '@/api/algo/algo';
|
|
import { AlgoDetail, queryAlgoInfoAllByCameraId } from '@/api/algo/algo';
|
|
|
import { FencePolygonPoints } from '../FenceEditorV2/types';
|
|
import { FencePolygonPoints } from '../FenceEditorV2/types';
|
|
|
|
|
+ import useParamsSettingFn from '../../hooks/useParamsSettingFn';
|
|
|
|
|
|
|
|
const emits = defineEmits<{
|
|
const emits = defineEmits<{
|
|
|
(e: 'changeTreeRender', render: number | string): unknown;
|
|
(e: 'changeTreeRender', render: number | string): unknown;
|
|
|
}>();
|
|
}>();
|
|
|
|
|
|
|
|
- const [, { enterFullscreen }] = useFullscreen(() => document.querySelector('.cameraVideo'));
|
|
|
|
|
-
|
|
|
|
|
const fenceEditorRef = ref<typeof FenceEditor | null>(null);
|
|
const fenceEditorRef = ref<typeof FenceEditor | null>(null);
|
|
|
|
|
|
|
|
|
|
+ const paramsSettingFn = useParamsSettingFn();
|
|
|
|
|
+
|
|
|
const fenceStore = useFenceStore();
|
|
const fenceStore = useFenceStore();
|
|
|
|
|
|
|
|
const presetStore = usePresetListStore();
|
|
const presetStore = usePresetListStore();
|
|
@@ -135,11 +131,6 @@
|
|
|
fenceEditorRef.value?.remove();
|
|
fenceEditorRef.value?.remove();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- /** 选中电子围栏多边形 */
|
|
|
|
|
- const selectFencePolygon = (fenceId: number) => {
|
|
|
|
|
- fenceEditorRef.value?.selectFence(fenceId);
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
/** 退出编辑模式 */
|
|
/** 退出编辑模式 */
|
|
|
const toggleEditable = (val: boolean) => {
|
|
const toggleEditable = (val: boolean) => {
|
|
|
fenceStore.showFenceTool = val;
|
|
fenceStore.showFenceTool = val;
|
|
@@ -306,7 +297,7 @@
|
|
|
top: 0;
|
|
top: 0;
|
|
|
width: 260px;
|
|
width: 260px;
|
|
|
height: 540px;
|
|
height: 540px;
|
|
|
- /* border: 1px solid #f00; */
|
|
|
|
|
|
|
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1);
|
|
|
background: #fff;
|
|
background: #fff;
|
|
|
/* width: 962px; */
|
|
/* width: 962px; */
|
|
|
/* padding: 20px;
|
|
/* padding: 20px;
|