vue和el-cascader选择地区3级联动

本文介绍了如何在项目中安装和使用ElementChinaAreaData库,包括设置不同版本的依赖,通过el-cascader实现省市区三级联动选择,以及在Vue组件中集成和触发联动事件的方法。

本文参考:element-china-area-data - npm

本文参考:http://t.csdnimg.cn/LL6Ax

1、安装组件依赖(默认是6.1.0版本,如果需要稳定下载5.02)

npm install element-china-area-data -S
npm install element-china-area-data@5.0.2 -S

2.使用 (以下使用6版本,直接选择纯中文的,若使用地域代码options:regionData)

注意:如果使用5.0.2版本  需要使用CodeToText 大写!!

import {
  regionData, // 省市区三级联动数据
  codeToText, // 这是6.1.0版本 5.0.2稳定版是CodeToText 小写的注意!
  pcaTextArr, // 省市区联动数据,纯汉字
  TextToCode, // 5.0.2可以使用 TextToCode['北京']
} from "element-china-area-data";

3、使用el-cascader标签

          <el-cascader
            style="width: 100%"
            :options="options"
            v-model="selectedOptions"
            @change="addressChoose"
          ></el-cascader>

4、data中定义元素

data(){
    return{
      options: pcaTextArr, // 省市区级联数据
      selectedOptions: [], // 选择的地区
    }
}

5、触发事件的函数方法

    /**省市区三级联动 */
    addressChoose(value) {
      console.log("##selectedOptions", value);
      this.form.purchaserArea = value[0] + "/" + value[1] + "/" + value[2];
      // 使用区域代码的时候
      // console.log(
      //   "省市区:",
      //   codeToText[value[0]],
      //   codeToText[value[1]],
      //   codeToText[value[2]]
      // );
    },

Vue3中,要使用Element UI的el-Cascader组件实现城区三联动功能,首先你需要安装Element UI库Vue3。以下是一个简单的步骤指南: 1. **安装依赖**: 使用npm或yarn安装Element UI: ```bash npm install element-ui @vue/cli-plugin-element # 或者 yarn add element-ui @vue/cli-plugin-element ``` 2. **配置Element UI**: 如果你使用的是Vue CLI,需要在`vue.config.js`文件中引入并启用Element UI插件: ```javascript module.exports = { plugins: [ [&#39;element-ui&#39;, { load: true }] ] }; ``` 3. **在组件中导入并使用el-Cascader**: 在你的组件文件(如`CitySelector.vue`)中,导入Cascader组件: ```html <template> <el-cascader :options="cityOptions" v-model="selectedCities" placeholder="选择城市" ></el-cascader> </template> <script setup> import { ref } from &#39;vue&#39;; import { ElCascader } from &#39;element-plus&#39;; // 初始化城市选项数据,假设你有一个包含所有城市层的数据源 const cityOptions = ref([]); // 假设这是从服务器获取的三联动数据 // 当前选中的城市数组 const selectedCities = ref([]); // 省份、城市、区县层的键名 const levelKeys = [&#39;province&#39;, &#39;city&#39;, &#39;district&#39;]; // 设置初始值联动函数 async mounted() { // 初始化cityOptions,这里示例为静态数据,实际应用中替换为你获取数据的方法 cityOptions.value = [ { value: &#39;北京&#39;, label: &#39;北京市&#39;, children: [ { value: &#39;东城区&#39;, label: &#39;东城区&#39;, children: [{ value: &#39;王府井&#39;, label: &#39;王府井&#39; }], }, // 其他区域... ], }, // 其他省份... ]; // 设置联动逻辑,当用户选择城市时,动态加载二城市 function loadChildren(level) { return cityOptions.value.map(city => ({ ...city, children: city.children ? city.children.filter(c => c[level] === this.selectedCities[level]) : [], })); } // 初始化各联数据 await Promise.all( levelKeys.map(async (level) => { if (levelKeys.length > 1) { cityOptions.value = await loadChildren(level); } }) ); } </script> ``` 4. **运行组件**: 将这个组件添加到你的Vue3项目中,并在其他地方通过`<app-city-selector>`这样的标签实例化它。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值