<template>
							 | 
						|
									<view class="map-card" @click="onMapTap">
							 | 
						|
										<!-- 地图区域 -->
							 | 
						|
										<view class="map-container">
							 | 
						|
											<map 
							 | 
						|
												:latitude="latitude" 
							 | 
						|
												:longitude="longitude" 
							 | 
						|
												:markers="markers"
							 | 
						|
												:show-location="false"
							 | 
						|
												:enable-zoom="false"
							 | 
						|
												:enable-scroll="false"
							 | 
						|
												:enable-rotate="false"
							 | 
						|
												:enable-overlooking="false"
							 | 
						|
												:enable-traffic="false"
							 | 
						|
												class="map"
							 | 
						|
											></map>
							 | 
						|
								            <!-- @tap.stop="onMapTap" -->
							 | 
						|
										</view>
							 | 
						|
										
							 | 
						|
										<!-- 地址信息区域 -->
							 | 
						|
										<view class="address-container">
							 | 
						|
											<view class="address-name">{{ addressName }}</view>
							 | 
						|
											<view class="address-detail" v-if="addressDetail">{{ addressDetail }}</view>
							 | 
						|
										</view>
							 | 
						|
									</view>
							 | 
						|
								</template>
							 | 
						|
								
							 | 
						|
								<script>
							 | 
						|
								export default {
							 | 
						|
									name: 'MapCard',
							 | 
						|
									props: {
							 | 
						|
										// 纬度
							 | 
						|
										latitude: {
							 | 
						|
											type: [Number, String],
							 | 
						|
											required: true,
							 | 
						|
											default: 39.908823
							 | 
						|
										},
							 | 
						|
										// 经度
							 | 
						|
										longitude: {
							 | 
						|
											type: [Number, String], 
							 | 
						|
											required: true,
							 | 
						|
											default: 116.397470
							 | 
						|
										},
							 | 
						|
										// 地址名称
							 | 
						|
										addressName: {
							 | 
						|
											type: String,
							 | 
						|
											required: true,
							 | 
						|
											default: '位置信息'
							 | 
						|
										},
							 | 
						|
										// 地址详情(可选)
							 | 
						|
										addressDetail: {
							 | 
						|
											type: String,
							 | 
						|
											default: ''
							 | 
						|
										},
							 | 
						|
										// 地图高度
							 | 
						|
										mapHeight: {
							 | 
						|
											type: [Number, String],
							 | 
						|
											default: 300
							 | 
						|
										},
							 | 
						|
										// 是否可点击
							 | 
						|
										clickable: {
							 | 
						|
											type: Boolean,
							 | 
						|
											default: true
							 | 
						|
										}
							 | 
						|
									},
							 | 
						|
									computed: {
							 | 
						|
										// 地图标记点
							 | 
						|
										markers() {
							 | 
						|
											return [{
							 | 
						|
												id: 1,
							 | 
						|
												latitude: Number(this.latitude),
							 | 
						|
												longitude: Number(this.longitude),
							 | 
						|
												iconPath: '/static/image/location-marker.svg',
							 | 
						|
												width: 30,
							 | 
						|
												height: 30,
							 | 
						|
												callout: {
							 | 
						|
													content: this.addressName,
							 | 
						|
													color: '#333333',
							 | 
						|
													fontSize: 12,
							 | 
						|
													borderRadius: 4,
							 | 
						|
													bgColor: '#ffffff',
							 | 
						|
													padding: 8,
							 | 
						|
													display: 'ALWAYS'
							 | 
						|
												}
							 | 
						|
											}]
							 | 
						|
										}
							 | 
						|
									},
							 | 
						|
									methods: {
							 | 
						|
										// 地图点击事件
							 | 
						|
										onMapTap() {
							 | 
						|
											if (this.clickable) {
							 | 
						|
												this.$emit('mapClick', {
							 | 
						|
													latitude: this.latitude,
							 | 
						|
													longitude: this.longitude,
							 | 
						|
													addressName: this.addressName
							 | 
						|
												});
							 | 
						|
												
							 | 
						|
												// 打开地图导航
							 | 
						|
												this.openLocation();
							 | 
						|
											}
							 | 
						|
										},
							 | 
						|
										
							 | 
						|
										// 打开地图导航
							 | 
						|
										openLocation() {
							 | 
						|
											uni.openLocation({
							 | 
						|
												latitude: Number(this.latitude),
							 | 
						|
												longitude: Number(this.longitude),
							 | 
						|
												name: this.addressName,
							 | 
						|
												address: this.addressDetail || this.addressName,
							 | 
						|
												success: () => {
							 | 
						|
													console.log('打开地图成功');
							 | 
						|
												},
							 | 
						|
												fail: (err) => {
							 | 
						|
													console.error('打开地图失败:', err);
							 | 
						|
													uni.showToast({
							 | 
						|
														title: '打开地图失败',
							 | 
						|
														icon: 'none'
							 | 
						|
													});
							 | 
						|
												}
							 | 
						|
											});
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
								}
							 | 
						|
								</script>
							 | 
						|
								
							 | 
						|
								<style lang="scss" scoped>
							 | 
						|
								.map-card {
							 | 
						|
									background: $uni-bg-color;
							 | 
						|
									border-radius: $uni-border-radius-lg;
							 | 
						|
									overflow: hidden;
							 | 
						|
									box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
							 | 
						|
									margin: $uni-spacing-row-base;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								.map-container {
							 | 
						|
									position: relative;
							 | 
						|
									height: 300rpx;
							 | 
						|
									
							 | 
						|
									.map {
							 | 
						|
										width: 100%;
							 | 
						|
										height: 100%;
							 | 
						|
									}
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								.address-container {
							 | 
						|
									padding: $uni-spacing-row-lg $uni-spacing-row-base;
							 | 
						|
									background: $uni-bg-color;
							 | 
						|
									
							 | 
						|
									.address-name {
							 | 
						|
										font-size: $uni-font-size-lg;
							 | 
						|
										color: $uni-text-color;
							 | 
						|
										font-weight: 500;
							 | 
						|
										margin-bottom: $uni-spacing-col-sm;
							 | 
						|
										line-height: 1.4;
							 | 
						|
									}
							 | 
						|
									
							 | 
						|
									.address-detail {
							 | 
						|
										font-size: $uni-font-size-sm;
							 | 
						|
										color: $uni-text-color-grey;
							 | 
						|
										line-height: 1.4;
							 | 
						|
									}
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								// 点击态效果
							 | 
						|
								.map-card:active {
							 | 
						|
									background: $uni-bg-color-hover;
							 | 
						|
								}
							 | 
						|
								</style>
							 |