<template>
	<view class="content">
		<view class="map">
			<map @updated='mapChange' ref='map_1' style="width:750rpx;" :style="{'height': height}" :latitude="latitude"
				:longitude="longitude" :markers="marker" @markertap="lookmore" @regionchange="mapchange" show-location></map>
		</view>
		<view class="aedxq-wrap" v-if="isShow">
			<view class="xq-top">
				<view class="aed-name">
					{{showAed.name}}
				</view>
				<view class="aed-dis">
					距离：{{showAed.dis}}
				</view>
				<view class="aed-address" style="padding-top: 10rpx;">
					地址：{{showAed.address}}
				</view>
				<view class="aed-address" style="padding-top: 10rpx;">
					安装位置：{{showAed.addressxq}}
				</view>
			</view>
			<view class="xq-img-wrap">
				<scroll-view scroll-x="true" class="aed-img-scroll">
					<view class="" style="display: flex;flex-wrap: nowrap;">
						<image :src="baseURL + item" mode="heightFix" v-for="item in showAed.imgs"
							class="aed-img" @click="openimg(item)" :key="item"></image>
					</view>
				</scroll-view>
				<view class="aed-phone" @click="makecall(showAed.phone)">
					电话
				</view>
			</view>
			<view class="aed-dh" @click="opendh">
				导航
			</view>
		</view>
	</view>
</template>

<script>
	import {
		saveUrl,
		interceptor
	} from '@/utils/loginUtils.js';
	import {
		mapState,
		mapMutations
	} from 'vuex';
	import espempty from '@/components/espempty';
	import uniPopup from '@/components/uni-popup/uni-popup.vue';
	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
	import {
		getAed,
		MiniLink
	} from '@/api/category.js'
	export default {
		components: {
			uniPopup,
			espempty,
			uniLoadMore
		},
		//相关配置参数
		data() {
			return {
				aedmarker: [],
				loaded: false,
				loadingType: 'more',
				page: 1,
				limit: 1000,
				AEDList: [],
				height: '',
				list: [],
				latitude: '', // 本地坐标
				longitude: '', // 本地坐标
				phone: '',
				marker: [],
				showAed: {
					name: '',
					address: '',
					addressxq: '',
					dis: '',
					lat: '',
					lon: '',
					imgs: [],
					phone: ''
				},
				chooseImg: '',
				mapid: 1,
				isShow: false,
				befoId: 0,
			}
		},
		onReady(res) {
			var _this = this;
			uni.getSystemInfo({
				success: resu => {
					const query = uni.createSelectorQuery();
					query.select('.map').boundingClientRect();
					query.exec(function(res) {
						console.log(res, 'ddddddddddddd');
						_this.height = resu.windowHeight - res[0].top + 'px';
						console.log('打印页面的剩余高度', _this.height);
					});
				},
				fail: res => {}
			});
		},
		onLoad() {
			let obj = this;
			// this.getLocal()
			
		},
		onShow() {
			this.marker = []
			this.list = []
			this.page = 1
			this.loadingType = 'more'
			this.getLocal()
			// if(this.page == 1) {
			// 	this.getLocal()
			// }
		// this.getUrl()
		},
		computed: {
			...mapState('user', ['hasLogin', 'userInfo']),
			...mapState(['baseURL'])
		},
		methods: {
			...mapMutations('user', ['setUserInfo']),
			getUrl() {
					
				MiniLink({
					path: '/pages/applic/aed'
				}).then(res => {
					console.log(res)
				})
			},
			// 
			mapchange(e){
				console.log('地图刷新完毕',e)
				if(this.latitude) {
					this.loadData()
				}else {
					
				}
				
			},
			// 导航
			opendh() {
				console.log('导航')
				let obj = this
				// #ifdef H5
				this.$refs.aedxq.close()
				this.$refs.popup.open();
				// #endif

				// #ifdef MP-WEIXIN
				console.log(obj.showAed.lat, obj.showAed.lon)
				wx.openLocation({
					latitude: obj.showAed.lat * 1,
					longitude: obj.showAed.lon * 1,
					name: obj.showAed.name,
					address: obj.showAed.address
				})
				// #endif

			},
			// 关闭图片弹窗
			closePup() {
				this.$refs.lookimg.close()
			},
			// 打开图片弹窗
			openimg(src) {
				let obj = this
				this.chooseImg = this.baseURL + src

				console.log('chooseImg', this.chooseImg)
				// this.$refs.lookimg.open()
				let arr = obj.showAed.imgs.map(item => {
					return obj.baseURL + item
				})
				uni.previewImage({
					current: this.chooseImg,
					urls: arr
				})
			},
			// 拨打电话
			makecall(num) {
				uni.makePhoneCall({
					phoneNumber: num + ''
				})
			},
			// 关闭aed详情
			closeAedXq() {
				this.$refs.aedxq.close()
			},
			// 打开aed详情
			lookmore(e) {
				console.log(e)
				let obj = this
				if(obj.befoId != 0) {
					obj.marker[obj.befoId].iconPath = '/static/icon/aed-na.png'
				}
				obj.befoId = e.detail.markerId * 1
				let aedobj = obj.AEDList[e.detail.markerId * 1 - 1]
				console.log(aedobj,'aedobj')
				obj.showAed = {
					name: aedobj.name,
					address: aedobj.address,
					addressxq: aedobj.install_address,
					dis: aedobj.range*1 >= 1 ? (aedobj.range + 'km') : (aedobj.distance + 'm'),
					lat: aedobj.latitude,
					lon: aedobj.longitude,
					imgs: aedobj.images.split(','),
					phone: aedobj.phone
				}
				obj.marker[e.detail.markerId].iconPath = '/static/icon/aed-a.png'
				obj.isShow = true
			},
			// 获取本地坐标
			getLocal() {
				let obj = this;
				console.log('ddddddddddddddddddddddddd')
				let weichatBrowser = uni.getStorageSync('weichatBrowser')
				if (weichatBrowser) {
					let wxOjb = require('jweixin-module');
					wxOjb.ready(() => {
						console.log('加载完毕注册事件');
						wxOjb.getLocation({
							type: 'gcj02',
							success(e) {
								console.log(e)
								obj.latitude = Math.abs(e.latitude)
								obj.longitude = Math.abs(e.longitude)
								console.log('本地坐标', obj.latitude, obj.longitude)
								let item = {
									id: 0,
									latitude: obj.latitude,
									longitude: obj.longitude,
									iconPath: '/static/icon/gan.png',
									width: '20',
									height: '33',
								}
								obj.marker.push(item)
								obj.loadData()
							},
							fail(err) {
								obj.getLocal()
							}
						})
					})
				} else {
					console.log('xiaochjengx')
					uni.getLocation({
						type: 'gcj02',
						success(e) {
							console.log(e)
							obj.latitude = Math.abs(e.latitude)
							obj.longitude = Math.abs(e.longitude)
							console.log('本地坐标', obj.latitude, obj.longitude)
							let item = {
								id: 0,
								latitude: obj.latitude,
								longitude: obj.longitude,
								iconPath: '/static/icon/gan.png',
								width: '20',
								height: '33',
							}
							obj.marker.push(item)
							obj.loadData()
						},
						fail(err) {
							obj.getLocal()
						}
					})
				}


			},
			// 地图渲染完毕事件
			mapChange(e) {
				console.log(e,'地图渲染完毕事件');
			},
			// 载入数据
			async loadData() {
				let obj = this;
				if (obj.loadingType == 'loading' || obj.loadingType == 'noMore') {
					return
				}
				obj.loadingType = 'loading'
				getAed({
					latitude: obj.latitude,
					longitude: obj.longitude,
					page: obj.page,
					limit: obj.limit,
					// all: 1
				}).then(({
					data
				}) => {
					console.log(data, 'aed++++++++++++++')
					obj.AEDList = obj.AEDList.concat(data);
					
					
					let arr = data.map(item => ({
						latitude: item.latitude,
						longitude: item.longitude,
						iconPath: '/static/icon/aed-na.png',
						width: '41',
						height: '45',
						id: obj.mapid++,
						address: item.address
					}));
					obj.marker = obj.marker.concat(arr)
					if(obj.page == 1) {
						if(obj.AEDList.length > 0) {
							obj.lookmore({
								detail: {
									markerId: 1
								}
							})
						}
						
					}
					obj.page++
					console.log('加入完成+++++++++++++')
					if (data.length == obj.limit) {
						obj.loadingType = 'more'
					} else {
						obj.loadingType = 'noMore'
					}

				})
			}
		}
	}
</script>

<style lang="scss">
	body,
	page {
		height: 100%;
		width: 100%;
		background-color: #fff;
	}

	.content {
		height: 100%;
		width: 100%;
		background-color: #fff;
	}

	.map {
		width: 100%;
		height: 100%;
	}

	/* #ifdef H5 */
	.location {
		overflow-y: scroll; //溢出就滑动起来
		// z-index: 990;
		position: fixed;
		bottom: 0;
		height: 55%;
		width: 100%;
		background-color: #fff;
		padding: 24rpx;

		//搜索框
		.Search-box {
			height: 80rpx;
			padding-right: 24rpx;
			padding-left: 24rpx;

			.Search-box-sort {
				float: left;
				margin-left: 32rpx;
				margin-right: 19rpx;

				.sort-text {
					width: 57rpx;
					height: 29rpx;
					font-size: 30rpx;
					font-weight: 500;
					color: rgba(51, 51, 51, 1);
					line-height: 58rpx;
					margin-right: 19rpx;
				}

				.sort-img {
					width: 21rpx;
					height: 11rpx;
					margin-bottom: 4rpx;
				}
			}

			.Search-box-size {
				// width:70%;
				height: 58rpx;
				border-radius: 32rpx;
				background-color: #f1f1f1;
				padding-left: 36rpx;
				display: flex;
				align-items: center;

				.box-img {
					height: 32rpx;
					width: 32rpx;
					margin-right: 16rpx;
				}

				// .box-right{
				// 	height: 58rpx;
				// 	// width: 100%;
				// 	background-color: pink;
				// }

				.box-word {
					width: 100%;
					font-size: 26rpx;
					font-weight: 500;
					color: rgba(205, 203, 203, 1);
					line-height: 55rpx;
				}
			}
		}

		.location-item {
			z-index: 1000;
			display: flex;
			justify-content: space-between;
			align-items: center;
			border-bottom: 1rpx solid #E7E8EA;
			padding: 15rpx 0;

			.box-left {
				display: flex;

				.img01 {
					width: 8rpx;
					height: 28rpx;
					margin-right: 18rpx;

					image {
						width: 8rpx;
						height: 28rpx;
					}
				}

				.img02 {
					width: 117rpx;
					height: 117rpx;
					border-radius: 50%;

					image {
						width: 117rpx;
						height: 117rpx;
						border-radius: 50%;
					}
				}

				.info {
					margin-left: 16rpx;

					.info-header {
						display: flex;
						align-items: center;

						.name {
							font-size: 32rpx;
							color: #333333;
						}

						.distance {
							margin-left: 25rpx;
							font-size: 28rpx;
							color: #303133;
						}

						.location-icon {
							margin-left: 10rpx;
							width: 20rpx;
							height: 26rpx;

							image {
								width: 20rpx;
								height: 26rpx;
								display: inline;
							}
						}
					}

					.address {
						font-size: 26rpx;
						color: #333333;
						margin-top: 33rpx;
					}
				}
			}

			.box-right {
				.img {
					height: 107rpx;

					image {
						width: 107rpx;
						height: 107rpx;
					}
				}

				.called {
					margin-right: 16rpx;
					height: 107rpx;
					line-height: 107rpx;
					font-size: 28rpx;
					color: #CB131C;
				}
			}
		}
	}

	/* #endif */

	.list-tpl {
		background-color: #ffffff;
		margin-bottom: 25rpx;
		padding: 25rpx 25rpx;
		font-size: 28rpx;
		border-radius: 15rpx;
		display: flex;
		justify-content: space-between;
		align-items: center;
		border-bottom: 1px solid #f1f1f1;

		.list-left {
			display: flex;
			width: 100%;

			.number {
				font-size: 32rpx;
				margin-right: 14rpx;
			}

			.info {
				width: 100%;

				.title {
					font-size: 32rpx;
					color: #222222;
					font-weight: 500;
				}

				.addr {
					width: 400rpx;
					margin-top: 20rpx;
					font-size: 20rpx;
					font-family: PingFang SC;
					font-weight: 500;
					color: #999999;
				}
			}
		}

		.image {
			width: 20%;
			text-align: center;

			image {
				width: 50rpx;
				height: 50rpx;
			}

			.tip {
				color: #7f7f7f;
				font-size: 21rpx;
			}
		}
	}

	.popup_row {
		width: 100%;
		height: 500rpx;
		background-color: #ffffff;
		border-radius: 20rpx;
		display: flex;
		justify-content: center;
		align-items: center;

		.rows {
			width: 100%;
			padding: 0 24rpx;

			.rows-item {
				height: 80rpx;
				line-height: 80rpx;
				text-align: center;
				width: 100%;
				font-size: 32rpx;
				color: #303133;
			}
		}
	}

	.scroll-wrapper {
		padding-top: 20rpx;
	}

	.aedxq-wrap {


		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		margin: auto;
		width: 710rpx;
		min-height: 400rpx;
		border-radius: 20rpx;
		padding: 0 25rpx;
		background-color: rgba($color: #000000, $alpha: 0.9);
		color: #fff;
		// position: relative;

		.xq-top {
			padding-top: 25rpx;
			width: 660rpx;
			min-height: 210rpx;
			border-bottom: 1px solid #fff;

			.aed-name {
				font-size: 28rpx;
				width: 479rpx;
			}

			.aed-dis {
				padding-top: 10rpx;
				font-size: 22rpx;
				width: 479rpx;
			}
		}

		.xq-img-wrap {
			height: 165rpx;
			width: 660rpx;
			display: flex;
			align-items: center;
			justify-content: space-between;

			.aed-img-scroll {
				height: 107rpx;
				width: 508rpx;
				// background-color: #bfa;
				// display: flex;
				// // justify-content: ;
				// // flex-direction: column;
				// flex-wrap: nowrap;

				.aed-img {
					// display: inline-block;
					height: 107rpx;
					// width: 107rpx;
					margin-right: 15rpx;
					// background-color: red;
					flex-shrink: 0;

				}
			}

			.aed-phone {
				width: 112rpx;
				height: 52rpx;
				line-height: 52rpx;
				text-align: center;
				border: 1px solid #fff;
				border-radius: 10rpx;
			}

			// background-color: red;
		}

		.aed-dh {
			width: 147rpx;
			height: 82rpx;
			line-height: 82rpx;
			text-align: center;
			background-color: #4d8bd6;
			border-radius: 15rpx;
			position: absolute;
			right: 25rpx;
			top: 25rpx;
		}
	}

	.pop-wrap {
		width: 522rpx;
		height: 800rpx;
		// background-color: red;
	}

	.popup-box {
		width: 522rpx;
		height: 800rpx;
		// border-radius: 20rpx;
		position: relative;
		overflow: hidden;
		// background-color: #fff;

		.popup-item {
			width: 100%;
			height: 100%;


			image {
				width: 100%;
				// height: 100%;
			}
		}

	}

	.close {
		display: block;
		width: 40rpx;
		height: 40rpx;
		border: 50%;
		position: absolute;
		// background-color: red;
		bottom: -100rpx;
		left: 0;
		right: 0;
		margin: 0 auto;
	}
</style>
