From db07d86f01f19683d7adb263139159ffe1e0c9bf Mon Sep 17 00:00:00 2001
From: wangjuncheng <1>
Date: 星期四, 08 五月 2025 14:49:59 +0800
Subject: [PATCH] change

---
 src/components/tools/LayerTree.vue         |    2 
 public/images/poi/泥位计.png                  |    0 
 src/components/tools/Legend_zhjc.vue       |   83 +++++++++++
 src/components/monifangzhen/schemeInfo.vue |    9 +
 src/views/zhjc.vue                         |   17 ++
 public/images/poi/含水率.png                  |    0 
 src/components/tools/Legend_yhgl.vue       |   78 +++++++++++
 src/views/GisView.vue                      |    8 
 src/views/yhgl.vue                         |   17 ++
 public/images/poi/流速仪.png                  |    0 
 src/views/Home.vue                         |    1 
 src/components/menu/TimeLine.vue           |  191 ++++++++++++++++----------
 src/components/tools/DebuffDetail.vue      |    2 
 public/images/poi/摄像头.png                  |    0 
 src/components/tools/Message.vue           |    5 
 15 files changed, 327 insertions(+), 86 deletions(-)

diff --git "a/public/images/poi/\345\220\253\346\260\264\347\216\207.png" "b/public/images/poi/\345\220\253\346\260\264\347\216\207.png"
new file mode 100644
index 0000000..e0d4a40
--- /dev/null
+++ "b/public/images/poi/\345\220\253\346\260\264\347\216\207.png"
Binary files differ
diff --git "a/public/images/poi/\346\221\204\345\203\217\345\244\264.png" "b/public/images/poi/\346\221\204\345\203\217\345\244\264.png"
new file mode 100644
index 0000000..6313428
--- /dev/null
+++ "b/public/images/poi/\346\221\204\345\203\217\345\244\264.png"
Binary files differ
diff --git "a/public/images/poi/\346\263\245\344\275\215\350\256\241.png" "b/public/images/poi/\346\263\245\344\275\215\350\256\241.png"
new file mode 100644
index 0000000..f3e871b
--- /dev/null
+++ "b/public/images/poi/\346\263\245\344\275\215\350\256\241.png"
Binary files differ
diff --git "a/public/images/poi/\346\265\201\351\200\237\344\273\252.png" "b/public/images/poi/\346\265\201\351\200\237\344\273\252.png"
new file mode 100644
index 0000000..c1d2bdf
--- /dev/null
+++ "b/public/images/poi/\346\265\201\351\200\237\344\273\252.png"
Binary files differ
diff --git a/src/components/menu/TimeLine.vue b/src/components/menu/TimeLine.vue
index 84ee093..412c582 100644
--- a/src/components/menu/TimeLine.vue
+++ b/src/components/menu/TimeLine.vue
@@ -2,30 +2,20 @@
   <div class="timeline-container">
     <div class="controls">
       <div class="control-btn" @click="skipBackward">
-        <img
-          src="@/assets/img/timeline/left.png"
-          class="fas fa-step-backward"
-        />
+        <img src="@/assets/img/timeline/left.png" class="fas fa-step-backward" />
       </div>
       <div class="control-btn play-btn" @click="togglePlay">
         <img v-show="isPlaying" src="@/assets/img/timeline/stop.png" />
         <img v-show="!isPlaying" src="@/assets/img/timeline/start.png" />
       </div>
       <div class="control-btn" @click="skipForward">
-        <img
-          src="@/assets/img/timeline/right.png"
-          class="fas fa-step-forward"
-        />
+        <img src="@/assets/img/timeline/right.png" class="fas fa-step-forward" />
       </div>
       <div class="speed-control">
         <div @click="toggleSpeedMenu">{{ playbackRate }}X</div>
         <div class="speed-menu" v-show="showSpeedMenu">
-          <div
-            v-for="rate in playbackRates"
-            :key="rate"
-            @click.capture="setPlaybackRate(rate)"
-            :class="{ active: playbackRate === rate }"
-          >
+          <div v-for="rate in playbackRates" :key="rate" @click.capture="setPlaybackRate(rate)"
+            :class="{ active: playbackRate === rate }">
             {{ rate }}X
           </div>
         </div>
@@ -35,39 +25,21 @@
     <div class="timeline">
       <div class="dates">
         <div class="current-date">褰撳墠鎾斁鏃堕棿锛歿{ currentPlayingTime }}</div>
-        <div
-          v-for="(date, index) in visibleDates"
-          :key="index"
-          class="date-label"
-        >
+        <div v-for="(date, index) in visibleDates" :key="index" class="date-label">
           <!-- {{ formatDate(date) }} -->
         </div>
       </div>
       <div class="timeline-track" ref="timelineTrack" @click="seekToPosition">
-        <div
-          class="timeline-progress"
-          :style="{ width: progressPercentage + '%' }"
-        ></div>
-        <div
-          class="timeline-cursor"
-          :style="{ left: progressPercentage + '%' }"
-        ></div>
+        <div class="timeline-progress" :style="{ width: progressPercentage + '%' }"></div>
+        <div class="timeline-cursor" :style="{ left: progressPercentage + '%' }"></div>
         <div class="time-markers">
-          <div
-            v-for="(time, index) in timeMarkers"
-            :key="index"
-            class="time-marker"
-          >
+          <div v-for="(time, index) in timeMarkers" :key="index" class="time-marker">
             {{ time }}
           </div>
         </div>
       </div>
     </div>
-    <el-button
-      @click="handleBack"
-      style="margin-top: 26px; margin-left: 30px; margin-right: 10px"
-      >缁撴潫妯℃嫙</el-button
-    >
+    <el-button @click="handleBack" style="margin-top: 26px; margin-left: 30px; margin-right: 10px">缁撴潫妯℃嫙</el-button>
   </div>
 </template>
 
@@ -215,54 +187,127 @@
     emit("timeUpdate", progress * 100); // 鐧惧垎姣斾笂鎶�
   }, 1000); // 娉ㄦ剰浣跨敤interval鑰岄潪鍥哄畾1000ms
 };
-let rainFallValues = ref([]); // 鐢ㄤ簬瀛樺偍鎻愬彇鐨剉alue鏁扮粍
+// 闄嶉洦鍙樺寲閮ㄥ垎
+// 闄嶉洦鏁版嵁鐩稿叧鍙橀噺
+// 闄嶉洦鏁版嵁鐩稿叧鍙橀噺
+let rainFallValues = ref([]); // 瀛樺偍鍘熷闄嶉洦閲忔暟鎹�
 let minRainValue = ref(Infinity);
 let maxRainValue = ref(-Infinity);
+
+// 鑾峰彇闄嶉洦鏁版嵁
 function getRainfallData() {
   getRainfall().then((res) => {
-    rainFallValues.value = res;
-    // 鎻愬彇value鍊�
-    rainFallValues.value = rainFallValues.value.data.map(item => item.value);
-    // 璁$畻min鍜宮ax闆ㄩ噺鍊�
+    rainFallValues.value = res.data.map(item => item.value); // 鎻愬彇闄嶉洦閲忓��
     minRainValue.value = Math.min(...rainFallValues.value);
     maxRainValue.value = Math.max(...rainFallValues.value);
     console.log(minRainValue.value, maxRainValue.value, 'min and max rain values');
   });
 }
-// 绾挎�ф槧灏勫嚱鏁�
-function mapValue(value, fromLow, fromHigh, toLow, toHigh) {
-  return (value - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow;
-}
-// 鏍规嵁褰撳墠鎾斁杩涘害鏇存柊澶╂皵
-// 鎴戣繖閲岃鏄帴鍏ョ湡瀹炴暟鎹悗锛屾瘡涓暟鎹�
-function updateWeatherByProgress() {
-  const progress = currentTime.value / duration.value;
-  // 璁$畻褰撳墠杩涘害瀵瑰簲浜� rainFallValues 鏁扮粍涓殑浣嶇疆
-  const index = Math.floor(progress * (rainFallValues.value.length - 1));
-  const rainValue = rainFallValues.value[index]; // 鑾峰彇瀵瑰簲鐨勯檷闆ㄩ噺 value
-  // 鏍规嵁褰撳墠闆ㄩ噺鍔ㄦ�佽皟鏁撮洦鐨勫弬鏁�
-  // const rainParams = {
-  //   rainSize: mapValue(rainValue, minRainValue.value, maxRainValue.value, 0.5, 1.5),     // 闆ㄦ淮澶у皬锛氫粠灏忓埌澶�
-  //   rainSpeed: mapValue(rainValue, minRainValue.value, maxRainValue.value, 30, 120),      // 闆ㄩ�燂細浠庢參鍒板揩
-  //   rainDensity: mapValue(rainValue, minRainValue.value, maxRainValue.value, 20, 120),    // 瀵嗗害锛氫粠绋�鐤忓埌瀵嗛泦
-  //   rainColor: "#99B3CC"  // 鍙互鍦ㄦ鍩虹涓婂鍔犻鑹插彉鍖栭�昏緫锛屼緥濡傛毚闆ㄤ负娣辫摑绛�
-  // };
-  // 璋冪敤宸ュ叿鏂规硶鏇存柊涓嬮洦鏁堟灉
-  mapUtils.toggleRain(rainParams, true);
+
+// // 绾挎�ф槧灏勫嚱鏁�
+// function mapValue(value, fromLow, fromHigh, toLow, toHigh) {
+//   return (value - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow;
+// }
+
+// 瀹氫箟闄嶉洦绛夌骇鍙婂叾瀵瑰簲鐨勮瑙夊弬鏁�
+const rainLevels = [
+  {
+    name: '灏忛洦',
+    min: 0.1,
+    max: 9.9,
+    size: 0.5,     // 闆ㄦ淮澶у皬锛氭洿灏�
+    speed: 20,     // 涓嬭惤閫熷害锛氭洿鎱�
+    density: 15,   // 闆ㄦ淮瀵嗗害锛氭洿绋�鐤�
+    color: '#ADD8E6' // 娴呰摑鑹诧紝璞″緛杞绘煍鐨勫皬闆�
+  },
+  {
+    name: '涓洦',
+    min: 10,
+    max: 24.9,
+    size: 0.7,
+    speed: 40,
+    density: 35,
+    color: '#ADD8E6' // 澶╄摑鑹诧紝璞″緛鎸佺画鐨勪腑闆�
+  },
+  {
+    name: '澶ч洦',
+    min: 25,
+    max: 49.9,
+    size: 1.0,
+    speed: 70,
+    density: 60,
+    color: '#ADD8E6' // 娣辫摑鑹诧紝璞″緛瀵嗛泦鐨勫ぇ闆�
+  },
+  {
+    name: '鏆撮洦',
+    min: 50,
+    max: 99.9,
+    size: 1.3,
+    speed: 90,
+    density: 80,
+    color: '#ADD8E6' // 娣辫摑榛戣壊锛岃薄寰佸己闄嶉洦
+  },
+  {
+    name: '澶ф毚闆�',
+    min: 100,
+    size: 1.6,
+    speed: 110,
+    density: 100,
+    color: '#ADD8E6' // 榛戣壊锛岃薄寰佹瀬绔毚闆�
+  }
+];
+
+// 鏍规嵁闄嶉洦閲忚繑鍥炲搴旂殑闆ㄥ舰閰嶇疆
+function getRainLevel(rainValue) {
+  for (let level of rainLevels) {
+    if (level.min <= rainValue && (level.max === undefined || rainValue <= level.max)) {
+      return level;
+    }
+  }
+  // 榛樿鏃犻洦鐘舵��
+  return { name: '鏃犻洦', size: 0.5, speed: 30, density: 20, color: '#F0F8FF' };
 }
 
+// 鏍规嵁鎾斁杩涘害鏇存柊澶╂皵鏁堟灉
+function updateWeatherByProgress() {
+  const progress = currentTime.value / duration.value;
+  const floatIndex = progress * (rainFallValues.value.length - 1);
+  const index = Math.floor(floatIndex);
+  const nextIndex = Math.min(index + 1, rainFallValues.value.length - 1);
+  const currentRain = rainFallValues.value[index];
+  const nextRain = rainFallValues.value[nextIndex];
+  // 鎻掑�煎洜瀛� [0, 1]
+  // const alpha = floatIndex - index;
+
+  // 鎻掑�煎緱鍒板綋鍓嶉檷闆ㄩ噺
+  // const rainValue = currentRain + (nextRain - currentRain) * alpha;
+  const rainValue = currentRain + (nextRain - currentRain);
+  // 鑾峰彇瀵瑰簲鐨勯洦褰㈤厤缃�
+  const rainLevel = getRainLevel(rainValue);
+  if (rainLevel.name === '鏃犻洦') {
+    mapUtils.delRain();
+    return;
+  }
+  // 闈炴棤闆ㄧ姸鎬侊細鏋勫缓闆ㄦ淮鍙傛暟骞舵洿鏂伴洦鏁�
+  const rainParams = {
+    rainSize: rainLevel.size,
+    rainSpeed: rainLevel.speed,
+    rainDensity: rainLevel.density,
+    rainColor: rainLevel.color
+  };
+  console.log('褰撳墠闆ㄩ噺鏁版嵁锛�', rainValue);
+  console.log('褰撳墠闆ㄥ舰锛�', rainLevel);
+  // 璋冪敤宸ュ叿鏂规硶鏇存柊闆ㄦ晥
+  mapUtils.toggleRain(rainParams, true);
+}
 const stopPlayback = () => {
   clearInterval(playInterval);
 };
-
 const skipForward = () =>
   (currentTime.value = Math.min(currentTime.value + 1, duration.value)); // 鍚戝墠璺宠浆1绉�
-
 const skipBackward = () =>
   (currentTime.value = Math.max(currentTime.value - 1, 0)); // 鍚戝悗璺宠浆1绉�
-
 const toggleSpeedMenu = () => (showSpeedMenu.value = !showSpeedMenu.value);
-
 // 璁剧疆鎾斁閫熺巼
 const setPlaybackRate = (rate) => {
   playbackRate.value = rate;
@@ -270,14 +315,13 @@
   // 鍋滄褰撳墠鎾斁
   stopPlayback();
   setTimeout(() => {
-        mapUtils.delRain();
-      }, 3000);
+    mapUtils.delRain();
+  }, 3000);
   // 閲嶇疆鏃堕棿杞村埌鍒濆鐘舵��
   currentTime.value = 0; // 鏃堕棿褰掗浂
   emit("timeUpdate", progressPercentage.value);
   isPlaying.value = false;
   emit("isPlaying", false);
-
   // 閿�姣佺幇鏈夌殑姘翠綋妯℃嫙灞�
   if (isWaterPrimitiveCreated.value) {
     destoryWaterPrimitive();
@@ -298,7 +342,7 @@
       message: "璇峰厛鍚姩姘翠綋妯℃嫙鍚庡啀杩涜鏃堕棿杞磋烦杞��",
       type: "warning",
     });
-    return; // 闃绘鍚庣画閫昏緫鎵ц
+    return;
   }
   const rect = timelineTrack.value.getBoundingClientRect();
   const percentage = (event.clientX - rect.left) / rect.width;
@@ -314,10 +358,7 @@
       "Time:",
       dayjs(waterTimestamps.value[closestIndex]).format("YYYY-MM-DD HH:mm:ss")
     );
-    // 璋冪敤璺宠浆鎺ュ彛锛屼紶閫掔储寮曞��
     setTimeForWaterSimulation(closestIndex);
-
-    // 濡傛灉褰撳墠鏄殏鍋滅姸鎬侊紝璋冪敤 pauseWaterSimulation
     if (!isPlaying.value) {
       pauseWaterSimulation();
     }
@@ -331,7 +372,7 @@
   waterTimestamps.value.forEach((timestamp, index) => {
     const diff = Math.abs(
       dayjs(timestamp).diff(dayjs(waterTimestamps.value[0]), "second") -
-        currentTimeValue
+      currentTimeValue
     );
     if (diff < minDiff) {
       minDiff = diff;
@@ -446,7 +487,7 @@
   left: 50%;
   transform: translateX(-50%);
   z-index: 99;
-  width: 878px;
+  width: 678px;
   height: 108px;
   /* background-color: #1a2634; */
   background: url("@/assets/img/menubar/bar.png");
diff --git a/src/components/monifangzhen/schemeInfo.vue b/src/components/monifangzhen/schemeInfo.vue
index 5d26cd7..f115a67 100644
--- a/src/components/monifangzhen/schemeInfo.vue
+++ b/src/components/monifangzhen/schemeInfo.vue
@@ -133,6 +133,15 @@
         }
         continue;
       }
+      
+      // 澶勭悊 areaName 瀛楁
+      if (key === "areaName") {
+        data.push({
+          name: "鍖哄煙鍚嶇О锛�",
+          value: value || "鏃�",
+        });
+        continue;
+      }
 
       // 澶勭悊 result 瀛楁
       if (key === "result") {
diff --git a/src/components/tools/DebuffDetail.vue b/src/components/tools/DebuffDetail.vue
index 4bc9239..b973957 100644
--- a/src/components/tools/DebuffDetail.vue
+++ b/src/components/tools/DebuffDetail.vue
@@ -1,7 +1,7 @@
 <template>
 	<div class="detail">
 		<div class="detail-top">缁熻鍒嗘瀽缁撴灉</div>
-		<div class="detail-btn" @click="showMsg">鏌ョ湅璇︽儏</div>
+		<!-- <div class="detail-btn" @click="showMsg">鏌ョ湅璇︽儏</div> -->
 		<div class="detail-close" @click="closeMsg"></div>
 		<div class="detail-context">
 			<div v-for="(item, key) in detailList" :key="key" class="detail-item">
diff --git a/src/components/tools/LayerTree.vue b/src/components/tools/LayerTree.vue
index 6204585..0ced3a5 100644
--- a/src/components/tools/LayerTree.vue
+++ b/src/components/tools/LayerTree.vue
@@ -263,7 +263,7 @@
   districtList.value.forEach((item) => {
     item.showBillboard = true;
     item.className = "district";
-    item.type = "娉ョ煶娴�";
+    // item.type = "娉ョ煶娴�";        //鏁版嵁icon璁剧疆
     const entity = createPoint(item);
     entity.show = false;
     list.push(entity);
diff --git a/src/components/tools/Legend_yhgl.vue b/src/components/tools/Legend_yhgl.vue
new file mode 100644
index 0000000..ca1413f
--- /dev/null
+++ b/src/components/tools/Legend_yhgl.vue
@@ -0,0 +1,78 @@
+<template>
+  <div class="legend-container">
+    <div class="legend-title">鍥句緥璇存槑</div>
+    <ul class="legend-list">
+      <li v-for="(item, index) in legendItems" :key="index" class="legend-item">
+        <img :src="getImageUrl(item.icon)" :alt="item.label" class="legend-icon" />
+        <span class="legend-label">{{ item.label }}</span>
+      </li>
+    </ul>
+  </div>
+</template>
+
+<script setup>
+import { ref, onMounted } from "vue";
+
+// 瀹氫箟鍥句緥鏁版嵁
+const legendItems = ref([
+  { icon: "宕╁.png", label: "宕╁" },
+  { icon: "娉ョ煶娴�.png", label: "娉ョ煶娴�" },
+  { icon: "婊戝潯.png", label: "婊戝潯" },
+]);
+
+// 鑾峰彇 public 涓嬬殑鍥剧墖璺緞
+const getImageUrl = (iconName) => {
+  return `/images/poi/${iconName}`;
+};
+
+onMounted(() => {
+  console.log("杩欓噷鏄浘渚嬮泦鍚堬紒");
+});
+</script>
+
+<style lang="less" scoped>
+.legend-container {
+  padding: 0.5rem; // 鍑忓皯鍐呰竟璺�
+  // background-color: #f9f9f9;
+  border: 1px solid #ddd;
+  border-radius: 8px;
+  max-width: 100%;
+  width: auto;
+  font-size: clamp(10px, 1vw, 14px); // 鏇村皬鐨勫熀纭�瀛楀彿
+}
+
+.legend-title {
+  width: 100%;
+  // border: 1px solid #ddd;
+  margin-bottom: 10%;
+  text-align: center;
+  letter-spacing: 2px;
+  font-weight: 600;
+  font-size: clamp(16px, 1vw, 20px); // 鏇村皬鐨勫熀纭�瀛楀彿
+
+}
+
+.legend-list {
+  list-style: none;
+  padding: 0;
+  // margin: 0;
+  display: flex;
+  flex-direction: column; // 鏀逛负鍨傜洿鏂瑰悜甯冨眬
+  gap: 0.5rem; // 鍑忓皯闂磋窛
+}
+
+.legend-item {
+  display: flex;
+  align-items: center;
+}
+
+.legend-icon {
+  width: 23px; // 鍑忓皯鍥炬爣澶у皬
+  height: 25px; // 鍑忓皯鍥炬爣澶у皬
+  margin-right: 0.5rem; // 鍑忓皯鍙宠竟璺�
+}
+
+.legend-label {
+  font-size: inherit; // 缁ф壙鐖剁骇瀛椾綋澶у皬
+}
+</style>
\ No newline at end of file
diff --git a/src/components/tools/Legend_zhjc.vue b/src/components/tools/Legend_zhjc.vue
new file mode 100644
index 0000000..eab51ce
--- /dev/null
+++ b/src/components/tools/Legend_zhjc.vue
@@ -0,0 +1,83 @@
+<template>
+  <div class="legend-container">
+    <div class="legend-title">鍥句緥璇存槑</div>
+    <ul class="legend-list">
+      <li v-for="(item, index) in legendItems" :key="index" class="legend-item">
+        <img :src="getImageUrl(item.icon)" :alt="item.label" class="legend-icon" />
+        <span class="legend-label">{{ item.label }}</span>
+      </li>
+    </ul>
+  </div>
+</template>
+
+<script setup>
+import { ref, onMounted } from "vue";
+
+// 瀹氫箟鍥句緥鏁版嵁
+const legendItems = ref([
+  { icon: "缂栫爜鍣�.png", label: "缂栫爜鍣�" },
+  { icon: "鎽勫儚澶�.png", label: "鎽勫儚澶�" },
+  { icon: "娉ヤ綅璁�.png", label: "娉ヤ綅璁�" },
+  { icon: "娴侀�熶华.png", label: "娴侀�熶华" },
+  { icon: "鍚按鐜�.png", label: "鍚按鐜�" },
+  { icon: "娆$敓浠�.png", label: "娆$敓浠�" },
+  { icon: "闆ㄩ噺璁�.png", label: "闆ㄩ噺璁�" },
+  { icon: "澧掓儏.png", label: "澧掓儏" },
+]);
+
+// 鑾峰彇 public 涓嬬殑鍥剧墖璺緞
+const getImageUrl = (iconName) => {
+  return `/images/poi/${iconName}`;
+};
+
+onMounted(() => {
+  console.log("杩欓噷鏄浘渚嬮泦鍚堬紒");
+});
+</script>
+
+<style lang="less" scoped>
+.legend-container {
+  padding: 0.5rem; // 鍑忓皯鍐呰竟璺�
+  // background-color: #f9f9f9;
+  border: 1px solid #ddd;
+  border-radius: 8px;
+  max-width: 100%;
+  width: auto;
+  font-size: clamp(10px, 1vw, 14px); // 鏇村皬鐨勫熀纭�瀛楀彿
+}
+
+.legend-title {
+  width: 100%;
+  // border: 1px solid #ddd;
+  margin-bottom: 10%;
+  text-align: center;
+  letter-spacing: 2px;
+  font-weight: 600;
+  font-size: clamp(16px, 1vw, 20px); // 鏇村皬鐨勫熀纭�瀛楀彿
+
+}
+
+.legend-list {
+  list-style: none;
+  padding: 0;
+  // margin: 0;
+  display: flex;
+  flex-direction: column; // 鏀逛负鍨傜洿鏂瑰悜甯冨眬
+  gap: 0.5rem; // 鍑忓皯闂磋窛
+}
+
+.legend-item {
+  display: flex;
+  align-items: center;
+}
+
+.legend-icon {
+  width: 23px; // 鍑忓皯鍥炬爣澶у皬
+  height: 25px; // 鍑忓皯鍥炬爣澶у皬
+  margin-right: 0.5rem; // 鍑忓皯鍙宠竟璺�
+}
+
+.legend-label {
+  font-size: inherit; // 缁ф壙鐖剁骇瀛椾綋澶у皬
+}
+</style>
\ No newline at end of file
diff --git a/src/components/tools/Message.vue b/src/components/tools/Message.vue
index fa58e21..ff570f3 100644
--- a/src/components/tools/Message.vue
+++ b/src/components/tools/Message.vue
@@ -118,6 +118,11 @@
         continue;
       }
 
+      if (key === "areaName") {
+        formattedData.push({ name: "鍖哄煙鍚嶇О锛�", value: value || "鏃�" });
+        continue;
+      }
+
       if (key === "name") {
         formattedData.push({ name: "浠跨湡鏂规锛�", value: value || "鏃�" });
         continue;
diff --git a/src/views/GisView.vue b/src/views/GisView.vue
index 74544da..3e08d52 100644
--- a/src/views/GisView.vue
+++ b/src/views/GisView.vue
@@ -468,8 +468,8 @@
   position: absolute;
 }
 // // 淇敼鎸囧崡閽堜綅缃�
-// /deep/ .compass {
-//     right: 128px !important;
-//     top: 112px;
-// }
+/deep/ .compass {
+    right: 128px !important;
+    top: 112px;
+}
 </style>
diff --git a/src/views/Home.vue b/src/views/Home.vue
index 81967cc..b50c1c7 100644
--- a/src/views/Home.vue
+++ b/src/views/Home.vue
@@ -22,7 +22,6 @@
   <ImagePreview v-if="showPreview" />
   <!-- <Weather v-if="weatherShow" @close="weatherShow = false" /> -->
   <Bar v-if="barShow" @close="barShow = false" />
-
   <Detail v-if="showDetail" />
 </template>
 
diff --git a/src/views/yhgl.vue b/src/views/yhgl.vue
index c24a40c..087e943 100644
--- a/src/views/yhgl.vue
+++ b/src/views/yhgl.vue
@@ -1,10 +1,23 @@
 <template>
 	<Location />
+	<Legend class="legend" />
+
 </template>
 
 <script setup>
-	import Location from "@/components/menu/Location.vue"
+import Location from "@/components/menu/Location.vue"
+import Legend from "@/components/tools/Legend_yhgl.vue";
+
 </script>
 <style lang="less" scoped>
-	@import url("../assets/css/home.css");
+.legend {
+	// background: url("@/assets/img/right/rightbg.png");
+	color: white;
+	position: fixed;
+	bottom: 6%;
+	right: 1%;
+	z-index: 3333;
+}
+
+@import url("../assets/css/home.css");
 </style>
diff --git a/src/views/zhjc.vue b/src/views/zhjc.vue
index 8270d42..26d4f7a 100644
--- a/src/views/zhjc.vue
+++ b/src/views/zhjc.vue
@@ -1,10 +1,23 @@
 <template>
-	<Device />
+	<div>
+		<Device />
+		<Legend class="legend"/>
+	</div>
+	
 </template>
 
 <script setup>
-	import Device from "@/components/menu/Device.vue"
+import Legend from "@/components/tools/Legend_zhjc.vue";
+import Device from "@/components/menu/Device.vue"
 </script>
 <style lang="less" scoped>
+	.legend{
+    // background: url("@/assets/img/right/rightbg.png");
+	color: white;
+		position: fixed;
+		bottom: 6%;
+		right: 1%;
+		z-index: 3333;
+	}
 	@import url("../assets/css/home.css");
 </style>

--
Gitblit v1.9.3