|
@@ -7,8 +7,8 @@
|
|
|
<template #append>
|
|
|
<el-button type="primary" @click="updateRelics">修改</el-button>
|
|
|
</template>
|
|
|
- </el-input>
|
|
|
- </el-form-item> -->
|
|
|
+</el-input>
|
|
|
+</el-form-item> -->
|
|
|
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" :icon="Plus" style="width: 100%" @click="addHandler">
|
|
@@ -18,47 +18,34 @@
|
|
|
</el-form>
|
|
|
<div class="tree-layout">
|
|
|
<p>全部数据</p>
|
|
|
- <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"
|
|
|
- >
|
|
|
+ <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">
|
|
|
<template #default="{ node, data }">
|
|
|
- <div
|
|
|
- class="tree-item"
|
|
|
- @click="!data.disable && emit((data.type === 'scene' ? 'flyScene' : 'flyPoint') as any, data.raw)"
|
|
|
- >
|
|
|
- <el-tooltip
|
|
|
- v-if="data.type === 'scene'"
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- :content="data.raw.sceneName + ' ' + node.label"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
+ <div class="tree-item"
|
|
|
+ @click="!data.disable && emit((data.type === 'scene' ? 'flyScene' : 'flyPoint') as any, data.raw)">
|
|
|
+ <el-tooltip v-if="data.type === 'scene'" class="box-item" effect="dark"
|
|
|
+ :content="data.raw.sceneName + ' ' + node.label" placement="top">
|
|
|
<span :class="{ disable: data.disable }" class="title">
|
|
|
- <el-icon> <Grid /> </el-icon>
|
|
|
+ <el-icon>
|
|
|
+ <Grid />
|
|
|
+ </el-icon>
|
|
|
{{ data.raw.sceneName }}
|
|
|
+
|
|
|
<span class="tree-scene-name">{{ node.label }}</span>
|
|
|
</span>
|
|
|
</el-tooltip>
|
|
|
- <el-tooltip
|
|
|
- v-else
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- :content="node.label"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
+ <el-tooltip v-else class="box-item" effect="dark" :content="node.label" placement="top">
|
|
|
<span :class="{ disable: data.disable }" class="title">
|
|
|
<el-icon>
|
|
|
<LocationInformation v-if="!data.disable" />
|
|
|
<DeleteLocation v-else />
|
|
|
</el-icon>
|
|
|
{{ node.label }}
|
|
|
+ <!-- uu -->
|
|
|
+ </span>
|
|
|
+ <span :class="{ disable: data.disable }" class="name">
|
|
|
+
|
|
|
+
|
|
|
</span>
|
|
|
</el-tooltip>
|
|
|
<span class="oper">
|
|
@@ -73,14 +60,11 @@
|
|
|
</el-icon>
|
|
|
</template>
|
|
|
<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)
|
|
|
- "
|
|
|
- />
|
|
|
+ <Link v-if="!data.run" @click.stop="
|
|
|
+ data.type === 'scene'
|
|
|
+ ? gotoScene(data.raw)
|
|
|
+ : emit('gotoPoint', data.raw)
|
|
|
+ " />
|
|
|
</el-icon>
|
|
|
</span>
|
|
|
</div>
|
|
@@ -90,41 +74,24 @@
|
|
|
</div>
|
|
|
|
|
|
<template v-if="router.currentRoute.value.name === 'map'">
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- :icon="Download"
|
|
|
- style="width: 100%"
|
|
|
- @click="exportFile(getSelectPoints(), 2, relics?.name)"
|
|
|
- >
|
|
|
+ <el-button type="primary" :icon="Download" style="width: 100%"
|
|
|
+ @click="exportFile(getSelectPoints(), 2, relics?.name)">
|
|
|
导出本体边界坐标
|
|
|
</el-button>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- :icon="Download"
|
|
|
- style="width: 100%; margin-top: 20px; margin-left: 0"
|
|
|
- @click="exportFile(getSelectPoints(), 1, relics?.name)"
|
|
|
- >
|
|
|
+ <el-button type="primary" :icon="Download" style="width: 100%; margin-top: 20px; margin-left: 0"
|
|
|
+ @click="exportFile(getSelectPoints(), 1, relics?.name)">
|
|
|
导出绘制矢量数据
|
|
|
</el-button>
|
|
|
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- :icon="Download"
|
|
|
- style="width: 100%; margin-top: 20px; margin-left: 0"
|
|
|
- @click="exportImage(getSelectPoints(), relics?.name)"
|
|
|
- >
|
|
|
+ <el-button type="primary" :icon="Download" style="width: 100%; margin-top: 20px; margin-left: 0"
|
|
|
+ @click="exportImage(getSelectPoints(), relics?.name)">
|
|
|
下载全景图
|
|
|
</el-button>
|
|
|
</template>
|
|
|
</div>
|
|
|
|
|
|
- <SingleInput
|
|
|
- :visible="!!inputPoint"
|
|
|
- @update:visible="inputPoint = null"
|
|
|
- :value="inputPoint?.name || ''"
|
|
|
- :update-value="updatePointName"
|
|
|
- title="修改点位名称"
|
|
|
- />
|
|
|
+ <SingleInput :visible="!!inputPoint" @update:visible="inputPoint = null" :value="inputPoint?.name || ''"
|
|
|
+ :update-value="updatePointName" title="修改点位名称" />
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
@@ -184,12 +151,12 @@ const treeNode = computed(() =>
|
|
|
disable: scene.scenePos.every((pos) => !pos.pos || pos.pos.length === 0),
|
|
|
raw: scene,
|
|
|
children: scene.scenePos.map((pos) => ({
|
|
|
- label: pos.name,
|
|
|
+ label: pos.uuid,
|
|
|
run: scene.calcStatus !== SceneStatus.SUCCESS,
|
|
|
disable: !pos.pos || pos.pos.length === 0,
|
|
|
id: pos.id,
|
|
|
type: "point",
|
|
|
- raw: { ...pos, cameraType: scene.cameraType },
|
|
|
+ raw: { ...pos, name: pos.name, cameraType: scene.cameraType },
|
|
|
})),
|
|
|
}))
|
|
|
);
|
|
@@ -253,10 +220,12 @@ const addSceneHandler = async (scenes: Pick<Scene, "sceneId" | "sceneCode">[]) =
|
|
|
text-overflow: ellipsis; //文本溢出显示省略号
|
|
|
white-space: nowrap; //文本不会换行
|
|
|
}
|
|
|
+
|
|
|
.oper {
|
|
|
flex: none;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.disable {
|
|
|
pointer-events: all;
|
|
|
}
|
|
@@ -267,15 +236,18 @@ const addSceneHandler = async (scenes: Pick<Scene, "sceneId" | "sceneCode">[]) =
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.right-layout {
|
|
|
display: flex;
|
|
|
height: 100%;
|
|
|
flex-direction: column;
|
|
|
+
|
|
|
.right-content {
|
|
|
flex: 1;
|
|
|
overflow-y: auto;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.tree-layout .tree-scene-name {
|
|
|
font-size: 10px;
|
|
|
margin: 0;
|