elemenet 级联
两种数据格式
注释掉的是一种格式,未注释的是另一种格式。
<template>
<div>
<!-- <select v-model="selectedProvince" @change="provinceChanged">
<option v-for="province in provinces" :value="province.code">{{ province.name }}</option>
</select> -->
<select v-model="selectedProvince" @change="provinceChanged">
<option v-for="province in provinces" :value="province">{{ province }}</option>
</select>
<select v-model="selectedCity">
<option v-for="city in cities" :value="city">{{ city }}</option>
</select>
</div>
</template>
<script>
export default {
data() {
return {
// provinces: [{code:'s001',name:'省份A'}, {code:'s002',name:'省份B'},{code:'s003',name:'省份C'}],
// citiesMap: {
// 's001': ['城市A1', '城市A2', '城市A3'],
// 's002': ['城市B1', '城市B2', '城市B3'],
// 's003': ['城市C1', '城市C2', '城市C3']
// },
provinces: ['省份A', '省份B', '省份C'],
citiesMap: {
'省份A': ['城市A1', '城市A2', '城市A3'],
'省份B': ['城市B1', '城市B2', '城市B3'],
'省份C': ['城市C1', '城市C2', '城市C3']
},
selectedProvince: '',
selectedCity: ''
};
},
computed: {
cities() {
return this.citiesMap[this.selectedProvince] || [];
}
},
methods: {
provinceChanged() {
this.selectedCity = this.cities[0] || '';
}
},
mounted() {
this.provinceChanged(); // 初始化城市列表
}
};
</script>
浙公网安备 33010602011771号