dqshow: false,
columns: [
[],
[]
],
provincelist: []
<u-picker :show="dqshow" ref="uPicker" :columns="columns" @confirm="confirm" @change="changeHandler"
keyName="name"></u-picker>
xzdq() {
this.dqshow = true;
},
getprovince() {
province().then(res => {
var list = res.data.rows
this.provincelist = []
list.forEach(item => {
this.provincelist.push({
name: item.provinceName,
id: item.provinceCode
})
})
this.columns[0] = this.provincelist
this.$refs.uPicker.setColumnValues(0, this.provincelist)
var parm = {
provinceCode: this.provincelist[0].id
}
city(parm).then(res => {
var city = res.data.data
var newcity = []
city.forEach(v => {
newcity.push({
name: v.cityName,
id: v.cityCode
})
})
this.columns[1] = newcity
this.$refs.uPicker.setColumnValues(1, newcity)
})
})
},
changeHandler(e) {
var that = this
const {
columnIndex,
value,
values, // values为当前变化列的数组内容
index,
// 微信小程序无法将picker实例传出来,只能通过ref操作
picker = this.$refs.uPicker
} = e
// 当第一列值发生变化时,变化第二列(后一列)对应的选项
if (columnIndex === 0) {
var parm = {
provinceCode: value[0].id
}
// picker为选择器this实例,变化第二列对应的选项
city(parm).then(res => {
var city = res.data.data
var newcity = []
city.forEach(v => {
newcity.push({
name: v.cityName,
id: v.cityCode
})
})
picker.setColumnValues(1, newcity)
})
}
},
// 回调参数为包含columnIndex、value、values
confirm(e) {
this.form.province = e.value[0].name
this.form.city = e.value[1].name
this.form.diqu = this.form.province + '-' + this.form.city
this.dqshow = false
},