element-ui组件实现三级联动

这段代码展示了如何在Vue.js中使用el-select组件创建一个省市区三级联动的选择器。数据结构包括省份、城市和区,并通过v-model和v-for指令动态绑定选项,根据选择的省份和城市更新区的选择项。
摘要由CSDN通过智能技术生成
<template>
  <div class="demo_box">
    <!-- 省 -->
    <el-select v-model="provinceVal" class="province">
      <el-option v-for="item in proOptions" :key="item.value" :label="item.label" :value="item.value">
      </el-option>
    </el-select>
    <!-- 市  通过cityOptions[provinceVal]来展示当前省里面的市-->
    <el-select v-model="cityVal" class="city">
      <el-option v-for="item in cityOptions[provinceVal]" :key="item.value" :label="item.label" :value="item.value">
      </el-option>
    </el-select>
    <!-- 区 同理areaOptions[provinceVal][cityVal]来展示当前省市里面的区-->
    <el-select v-model="areaVal" class="area">
      <el-option v-for="item in areaOptions[provinceVal][cityVal]" :key="item.value" :label="item.label" :value="item.value">
      </el-option>
    </el-select>
  </div>
</template>

<script>
export default {
  name: 'DemoBox',
  data () {
    return {
      // 省份
      proOptions: [
        {
          value: '0',
          label: '浙江省'
        },
        {
          value: '1',
          label: '江西省'
        },
        {
          value: '2',
          label: '湖南省'
        },
        {
          value: '3',
          label: '广东省'
        },
        {
          value: '4',
          label: '福建省'
        },
        {
          value: '5',
          label: '四川省'
        },
        {
          value: '6',
          label: '贵州省'
        },
        {
          value: '7',
          label: '山东省'
        },
        {
          value: '8',
          label: '云南省'
        }
      ],
      // 保存选中省份的值
      provinceVal: '0',
      // 市
      cityOptions: [
        // 浙江的市
        [
          {
            value: '0',
            label: '宁波市'
          },
          {
            value: '1',
            label: '杭州市'
          },
          {
            value: '2',
            label: '温州市'
          },
          {
            value: '3',
            label: '嘉兴市'
          },
          {
            value: '4',
            label: '湖州市'
          },
          {
            value: '5',
            label: '绍兴市'
          },
          {
            value: '6',
            label: '金华市'
          },
          {
            value: '7',
            label: '衢州市'
          },
          {
            value: '8',
            label: '舟山市'
          }
        ],
        // 江西的市
        [
          {
            value: '0',
            label: '南昌市'
          },
          {
            value: '1',
            label: '景德镇市'
          },
          {
            value: '2',
            label: '吉安市'
          }
        ]
      ],
      // 保存市的值
      cityVal: '0',
      // 区
      areaOptions: [
        // 浙江的市
        [
          // 宁波的区
          [
            {
              value: '0',
              label: '奉化区'
            },
            {
              value: '1',
              label: '海曙区'
            },
            {
              value: '2',
              label: '江北区'
            },
            {
              value: '3',
              label: '北仑区'
            },
            {
              value: '4',
              label: '镇海区'
            },
            {
              value: '5',
              label: '鄞州区'
            }
          ],
          // 杭州的区
          [
            {
              value: '0',
              label: '上城区'
            },
            {
              value: '1',
              label: '墅区拱'
            },
            {
              value: '2',
              label: '西湖区'
            },
            {
              value: '3',
              label: '滨江区'
            },
            {
              value: '4',
              label: '萧山区'
            },
            {
              value: '5',
              label: '余杭区'
            },
            {
              value: '6',
              label: '临平区'
            },
            {
              value: '7',
              label: '钱塘区'
            }
          ]
        ],
        // 江西的市
        [
          // 南昌的区
          [
            {
              value: '0',
              label: '安义县'
            },
            {
              value: '1',
              label: '南昌县'
            },
            {
              value: '2',
              label: '青山湖区'
            }
          ],
          // 景德镇市的区
          [
            {
              value: '0',
              label: '昌江区'
            },
            {
              value: '1',
              label: '珠山区'
            },
            {
              value: '2',
              label: '浮梁县'
            }
          ]
        ]
      ],
      // 保存选中的区
      areaVal: '0'
    }
  }
}
</script>

<style>
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值