|
@@ -17,7 +17,7 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
<div class="tree-layout">
|
|
<div class="tree-layout">
|
|
- <p>全部数据</p>
|
|
|
|
|
|
+ <p class="sub-title">全部数据</p>
|
|
<el-tree style="max-width: 600px" :data="treeNode" :props="{ disabled: 'run' }" node-key="id" ref="treeRef"
|
|
<el-tree style="max-width: 600px" :data="treeNode" :props="{ disabled: 'run' }" node-key="id" ref="treeRef"
|
|
:show-checkbox="router.currentRoute.value.name === 'map'" default-expand-all :expand-on-click-node="false">
|
|
:show-checkbox="router.currentRoute.value.name === 'map'" default-expand-all :expand-on-click-node="false">
|
|
<template #default="{ node, data }">
|
|
<template #default="{ node, data }">
|
|
@@ -28,6 +28,7 @@
|
|
<span :class="{ disable: data.disable }" class="title">
|
|
<span :class="{ disable: data.disable }" class="title">
|
|
<el-icon>
|
|
<el-icon>
|
|
<Grid />
|
|
<Grid />
|
|
|
|
+
|
|
</el-icon>
|
|
</el-icon>
|
|
{{ data.raw.sceneName }}
|
|
{{ data.raw.sceneName }}
|
|
|
|
|
|
@@ -38,7 +39,8 @@
|
|
<div class="title-box">
|
|
<div class="title-box">
|
|
<span :class="{ disable: data.disable }" class="title">
|
|
<span :class="{ disable: data.disable }" class="title">
|
|
<el-icon>
|
|
<el-icon>
|
|
- <LocationInformation v-if="!data.disable" />
|
|
|
|
|
|
+
|
|
|
|
+ <StateGpsIcon v-if="!data.disable" />
|
|
<DeleteLocation v-else />
|
|
<DeleteLocation v-else />
|
|
</el-icon>
|
|
</el-icon>
|
|
{{ node.label }}
|
|
{{ node.label }}
|
|
@@ -46,7 +48,6 @@
|
|
</span>
|
|
</span>
|
|
<span :class="{ disable: data.disable }" class="name">
|
|
<span :class="{ disable: data.disable }" class="name">
|
|
{{ data.raw.name }}
|
|
{{ data.raw.name }}
|
|
-
|
|
|
|
</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -64,11 +65,23 @@
|
|
</el-icon>
|
|
</el-icon>
|
|
</template>
|
|
</template>
|
|
<el-icon color="#409efc" style="margin-left: 8px">
|
|
<el-icon color="#409efc" style="margin-left: 8px">
|
|
- <Link v-if="!data.run" @click.stop="
|
|
|
|
- data.type === 'scene'
|
|
|
|
- ? gotoScene(data.raw)
|
|
|
|
- : emit('gotoPoint', data.raw)
|
|
|
|
- " />
|
|
|
|
|
|
+ <!-- root -->
|
|
|
|
+ <template v-if="data.raw.scenePos">
|
|
|
|
+ <FrameIcon v-if="!data.run" @click.stop="
|
|
|
|
+ data.type === 'scene'
|
|
|
|
+ ? gotoScene(data.raw)
|
|
|
|
+ : emit('gotoPoint', data.raw)
|
|
|
|
+ " />
|
|
|
|
+ </template>
|
|
|
|
+ <template v-else>
|
|
|
|
+
|
|
|
|
+ <PanoramaIcon v-if="!data.run" @click.stop="
|
|
|
|
+ data.type === 'scene'
|
|
|
|
+ ? gotoScene(data.raw)
|
|
|
|
+ : emit('gotoPoint', data.raw)
|
|
|
|
+ " />
|
|
|
|
+ </template>
|
|
|
|
+
|
|
</el-icon>
|
|
</el-icon>
|
|
</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
@@ -81,10 +94,10 @@
|
|
<el-button type="primary" :icon="Download" style="width: 100%" @click="handlerExport(2, relics?.name)">
|
|
<el-button type="primary" :icon="Download" style="width: 100%" @click="handlerExport(2, relics?.name)">
|
|
导出本体边界坐标
|
|
导出本体边界坐标
|
|
</el-button>
|
|
</el-button>
|
|
- <el-button type="primary" :icon="Download" style="width: 100%; margin-top: 20px; margin-left: 0"
|
|
|
|
|
|
+ <!-- <el-button type="primary" :icon="Download" style="width: 100%; margin-top: 20px; margin-left: 0"
|
|
@click="exportFile(getSelectPoints(), 1, relics?.name)">
|
|
@click="exportFile(getSelectPoints(), 1, relics?.name)">
|
|
导出绘制矢量数据
|
|
导出绘制矢量数据
|
|
- </el-button>
|
|
|
|
|
|
+ </el-button> -->
|
|
|
|
|
|
<el-button type="primary" :icon="Download" style="width: 100%; margin-top: 20px; margin-left: 0"
|
|
<el-button type="primary" :icon="Download" style="width: 100%; margin-top: 20px; margin-left: 0"
|
|
@click="exportImage(getSelectPoints(), relics?.name)">
|
|
@click="exportImage(getSelectPoints(), relics?.name)">
|
|
@@ -94,7 +107,7 @@
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<SingleInput :visible="!!inputPoint" @update:visible="inputPoint = null" :value="inputPoint?.name || ''"
|
|
<SingleInput :visible="!!inputPoint" @update:visible="inputPoint = null" :value="inputPoint?.name || ''"
|
|
- :update-value="updatePointName" title="修改点位名称" />
|
|
|
|
|
|
+ :update-value="updatePointName" title="测点说明" placeholder="请填写测点说明"/>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
@@ -103,10 +116,10 @@ import {
|
|
Delete,
|
|
Delete,
|
|
Grid,
|
|
Grid,
|
|
Download,
|
|
Download,
|
|
- LocationInformation,
|
|
|
|
|
|
+ // LocationInformation,
|
|
DeleteLocation,
|
|
DeleteLocation,
|
|
Edit,
|
|
Edit,
|
|
- Link,
|
|
|
|
|
|
+ // Link,
|
|
} from "@element-plus/icons-vue";
|
|
} from "@element-plus/icons-vue";
|
|
import { computed, ref, watchEffect } from "vue";
|
|
import { computed, ref, watchEffect } from "vue";
|
|
import {
|
|
import {
|
|
@@ -125,7 +138,10 @@ import { selectScenes } from "../quisk";
|
|
import { addRelicsScenesFetch, delRelicsScenesFetch } from "@/request";
|
|
import { addRelicsScenesFetch, delRelicsScenesFetch } from "@/request";
|
|
import { exportFile, exportImage } from "./pc4Helper";
|
|
import { exportFile, exportImage } from "./pc4Helper";
|
|
import { SceneStatus } from "@/store/scene";
|
|
import { SceneStatus } from "@/store/scene";
|
|
-
|
|
|
|
|
|
+import StateGpsIcon from '@/assets/state_gps.svg';
|
|
|
|
+import PanoramaIcon from '@/assets/panorama.svg';
|
|
|
|
+import FrameIcon from '@/assets/frame.svg';
|
|
|
|
+// import StateGpsIcon from '@/assets/state_gps.svg';
|
|
const emit = defineEmits<{
|
|
const emit = defineEmits<{
|
|
(e: "flyScene", data: Scene): void;
|
|
(e: "flyScene", data: Scene): void;
|
|
(e: "flyPoint", data: ScenePoint): void;
|
|
(e: "flyPoint", data: ScenePoint): void;
|
|
@@ -217,20 +233,32 @@ const handlerExport = (type: number, name: string) => {
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
-:deep(.el-tree) {
|
|
|
|
|
|
+:deep(.el-tree-node__content) {
|
|
|
|
+ --el-tree-node-content-height: 26px;
|
|
|
|
+ line-height: 26px;
|
|
|
|
+ user-select: none;
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+:deep(.el-tree-node__children .el-tree-node__content) {
|
|
--el-tree-node-content-height: 52px;
|
|
--el-tree-node-content-height: 52px;
|
|
|
|
|
|
- // .el-tree-node__content>label.el-checkbox {
|
|
|
|
- // // padding-top: 10px;
|
|
|
|
- // // align-items: flex-start;
|
|
|
|
- // }
|
|
|
|
|
|
+ &>label.el-checkbox {
|
|
|
|
+ padding-top: 6px;
|
|
|
|
+ align-items: flex-start;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+:deep(.el-tree .tree-item) {}
|
|
|
|
+
|
|
.tree-item {
|
|
.tree-item {
|
|
|
|
+
|
|
display: flex;
|
|
display: flex;
|
|
width: calc(100% - 50px);
|
|
width: calc(100% - 50px);
|
|
align-items: flex-start;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
justify-content: space-between;
|
|
|
|
+ font-size: var(--font14);
|
|
|
|
|
|
.title {
|
|
.title {
|
|
flex: 1;
|
|
flex: 1;
|
|
@@ -239,6 +267,7 @@ const handlerExport = (type: number, name: string) => {
|
|
align-items: center;
|
|
align-items: center;
|
|
text-overflow: ellipsis; //文本溢出显示省略号
|
|
text-overflow: ellipsis; //文本溢出显示省略号
|
|
white-space: nowrap; //文本不会换行
|
|
white-space: nowrap; //文本不会换行
|
|
|
|
+ line-height: 26px;
|
|
}
|
|
}
|
|
|
|
|
|
.title-box {
|
|
.title-box {
|
|
@@ -248,14 +277,17 @@ const handlerExport = (type: number, name: string) => {
|
|
width: 100%;
|
|
width: 100%;
|
|
flex-wrap: nowrap;
|
|
flex-wrap: nowrap;
|
|
|
|
|
|
|
|
+
|
|
.name {
|
|
.name {
|
|
padding-left: 15px;
|
|
padding-left: 15px;
|
|
-
|
|
|
|
|
|
+ color: #999;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
.oper {
|
|
.oper {
|
|
flex: none;
|
|
flex: none;
|
|
|
|
+ line-height: 26px;
|
|
|
|
+ vertical-align: middle;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -266,7 +298,12 @@ const handlerExport = (type: number, name: string) => {
|
|
.tree-layout {
|
|
.tree-layout {
|
|
p {
|
|
p {
|
|
color: #303133;
|
|
color: #303133;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .sub-title {
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
|
|
+ font-weight: bolder;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|