From a7e6761ba0cfccdf33ed552eb2d3b783c8e4ab4a Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 16 Apr 2025 20:49:12 +0800
Subject: [PATCH] feat:事件弹窗显示调整
---
src/hooks/components/EventPopUpBox.vue | 226 +++++++++++++++++++++++++++++--------------------------
1 files changed, 119 insertions(+), 107 deletions(-)
diff --git a/src/hooks/components/EventPopUpBox.vue b/src/hooks/components/EventPopUpBox.vue
index dd87e8d..967893d 100644
--- a/src/hooks/components/EventPopUpBox.vue
+++ b/src/hooks/components/EventPopUpBox.vue
@@ -1,130 +1,142 @@
<template>
- <div class="mapPopUpBox">
- <div class="title">
- {{ info.event_name }}
- <el-icon class="header-close" @click="props.removeLabel">
- <Close />
- </el-icon>
- </div>
- <div class="content">
- <div class="medium">
- <img v-if="info.media_type === 'PHOTO_TYPE'" class="eventImage" :src="info.url" alt="Event Image" />
- <video v-else :src="info.url" autoplay muted playsinline preload="metadata" />
- </div>
+ <div class="mapPopUpBox">
+ <div class="title">
+ <span>{{ info.event_name }}</span>
- <div class="details">
- <div class="label">位置:</div>
- <div class="value point">{{ _.round(info.longitude, 3) }},{{ _.round(info.latitude, 3) }}</div>
- <div class="label">时间:</div>
- <div class="value">{{ info.create_time }}</div>
- </div>
- </div>
- </div>
+ <el-icon class="header-close" @click="props.removeLabel">
+ <Close />
+ </el-icon>
+ </div>
+ <div class="content">
+ <div class="medium">
+ <el-image
+ v-if="info.media_type === 'PHOTO_TYPE'"
+ class="eventImage"
+ :src="info.url"
+ fit="cover"
+ :preview-src-list="[info.url]"
+ preview-teleported
+ />
+
+ <video v-else :src="info.url" autoplay muted playsinline preload="metadata" />
+ </div>
+
+ <div class="details">
+ <div class="label">位置:</div>
+ <div class="value point">{{ _.round(info.longitude, 3) }},{{ _.round(info.latitude, 3) }}</div>
+ <div class="label">时间:</div>
+ <div class="value">{{ info.create_time }}</div>
+ </div>
+ </div>
+ </div>
</template>
<script setup>
+import { ElImage } from 'element-plus'
// src="@/assets/images/home/useEventOperate/eventErr.png"
-import { Close } from '@element-plus/icons-vue';
-import { getEventDetails } from '@/api/home/aggregation';
-import _ from 'lodash';
+import { Close } from '@element-plus/icons-vue'
+import { getEventDetails } from '@/api/home/aggregation'
+import _ from 'lodash'
-const props = defineProps(['data', 'removeLabel']);
-const loading = ref(true);
+const props = defineProps(['data', 'removeLabel'])
+const loading = ref(true)
const info = ref({
- event_name: '',
- status: 1,
- url: '1',
- longitude: '',
- latitude: '',
- create_time: '04/01 12:41',
- media_type: 'PHOTO_TYPE',
-});
+ event_name: '',
+ status: 1,
+ url: '1',
+ longitude: '',
+ latitude: '',
+ create_time: '04/01 12:41',
+ media_type: 'PHOTO_TYPE',
+})
onMounted(async () => {
- loading.value = true;
- const res = await getEventDetails({ id: props.data.eventId });
- info.value = res.data.data;
- loading.value = false;
-});
+ loading.value = true
+ const res = await getEventDetails({ id: props.data.eventId })
+ info.value = res.data.data
+
+ info.value.url = import.meta.env.VITE_APP_AIRLINE_URL + info.value.url
+ loading.value = false
+})
</script>
<style scoped lang="scss">
.mapPopUpBox {
- width: 271px;
- height: 173px;
- background: url('@/assets/images/home/useEventOperate/popUpBox.png') no-repeat center / 100% 100%;
- padding: 13px 15px;
- pointer-events: all;
+ width: 271px;
+ height: 173px;
+ background: url('@/assets/images/home/useEventOperate/popUpBox.png') no-repeat center / 100% 100%;
+ padding: 13px 15px;
+ pointer-events: all;
- .title {
- font-family: YouSheBiaoTiHei, YouSheBiaoTiHei, serif;
- font-weight: 400;
- font-size: 18px;
- line-height: 16px;
- background: linear-gradient(180deg, #a8e5fb 0%, #e6f8ff 100%);
- -webkit-background-clip: text;
- -webkit-text-fill-color: transparent;
- -moz-background-clip: text;
- -moz-text-fill-color: transparent;
- background-clip: text;
- text-fill-color: transparent;
- margin-bottom: 10px;
- display: flex;
- align-items: center;
- justify-content: space-between;
+ .title {
+ font-family: YouSheBiaoTiHei, YouSheBiaoTiHei, serif;
+ font-weight: 400;
+ font-size: 18px;
+ line-height: 16px;
+ background: linear-gradient(180deg, #a8e5fb 0%, #e6f8ff 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ -moz-background-clip: text;
+ -moz-text-fill-color: transparent;
+ background-clip: text;
+ text-fill-color: transparent;
+ margin-bottom: 10px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
- .header-close {
- width: 20px;
- height: 100%;
- line-height: 100%;
- display: flex;
- align-items: center;
- color: #9cd5ff;
- pointer-events: all;
- cursor: pointer;
- }
- }
+ .header-close {
+ width: 20px;
+ height: 100%;
+ line-height: 100%;
+ display: flex;
+ align-items: center;
+ color: #9cd5ff;
+ pointer-events: all;
+ cursor: pointer;
+ }
+ }
- .content {
- height: 102px;
- width: 240px;
- display: flex;
- align-items: center;
+ .content {
+ height: 102px;
+ width: 240px;
+ display: flex;
+ align-items: center;
- .medium {
- height: 102px;
- width: 120px;
- margin-right: 10px;
+ .medium {
+ height: 102px;
+ width: 120px;
+ margin-right: 10px;
- > img,
- video {
- width: 100%;
- height: 100%;
- }
- }
+ > img,
+ video {
+ width: 100%;
+ height: 100%;
+ }
+ }
- .details {
- .label {
- font-family: Source Han Sans CN, Source Han Sans CN;
- font-weight: 400;
- font-size: 14px;
- color: #7babd7;
- line-height: 16px;
- margin-bottom: 2px;
- }
+ .details {
+ .label {
+ font-family: Source Han Sans CN, Source Han Sans CN;
+ font-weight: 400;
+ font-size: 14px;
+ color: #7babd7;
+ line-height: 16px;
+ margin-bottom: 2px;
+ }
- .value {
- font-family: Source Han Sans CN, Source Han Sans CN;
- font-weight: 400;
- font-size: 14px;
- color: #d8edff;
- line-height: 16px;
- margin-bottom: 2px;
- }
+ .value {
+ font-family: Source Han Sans CN, Source Han Sans CN;
+ font-weight: 400;
+ font-size: 14px;
+ color: #d8edff;
+ line-height: 16px;
+ margin-bottom: 2px;
+ }
- .point {
- margin-bottom: 14px;
- }
- }
- }
+ .point {
+ margin-bottom: 14px;
+ }
+ }
+ }
}
</style>
--
Gitblit v1.9.3