From 2800fa4f32f3900509cb4d6eefaf2bfaf54efdd7 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Mon, 21 Apr 2025 18:29:09 +0800
Subject: [PATCH] fix: 天气显示

---
 src/views/Home/RSide.vue |  191 ++++++++++++++++++++++++++++-------------------
 1 files changed, 114 insertions(+), 77 deletions(-)

diff --git a/src/views/Home/RSide.vue b/src/views/Home/RSide.vue
index ffc2da6..98c980d 100644
--- a/src/views/Home/RSide.vue
+++ b/src/views/Home/RSide.vue
@@ -1,55 +1,92 @@
 <template>
-  <div class="ai-chat">
+	<div class="ai-chat" v-show="isHideBottomIcon">
+		<el-popover placement="bottom" :visible="visible" :width="200" trigger="click">
+			<template #reference>
+				<div class="chat" id="chatID" v-drag:chatID @mousedown="handleMouseDown" @mouseup="handleMouseUp" />
+			</template>
+			<div>
+				快和我对话吧
+				<el-input />
+			</div>
+		</el-popover>
+		<img class="chat-bottom" src="../../assets/images/chat-bottom.png" alt="" />
+	</div>
+	<div class="r-side" v-show="isHideBottomIcon">
+		<img
+			v-for="(item, index) in images"
+			:key="index"
+			:class="item.class"
+			:src="activeIndex === index ? item.activeSrc : item.src"
+			alt=""
+			@click="activeChange(index)"
+			@mouseenter="enterHover(index)"
+			@mouseleave="logIndex = 3"
+		/>
+	</div>
+	<div v-if="logIndex === 0" class="r-side-positioning">返回当前位置</div>
+	<div v-if="logIndex === 1" class="r-side-measuring">量尺</div>
+	<div v-if="logIndex === 2" class="r-side-layer">切换地图模式</div>
+	<MeasuringDistance v-if="activeIndex === 1" />
 
-    <el-popover
-      placement="bottom"
-      :visible="visible"
-      :width="200"
-      trigger="click"
-    >
-      <template #reference>
-        <div class="chat" id="chatID" v-drag:chatID  @mousedown="handleMouseDown"
-             @mouseup="handleMouseUp"/>
-      </template>
-      <div>
-        快和我对话吧
-        <el-input/>
-      </div>
-    </el-popover>
-
-
-    <img class="chat-bottom" src="../../assets/images/chat-bottom.png" alt="">
-  </div>
-  <div class="r-side">
-    <img class="positioning" src="../../assets/images/self-positioning.png" alt="" @mouseenter="enterHover(0)" @mouseleave="logIndex=3">
-    <img class="measuring-scale" src="../../assets/images/measuring-scale.png" alt="" @mouseenter="enterHover(1)" @mouseleave="logIndex=3">
-    <img class="layer" src="../../assets/images/layer.png" alt="" @mouseenter="enterHover(2)" @mouseleave="logIndex=3">
-  </div>
-  <div v-if="logIndex===0" class="r-side-positioning">切换地图模式</div>
-  <div v-if="logIndex===1" class="r-side-measuring">量尺</div>
-  <div v-if="logIndex===2" class="r-side-layer">返回当前位置</div>
 </template>
 
 <script setup>
 import vDrag from '@/directive/drag'
-let logIndex = ref(3);
-const enterHover = (value) => {
-  logIndex.value = value;
+import MeasuringDistance from '@/components/MeasuringDistance.vue'
+import dw from '@/assets/images/rSide/dw.png'
+import dw1 from '@/assets/images/rSide/dw1.png'
+import lc from '@/assets/images/rSide/lc.png'
+import lc1 from '@/assets/images/rSide/lc1.png'
+import tc from '@/assets/images/rSide/tc.png'
+import tc1 from '@/assets/images/rSide/tc1.png'
+import cesiumOperation from '@/utils/cesium-tsa'
+import { ElMessage } from 'element-plus'
+
+let logIndex = ref(3)
+const enterHover = value => {
+	logIndex.value = value
 }
-const visible = ref(false);
-let pressStart = 0;
+const { flyTo } = cesiumOperation()
+
+const store = useStore()
+const currentAreaPosition = computed(() => store.state.home.currentAreaPosition)
+// 事件概况 展开隐藏
+const isHideBottomIcon = computed(() => store.state.common.isHideBottomIcon)
+
+let activeIndex = ref(null)
+const activeChange = value => {
+	if (value === 0) {
+		flyTo(currentAreaPosition.value, 0, currentAreaPosition.value.height)
+	}
+	if (value === 1) {
+		activeIndex.value = activeIndex.value === 1 ? null : value
+	}
+	if (value === 2) {
+		ElMessage.warning('加急开发中...')
+		activeIndex.value = activeIndex.value === 2 ? null : value
+	}
+}
+const visible = ref(false)
+let pressStart = 0
 
 const handleMouseDown = () => {
-  pressStart = Date.now(); // 记录按下时间
-};
+	pressStart = Date.now() // 记录按下时间
+}
 
 const handleMouseUp = () => {
-  const pressDuration = Date.now() - pressStart; // 计算按下时长
-  if (pressDuration < 150) {
-    // 如果按下时间小于200ms,认为是点击
-    visible.value = !visible.value;
-  }
-};
+	const pressDuration = Date.now() - pressStart // 计算按下时长
+	if (pressDuration < 150) {
+		// 如果按下时间小于200ms,认为是点击
+		visible.value = !visible.value
+	}
+}
+
+// 添加: 定义图片数组
+const images = [
+	{ class: 'positioning', src: dw, activeSrc: dw1 },
+	{ class: 'measuring-scale', src: lc, activeSrc: lc1 },
+	{ class: 'layer', src: tc, activeSrc: tc1 },
+]
 </script>
 
 <style scoped lang="scss">
@@ -63,11 +100,9 @@
     height: 68px;
     display: block;
   };
-
-
   .chat {
     position: fixed;
-    bottom: 330px;
+    top: 638px;
     height: 124px;
     width: 100px;
     user-select: none;
@@ -76,45 +111,47 @@
   }
 }
 .r-side {
-  position: absolute;
-  bottom: 122px;
-  right: 463px;
-  cursor: pointer;
-  img {
-    display: block;
-    width: 48px;
-    height: 48px;
-  }
-  .positioning {
-    position: relative;
-    bottom: 24px;
-  }
-  .measuring-scale {
-    position: relative;
-    bottom: 12px;
-  }
+	position: absolute;
+	bottom: 122px;
+	right: 463px;
+	cursor: pointer;
+	img {
+		display: block;
+		width: 48px;
+		height: 48px;
+	}
+	.positioning {
+		position: relative;
+		bottom: 24px;
+	}
+	.measuring-scale {
+		position: relative;
+		bottom: 12px;
+	}
 }
-.r-side-positioning, .r-side-measuring, .r-side-layer {
-  position: absolute;
-  right: 514px;
-  width: 130px;
-  height: 48px;
-  font-family: Source Han Sans CN, Source Han Sans CN;
-  font-weight: 400;
-  font-size: 18px;
-  color: #FFFFFF;
-  line-height: 48px;
-  text-align: center;
-  background: url('@/assets/images/cursor.png');
+.r-side-positioning,
+.r-side-measuring,
+.r-side-layer {
+	position: absolute;
+	right: 514px;
+	width: 130px;
+	height: 48px;
+	font-family: Source Han Sans CN, Source Han Sans CN;
+	font-weight: 400;
+	font-size: 18px;
+	color: #ffffff;
+	line-height: 48px;
+	text-align: center;
+	background: url('@/assets/images/cursor.png');
 }
 .r-side-positioning {
-  bottom: 242px;
+	bottom: 242px;
 }
 .r-side-measuring {
-  bottom: 182px;
+	bottom: 182px;
 }
 .r-side-layer {
-  bottom: 122px;
+	bottom: 122px;
 }
-
 </style>
+

--
Gitblit v1.9.3