From 51d2337ef857c06563c1d5bc206ffc04edfcaf53 Mon Sep 17 00:00:00 2001 From: fanjia <3278303149@qq.com> Date: Wed, 8 Apr 2026 18:47:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A1=A5=E6=A2=81=E3=80=81=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E3=80=81=E9=9A=A7=E9=81=93=E3=80=81=E5=BA=94=E6=80=A5=E5=8A=9B?= =?UTF-8?q?=E9=87=8F=E3=80=81=E6=B0=94=E8=B1=A1=E9=A2=84=E8=AD=A6=E3=80=81?= =?UTF-8?q?=E4=B8=8E=E5=9C=B0=E5=9B=BE=E8=81=94=E5=8A=A8=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{蓝色@2x (1).png => 桥梁icon@2x.png} | Bin .../src/assets/MaMap_img/线路icon定位@2x.png | Bin 0 -> 8598 bytes .../{队伍icon定位@2x.png => 队伍icon@2x.png} | Bin .../{隧洞icon定位@2x.png => 隧洞icon@2x.png} | Bin .../RiskWarning/Dialog/mapInfoDialog.vue | 156 +++++++ .../RiskWarning/Dialog/tunnelInfoDialog.vue | 8 +- .../screen/src/views/RiskWarning/bottom.vue | 22 +- .../RiskWarning/component/ChongqingMap.vue | 384 +++++++++++++++++- .../screen/src/views/RiskWarning/index.vue | 39 +- .../screen/src/views/RiskWarning/right.vue | 13 +- packages/screen/vite.config.js | 4 +- 11 files changed, 598 insertions(+), 28 deletions(-) rename packages/screen/src/assets/MaMap_img/{蓝色@2x (1).png => 桥梁icon@2x.png} (100%) create mode 100644 packages/screen/src/assets/MaMap_img/线路icon定位@2x.png rename packages/screen/src/assets/MaMap_img/{队伍icon定位@2x.png => 队伍icon@2x.png} (100%) rename packages/screen/src/assets/MaMap_img/{隧洞icon定位@2x.png => 隧洞icon@2x.png} (100%) create mode 100644 packages/screen/src/views/RiskWarning/Dialog/mapInfoDialog.vue diff --git a/packages/screen/src/assets/MaMap_img/蓝色@2x (1).png b/packages/screen/src/assets/MaMap_img/桥梁icon@2x.png similarity index 100% rename from packages/screen/src/assets/MaMap_img/蓝色@2x (1).png rename to packages/screen/src/assets/MaMap_img/桥梁icon@2x.png diff --git a/packages/screen/src/assets/MaMap_img/线路icon定位@2x.png b/packages/screen/src/assets/MaMap_img/线路icon定位@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..17adfbed8132e7c83a9cb63e570ea8a863b547f4 GIT binary patch literal 8598 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 + + + + + + + + + diff --git a/packages/screen/src/views/RiskWarning/Dialog/tunnelInfoDialog.vue b/packages/screen/src/views/RiskWarning/Dialog/tunnelInfoDialog.vue index 330cfbe..5e57899 100644 --- a/packages/screen/src/views/RiskWarning/Dialog/tunnelInfoDialog.vue +++ b/packages/screen/src/views/RiskWarning/Dialog/tunnelInfoDialog.vue @@ -22,7 +22,7 @@ {{ item.value }} -
+ @@ -47,9 +47,9 @@ const props = defineProps({ data: { type: Object, default: () => ({ - title: "隧道信息", + title: "项目信息", items: [ - { label: "隧道名称", value: "蔺市隧道右线" }, + { label: "项目名称", value: "蔺市隧道右线" }, { label: "编号", value: "G212线" }, { label: "所属区县", value: "涪陵" }, { label: "隧道长度", value: "1782(米)" }, diff --git a/packages/screen/src/views/RiskWarning/bottom.vue b/packages/screen/src/views/RiskWarning/bottom.vue index d8b4be2..0e1ed6e 100644 --- a/packages/screen/src/views/RiskWarning/bottom.vue +++ b/packages/screen/src/views/RiskWarning/bottom.vue @@ -6,7 +6,7 @@ :key="index" class="nav-item" :class="{ active: activeIndex === index }" - @click="activeIndex = index" + @click="handleClick(index)" >
@@ -101,14 +102,14 @@
- +
- +
@@ -306,6 +307,40 @@ const dialogVisible = ref({ warningSituation: false, tunnelInfo: false }); +const activeIndex = ref(0); + +// 地图组件引用 +const chongqingMapRef = ref(null); + +// 切换导航项时触发 +const changeActiveIndex = (index) => { + activeIndex.value = index; +}; + +// 打开资源详情(队伍、人员、装备、物资) +const openResourceDetail = (item) => { + console.log("打开资源详情:", item); + // 判断是否为队伍或人员 + if (item.label === "全市普通公路抢险队伍" || item.label === "人员") { + // 调用地图组件的获取应急力量方法 + if (chongqingMapRef.value) { + chongqingMapRef.value.getEmergencyForceData(); + } + } + // 打开对应的弹窗 + const key = item.label.toLowerCase().replace(/[^a-z]/g, ""); + if (dialogVisible.value[key] !== undefined) { + dialogVisible.value[key] = true; + } +}; + +// 清除地图标记 +const clearMapMarkers = () => { + console.log("清除地图标记"); + if (chongqingMapRef.value) { + chongqingMapRef.value.clearProjectMarkers(); + } +}; // 打开弹窗 const openDialog = (dialogName) => { diff --git a/packages/screen/src/views/RiskWarning/right.vue b/packages/screen/src/views/RiskWarning/right.vue index fee29fd..84e9fbe 100644 --- a/packages/screen/src/views/RiskWarning/right.vue +++ b/packages/screen/src/views/RiskWarning/right.vue @@ -12,6 +12,7 @@ v-for="(item, index) in resourceData" :key="index" class="resource-item" + @click="handleResourceClick(item)" > @@ -215,7 +216,11 @@ import icon62 from "../../assets/RiskWarning_img/路径62@2x.png"; import icon621 from "../../assets/RiskWarning_img/路径62@2x (1).png"; import icon622 from "../../assets/RiskWarning_img/路径62@2x (2).png"; -const emit = defineEmits(["openClearanceSituation", "openControlSituation"]); +const emit = defineEmits([ + "openClearanceSituation", + "openControlSituation", + "openResourceDetail", +]); // 组件挂载时获取数据 onMounted(() => { @@ -251,6 +256,7 @@ const getYhYjllList = async () => { resourceData.value[1].unit = "人"; } resourceData.value[0].value = gl1Yjllmcs; + } } catch (error) { console.error("获取应急力量列表失败:", error); @@ -369,6 +375,11 @@ const resourceData = ref([ }, ]); +// 点击资源项 +const handleResourceClick = (item) => { + emit("openResourceDetail", item); +}; + // 管控路段数据 const controlData1 = [ { label: "封闭管控数", value: "40" }, diff --git a/packages/screen/vite.config.js b/packages/screen/vite.config.js index 8962074..84e66ad 100644 --- a/packages/screen/vite.config.js +++ b/packages/screen/vite.config.js @@ -93,9 +93,9 @@ export default defineConfig(({ command, mode }) => { cors: true, proxy: { '/snow-ops-platform': { - target: 'http://192.168.110.16:8661/', + // target: 'http://192.168.110.16:8661/', // target: 'http://8.137.54.85:8661/', //测试环境 - // target: 'http://192.168.110.36:8661/', //张启生本地环境 + target: 'http://192.168.110.36:8661/', //张启生本地环境 changeOrigin: true, }, }