bill 8 місяців тому
батько
коміт
9d321ee28e

+ 7 - 7
src/api/scene.ts

@@ -22,14 +22,14 @@ export enum SceneType {
   DSFXJ = 7,
 }
 export const SceneTypeDesc: Record<SceneType, string>  = {
-  [SceneType.SWKK]: '八目',
-  [SceneType.SWKJ]: '双目转台',
-  [SceneType.SWSS]: '激光转台点云场景',
+  [SceneType.SWKK]: '八目-四维现勘 Kankan',
+  [SceneType.SWKJ]: '四维现勘 Minion',
+  [SceneType.SWSS]: '四维现勘 Mega 点云',
   [SceneType.SWMX]: '媒体库',
-  [SceneType.SWSSMX]: '激光转台Mesh场景',
-  [SceneType.SWYDSS]: '激光移动点云场景',
-  [SceneType.SWYDMX]: '激光移动Mesh场景',
-  [SceneType.DSFXJ]: '第三方相机'
+  [SceneType.SWSSMX]: '四维现勘 Mega Mesh',
+  [SceneType.SWYDSS]: '四维现勘 Meta 点云',
+  [SceneType.SWYDMX]: '四维现勘 Meta Mesh',
+  [SceneType.DSFXJ]: '四维现勘 PanoX'
 }
 
 

+ 1 - 1
src/layout/model-list/sign.vue

@@ -36,7 +36,7 @@
       <p v-if="![SceneType.SWSS, SceneType.SWYDSS].includes(model.type)">
         <span>数据大小:</span>{{ model.size }}
       </p>
-      <p><span>拍摄时间:</span>{{ model.time }}</p>
+      <p v-if="model.type !== SceneType.SWMX"><span>拍摄时间:</span>{{ model.time }}</p>
     </div>
   </div>
 </template>

+ 2 - 0
src/sdk/sdk.ts

@@ -239,12 +239,14 @@ export type Path = {
       pos: SceneLocalPos,
       modelId: string
     }
+    focus: boolean
     // 路径点位置变更
     changePoints: PathProps['points']
     drawed: void
   }>;
   changeDirection: ( show: boolean,  reverse: boolean ) => void
   changeFontSize: (fontSize: number) => void
+  focus: (f: boolean) => void
   changeVisibilityRange: (range: number) => void
   changePointName: (index: number, name: string) => void
   // 飞向路径

+ 35 - 3
src/views/guide/path/sign.vue

@@ -1,5 +1,9 @@
 <template>
-  <ui-group-option class="sign-guide">
+  <ui-group-option
+    :class="`sign-guide ${focus ? 'active' : ''}`"
+    @mouseleave="leaveHandler"
+    @mouseenter="enterHandler"
+  >
     <div class="info">
       <div class="guide-cover">
         <span class="img">
@@ -30,8 +34,8 @@
 
 <script setup lang="ts">
 import { Path } from "@/store";
-import { playSceneGuide } from "@/sdk";
-import { playScenePath } from "@/sdk/association/path";
+import { getPathNode, playScenePath } from "@/sdk/association/path";
+import { computed, ref, watchEffect } from "vue";
 
 const props = withDefaults(defineProps<{ path: Path; edit?: boolean }>(), {
   edit: true,
@@ -50,6 +54,24 @@ const actions = {
   edit: () => emit("edit"),
   delete: () => emit("delete"),
 };
+
+const focus = ref(false);
+const node = computed(() => getPathNode(props.path.id));
+watchEffect((onCleanup) => {
+  if (!node.value) return;
+  const $node = node.value;
+  const focusHandler = (f: boolean) => (focus.value = f);
+  $node.bus.on("focus", focusHandler);
+  onCleanup(() => $node.bus.off("focus", focusHandler));
+});
+const leaveHandler = () => {
+  focus.value = false;
+  // node.value?.focus(false);
+};
+const enterHandler = () => {
+  focus.value = true;
+  // node.value?.focus(true);
+};
 </script>
 
 <style lang="scss" scoped>
@@ -58,11 +80,21 @@ const actions = {
   justify-content: space-between;
   align-items: center;
   padding: 20px 0;
+  margin-bottom: 0;
   border-bottom: 1px solid var(--colors-border-color);
+  position: relative;
   &:first-child {
     border-top: 1px solid var(--colors-border-color);
   }
 
+  &.active::after {
+    content: "";
+    position: absolute;
+    pointer-events: none;
+    inset: 0 -20px;
+    background-color: rgba(0, 200, 175, 0.16);
+  }
+
   .info {
     flex: 1;
 

+ 10 - 10
src/views/tagging-position/index.vue

@@ -2,16 +2,16 @@
   <RightFillPano>
     <h3>{{ tagging?.title }}放置位置</h3>
     <Collapse v-model:activeKey="showId" ghost accordion expandIconPosition="end">
-      <PositionSign
-        v-for="(position, i) in positions"
-        :key="position.id"
-        :class="{ disabled: unKeepAdding && position.id !== showId }"
-        :position="position"
-        :title="`位置${i + 1}`"
-        @applyGlobal="(keys) => applyGlobal(position, keys)"
-        @delete="deletePosition(position)"
-        @show="showId = position.id"
-      />
+      <template v-for="(position, i) in positions" :key="position.id">
+        <PositionSign
+          v-if="!(unKeepAdding && position.id !== showId)"
+          :position="position"
+          :title="`位置${i + 1}`"
+          @applyGlobal="(keys) => applyGlobal(position, keys)"
+          @delete="deletePosition(position)"
+          @show="showId = position.id"
+        />
+      </template>
     </Collapse>
     <Teleport to="#layout-app">
       <span