执行 npm install element-china-area-data -S
或者 yarn add element-china-area-data -S
使用时我们需要在页面根据需要 import,主要有下面六个数据或对象。
- provinceAndCityData 是省市二级联动数据(不带”全部”选项)
- regionData 是省市区三级联动数据(不带”全部”选项)
- provinceAndCityDataPlus 是省市区三级联动数据(带”全部”选项)
- regionDataPlus 是省市区三级联动数据(带”全部”选项),其中”全部”选项绑定的 value 是空字符串""
- CodeToText 是个大对象,属性是区域码,属性值是汉字 用法例如:CodeToText[‘110000’]输出北京市
- TextToCode 是个大对象,属性是汉字,属性值是区域码 用法例如:TextToCode[‘北京市’].code 输出 110000,TextToCode[‘北京市’][‘市辖区’].code 输出 110100,TextToCode[‘北京市’][‘市辖区’][‘朝阳区’].code 输出 110105
二级联动 (不带”全部”选项)
页面引入 provinceAndCityData,引入省市二级数据,其中 v-model 绑定的以及 change 时间传递的 value 均是区域码数组,如果我们需要将区域码转换为汉字,我们需要引入 TextToCode,同样,如果我们需要把汉字转为区域码,我们只需要引入 TextToCode
代码:
<template>
<div>
<el-cascader
size="large"
:options="provinceAndCityData"
v-model="selectedOptions1"
@change="handleChange">
</el-cascader>
{{ selectedOptions1 }}
{{ CodeToText[selectedOptions1[0]] }}
{{ CodeToText[selectedOptions1[1]] }}
</div>
</template>
<script>
import { provinceAndCityData , CodeToText} from 'element-china-area-data'
export default {
data () {
return {
CodeToText,
provinceAndCityData,
selectedOptions1: []
}
},
methods: {
handleChange (value) {
console.log(value)
}
}
}
</script>
效果:
二级联动 (带有”全部”选项)
页面引入 provinceAndCityDataPlus,引入省市二级数据 (带全部),其中 v-model 绑定的以及 change 时间传递的 value 均是区域码数组,如果我们需要将区域码转换为汉字,我们需要引入 TextToCode,同样,如果我们需要把汉字转为区域码,我们只需要引入 TextToCode
代码:
<template>
<div>
<el-cascader
size="large"
:options="provinceAndCityDataPlus"
v-model="selectedOptions2"
@change="handleChange">
{{ selectedOptions2 }}
{{ CodeToText[selectedOptions2[0]] }}
{{ CodeToText[selectedOptions3[1]] }}
</el-cascader>
</div>
</template>
<script>
import { provinceAndCityDataPlus,CodeToText } from 'element-china-area-data'
export default {
data () {
return {
CodeToText,
provinceAndCityDataPlus,
selectedOptions2: []
}
},
methods: {
handleChange (value) {
console.log(value)
}
}
}
</script>
省市区三级联动(不带”全部”选项)
页面引入 regionData,引入省市区三级数据 (不带全部),其中 v-model 绑定的以及 change 时间传递的 value 均是区域码数组,如果我们需要将区域码转换为汉字,我们需要引入 TextToCode,同样,如果我们需要把汉字转为区域码,我们只需要引入 TextToCode
代码:
<template>
<div>
<el-cascader
size="large"
:options="regionData"
v-model="selectedOptions3"
@change="handleChange">
</el-cascader>
{{ selectedOptions3 }}
{{ CodeToText[selectedOptions3[0]] }}
{{ CodeToText[selectedOptions3[1]] }}
{{ CodeToText[selectedOptions3[2]] }}
</div>
</template>
<script>
import { regionData,CodeToText} from 'element-china-area-data'
export default {
data () {
return {
CodeToText,
regionData,
selectedOption3: []
}
},
methods: {
handleChange (value) {
console.log(value)
}
}
}
</script>
省市区三级联动(带”全部”选项)
页面引入 regionDataPlus,引入省市区三级数据 (带全部),其中 v-model 绑定的以及 change 时间传递的 value 均是区域码数组,如果我们需要将区域码转换为汉字,我们需要引入 TextToCode,同样,如果我们需要把汉字转为区域码,我们只需要引入 TextToCode
代码:
<template>
<div>
<el-cascader
size="large"
:options="regionDataPlus"
v-model="selectedOptions4"
@change="handleChange">
</el-cascader>
{{ selectedOptions4 }}
{{ CodeToText[selectedOptions4[0]] }}
{{ CodeToText[selectedOptions4[1]] }}
{{ CodeToText[selectedOptions4[2]] }}
</div>
</template>
<script>
import { regionDataPlus ,CodeToText} from 'element-china-area-data'
export default {
data () {
return {
regionDataPlus,
selectedOptions4: []
}
},
methods: {
handleChange (value) {
console.log(value)
}
}
}
</script>
完整代码:
<template>
<div class="app-container calendar-list-container">
<basic-container>
<div>
二级联动 (不带"全部"选项)
<el-cascader
size="large"
:options="provinceAndCityData"
v-model="selectedOptions1"
@change="handleChange">
</el-cascader>
{{ selectedOptions1 }}
{{ CodeToText[selectedOptions1[0]] }}
{{ CodeToText[selectedOptions1[1]] }}
</div>
<div>
二级联动 (带有"全部"选项)
<el-cascader
size="large"
:options="provinceAndCityDataPlus"
v-model="selectedOptions2"
@change="handleChange">
</el-cascader>
{{ selectedOptions2 }}
{{ CodeToText[selectedOptions2[0]] }}
{{ CodeToText[selectedOptions2[1]] }}
</div>
<div>
三级联动 (不带"全部"选项)
<el-cascader
size="large"
:options="regionData"
v-model="selectedOptions3"
@change="handleChange">
</el-cascader>
{{ selectedOptions3 }}
{{ CodeToText[selectedOptions3[0]] }}
{{ CodeToText[selectedOptions3[1]] }}
{{ CodeToText[selectedOptions3[2]] }}
</div>
<div>
三级联动 (带有"全部"选项)
<el-cascader
size="large"
:options="regionDataPlus"
v-model="selectedOptions4"
@change="handleChange">
</el-cascader>
{{ selectedOptions4 }}
{{ CodeToText[selectedOptions4[0]] }}
{{ CodeToText[selectedOptions4[1]] }}
{{ CodeToText[selectedOptions4[2]] }}
</div>
</basic-container>
</div>
</template>
<script>
import {
provinceAndCityData,
regionData,
provinceAndCityDataPlus,
regionDataPlus,
CodeToText,
TextToCode
} from 'element-china-area-data'
export default {
name: 'TableDemo',
data() {
return {
CodeToText,
TextToCode,
provinceAndCityData,
provinceAndCityDataPlus,
regionData,
regionDataPlus,
selectedOptions1: [],
selectedOptions2: [],
selectedOptions3: [],
selectedOptions4: [],
}
},
computed: {},
methods: {
handleChange(value) {
console.log('value', value)
}
}
}
</script>
<style lang="scss" scoped>
.el-dialog__wrapper {
.el-dialog {
width: 61% !important;
.dialog-main-tree {
max-height: 400px;
overflow-y: auto;
}
}
.el-form-item__label {
width: 20% !important;
padding-right: 20px;
}
.el-form-item__content {
margin-left: 20% !important;
}
}
</style>
效果:
获取帮助
如果您在使用过程中遇到任何问题,请点击此处获取帮助。
♥️ 获取支持
遇到问题?
如果您在使用过程中遇到任何问题、有功能建议或需求,请点击此卡片前往 Gitee 仓库提交 Issue。