uniapp 三级联动地区
<!-- 本示例未包含完整css,获取外链css请参考上文,在hello uni-app项目中查看 -->
<template>
<view>
<picker-view :indicator-style="indicatorStyle" @pickend="pickend" :value="value" @change="bindChange" class="picker-view">
<picker-view-column >
<view class="item" v-for="(item,index) in provinces" :key="index">{{item}}</view>
</picker-view-column>
<picker-view-column>
<view class="item" v-for="(item,index) in citys" :key="index">{{item}}</view>
</picker-view-column>
<picker-view-column>
<view class="item" v-for="(item,index) in areas" :key="index">{{item}}</view>
</picker-view-column>
</picker-view>
</view>
</template>
<script>
import {getProvinces,getMyCity,getAreas,getAreasCode} from "@/components/area.js"
export default {
data() {
return {
title: 'picker-view',
provinces:[],
citys:[],
areas:[],
value: [18, 2, 2],
city_id: 0,
visible: true,
indicatorStyle: `height: 50px;`
}
},
onLoad(){
let index = [18, 2, 2]
this.provinces = getProvinces()
this.citys = getMyCity(index[0])
this.areas = getAreas(index[0], index[1])
this.city_id = getAreasCode(index[0], index[1], index[1])
console.log('data',this.$data)
},
methods: {
bindChange: function (e) {
const val = e.detail.value
if (typeof val[1] == 'undefined') {
val[1] = 0
}
if (typeof val[2] == 'undefined') {
val[2] = 0
}
this.changecity(val)
},
changecity(e){
if(this.value[0] != e[0]){
e[1] = 0
e[2] = 0
this.citys = getMyCity(e[0])
this.areas = getAreas(e[0], e[1])
}
if(this.value[1] != e[1]){
this.areas = getAreas(e[0], e[1])
}
this.value = e
this.city_id = getAreasCode(e[0], e[1], e[2])
}
}
}
</script>
<style>
.picker-view {
width: 750rpx;
height: 600rpx;
margin-top: 20rpx;
}
.item {
line-height: 100rpx;
text-align: center;
}
</style>
JS地区文件:https://files.cnblogs.com/files/zhangzhijian/area.js?t=1723531032&download=true

浙公网安备 33010602011771号