近期做一个关于物流的项目需要实现获取全国的省市区的功能。查阅资料发现element-ui里面直接提供了这样的一个插件,并且发现十分的好用,于是便直接拿来使用了。

预览

省市区联动组件

有想体验的小伙伴可以进入Element China Area Data体验。

安装

在使用插件前必不可少的操作当然是引入插件啦。

1
npm i element-china-area-data

使用

在你需要使用的页面中引入相应的模块功能

1
import { provinceAndCityData, regionData, provinceAndCityDataPlus, regionDataPlus, CodeToText, TextToCode } from 'element-china-area-data'

如下是功能模块的功能介绍

模块功能介绍
provinceAndCityData省市二级联动数据(不带“全部”选项)
regionData省市区三级联动数据(不带“全部”选项)
provinceAndCityDataPlus省市区三级联动数据(带“全部”选项)
regionDataPlus省市区三级联动数据(带“全部”选项)
CodeToText大对象,属性是区域码,属性值是汉字,可以将区域码转化成真实地址
TextToCode大对象,属性是汉字,属性值是区域码,可以将真实地址转化成区域码

“全部”选项绑定的value是空字符串""
我们需要使用什么类型的组件,就在data中配置options选项即可,如下有示例。

区域码转地址

当我们存储的数据是区域码时,为了显示出来是真实地址,我们需要将区域码转成真实地址,具体的操作我们可以使用CodeToText大对象进行获取。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<template>
<div id="app">
<el-cascader
size="large"
:options="options"
v-model="selectedOptions"
@change="handleChange">
</el-cascader>
</div>
</template>

<script>
// 引入省市区三级联动数据(不带“全部”选项)
import { regionData } from 'element-china-area-data'
export default {
data () {
return {
options: regionData, //配置数据项
selectedOptions: []
}
},

methods: {
handleChange (value) {
console.log(value)// 此处获取的是区域码
console.log(CodeToText[value]) // 将区域码转化成真实地址
console.log(CodeToText['110000']) // 将输出北京市
}
}
}
</script>

地址转区域码

我们有时可能需要将省市区真实地址转化成区域码进行存储,我们可以使用如下操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<template>
<div id="app">
<el-cascader
size="large"
:options="options"
v-model="selectedOptions"
@change="handleChange">
</el-cascader>
</div>
</template>

<script>
// 引入省市区三级联动数据(带“全部”选项)
import { regionDataPlus } from 'element-china-area-data'
export default {
data () {
return {
options: regionDataPlus,
selectedOptions: []
}
},

methods: {
handleChange (value) {
console.log(TextToCode['北京市'].code) // 将输出110000
console.log(TextToCode['北京市']['市辖区'].code) // 将输出110100
console.log(TextToCode['北京市']['市辖区']['朝阳区'].code) // 将输出110105
}
}
}
</script>

对这个有兴趣的可以具体参考element-china-area-data