需求
省市区地址由前半部分的级联选择,后面的具体信息利用input框输入。封装成组件,已有的地址信息由父组件传入,此组件能显示已有的地址信息,且能修改地址的功能。
一、省市区三级联动
1、安装依赖
npm install element-china-area-data -S
2、在组件内引入
import {
provinceAndCityData, regionData, provinceAndCityDataPlus, regionDataPlus, CodeToText, TextToCode } from 'element-china-area-data'
其中:
- provinceAndCityData是省市二级联动数据(不带“全部”选项)
- provinceAndCityDataPlus是省市二级联动数据(带“全部”选项)
- regionData是省市区三级联动数据(不带“全部”选项)
- regionDataPlus是省市区三级联动数据(带“全部”选项)
- “全部"选项绑定的value是空字符串”"
- CodeToText是个大对象,属性是区域码,属性值是汉字 用法例如:CodeToText[‘110000’]输出北京市
- TextToCode是个大对象,属性是汉字,属性值是区域码 用法例如:TextToCode[‘北京市’].code输出110000,TextToCode[‘北京市’][‘市辖区’].code输出110100,TextToCode[‘北京市’][‘市辖区’][‘朝阳区’].code输出110105。
3、代码示例
<template>
<div>
<el-cascader
:options="options"
v-model="selectedOptions"
@change="handleChange">
</el-cascader>
</div>
</template>
<script>
import {
regionData, CodeToText } from 'element-china-area-data'
export default {
name: "cascader",
data() {
return {
options: regionData,
selectedOptions: []
}
},
methods: {
handleChange(val) {
// 将区域码转换成汉字
console.log(CodeToText[val[0]])
console.log(CodeToText[val[1]])
console.log(CodeToText[val[2]])
}
}
}
</script>
问题
高度太高,需要控制其高度。
在全局css:global.css中添加
.el-cascader-menu {
height: 300px;
}
4、效果
打