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>
View Code

 

posted @ 2024-07-08 14:06  丁焕轩  阅读(1)  评论(0编辑  收藏  举报