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.

104 lines
2.2 KiB

<template>
<view>
<city-select
@cityClick="cityClick"
formatName="cityName"
:activeCity="activeCity"
:hotCity="hotCity"
:obtainCitys="obtainCitys"
:isSearch="true"
:is-refresh="true"
ref="citys"
@refreshLocation="refreshLocation"
></city-select>
</view>
</template>
<script>
import citys from "@/component/CitySelect/citys.js";
import CitySelect from "@/component/CitySelect/city-select.vue";
export default {
components: {
CitySelect,
},
data() {
return {
//需要构建索引参数的名称(注意:传递的对象里面必须要有这个名称的参数)
//当前城市
activeCity: {},
//热门城市
hotCity: [],
//显示的城市数据
obtainCitys: [],
};
},
watch: {
vuex_location: {
handler: function (newVal, oldVal) {
this.activeCity = {
cityName: newVal.city,
cityCode: newVal.cityCode,
};
},
deep: true,
immediate: true,
},
},
mounted() {
if (this.$store.state.vuex_location.status !== 2) {
this.$store.dispatch("getLocation");
}
},
onLoad() {
//动态更新数据
setTimeout(() => {
//修改需要构建索引参数的名称
this.formatName = "cityName";
//修改当前城市
this.activeCity = {
cityName: this.vuex_location.city,
cityCode: this.vuex_location.cityCode,
};
//修改热门城市
this.hotCity = [
{
cityName: "南京",
cityCode: 320100,
},
{
cityCode: "320400",
cityName: "常州",
},
{
cityCode: "320500",
cityName: "苏州",
},
{
cityCode: "310100",
cityName: "上海",
},
{
cityCode: "320200",
cityName: "无锡",
},
];
//修改构建索引数据
this.obtainCitys = citys;
}, 0);
},
methods: {
refreshLocation() {
this.$store.dispatch("getLocation");
},
cityClick(item) {
this.$store.commit("SET_CITY", {
cityName: item.cityName,
cityCode: item.cityCode,
});
},
},
};
</script>
<style lang="scss"></style>