地址级联选择器(element-china-area-data插件)


1.安装

npm install element-china-area-data -S

2.引入

import {regionData, CodeToText, TextToCode} from 'element-china-area-data';

3.使用

<el-cascader :options="areaSelectData" :change-on-select="true" :clearable="true" :filterable="true"
@change="handleChange" class="full-width" size="medium" v-model="form.selectedOptions" />


data() {
  areaSelectData: regionData, // options绑定的数据就是引入的 regionData
}

// 选择公司所在省、市、区
handleChange() {
// form.selectedOptions是地址数组,分别对应省市区,下面的操作是将数组转变为字符串保存,如果不需要以字符串形式保存,可以忽略
this.form.province = this.form.selectedOptions[0];
this.form.city = this.form.selectedOptions[1];
this.form.area = this.form.selectedOptions[2];
if (this.form.province !== undefined) {
this.buildSurveyData.damRegisterOne.constructionPlace = CodeToText[this.form.province] + ' ';
}
if (this.form.city !== undefined) {
this.buildSurveyData.damRegisterOne.constructionPlace += CodeToText[this.form.city] + ' ';
}
if (this.form.area !== undefined) {
// 拼接公司详细地址
this.buildSurveyData.damRegisterOne.constructionPlace += CodeToText[this.form.area] + ' ';
}


// 由于上面将地址转为了字符串,所以在加载页面获取数据时,要重新将字符串转为数组。下面是对数据的处理
if(this.buildSurveyData.damRegisterOne.constructionPlace) {
let address = this.buildSurveyData.damRegisterOne.constructionPlace.split(' ');
// 省份
this.form.selectedOptions.push(TextToCode[address[0]].code);
// 城市
let cityCode = TextToCode[address[0]][address[1]].code;
this.form.selectedOptions.push(cityCode);
// 地区
let areaCode = TextToCode[address[0]][address[1]][address[2]].code;
this.form.selectedOptions.push(areaCode);
}


 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM