| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 | <template>	<view class="page">		<view class="search">			<view class="region dis a-c j-s" style="position: absolute; z-index: 9;">				<text>{{city}}</text>				<view style="width: 1px;height: 60%;background-color: #999;"></view>			</view>			<u-search style="position: relative;" placeholder="请输入位置/地名等" v-model="address" :height='80'				:animation='true' :input-style="{paddingLeft: '50px'}" @search="search" @custom="search">			</u-search>		</view>		<view class="addressContent dis f-c">			<view class="dis  f-c" style="margin-bottom: 15px;" v-for="(item,index) in addressList" :key="index"				@click="addressClick(item)">				<text style="font-size: 16px;">{{item.name}}</text>				<view class="dis a-c" style="color: #999;">					<text>{{item.distance}}</text>					<view style="width: 1px;height: 16px;background-color: #999;margin: 0 10px;"></view>					<text>{{item.address}}</text>				</view>			</view>		</view>	</view></template><script>	export default {		data() {			return {				city: "",				address: "",				mapKey: '197d1a12301a306f82533a23651807b8',				latitude: 0,				longitude: 0,				addressList: [],			}		},		async onLoad(params) {			if (!!params) {				let data = JSON.parse(params.info);				this.latitude = data.latitude;				this.longitude = data.longitude;				this.city = data.address.city;			}		},		methods: {			search(val) {				this.address = val;				this.addressConversion();			},			addressConversion() {				uni.request({					url: `https://restapi.amap.com/v3/place/around?key=${this.mapKey}&location=${this.longitude},${this.latitude}&radius=10000&types=&city=${this.city}&keywords=${this.address}`,					method: "GET",					success: (res) => {						this.addressList = res.data.pois;						this.addressList.map(val => {							val.distance = this.conversion(val.distance);							return val;						})					}				});			},			conversion(data) {				if (data < 1000) {					return data + 'm'				} else {					return data / 1000 + 'km'				}			},			addressClick(val) {				let data = val.location.split(',')				//选中之后返回上一页并修改数据				let pages = getCurrentPages(); //获取所有页面栈实例列表				let nowPage = pages[pages.length - 1]; //当前页页面实例				let prevPage = pages[pages.length - 2]; //上一页页面实例				prevPage.$vm.city = val.cityname; //城市				prevPage.$vm.keywords = val.name; //关键词				prevPage.$vm.latitude = data[1]; //经度				prevPage.$vm.longitude = data[0]; //纬度				uni.navigateBack({					delta: 1				});			},		}	}</script><style lang="scss" scoped>	.mymap__map {		width: 100%;		height: 400px;	}	.search {		padding: 10px;		background-color: #fff;		position: fixed;		top: 44;		left: 0;		right: 0;		z-index: 99;	}	.region {		width: 70px;		height: 40px;		background-color: #f2f2f2;		padding: 5px 10px;		border-bottom-left-radius: 50px;		border-top-left-radius: 50px;	}	.addressContent {		padding: 20px;		width: 100%;		height: auto;		background-color: #fff;		position: absolute;		top: 60px;		view {			font-size: 12px;		}	}</style>
 |