|
@@ -5,46 +5,51 @@
|
|
|
|
|
|
<RightFillPano>
|
|
<RightFillPano>
|
|
<template #header>
|
|
<template #header>
|
|
- <div class="tabs">
|
|
|
|
- <span
|
|
|
|
- v-for="tab in tabs"
|
|
|
|
- :key="tab.key"
|
|
|
|
- :class="{ active: tab.key === current }"
|
|
|
|
- @click="current = tab.key"
|
|
|
|
- >
|
|
|
|
- {{ tab.text }}
|
|
|
|
- </span>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <InputGroup compact style="margin-bottom: 20px" class="head-sam-group">
|
|
|
|
+ <Select v-model:value="current" style="width: 30%">
|
|
|
|
+ <SelectOption :value="tab.key" v-for="tab in tabs" :key="tab.key">{{
|
|
|
|
+ tab.text
|
|
|
|
+ }}</SelectOption>
|
|
|
|
+ </Select>
|
|
|
|
+ <Input v-model:value="keyword" style="width: 70%" />
|
|
|
|
+ </InputGroup>
|
|
</template>
|
|
</template>
|
|
- <Taggings v-if="current === TabKey.tagging" />
|
|
|
|
- <Guides v-if="current === TabKey.guide" />
|
|
|
|
- <Measures v-if="current === TabKey.measure" />
|
|
|
|
|
|
+ <component :is="comp" v-if="comp" :keyword="keyword" />
|
|
</RightFillPano>
|
|
</RightFillPano>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
-import { ref, watchEffect } from "vue";
|
|
|
|
|
|
+import { computed, ref, watchEffect } from "vue";
|
|
import { useViewStack } from "@/hook";
|
|
import { useViewStack } from "@/hook";
|
|
import { showRightCtrlPanoStack, showRightPanoStack } from "@/env";
|
|
import { showRightCtrlPanoStack, showRightPanoStack } from "@/env";
|
|
import { currentModel, fuseModel, loadModel } from "@/model";
|
|
import { currentModel, fuseModel, loadModel } from "@/model";
|
|
import { LeftPano, RightFillPano } from "@/layout";
|
|
import { LeftPano, RightFillPano } from "@/layout";
|
|
|
|
+import { InputGroup, Select, SelectOption, Input } from "ant-design-vue";
|
|
import SceneList from "@/layout/scene-list/index.vue";
|
|
import SceneList from "@/layout/scene-list/index.vue";
|
|
import Taggings from "@/views/tagging/hot/show.vue";
|
|
import Taggings from "@/views/tagging/hot/show.vue";
|
|
import Measures from "@/views/measure/show.vue";
|
|
import Measures from "@/views/measure/show.vue";
|
|
-import Guides from "@/views/guide/show.vue";
|
|
|
|
|
|
+import Guides from "@/views/guide/guide/show.vue";
|
|
|
|
+import Paths from "@/views/guide/path/show.vue";
|
|
|
|
+import Monitor from "@/views/tagging/monitor/show.vue";
|
|
|
|
|
|
enum TabKey {
|
|
enum TabKey {
|
|
tagging,
|
|
tagging,
|
|
|
|
+ monitor,
|
|
|
|
+ path,
|
|
measure,
|
|
measure,
|
|
guide,
|
|
guide,
|
|
}
|
|
}
|
|
const tabs = [
|
|
const tabs = [
|
|
- { key: TabKey.tagging, text: "标签" },
|
|
|
|
- { key: TabKey.measure, text: "测量" },
|
|
|
|
- { key: TabKey.guide, text: "路径" },
|
|
|
|
|
|
+ { comp: Taggings, key: TabKey.tagging, text: "标签" },
|
|
|
|
+ { comp: Monitor, key: TabKey.monitor, text: "监控" },
|
|
|
|
+ { comp: Paths, key: TabKey.path, text: "路径" },
|
|
|
|
+ { comp: Measures, key: TabKey.measure, text: "测量" },
|
|
|
|
+ { comp: Guides, key: TabKey.guide, text: "导览" },
|
|
];
|
|
];
|
|
const current = ref(tabs[0].key);
|
|
const current = ref(tabs[0].key);
|
|
|
|
+const comp = computed(() => tabs.find((item) => item.key === current.value)?.comp);
|
|
const showRightCtrl = ref(true);
|
|
const showRightCtrl = ref(true);
|
|
|
|
+const keyword = ref("");
|
|
|
|
|
|
watchEffect((onclean) => {
|
|
watchEffect((onclean) => {
|
|
const isFuse = currentModel.value === fuseModel;
|
|
const isFuse = currentModel.value === fuseModel;
|
|
@@ -96,3 +101,13 @@ useViewStack(() => showRightCtrlPanoStack.push(showRightCtrl));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|
|
|
|
+
|
|
|
|
+<style lang="scss">
|
|
|
|
+.head-sam-group {
|
|
|
|
+ .ant-select-selector,
|
|
|
|
+ .ant-input {
|
|
|
|
+ background-color: rgba(255, 255, 255, 0.1) !important;
|
|
|
|
+ border-color: rgba(255, 255, 255, 0.2) !important;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+</style>
|