You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

164 lines
3.6 KiB

<template>
<RefreshView ref="mescrollRef" :hasBack="true" @backClick="backClick" :isInterceptBack="true" text="选择城市" :useDownScroll="false"
:useUpScroll="false" pageBg="#F1F2F5">
<view style="padding-bottom: 200rpx;">
<city-select @cityClick="cityClick" :formatName="formatName" :activeCity="activeCity" :hotCity="hotCity"
:obtainCitys="obtainCitys" :isSearch="true" ref="citys"></city-select>
</view>
</RefreshView>
</template>
<script>
import citys from '@/components/city-select/citys.js'
import citySelect from '@/components/city-select/city-select.vue'
export default {
components: {
citySelect
},
data() {
return {
//需要构建索引参数的名称(注意:传递的对象里面必须要有这个名称的参数)
formatName: 'title',
//当前城市
activeCity: {
id: 1,
title: '南京市'
},
//热门城市
hotCity: [{
id: 0,
title: '南京市'
},
{
id: 1,
title: '南京市'
}
],
//显示的城市数据
obtainCitys: [{
id: 0,
title: '南京'
},
{
id: 1,
title: '北京'
},
{
id: 2,
title: '天津'
},
{
id: 3,
title: '东京'
}
],
location: {
city: "",
code: ""
}
}
},
onLoad: function(option) {
console.log(option);
this.location.city = option.city
this.location.code = option.code
//修改需要构建索引参数的名称
this.formatName = 'cityName'
//修改当前城市
this.activeCity = {
cityName: '正在定位',
cityCode: 0
}
//修改热门城市
this.hotCity = [{
cityName: '北京',
cityCode: 110000
},
{
cityName: '上海',
cityCode: 310000
}, {
cityName: '广州',
cityCode: 440100
}, {
cityName: '深圳',
cityCode: 440300
}, {
cityName: '杭州',
cityCode: 330100
},
]
//修改构建索引数据
this.obtainCitys = citys
let _this = this
uni.getLocation({
type: 'gcj02',
success: function(res) {
let url =
"https://restapi.amap.com/v3/geocode/regeo?key=59970402d1c3f7dc1efff17d4dfcff21&location=" +
res.longitude + "," + res.latitude +
"&poitype=&radius=1000&extensions=all&batch=false&roadlevel=0";
_this.HttpOtherUrl({
url: url
}).then((res) => {
let json = JSON.stringify(res);
let info = JSON.parse(json).regeocode.addressComponent;
// 城市
let city = info.city;
// 城市编码
let code = info.adcode;
//修改需要构建索引参数的名称
_this.formatName = 'cityName'
//修改当前城市
_this.activeCity = {
cityName: city,
cityCode: code
}
})
},
fail() {
//修改当前城市
_this.activeCity = {
cityName: '定位失败',
cityCode: 0
}
}
});
},
methods: {
backClick(){
console.log("location:", this.location);
this.SetResult(this.location)
},
cityClick(item) {
let json = JSON.stringify(item);
if (JSON.parse(json).cityCode == 0) {
this.Toast("当前选择无效")
} else {
console.log("city:", JSON.parse(json).cityName);
console.log("code:", JSON.parse(json).cityCode);
this.location.city = JSON.parse(json).cityName,
this.location.code = JSON.parse(json).cityCode
this.SetResult(this.location)
// uni.$emit('location', {
// city: JSON.parse(json).cityName,
// code: JSON.parse(json).cityCode
// });
// this.Back()
}
}
}
}
</script>
<style>
</style>