這里是界面
<view class='value'>
<text class='area_text' bindtap='areaOnShow'>{{areaText}}</text> // 點擊是為了打開下面省市區組件的彈出框
</view>
// 省市區組件彈出框
<van-popup show="{{ popupShow }}" position="bottom" bind:close="areaOnClose"> <van-area area-list="{{ areaList }}" bind:confirm="changeArea" bind:cancel="areaOnClose"/> </van-popup>
data:{ areaText: '選擇省/市/區', //這里是placehold的樣式 popupShow: false, // 這里是開關省市區的組件 areaList: '', city_id: null, //市 district_id: null, //區 province_id: null, //省 }
// 數據 data的 areaList
//獲取省市區 getAreaList: function () { =============先從接口獲取省市區 const that = this; var postData = {}; let header = getApp().header; let datainfo = requestSign.requestSign(postData); header.sign = datainfo; wx.request({ url: api.get_area, data: postData, header: header, method: 'POST', dataType: 'json', responseType: 'text', success: (res) => { console.log(res); let areaList = { ================================data上的areaList給用戶看的 province_list: res.data.data.province_list, city_list: res.data.data.city_list, county_list: res.data.data.county_list, } let areaIdList = { ================================選擇的地址去匹配省市區的id province_id_list: res.data.data.province_id_list, city_id_list: res.data.data.city_id_list, county_id_list: res.data.data.county_id_list, } that.setData({ areaList: areaList, areaIdList: areaIdList }) }, fail: (res) => {}, }) },
1 //獲取選擇的省市區 2 changeArea: function (event) { 3 const that = this; 4 console.log(event); 5 let areaArray = event.detail.values; 6 let area = []; 7 let provinceCode = ''; 8 let cityCode = ''; 9 let countyCode = ''; 10 let provinceId = ''; 11 let cityId = ''; 12 let countyId = ''; 13 // 遍歷這個數組 14 for (var i = 0; i < areaArray.length; i++) { 15 area.push(areaArray[i].name); // 把每一項的省市區的name去出來 16 // 把選擇的省市區的code取出來 17 provinceCode = areaArray[0].code; 18 cityCode = areaArray[1].code; 19 countyCode = areaArray[2].code; 20 } 21 // 這個areaIdList是接口里獲取的最大的areaIDList 22 let areaIdList = that.data.areaIdList; 23 // 分別把省市區遍歷一次 24 for (var key in areaIdList.province_id_list) { 25 // 遍歷如果省市區的code 和 用戶選擇的code相等了 就取出當前的id 26 if (key == provinceCode) { 27 provinceId = areaIdList.province_id_list[key]; 28 } 29 } 30 for (var key in areaIdList.city_id_list) { 31 if (key == cityCode) { 32 cityId = areaIdList.city_id_list[key]; 33 } 34 } 35 for (var key in areaIdList.county_id_list) { 36 if (key == countyCode) { 37 countyId = areaIdList.county_id_list[key]; 38 } 39 } 40 let areaText = area.join("/"); 41 that.setData({ 42 areaText: areaText, 43 province_id: provinceId, 44 city_id: cityId, 45 district_id: countyId 46 }) 47 that.areaOnClose(); 48 },