guonan
2025-05-20 f1fbe8049ba01186f033037e6ae36d51915c7418
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<template>
  <!-- <Viewer /> -->
  <!-- <UeView /> -->
  <GisView />
  <Flow v-if="flowShow" @video-ended="flowShow = false" />
  <Screen @showWeatherDetail="weatherShow = true" />
  <Navigation />
  <!-- <Left v-if="leftShow" />
        <Right v-if="rightShow" /> -->
 
  <Tools
    :style="
      rightRiverShow || showDangerAssess
        ? { right: '400px' }
        : { right: '12px' }
    "
    class="tools"
  />
  <!-- <Message v-if="messageShow" class="messageTool" /> -->
  <Announcement v-show="$route.fullPath != '/'" class="announcementTool" />
  <!-- <Location v-if="locationShow" class="locationTool" /> -->
  <!-- <Function v-if="functionShow" class="functionTool" /> -->
  <Table v-if="tableShow" class="tableTool" />
  <!-- <RightRiver v-if="rightRiverShow" @close="flowShow = false" /> -->
  <!-- <River class="plottingTool" /> -->
  <ImagePreview v-if="showPreview" />
  <!-- <Weather v-if="weatherShow" @close="weatherShow = false" /> -->
  <Bar v-if="barShow" @close="barShow = false" />
  <Detail v-if="showDetail" />
</template>
 
<script setup>
import { computed, onMounted, ref, getCurrentInstance } from "vue";
import { useRoute } from "vue-router";
import { useSimStore } from "@/store/simulation";
import { storeToRefs } from "pinia";
import Screen from "./Screen.vue";
// import Viewer from "./Viewer.vue"
import UeView from "./UeView.vue";
import Navigation from "./nav/Navigation.vue";
// import Left from "./left/Left.vue";
// import Right from "./right/Right.vue";
import Tools from "@/components/tools/Tools.vue";
// import Message from "@/components/tools/Message.vue";
import Announcement from "@/components/tools/Announcement.vue";
// import Function from "@/components/menu/Function.vue";
// import Location from "@/components/menu/Location.vue";
import Table from "@/components/tools/Table.vue";
import Flow from "./Flow.vue";
// import RightRiver from "./right/RightRiver.vue";
// import River from "@/components/tools/River.vue";
import ImagePreview from "@/components/tools/ImagePreview.vue";
// import Weather from "@/components/tools/Weather.vue";
import Bar from "@/components/tools/Bar.vue";
import GisView from "./GisView.vue";
// import Device from "@/components/menu/Device.vue";
import Detail from "@/components/tools/Detail.vue";
// import ResultAssess from "@/components/monifangzhen/ResultAssess.vue";
// import DangerAssess from "@/components/monifangzhen/DangerAssess.vue";
import { showDeviceDetail } from "@/store";
import { setupTokenRefresh, getDangerPoint } from "@/api/hpApi.js";
import { convertToWKT } from "@/utils/wktUtils";
 
const route = useRoute();
const simStore = useSimStore();
const backHome = ref(false);
 
// 接收来自 ComponentA 的事件,并更新 isFlying
function handleBackToHome() {
  backHome.value = false;
}
// 从 store 中解构需要的状态
const {
  flowShow,
  weatherShow,
  messageShow,
  tableShow,
  rightRiverShow,
  showPreview,
  barShow,
  showDangerAssess,
} = storeToRefs(simStore);
const { init, startYHGL, startZHJC, startMNFZ, startMNPG } = simStore;
// 模拟的经纬度数组
const multiPolygonCoordinates = [
  [
    [120.123456, 30.654321],
    [120.234567, 30.765432],
    [120.345678, 30.876543],
    [120.123456, 30.654321], // 闭合点
  ],
  [
    [121.111111, 31.222222],
    [121.333333, 31.444444],
    [121.555555, 31.666666],
    [121.111111, 31.222222], // 闭合点
  ],
];
 
// 计算属性
const showDetail = computed(() => showDeviceDetail.value);
 
onMounted(async () => {
  setupTokenRefresh(); // 获取宏图token
  // getSimData(); //测试tr后端
  // 获取隐患点列表(因为中科软后端接口获取加载时间较长)
  getDangerPoint().then((res) => {
    simStore.DangerPoint = res.data.pageData;
  });
  try {
    const wktResult = convertToWKT(multiPolygonCoordinates);
    // console.log(wktResult,'a');
    // 输出: MULTIPOLYGON(((120.123456 30.654321,120.234567 30.765432,120.345678 30.876543,120.123456 30.654321)))
  } catch (error) {
    console.error(error.message);
  }
});
// 初始化
init();
</script>
 
<style lang="less" scoped>
@import url("../assets/css/home.css");
</style>