若依框vue中收货地址级联关系代码
时间: 2024-01-21 11:17:06 浏览: 23
下面是一个基于 Vue.js 的收货地址级联关系代码示例:
```
<template>
<div>
<select v-model="province" @change="getCity">
<option value="">请选择省份</option>
<option v-for="item in provinceList" :value="item.id">{{ item.name }}</option>
</select>
<select v-model="city" @change="getDistrict">
<option value="">请选择城市</option>
<option v-for="item in cityList" :value="item.id">{{ item.name }}</option>
</select>
<select v-model="district">
<option value="">请选择地区</option>
<option v-for="item in districtList" :value="item.id">{{ item.name }}</option>
</select>
</div>
</template>
<script>
export default {
data() {
return {
province: '',
city: '',
district: '',
provinceList: [],
cityList: [],
districtList: []
}
},
mounted() {
this.getProvince()
},
methods: {
getProvince() {
// 发送请求获取省份列表
// 假设返回的数据格式为 { success: true, data: [{ id: '1', name: '北京' }, { id: '2', name: '上海' }] }
axios.get('/api/province')
.then(response => {
if (response.data.success) {
this.provinceList = response.data.data
}
})
.catch(error => {
console.error(error)
})
},
getCity() {
// 发送请求获取城市列表
// 假设请求参数中包含省份的 id,例如 { provinceId: '1' }
axios.get('/api/city', { params: { provinceId: this.province } })
.then(response => {
if (response.data.success) {
this.cityList = response.data.data
}
})
.catch(error => {
console.error(error)
})
},
getDistrict() {
// 发送请求获取地区列表
// 假设请求参数中包含城市的 id,例如 { cityId: '1' }
axios.get('/api/district', { params: { cityId: this.city } })
.then(response => {
if (response.data.success) {
this.districtList = response.data.data
}
})
.catch(error => {
console.error(error)
})
}
}
}
</script>
```
在上面的代码中,我们使用了三个下拉框来选择省份、城市和地区,使用了 `v-model` 指令来绑定数据,使用了 `@change` 事件来监听下拉框的选择,使用了 `axios` 库来发送请求获取数据。其中, `getProvince` 方法用来获取省份列表, `getCity` 方法用来获取城市列表, `getDistrict` 方法用来获取地区列表。这些方法都是通过发送请求来获取数据,并将数据赋值给相应的变量,然后根据变量的值来渲染下拉框中的选项。