Kaynağa Gözat

优化切换老人查看详情的时候关闭长者位置模块,回到详情页面,优化只有点击去处理成功之后才取消展示卡片预警样式

xiongxing 2 hafta önce
ebeveyn
işleme
1cbf4b880c

+ 6 - 0
src/views/Home/components/DetailSection.vue

@@ -111,6 +111,10 @@ const toggleLocationMap = () => {
   showLocationMap.value = !showLocationMap.value
 }
 
+const reBackToDetail = () => {
+  showLocationMap.value = false
+}
+
 interface HealthVO {
   name: string
   value: string
@@ -252,6 +256,8 @@ const viewWarningService = () => {
   if (!props.selectedElderly) return
   emit('viewWarningService', props.selectedElderly)
 }
+
+defineExpose({ reBackToDetail })
 </script>
 
 <style lang="scss" scoped>

+ 5 - 2
src/views/Home/components/ElderLocationMap.vue

@@ -20,6 +20,7 @@ import { AMAP_CONFIG } from '@/config/amapConfig'
 import { Loading } from '@element-plus/icons-vue'
 import fetchHttp from '@/config/axios/fetchHttp'
 import { getAccessToken } from '@/utils/auth'
+import { amapReverseGeocode } from '@/utils/amapService'
 
 interface Props {
   elderId?: number | string
@@ -115,7 +116,7 @@ const initMap = (longitude: number, latitude: number) => {
 }
 
 // 添加标记
-const addMarker = (longitude: number, latitude: number) => {
+const addMarker = async (longitude: number, latitude: number) => {
   if (!amap) return
 
   try {
@@ -141,9 +142,11 @@ const addMarker = (longitude: number, latitude: number) => {
 
     // 添加信息窗口(失败不影响)
     try {
+      let addressInfo = await amapReverseGeocode(longitude, latitude)
       const infoWindow = new AMap.InfoWindow({
-        content: `<div style="padding: 10px; font-size: 12px;">
+        content: `<div style="padding: 10px; font-size: 12px;color:#000;width:300px">
           <div style="margin-bottom: 5px;"><strong>长者位置</strong></div>
+          <div>地点: ${addressInfo}</div>   
           <div>经度: ${longitude.toFixed(6)}</div>
           <div>纬度: ${latitude.toFixed(6)}</div>
         </div>`,

+ 4 - 1
src/views/Home/home-refactored.vue

@@ -25,6 +25,7 @@
 
         <!-- 右侧详情区域 -->
         <DetailSection
+          ref="detailSectionRef"
           :selected-elderly="selectedElderly.id > 0 ? selectedElderly : null"
           :device-type-options="deviceTypeOptions"
           @add-device="openAddDeviceDialog"
@@ -231,6 +232,7 @@ const pageSize = ref(10)
 const elderlyList = ref<Elderly[]>([])
 const dialogVisible = ref(false)
 const addDeviceDialogRef = ref<any>(null)
+const detailSectionRef = ref<any>(null)
 const deviceDetailVisible = ref(false)
 const currentElderly = ref<SelectElderly | null>(null)
 const selectedElderly = ref<SelectElderly>({
@@ -488,8 +490,9 @@ const submitHandleWarning = async (data: any) => {
 const selectElderly = (elderly: Elderly) => {
   selectedElderly.value.id = elderly.id
   selectedElderly.value.name = elderly.name
-  clearWarningFlag(elderly.id)
+  // clearWarningFlag(elderly.id)
   getElderDeviceMessage(selectedElderly.value.id)
+  detailSectionRef.value?.reBackToDetail()
 }
 
 const showDeviceDetail = async (device: DetailDevice) => {