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.
194 lines
3.6 KiB
194 lines
3.6 KiB
// components/region/region.js
|
|
const {
|
|
getProvinceList,
|
|
getCitysByProId,
|
|
getAreaByCityId,
|
|
getStreetByAreaId
|
|
} = require('../../api/api')
|
|
Component({
|
|
/**
|
|
* 组件的属性列表
|
|
*/
|
|
properties: {
|
|
showRegion: {
|
|
type:Boolean,
|
|
value:false
|
|
},
|
|
traderId: {
|
|
type: String
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 组件的初始数据
|
|
*/
|
|
data: {
|
|
},
|
|
pageLifetimes: {
|
|
show: function () {
|
|
// 页面被展示
|
|
this._bindRegionChange()
|
|
},
|
|
},
|
|
/**
|
|
* 组件的方法列表
|
|
*/
|
|
methods: {
|
|
|
|
/**
|
|
*
|
|
* 选择用户地址
|
|
*
|
|
* @param {*} e
|
|
*/
|
|
_bindRegionChange: function (e) {
|
|
getProvinceList({
|
|
traderId: this.data.traderId,
|
|
}).then((res) => {
|
|
this.setData({
|
|
provinceList: res
|
|
})
|
|
})
|
|
|
|
this.setData({
|
|
provinceShow: true
|
|
})
|
|
},
|
|
|
|
/**
|
|
*
|
|
* 选择省查找市
|
|
*
|
|
* @param {*} e
|
|
*/
|
|
_chooseProvince(e) {
|
|
const ProvinceID = e.currentTarget.dataset.id
|
|
const provinceName = e.currentTarget.dataset.name
|
|
const traderId = e.currentTarget.dataset.tid
|
|
this.setData({
|
|
provinceShow: false,
|
|
cityShow: true,
|
|
backShow: true,
|
|
provinceName: provinceName,
|
|
})
|
|
wx.showLoading({
|
|
title: '加载中',
|
|
mask: true
|
|
})
|
|
getCitysByProId({
|
|
province: ProvinceID,
|
|
traderId: traderId?traderId:'',
|
|
}).then((res) => {
|
|
wx.hideLoading()
|
|
this.setData({
|
|
cityList: res
|
|
})
|
|
})
|
|
},
|
|
|
|
|
|
/**
|
|
*
|
|
* 选择市查找区
|
|
*
|
|
* @param {*} e
|
|
*/
|
|
_chooseCity(e) {
|
|
const city = e.currentTarget.dataset.id
|
|
const cityName = e.currentTarget.dataset.name
|
|
const traderId = e.currentTarget.dataset.tid
|
|
this.setData({
|
|
cityShow: false,
|
|
areaShow: true,
|
|
cityName: cityName
|
|
})
|
|
wx.showLoading({
|
|
title: '加载中',
|
|
mask: true
|
|
})
|
|
getAreaByCityId({
|
|
city: city,
|
|
traderId: traderId?traderId:'',
|
|
}).then((res) => {
|
|
wx.hideLoading()
|
|
this.setData({
|
|
areaList: res
|
|
})
|
|
})
|
|
},
|
|
|
|
|
|
/**
|
|
*
|
|
* 选择区
|
|
*
|
|
* @param {*} e
|
|
*/
|
|
_chooseArea(e) {
|
|
const areaName = e.currentTarget.dataset.name
|
|
this.setData({
|
|
showRegion: false,
|
|
})
|
|
setTimeout(()=>{
|
|
this.setData({
|
|
provinceShow: true,
|
|
areaShow: false,
|
|
backShow: false,
|
|
areaName: areaName
|
|
})
|
|
console.log("选择的省市区===》》》", this.data.provinceName, this.data.cityName, this.data.areaName)
|
|
var data = {
|
|
provinceName: this.data.provinceName,
|
|
cityName: this.data.cityName,
|
|
areaName: this.data.areaName,
|
|
}
|
|
this.triggerEvent('chooseRegion', data)
|
|
},200)
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
*
|
|
* 市区后退
|
|
*
|
|
* @param {*} e
|
|
*/
|
|
_backChooseRegion(e) {
|
|
if (this.data.cityShow) {
|
|
this.setData({
|
|
cityShow: false,
|
|
provinceShow: true,
|
|
backShow: false,
|
|
})
|
|
} else if (this.data.areaShow) {
|
|
this.setData({
|
|
areaShow: false,
|
|
cityShow: true
|
|
})
|
|
}
|
|
},
|
|
|
|
/**
|
|
*
|
|
* 关闭弹框
|
|
*
|
|
* @param {*} e
|
|
*/
|
|
_closeRegion(e) {
|
|
this.setData({
|
|
provinceName: "",
|
|
cityName: "",
|
|
areaName: "",
|
|
addressName: "",
|
|
provinceShow: true,
|
|
showRegion: false,
|
|
cityShow: false,
|
|
areaShow: false,
|
|
backShow: false,
|
|
})
|
|
},
|
|
|
|
|
|
}
|
|
}) |