Преглед изворни кода

feat: 将算法参数提取为公共之间,左侧相机树通过slot传参进来

louhangfei пре 1 година
родитељ
комит
1da2a07c0b
50 измењених фајлова са 142 додато и 127 уклоњено
  1. 134 0
      src/modules/algo-params-setting-base/AlgoParamsSettingBase.vue
  2. 0 0
      src/modules/algo-params-setting-base/components/AddPresetModal/AddPresetModal.vue
  3. 0 0
      src/modules/algo-params-setting-base/components/AlgoCanSelect/AlgoCanSelect.vue
  4. 0 0
      src/modules/algo-params-setting-base/components/AlgoSwitchCard/AlgoAddBtn.vue
  5. 0 0
      src/modules/algo-params-setting-base/components/AlgoSwitchCard/AlgoDeleteIcon.vue
  6. 0 0
      src/modules/algo-params-setting-base/components/AlgoSwitchCard/AlgoSettingIcon.vue
  7. 0 0
      src/modules/algo-params-setting-base/components/AlgoSwitchCard/AlgoSwitchCard.vue
  8. 0 0
      src/modules/algo-params-setting-base/components/AlgoSwitchCard/AlgoSwitchCardBase.vue
  9. 0 0
      src/modules/algo-params-setting-base/components/AlgoSwitchCard/AlgoSwitchIcon.vue
  10. 0 0
      src/modules/algo-params-setting-base/components/AlgoSwitchCard/ElectronicFenceIcon.vue
  11. 0 0
      src/modules/algo-params-setting-base/components/AlgoSwitchCard/WithTooltip.vue
  12. 0 0
      src/modules/algo-params-setting-base/components/AlgorithmsSetting/AddAlgoDialog.vue
  13. 0 0
      src/modules/algo-params-setting-base/components/AlgorithmsSetting/AlgoTag.vue
  14. 0 0
      src/modules/algo-params-setting-base/components/AlgorithmsSetting/AlgorithmsSetting.vue
  15. 0 0
      src/modules/algo-params-setting-base/components/CameraDirectionControl/CameraDirectionControl.vue
  16. 0 0
      src/modules/algo-params-setting-base/components/CameraDirectionControl/DirectionItem.vue
  17. 0 0
      src/modules/algo-params-setting-base/components/CameraLiveVideo/CameraLiveVideo.vue
  18. 0 0
      src/modules/algo-params-setting-base/components/CameraParams/CameraParams.vue
  19. 0 0
      src/modules/algo-params-setting-base/components/CameraParams/types.ts
  20. 0 0
      src/modules/algo-params-setting-base/components/CameraTree/CameraTree.vue
  21. 0 0
      src/modules/algo-params-setting-base/components/CameraTree/CameraTreeOldVersion.vue
  22. 0 0
      src/modules/algo-params-setting-base/components/CameraViewSetting/CameraViewScale.vue
  23. 0 0
      src/modules/algo-params-setting-base/components/CameraViewSetting/CameraViewSetting.vue
  24. 0 0
      src/modules/algo-params-setting-base/components/CameraViewSetting/constants.ts
  25. 0 0
      src/modules/algo-params-setting-base/components/FenceAppSetting/constants.ts
  26. 0 0
      src/modules/algo-params-setting-base/components/FenceEditor/FenceEditor.vue
  27. 0 0
      src/modules/algo-params-setting-base/components/FenceEditor/constants.ts
  28. 0 0
      src/modules/algo-params-setting-base/components/FenceEditor/utils.ts
  29. 0 0
      src/modules/algo-params-setting-base/components/FenceEditorV2/FenceEditor.vue
  30. 0 0
      src/modules/algo-params-setting-base/components/FenceEditorV2/FenceItem.vue
  31. 0 0
      src/modules/algo-params-setting-base/components/FenceEditorV2/constants.ts
  32. 0 0
      src/modules/algo-params-setting-base/components/FenceEditorV2/types.ts
  33. 0 0
      src/modules/algo-params-setting-base/components/FenceEditorV2/utils.ts
  34. 0 0
      src/modules/algo-params-setting-base/components/FenceToolbar/Description.vue
  35. 0 0
      src/modules/algo-params-setting-base/components/FenceToolbar/EditFenceDialog.vue
  36. 0 0
      src/modules/algo-params-setting-base/components/FenceToolbar/FenceNameItem.vue
  37. 0 0
      src/modules/algo-params-setting-base/components/FenceToolbar/FenceToolbar.vue
  38. 0 0
      src/modules/algo-params-setting-base/components/FenceToolbar/ToggleFenceStatus.vue
  39. 0 0
      src/modules/algo-params-setting-base/components/FenceToolbar/constants.ts
  40. 0 0
      src/modules/algo-params-setting-base/components/PresetSelect/PresetSelect.vue
  41. 0 0
      src/modules/algo-params-setting-base/components/RenderSwitch/RenderSwitch.vue
  42. 0 0
      src/modules/algo-params-setting-base/components/ToolbarIcon/ToolbarIcon.vue
  43. 0 0
      src/modules/algo-params-setting-base/components/ViewWindowSetting/ViewWindowSetting.vue
  44. 0 0
      src/modules/algo-params-setting-base/components/ViewWindowSetting/types.ts
  45. 0 0
      src/modules/algo-params-setting-base/hooks/useParamsSettingFn.ts
  46. 0 0
      src/modules/algo-params-setting-base/store/useCameraAlgoStore.ts
  47. 0 0
      src/modules/algo-params-setting-base/store/useCameraDetailStore.ts
  48. 0 0
      src/modules/algo-params-setting-base/store/useFenceStore.ts
  49. 0 0
      src/modules/algo-params-setting-base/store/usePresetListStore.ts
  50. 8 127
      src/views/cameras/algo-params-setting/AlgoParamsSetting.vue

+ 134 - 0
src/modules/algo-params-setting-base/AlgoParamsSettingBase.vue

@@ -0,0 +1,134 @@
+<!-- 算法参数配置页面 -->
+<template>
+  <div>
+    <div class="cameraMain">
+      <div class="cameraTree" v-show="cameraTreeVisible">
+        <slot name="cameraTree"> 这里需要插入相机树的组件 </slot>
+      </div>
+      <div v-if="cameraTreeVisible" class="arrow-icon" @click="cameraTreeVisible = false"
+        ><el-icon><DArrowLeft /></el-icon
+      ></div>
+      <div v-else class="arrow-icon" @click="cameraTreeVisible = true"
+        ><el-icon><DArrowRight /></el-icon
+      ></div>
+      <div class="cameraSettingWrapper">
+        <div class="cameraView">
+          <CameraViewSetting v-if="cameraDetailStore.cameraId" />
+          <div class="cameraPlaceholder" v-else>请选择左侧相机</div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import { onMounted, ref, watch } from 'vue';
+  import { ElIcon } from 'element-plus';
+  import { DArrowLeft, DArrowRight } from '@element-plus/icons-vue';
+  import CameraTreeCom from './components/CameraTree/CameraTree.vue';
+  import CameraViewSetting from './components/CameraViewSetting/CameraViewSetting.vue';
+  import useCameraDetailStore from './store/useCameraDetailStore';
+  import useCameraAlgoStore from './store/useCameraAlgoStore';
+  import usePresetListStore from './store/usePresetListStore';
+  import useFenceStore from './store/useFenceStore';
+  import { IsPtz } from '@/types/camera/constant';
+  import { getCameraDeatilById } from '@/api/camera/camera-preview';
+
+  const cameraDetailStore = useCameraDetailStore();
+  const cameraAlgoStore = useCameraAlgoStore();
+  const fenceStore = useFenceStore();
+  const presetListStore = usePresetListStore();
+
+  const cameraTreeVisible = ref(true);
+
+  watch(
+    () => cameraDetailStore.cameraId,
+    async (cameraId) => {
+      fenceStore.clear();
+      if (cameraId) {
+        getCameraDeatilById(cameraId).then(async (res) => {
+          cameraDetailStore.setDetail(res);
+          // 如果isPtz为null,或者为0,都按照枪击相机
+          const presetList = await presetListStore.getPresetList(cameraId);
+          if (res.isPtz === IsPtz.disabled || !res.isPtz) {
+            presetListStore.currentPresetToken = presetList?.[0].token;
+          }
+        });
+
+        cameraAlgoStore.getCameraAlgoList(cameraId);
+        cameraAlgoStore.selectedAlgoId = null;
+      }
+    },
+    {
+      immediate: true,
+    },
+  );
+
+  onMounted(() => {
+    cameraAlgoStore.getAllAlgoList();
+  });
+</script>
+
+<style lang="scss" scoped>
+  .cameraParamsSetting {
+    width: 350px;
+    min-height: 300px;
+    // border: 1px solid #ccc;
+  }
+
+  .cameraParamsSetting {
+    width: 350px;
+    min-height: 300px;
+    // border: 1px solid #ccc;
+  }
+
+  .algorithmsSetting {
+    flex: 1;
+    border-left: 1px solid #ccc;
+    padding-left: 20px;
+  }
+  .cameraMain {
+    display: flex;
+    background: #fff;
+    overflow-x: auto;
+    // height: calc(100vh - 90px);
+  }
+  .cameraTree {
+    min-width: 270px;
+    max-width: 600px;
+    flex-shrink: 0;
+    // height: 800px;
+    // border: 1px solid #ccc;
+    border: 1px solid #f0f2f5;
+    margin: 5px;
+  }
+
+  .cameraPlaceholder {
+    color: #333;
+    text-align: center;
+    margin-top: 100px;
+    margin-left: 100px;
+  }
+
+  .arrow-icon {
+    width: 16px;
+    height: 48px;
+    margin: 320px 0;
+    border-radius: 15px;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    cursor: pointer;
+    background-color: #bee2ff;
+  }
+
+  .arrow-icon:hover {
+    color: #fff;
+    background-color: #0052d9;
+  }
+
+  .cameraView {
+    width: 1230px;
+    position: relative;
+  }
+</style>

src/views/cameras/algo-params-setting/components/AddPresetModal/AddPresetModal.vue → src/modules/algo-params-setting-base/components/AddPresetModal/AddPresetModal.vue


src/views/cameras/algo-params-setting/components/AlgoCanSelect/AlgoCanSelect.vue → src/modules/algo-params-setting-base/components/AlgoCanSelect/AlgoCanSelect.vue


src/views/cameras/algo-params-setting/components/AlgoSwitchCard/AlgoAddBtn.vue → src/modules/algo-params-setting-base/components/AlgoSwitchCard/AlgoAddBtn.vue


src/views/cameras/algo-params-setting/components/AlgoSwitchCard/AlgoDeleteIcon.vue → src/modules/algo-params-setting-base/components/AlgoSwitchCard/AlgoDeleteIcon.vue


src/views/cameras/algo-params-setting/components/AlgoSwitchCard/AlgoSettingIcon.vue → src/modules/algo-params-setting-base/components/AlgoSwitchCard/AlgoSettingIcon.vue


src/views/cameras/algo-params-setting/components/AlgoSwitchCard/AlgoSwitchCard.vue → src/modules/algo-params-setting-base/components/AlgoSwitchCard/AlgoSwitchCard.vue


src/views/cameras/algo-params-setting/components/AlgoSwitchCard/AlgoSwitchCardBase.vue → src/modules/algo-params-setting-base/components/AlgoSwitchCard/AlgoSwitchCardBase.vue


src/views/cameras/algo-params-setting/components/AlgoSwitchCard/AlgoSwitchIcon.vue → src/modules/algo-params-setting-base/components/AlgoSwitchCard/AlgoSwitchIcon.vue


src/views/cameras/algo-params-setting/components/AlgoSwitchCard/ElectronicFenceIcon.vue → src/modules/algo-params-setting-base/components/AlgoSwitchCard/ElectronicFenceIcon.vue


src/views/cameras/algo-params-setting/components/AlgoSwitchCard/WithTooltip.vue → src/modules/algo-params-setting-base/components/AlgoSwitchCard/WithTooltip.vue


src/views/cameras/algo-params-setting/components/AlgorithmsSetting/AddAlgoDialog.vue → src/modules/algo-params-setting-base/components/AlgorithmsSetting/AddAlgoDialog.vue


src/views/cameras/algo-params-setting/components/AlgorithmsSetting/AlgoTag.vue → src/modules/algo-params-setting-base/components/AlgorithmsSetting/AlgoTag.vue


src/views/cameras/algo-params-setting/components/AlgorithmsSetting/AlgorithmsSetting.vue → src/modules/algo-params-setting-base/components/AlgorithmsSetting/AlgorithmsSetting.vue


src/views/cameras/algo-params-setting/components/CameraDirectionControl/CameraDirectionControl.vue → src/modules/algo-params-setting-base/components/CameraDirectionControl/CameraDirectionControl.vue


src/views/cameras/algo-params-setting/components/CameraDirectionControl/DirectionItem.vue → src/modules/algo-params-setting-base/components/CameraDirectionControl/DirectionItem.vue


src/views/cameras/algo-params-setting/components/CameraLiveVideo/CameraLiveVideo.vue → src/modules/algo-params-setting-base/components/CameraLiveVideo/CameraLiveVideo.vue


src/views/cameras/algo-params-setting/components/CameraParams/CameraParams.vue → src/modules/algo-params-setting-base/components/CameraParams/CameraParams.vue


src/views/cameras/algo-params-setting/components/CameraParams/types.ts → src/modules/algo-params-setting-base/components/CameraParams/types.ts


src/views/cameras/algo-params-setting/components/CameraTree/CameraTree.vue → src/modules/algo-params-setting-base/components/CameraTree/CameraTree.vue


src/views/cameras/algo-params-setting/components/CameraTree/CameraTreeOldVersion.vue → src/modules/algo-params-setting-base/components/CameraTree/CameraTreeOldVersion.vue


src/views/cameras/algo-params-setting/components/CameraViewSetting/CameraViewScale.vue → src/modules/algo-params-setting-base/components/CameraViewSetting/CameraViewScale.vue


src/views/cameras/algo-params-setting/components/CameraViewSetting/CameraViewSetting.vue → src/modules/algo-params-setting-base/components/CameraViewSetting/CameraViewSetting.vue


src/views/cameras/algo-params-setting/components/CameraViewSetting/constants.ts → src/modules/algo-params-setting-base/components/CameraViewSetting/constants.ts


src/views/cameras/algo-params-setting/components/FenceAppSetting/constants.ts → src/modules/algo-params-setting-base/components/FenceAppSetting/constants.ts


src/views/cameras/algo-params-setting/components/FenceEditor/FenceEditor.vue → src/modules/algo-params-setting-base/components/FenceEditor/FenceEditor.vue


src/views/cameras/algo-params-setting/components/FenceEditor/constants.ts → src/modules/algo-params-setting-base/components/FenceEditor/constants.ts


src/views/cameras/algo-params-setting/components/FenceEditor/utils.ts → src/modules/algo-params-setting-base/components/FenceEditor/utils.ts


src/views/cameras/algo-params-setting/components/FenceEditorV2/FenceEditor.vue → src/modules/algo-params-setting-base/components/FenceEditorV2/FenceEditor.vue


src/views/cameras/algo-params-setting/components/FenceEditorV2/FenceItem.vue → src/modules/algo-params-setting-base/components/FenceEditorV2/FenceItem.vue


src/views/cameras/algo-params-setting/components/FenceEditorV2/constants.ts → src/modules/algo-params-setting-base/components/FenceEditorV2/constants.ts


src/views/cameras/algo-params-setting/components/FenceEditorV2/types.ts → src/modules/algo-params-setting-base/components/FenceEditorV2/types.ts


src/views/cameras/algo-params-setting/components/FenceEditorV2/utils.ts → src/modules/algo-params-setting-base/components/FenceEditorV2/utils.ts


src/views/cameras/algo-params-setting/components/FenceToolbar/Description.vue → src/modules/algo-params-setting-base/components/FenceToolbar/Description.vue


src/views/cameras/algo-params-setting/components/FenceToolbar/EditFenceDialog.vue → src/modules/algo-params-setting-base/components/FenceToolbar/EditFenceDialog.vue


src/views/cameras/algo-params-setting/components/FenceToolbar/FenceNameItem.vue → src/modules/algo-params-setting-base/components/FenceToolbar/FenceNameItem.vue


src/views/cameras/algo-params-setting/components/FenceToolbar/FenceToolbar.vue → src/modules/algo-params-setting-base/components/FenceToolbar/FenceToolbar.vue


src/views/cameras/algo-params-setting/components/FenceToolbar/ToggleFenceStatus.vue → src/modules/algo-params-setting-base/components/FenceToolbar/ToggleFenceStatus.vue


src/views/cameras/algo-params-setting/components/FenceToolbar/constants.ts → src/modules/algo-params-setting-base/components/FenceToolbar/constants.ts


src/views/cameras/algo-params-setting/components/PresetSelect/PresetSelect.vue → src/modules/algo-params-setting-base/components/PresetSelect/PresetSelect.vue


src/views/cameras/algo-params-setting/components/RenderSwitch/RenderSwitch.vue → src/modules/algo-params-setting-base/components/RenderSwitch/RenderSwitch.vue


src/views/cameras/algo-params-setting/components/ToolbarIcon/ToolbarIcon.vue → src/modules/algo-params-setting-base/components/ToolbarIcon/ToolbarIcon.vue


src/views/cameras/algo-params-setting/components/ViewWindowSetting/ViewWindowSetting.vue → src/modules/algo-params-setting-base/components/ViewWindowSetting/ViewWindowSetting.vue


src/views/cameras/algo-params-setting/components/ViewWindowSetting/types.ts → src/modules/algo-params-setting-base/components/ViewWindowSetting/types.ts


src/views/cameras/algo-params-setting/hooks/useParamsSettingFn.ts → src/modules/algo-params-setting-base/hooks/useParamsSettingFn.ts


src/views/cameras/algo-params-setting/store/useCameraAlgoStore.ts → src/modules/algo-params-setting-base/store/useCameraAlgoStore.ts


src/views/cameras/algo-params-setting/store/useCameraDetailStore.ts → src/modules/algo-params-setting-base/store/useCameraDetailStore.ts


src/views/cameras/algo-params-setting/store/useFenceStore.ts → src/modules/algo-params-setting-base/store/useFenceStore.ts


src/views/cameras/algo-params-setting/store/usePresetListStore.ts → src/modules/algo-params-setting-base/store/usePresetListStore.ts


+ 8 - 127
src/views/cameras/algo-params-setting/AlgoParamsSetting.vue

@@ -1,134 +1,15 @@
 <!-- 算法参数配置页面 -->
 <template>
-  <div>
-    <div class="cameraMain">
-      <div class="cameraTree" v-show="cameraTreeVisible">
-        <CameraTreeCom />
-      </div>
-      <div v-if="cameraTreeVisible" class="arrow-icon" @click="cameraTreeVisible = false"
-        ><el-icon><DArrowLeft /></el-icon
-      ></div>
-      <div v-else class="arrow-icon" @click="cameraTreeVisible = true"
-        ><el-icon><DArrowRight /></el-icon
-      ></div>
-      <div class="cameraSettingWrapper">
-        <div class="cameraView">
-          <CameraViewSetting v-if="cameraDetailStore.cameraId" />
-          <div class="cameraPlaceholder" v-else>请选择左侧相机</div>
-        </div>
-      </div>
-    </div>
-  </div>
+  <AlgoParamsSettingBase>
+    <template #cameraTree>
+      <CameraTree />
+    </template>
+  </AlgoParamsSettingBase>
 </template>
 
 <script lang="ts" setup>
-  import { onMounted, ref, watch } from 'vue';
-  import { ElIcon } from 'element-plus';
-  import { DArrowLeft, DArrowRight } from '@element-plus/icons-vue';
-  import CameraTreeCom from './components/CameraTree/CameraTree.vue';
-  import CameraViewSetting from './components/CameraViewSetting/CameraViewSetting.vue';
-  import useCameraDetailStore from './store/useCameraDetailStore';
-  import useCameraAlgoStore from './store/useCameraAlgoStore';
-  import usePresetListStore from './store/usePresetListStore';
-  import useFenceStore from './store/useFenceStore';
-  import { IsPtz } from '@/types/camera/constant';
-  import { getCameraDeatilById } from '@/api/camera/camera-preview';
-
-  const cameraDetailStore = useCameraDetailStore();
-  const cameraAlgoStore = useCameraAlgoStore();
-  const fenceStore = useFenceStore();
-  const presetListStore = usePresetListStore();
-
-  const cameraTreeVisible = ref(true);
-
-  watch(
-    () => cameraDetailStore.cameraId,
-    async (cameraId) => {
-      fenceStore.clear();
-      if (cameraId) {
-        getCameraDeatilById(cameraId).then(async (res) => {
-          cameraDetailStore.setDetail(res);
-          // 如果isPtz为null,或者为0,都按照枪击相机
-          const presetList = await presetListStore.getPresetList(cameraId);
-          if (res.isPtz === IsPtz.disabled || !res.isPtz) {
-            presetListStore.currentPresetToken = presetList?.[0].token;
-          }
-        });
-
-        cameraAlgoStore.getCameraAlgoList(cameraId);
-        cameraAlgoStore.selectedAlgoId = null;
-      }
-    },
-    {
-      immediate: true,
-    },
-  );
-
-  onMounted(() => {
-    cameraAlgoStore.getAllAlgoList();
-  });
+  import AlgoParamsSettingBase from '@/modules/algo-params-setting-base/AlgoParamsSettingBase.vue';
+  import CameraTree from '@/modules/algo-params-setting-base/components/CameraTree/CameraTree.vue';
 </script>
 
-<style lang="scss" scoped>
-  .cameraParamsSetting {
-    width: 350px;
-    min-height: 300px;
-    // border: 1px solid #ccc;
-  }
-
-  .cameraParamsSetting {
-    width: 350px;
-    min-height: 300px;
-    // border: 1px solid #ccc;
-  }
-
-  .algorithmsSetting {
-    flex: 1;
-    border-left: 1px solid #ccc;
-    padding-left: 20px;
-  }
-  .cameraMain {
-    display: flex;
-    background: #fff;
-    overflow-x: auto;
-    // height: calc(100vh - 90px);
-  }
-  .cameraTree {
-    min-width: 270px;
-    max-width: 600px;
-    flex-shrink: 0;
-    // height: 800px;
-    // border: 1px solid #ccc;
-    border: 1px solid #f0f2f5;
-    margin: 5px;
-  }
-
-  .cameraPlaceholder {
-    color: #333;
-    text-align: center;
-    margin-top: 100px;
-    margin-left: 100px;
-  }
-
-  .arrow-icon {
-    width: 16px;
-    height: 48px;
-    margin: 320px 0;
-    border-radius: 15px;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    cursor: pointer;
-    background-color: #bee2ff;
-  }
-
-  .arrow-icon:hover {
-    color: #fff;
-    background-color: #0052d9;
-  }
-
-  .cameraView {
-    width: 1230px;
-    position: relative;
-  }
-</style>
+<style lang="scss" scoped></style>