<template>
	<view class="content">
		<view class="topView">
			<!-- 搜索 -->
			<view class="searchBoxBg">
				<searchBox placeholder="请输入城市名称" @search='search($event)'></searchBox>
			</view>
		</view>

		<!-- 城市列表 -->
		<scroll-view class="scroll-view" scroll-y scroll-with-animation="true" enable-back-to-top="true"
			:scroll-into-view="toIndex" v-if="!searchValue">

			<!-- 您所在的地区 -->
			<view class="nowArea">
				<view class="area">定位城市</view>
				<view class="dingwBox">
					<view v-if="locationCity.cityName" @click="selectDingCity(locationCity)" class="dingweiCity">
						{{locationCity.cityName}}
					</view>
					<view v-else class="dingweiCity" style="color: #999999;">未获取</view>

					<view class="dingBg" @click="againDingWei()">
						<image src='../../static/img/icon_location.png' class="icon"></image>
						<text class="text">重新定位</text>
					</view>

				</view>
			</view>


			<view class="listContent">
				<view class="city-list">
					<!-- 城市列表  -->
					<view v-for="(item, index) in cityData">
						<view class="c-title">{{item['首字母']}}</view>
						<view class="item" v-for="(city,index2) in item['城市列表']" @click="selectCity(city)">
							{{city.city}}
						</view>
					</view>
				</view>

				<!-- 字母列表 -->
				<view>
					<view v-for="(item, index) in alphabet">
						<view class="alphabet" :class="{select:toIndex == item}" @click="tap(item)">
							{{item}}
						</view>
					</view>
				</view>
			</view>



		</scroll-view>
		
		
		<!-- 搜索列表  -->
		<view class="reach-content" v-show="searchValue">
			<block v-show="searchData.length">
				<view v-for="(item, index) in cityData">
					<view class="item" v-for="(city,index2) in item['城市列表']" @click="selectCity(city)">
						{{city.city}}
					</view>
				</view>
			</block>
			<!-- 无数据空白页 -->
			<view class="nodataBox" v-if="searchData.length == 0">
				<image src="../../static/img/pic_empty_def.png" mode="widthFix" class="nodataImg"></image>
				<view class="noTxt">暂无数据</view>
			</view>
		</view>



		

	</view>
</template>

<script>
	import searchBox from '@/components/searchBox/searchBox.vue'
	export default {
		components: {
			searchBox
		},

		data() {
			return {
				searchValue: '',
				cityData: [],
				alphabet: [],
				toIndex: '', //跳转的索引的字母
				searchData:[],
				locationCity: {
					cityName: '',
					cityCode: '',
					lng: '',
					lat: '',
				},
				

			}
		},
		onLoad() {
			this.getData();
		},
		onShow() {
			var nowCity = uni.getStorageSync("locationCity");
			if (nowCity) {
				this.locationCity = nowCity
			} else {

				this.getLocation()
			}
			this.getData();
		},
		methods: {
			tap(item) {
				console.log('字母点击', item);
				this.toIndex = item
			},
			againDingWei() {
				console.log('重新定位');
				this.getLocation();
			},
			getLocation() {

				const that = this
				uni.getLocation({
					type: 'gcj02',
					success: function(res) {
						console.log('定位', res)
						that.locationCity.lng = res.longitude
						that.locationCity.lat = res.latitude

						
						that.getAdress();

					},
					fail(err) {
						console.log(err)

					}
				});
			},
			getAdress() {
				// 根据经纬度 逆城市地理编码 获取城市信息
				var location = this.locationCity.lng + ',' + this.locationCity.lat
				uni.request({
					url: 'https://restapi.amap.com/v3/place/around',
					data: {
						key: '064b6a4a8ade55656edcde2f528876de',
						location: location,
						types: "190000",
						extensions: "all",
						radius: 100
					},
					dataType: "json",
					success: (res) => {
						console.log('定位城市', res);
						let cityname = res.data.pois[0].cityname;
						var cityCode = res.data.pois[0].adcode
						cityCode = cityCode.slice(0, -2)
						cityCode = cityCode + '00'
						this.locationCity.cityName = cityname
						this.locationCity.cityCode = cityCode

						uni.setStorage({
							key: 'locationCity',
							data: this.locationCity,
							success: function() {
								console.log('定位城市,保存成功');
							}
						})
					}
				});
			},
			search(val) {
				// console.log(val);
				this.searchValue = val

				this.getData()
			},
			getData() {
				uni.showLoading({
					title: '加载中'
				})

				let url = 'worldKeepCar/worldHome/queryCityRole',
					params = {
						city: this.searchValue ? this.searchValue : '',
					}
				this.$http(url, params, 'GET').then(res => {
					uni.hideLoading()

					if (res.code == 0) {
						this.cityData = res.data
						var arr = []
						this.cityData.forEach((item, index) => {
							arr.push(item.首字母)
						});
					}
					this.alphabet = arr
					


				})
			},
			selectDingCity(locationCity){
				console.log('选择了定位城市:', locationCity);
				var city={}
				city.city = locationCity.cityName
				city.code = locationCity.cityCode
				uni.setStorage({
					key: 'selectCity',
					data: city,
					success: function() {
						console.log('选择了定位城市,保存成功');
					}
				})
				
				uni.navigateBack({
				
				})
			},
			selectCity(city) {

				console.log('选择的城市:', city);

				uni.setStorage({
					key: 'selectCity',
					data: city,
					success: function() {
						console.log('选择的城市,保存成功');
					}
				})

				uni.navigateBack({

				})

			},

		},


		onPullDownRefresh() {

			this.getData()
			setTimeout(function() {
				uni.stopPullDownRefresh();
			}, 1000);
		},

	}
</script>

<style>
	
	.content {
		
		background: #FFFFFF;
		min-height: 100vh;
	}

	.topView {
		background: #FFFFFF;
		position: fixed;
		width: 100%;
		height: 120rpx;
		z-index: 99;
	}

	.searchBoxBg {

		width: 100%;
		background-color: #FFFFFF;
		border-top: 1rpx solid #EEEEEE;
	}

	.searchBox {
		display: flex;
		height: 72rpx;
		margin: 24rpx;
		background-color: #F4F5F7;
		border-radius: 36rpx;
	}

	.scroll-view {
		width: 100%;
		height: calc(100vh - 120rpx);
		box-sizing: border-box;
		padding: 120rpx 24rpx 20rpx;

	}

	.nowArea {
		width: 100%;
		height: 147rpx;
	}

	.area {
		color: #999999;
		font-size: 24rpx;
		margin-bottom: 20rpx;
	}

	.dingwBox {
		display: flex;
		justify-content: space-between;
	}

	.dingweiCity {
		background-color: #F4F5F7;
		border-radius: 49rpx;
		width: 140rpx;
		height: 64rpx;
		text-align: center;
		line-height: 64rpx;
		font-size: 26rpx;
	}

	.dingBg {
		display: flex;
		align-items: center;
		color: #3F90F7;
		font-size: 26rpx;

	}

	.icon {
		width: 33rpx;
		height: 33rpx;
		margin-right: 5rpx;
	}

	.listContent {
		display: flex;
		justify-content: space-between;
	}

	.city-list {
		display: flex;
		flex-direction: column;
		width: 95%;
	}


	.c-title {
		color: #999999;
		font-size: 24rpx;
		height: 33rpx;
		line-height: 33rpx;
		padding-top: 30rpx;
	}

	.item {
		width: 100%;
		height: 46rpx;
		padding: 30rpx 13rpx;
		color: #3C3C3C;
		font-size: 28rpx;
		border-bottom: 1rpx solid #EEEEEE;
	}

	.alphabet {
		font-size: 22rpx;
		font-weight: bold;
		color: #999999;
		width: 4%;
		margin: 20rpx 0;
		text-align: center;
	}

	.select {
		color: #FF4F00;
	}

	
	.reach-content{
		width: 100%;
		height: calc(100vh - 120rpx);
		box-sizing: border-box;
		padding: 120rpx 24rpx 20rpx;
	}











	/* 空白页css */
	.nodataBox {
		text-align: center;
	}

	.nodataImg {
		width: 400rpx;
		padding-top: 300rpx;
	}

	.noTxt {
		font-size: 30rpx;
		color: #999999;
		padding-top: 50rpx;
	}
</style>