VUE中使用element-china-area-data

文章介绍了如何在Vue项目中利用element-china-area-data库创建城市选择器。通过安装库、导入数据并进行数据转换,实现三级联动效果。在组件中使用el-cascader,并在change事件中处理选中值,回显到表单模型。
摘要由CSDN通过智能技术生成

使用element-china-area-data的中国省市区级联数据编写城市选择器。以下为解决效果图:
在这里插入图片描述

(1)安装

npm install element-china-area-data -S

(2)引入

import { regionData, CodeToText, TextToCode } from ‘element-china-area-data’

其中:

①regionData是省市区三级联动数据(不带“全部”选项)
②CodeToText是个大对象,属性是区域码,属性值是汉字。
③textToCode是个大对象,属性是汉字,属性值是区域码。

(3)将城市代码转为文字
相关用法:

①CodeToText[‘110000’]输出北京市。
②TextToCode[‘北京市’].code输出110000;
TextToCode[‘北京市’] [‘市辖区’].code输出110100,
TextToCode[‘北京市’] [‘市辖区’] [‘朝阳区’].code输出110105。
数据示例:codeStr=‘110000,110100,110101’, codeArray=[110000,110100,110101]

      <el-form-item label="公司地址" prop="province">
           <el-cascader
             v-model="citySearch"
             :options="provinceOptions"
             :props="provinceProps"
             :style="{ width: '100%' }"
             placeholder="请选择公司地址"
             @change="cityChange"
             clearable
            ></el-cascader>
     </el-form-item>


data() {
  return{
    cityOptions: regionData,//同城搜索的级联选择器的选择范围为已导入的中国省市区地域数据
    citySearch:[],//用来保存同城搜索的级联选择器的已选择数据   
  }
}
created() {
	//回显数据
    queryCompanyInfo().then(res => {
      try {
        let arr = [];
        arr.push(TextToCode[this.formData.province].code);
        arr.push(TextToCode[this.formData.province][this.formData.city].code);
        arr.push(
          TextToCode[this.formData.province][this.formData.city][this.formData.county].code
        );
        this.citySearch = arr;
      } catch (error) {}
    });
...
methods:{
     hcityChange(val) {
      log(val)// ['120000', '120100', '120102', __ob__: Observer]
      this.formData.province = CodeToText[val[0]]; 
      this.formData.city = CodeToText[val[1]];
      this.formData.county = CodeToText[val[2]];
    },
},   
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值