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

// 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,
})
},
}
})