Sfoglia il codice sorgente

Merge branch 'dev' of http://192.168.0.115:3000/bill/traffic-laser into dev

xzw 1 anno fa
parent
commit
afee6e5275

+ 22 - 5
src/sdk/types/sdk.ts

@@ -35,7 +35,10 @@ export type Base = Emitter<SceneEventMap> & {
   // 通过DOM坐标获取真实坐标
   getPointByScreen: (screen?: Pos & { inDrag?: boolean }) => PointInfo | null;
   // 通过真实坐标获取DOM坐标
-  getScreenByPoint: (point: Pos, slide?: boolean) => { pos: Pos; trueSide: boolean };
+  getScreenByPoint: (
+    point: Pos,
+    slide?: boolean
+  ) => { pos: Pos; trueSide: boolean };
 
   screenshot: (
     width: number,
@@ -79,7 +82,8 @@ export type Measure = {
 };
 
 export type StartMeasure = Measure & {
-  bus: Emitter<{ end: Measure; quit: Measure; invalidPoint: string }> & Measure["bus"];
+  bus: Emitter<{ end: Measure; quit: Measure; invalidPoint: string }> &
+    Measure["bus"];
   quit: () => void;
   end: () => void;
 };
@@ -245,7 +249,11 @@ export type Scene = Base & {
   quitMeasure(): void;
   changeMode(mode: Mode): void;
   getCurrentMode(): Mode;
-  startMeasure(type: MeasureType, unit: MeasureUnit, color: string): StartMeasure;
+  startMeasure(
+    type: MeasureType,
+    unit: MeasureUnit,
+    color: string
+  ): StartMeasure;
   drawMeasure(
     type: MeasureType,
     unit: MeasureUnit,
@@ -305,6 +313,7 @@ export type Scene = Base & {
 
   getPose2: () => PoseVideoInfo;
 
+  enterCropSetting: () => { quit: () => void };
   getSceneCropSetting: () => SceneCropSetting;
   setSceneCropSetting: (setting: SeSceneCropSetting) => void;
 };
@@ -510,7 +519,11 @@ export type LaserSDK = {
   enterEditClouds: (data: EditCloudsArgs) => EditClouds;
   enterEditCrop: () => EditCrop;
 
-  transformPoint: (point: Pos3D, datasetId: string, dataset_location: Pos3D) => Pos3D;
+  transformPoint: (
+    point: Pos3D,
+    datasetId: string,
+    dataset_location: Pos3D
+  ) => Pos3D;
 
   enterMeasurement: () => void;
   leaveMeasurement: () => void;
@@ -526,7 +539,11 @@ export type LaserSDK = {
 
   enterFireEdit: () => void;
 
-  insertEffect: (type: TypeEmu, prop: InsertEffectProp, edit: boolean) => Effect;
+  insertEffect: (
+    type: TypeEmu,
+    prop: InsertEffectProp,
+    edit: boolean
+  ) => Effect;
 
   debug: boolean;
   // 加载小物体

+ 21 - 4
src/views/scene/covers/range.vue

@@ -45,7 +45,7 @@
 
 <script setup lang="ts">
 import { Pos } from "@/sdk";
-import { computed } from "vue";
+import { computed, onMounted, onUnmounted, watchEffect } from "vue";
 import { sceneSeting } from "@/store/sceneSeting";
 import { useSDK } from "@/hook";
 
@@ -59,9 +59,6 @@ const sceneRangeSetting = {
 };
 const rangeSetting = computed(() => sceneRangeSetting[props.rangeKey]);
 
-if (props.rangeKey === "reset") {
-}
-
 const value = computed({
   get() {
     return props.rangeKey && sceneSeting.value && sceneSeting.value[props.rangeKey]
@@ -76,8 +73,28 @@ const value = computed({
   },
 });
 
+watchEffect((onCleanup) => {
+  if (props.rangeKey) {
+    const name = `${props.rangeKey[0].toUpperCase()}${props.rangeKey.substring(1)}`;
+    useSDK().scene[`enterSet${name}`]();
+    onCleanup(() => {
+      useSDK().scene[`leaveSet${name}`]();
+    });
+  }
+});
+
 const changeRange = (sp: Pos, cp: Pos, info: { start: number; locusWidth: number }) =>
   info.start + (sp.y - cp.y) / info.locusWidth;
+
+let quit: () => void;
+onMounted(() => {
+  console.log("进入裁剪");
+  quit = useSDK().scene.enterCropSetting().quit;
+});
+onUnmounted(() => {
+  console.log(quit);
+  quit && quit();
+});
 </script>
 
 <style lang="scss" scoped>

+ 2 - 2
src/views/scene/index.vue

@@ -32,7 +32,7 @@
             <Measures />
             <Photo />
             <Range
-              v-if="activeMenuKeys[0] === 'range' && activeMenuKeys.length > 1"
+              v-if="activeMenuKeys[0] === 'range'"
               :rangeKey="activeMenuKeys.slice(1).join(':')"
             />
             <!-- <ButtonPane class="back fun-ctrl" size="48" @click="router.push('/scene')" v-if="!childPage"> -->
@@ -252,7 +252,7 @@ onActivated(async () => {
         display: none !important;
       }
       .scene-mode-tabs {
-        height: 48px !important;
+        // height: 48px !important;
       }
       .fun-ctrl {
         position: absolute;

+ 1 - 1
src/views/scene/menus/menus.ts

@@ -161,7 +161,7 @@ export const menus: MenuRaw[] = [
         single: true,
         onClick() {
           sceneSeting.value = {
-            top: 4,
+            top: useSDK().scene.getSceneCropSetting().top.maxTop,
             scale: 100,
             rotate: 0,
           };