vue3实现省市县三级联动选择

1.安装依赖

npm install element-china-area-data -S

2.引入依赖

import { regionData, codeToText} from 'element-china-area-data'

3.实现

<el-form-item label="所在省市县" prop="provinceCityCounty">
  <el-cascader
      :options="regionData"
      v-model="form.provinceCityCounty"
      @change="handleChange"
      style="width: 100%;">
  </el-cascader>
</el-form-item>

4.选择事件

function handleChange(val) {
  console.log(val)
  console.log(codeToText[val[1]])
}
Vue实现省市三级联动的一般步骤如下: 1. 在Vue组件中,定义三个变量分别代表省、市、的数据列表,可以使用数组来存储。 2. 在页面中使用select元素渲染三个下拉框,并将其分别绑定到省、市、的数据列表中。 3. 给省下拉框添加一个change事件,在事件处理函数中根据省的选项值,动态生成对应的市数据列表。 4. 同理,给市下拉框添加一个change事件,在事件处理函数中根据市的选项值,动态生成对应的数据列表。 5. 最后,根据省、市、的选项值,可以得到用户选择的地址信息。 具体代码实现可以参考以下示例: ``` <template> <div> <select v-model="selectedProvince" @change="onProvinceChange"> <option v-for="province in provinces" :key="province.value" :value="province.value">{{ province.label }}</option> </select> <select v-model="selectedCity" @change="onCityChange"> <option v-for="city in cities" :key="city.value" :value="city.value">{{ city.label }}</option> </select> <select v-model="selectedCounty"> <option v-for="county in counties" :key="county.value" :value="county.value">{{ county.label }}</option> </select> </div> </template> <script> export default { data() { return { selectedProvince: '', selectedCity: '', selectedCounty: '', provinces: [ { value: '110000', label: '北京市' }, { value: '120000', label: '天津市' }, { value: '130000', label: '河北省' }, // 省份数据列表 ], cities: [], counties: [] }; }, methods: { onProvinceChange() { // 根据选择的省份,动态生成对应的城市数据列表 const provinceCode = this.selectedProvince; // TODO: 根据省份代码获取对应的城市数据 this.cities = [ { value: '130100', label: '石家庄市' }, { value: '130200', label: '唐山市' }, { value: '130300', label: '秦皇岛市' }, // 城市数据列表 ]; this.selectedCity = ''; // 清空已选城市 this.counties = []; // 清空已选区 }, onCityChange() { // 根据选择的城市,动态生成对应的区数据列表 const cityCode = this.selectedCity; // TODO: 根据城市代码获取对应的区数据 this.counties = [ { value: '130101', label: '市辖区' }, { value: '130102', label: '长安区' }, { value: '130103', label: '桥东区' }, // 区数据列表 ]; this.selectedCounty = ''; // 清空已选区 } } }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wengelovelian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值