| | |
| | | <template> |
| | | <div class="mapPopUpBox"> |
| | | <div class="title"> |
| | | <span>{{ info.event_name }}</span> |
| | | <el-icon class="header-close" @click.stop="props.detailClick"><Warning /></el-icon> |
| | | <el-icon class="header-close" @click.stop="props.removeLabel"> |
| | | <Close /> |
| | | </el-icon> |
| | | </div> |
| | | <div class="content"> |
| | | <div class="medium"> |
| | | <el-image |
| | | class="eventImage" |
| | | :src="getSmallImg(infoList?.link)" |
| | | :preview-src-list="[getSmallImg(infoList?.link)]" |
| | | fit="cover" |
| | | preview-teleported |
| | | ></el-image> |
| | | </div> |
| | | <div class="mapPopUpBox"> |
| | | <div class="title"> |
| | | <span>{{ info.event_name }}</span> |
| | | <el-icon class="header-close" @click.stop="props.detailClick"><Warning /></el-icon> |
| | | <el-icon class="header-close" @click.stop="props.removeLabel"> |
| | | <Close /> |
| | | </el-icon> |
| | | </div> |
| | | <div class="content"> |
| | | <div class="medium"> |
| | | <img |
| | | class="quanjing" |
| | | @click="clickpanorama(infoList)" |
| | | v-if="infoList?.resultType === 5" |
| | | :src="infoList?.link" |
| | | alt="" |
| | | /> |
| | | <el-image |
| | | v-else |
| | | class="eventImage" |
| | | :src="getSmallImg(infoList?.link)" |
| | | :preview-src-list="[getSmallImg(infoList?.link)]" |
| | | fit="cover" |
| | | preview-teleported |
| | | ></el-image> |
| | | </div> |
| | | |
| | | <div class="details"> |
| | | <div class="label">时间:</div> |
| | | <div class="value point"> |
| | | {{ |
| | | infoList?.create_time?.slice(5, 16).replace('-', '/') || |
| | | infoList?.createTime?.slice(5, 16).replace('-', '/') |
| | | }} |
| | | </div> |
| | | <div class="label">地点:</div> |
| | | <div class="value"> |
| | | {{ _.round(infoList?.metadata?.shootPosition?.lng, 3) }},{{ |
| | | _.round(infoList?.metadata?.shootPosition?.lat, 3) |
| | | }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="details"> |
| | | <div class="label">时间:</div> |
| | | <div class="value point"> |
| | | {{ |
| | | infoList?.create_time?.slice(5, 16).replace('-', '/') || |
| | | infoList?.createTime?.slice(5, 16).replace('-', '/') |
| | | }} |
| | | </div> |
| | | <div class="label">地点:</div> |
| | | <div class="value"> |
| | | {{ _.round(infoList?.metadata?.shootPosition?.lng, 3) }},{{ |
| | | _.round(infoList?.metadata?.shootPosition?.lat, 3) |
| | | }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script setup> |
| | | import { ElImage, ElIcon } from 'element-plus' |
| | | import { Close,Warning } from '@element-plus/icons-vue' |
| | | import _ from 'lodash' |
| | | import EventBus from '@/utils/eventBus'; |
| | | import { ElImage, ElIcon } from 'element-plus'; |
| | | import { Close, Warning } from '@element-plus/icons-vue'; |
| | | import _ from 'lodash'; |
| | | import { getShowImg, getSmallImg } from '@/utils/util'; |
| | | const props = defineProps(['data', 'removeLabel','detailClick']) |
| | | const loading = ref(true) |
| | | |
| | | const props = defineProps(['data', 'removeLabel', 'detailClick']); |
| | | const loading = ref(true); |
| | | import PanoramaPopup from '@/components/PanoramaPopup/PanoramaPopup.vue'; //全景 |
| | | const emit = defineEmits(['update:panoramaParamsShow', 'update:panoramaParamsUrl']); |
| | | const info = ref({ |
| | | event_name: '', |
| | | status: 1, |
| | | url: '1', |
| | | longitude: '', |
| | | latitude: '', |
| | | create_time: '04/01 12:41', |
| | | }) |
| | | const infoList = props.data |
| | | onMounted(async () => {}) |
| | | event_name: '', |
| | | status: 1, |
| | | url: '1', |
| | | longitude: '', |
| | | latitude: '', |
| | | create_time: '04/01 12:41', |
| | | }); |
| | | const infoList = props.data; |
| | | const clickpanorama = val => { |
| | | // 通过事件总线发送全景参数 |
| | | EventBus.emit('open-panorama', { |
| | | show: true, |
| | | url: val.link, |
| | | }); |
| | | // 保留原有事件触发,确保兼容性 |
| | | emit('update:panoramaParamsShow', true); |
| | | emit('update:panoramaParamsUrl', val.link); |
| | | }; |
| | | onMounted(async () => {}); |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .mapPopUpBox { |
| | | width: 271px; |
| | | height: 153px; |
| | | // background: url('@/assets/images/dataCenter/datamap/popUpBox.png') no-repeat center / 100% 100%; |
| | | border-radius: 20px; |
| | | background-color: #fff; |
| | | width: 271px; |
| | | height: 153px; |
| | | // background: url('@/assets/images/dataCenter/datamap/popUpBox.png') no-repeat center / 100% 100%; |
| | | border-radius: 20px; |
| | | background-color: #fff; |
| | | |
| | | padding: 13px 13px 1px 13px; |
| | | pointer-events: all; |
| | | padding: 13px 13px 1px 13px; |
| | | 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: end; |
| | | .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: end; |
| | | |
| | | .header-close { |
| | | width: 20px; |
| | | height: 100%; |
| | | line-height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | color: black; |
| | | pointer-events: all; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .header-close { |
| | | width: 20px; |
| | | height: 100%; |
| | | line-height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | color: black; |
| | | 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, |
| | | div { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | } |
| | | > img, |
| | | video, |
| | | div { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | } |
| | | |
| | | .details { |
| | | .label { |
| | | font-family: Source Han Sans CN, Source Han Sans CN; |
| | | font-weight: 400; |
| | | font-size: 14px; |
| | | color: black; |
| | | 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: black; |
| | | line-height: 16px; |
| | | margin-bottom: 2px; |
| | | } |
| | | |
| | | .value { |
| | | font-family: Source Han Sans CN, Source Han Sans CN; |
| | | font-weight: 400; |
| | | font-size: 14px; |
| | | color: black; |
| | | line-height: 16px; |
| | | margin-bottom: 2px; |
| | | } |
| | | .value { |
| | | font-family: Source Han Sans CN, Source Han Sans CN; |
| | | font-weight: 400; |
| | | font-size: 14px; |
| | | color: black; |
| | | line-height: 16px; |
| | | margin-bottom: 2px; |
| | | } |
| | | |
| | | .point { |
| | | margin-bottom: 14px; |
| | | } |
| | | } |
| | | } |
| | | .point { |
| | | margin-bottom: 14px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |