Vue插件element-plus-china-area全国行政区联动(含港澳台)

目录

一、安装

二、引入

三、使用案例

1.省市二级联动(不带“全部”选项)

2.省市二级联动(带“全部”选项)

3.省市区三级联动(不带“全部”选项)

4.省市区三级联动(带“全部”选项)

四、注意事项

1.第1、2级个别查询场景的注意事项

2.第2、3级个别查询场景的注意事项


一、安装

npm install element-plus-china-area -S

二、引入

vue组价中引入:

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

js服务端中引入:

const { provinceAndCityData, regionData, provinceAndCityDataPlus, regionDataPlus, CodeToText, TextToCode } = require('element-plus-china-area/dist/app.commonjs')

数据来源及解释:

2021年统计用区划代码和城乡划分代码(截止时间:2021-10-31,发布时间:2021-12-30)

三、使用案例

1.省市二级联动(不带“全部”选项)

<template>
  <div id="app">
    <el-cascader
      size="large"
      :options="options"
      v-model="selectedOptions"
      @change="handleChange">
    </el-cascader>
  </div>
</template>

<script>
  import { provinceAndCityData } from 'element-plus-china-area'
  export default {
    data(){
      return {
        options: provinceAndCityData,
        selectedOptions: []
      }
    },
    methods:{
      handleChange (value) {
       console.log(value)
      }
    }
  }
</script>

2.省市二级联动(带“全部”选项)

<template>
    <div id="app">
      <el-cascader
        size="large"
        :options="options"
        v-model="selectedOptions"
        @change="handleChange">
      </el-cascader>
    </div>
  </template>

  <script>
    import { provinceAndCityDataPlus } from 'element-plus-china-area'
    export default {
      data () {
        return {
          options: provinceAndCityDataPlus,
          selectedOptions: []
        }
      },
      methods: {
        handleChange (value) {
        console.log(value)
        }
      }
    }
  </script>

3.省市区三级联动(不带“全部”选项)

<template>
  <div id="app">
    <el-cascader
      size="large"
      :options="options"
      v-model="selectedOptions"
      @change="handleChange">
    </el-cascader>
  </div>
</template>

<script>
  import { regionData } from 'element-plus-china-area'
  export default {
    data () {
      return {
        options: regionData,
        selectedOptions: []
      }
    },
    methods: {
      handleChange (value) {
        console.log(value)
      }
    }
  }
</script>

4.省市区三级联动(带“全部”选项)

<template>
  <div id="app">
    <el-cascader
      size="large"
      :options="options"
      v-model="selectedOptions"
      @change="handleChange">
    </el-cascader>
  </div>
</template>

<script>
  import { regionDataPlus } from 'element-plus-china-area'
  export default {
    data () {
      return {
        options: regionDataPlus,
        selectedOptions: []
      }
    },
    methods: {
      handleChange (value) {
        console.log(value)
      }
    }
  }
</script>

四、注意事项

1.第1、2级个别查询场景的注意事项

举个栗子:对于查询条件北京-直辖市-null,如果数据库某条区级为东城区的记录只记录了省级为北京市(未记录市辖区-东城区),则对于查询条件北京市-直辖市-null,将查不出该条记录,实际上应该查出来。

 重庆市除外,因为重庆市第2级不光有市辖区,还有县,不存在上述问题:

经排查,下面三个直辖市存在上述问题,需要特殊处理:

北京市-null-null     等同于     北京市-直辖市-null北京市-直辖市-null     应归为     北京市-null-null

天津市-null-null     等同于     天津市-直辖市-null天津市-直辖市-null     应归为     天津市-null-null

上海市-null-null     等同于     上海市-直辖市-null上海市-直辖市-null     应归为     上海市-null-null

2.第2、3级个别查询场景的注意事项

举个栗子:

对于查询条件河南省-省直辖县级行政区划-济源市,如果数据库某条区级为济源市的记录只记录了省级为河南省,市级为省直辖县级行政区划(未记录济源市),则对于查询条件河南省-省直辖县级行政区划-济源市,将查不出该条记录,实际上应该查出来。

海南省、湖北省则不存在这样的问题,因为它们的省直辖县级行政区划有多个,而不是只有一个,不存在上述问题:

另外,在省直辖县级行政区划以外的其它所有市级行政区划中,如果某主体下也只有1个区级的三级行政区划,也将存在上述问题,需要特殊处理。

经排查,只有河南省的省辖县级行政区划存在上述问题,需要特殊处理:

河南省-省直辖县级行政区划-null     等同于     河南省-省直辖县级行政区划-济源市河南省-省直辖县级行政区划-济源市     应归为     河南省-省直辖县级行政区划-null


参考文章:element-plus-china-area 中文文档教程 - Node Package Readme - 文江博客 

省市区乡镇四级联动插件 `element-china-area-data` 是基于 Vue.js 的组件库 Element Plus 提供的一个功能,用于在用户界面中展示并选择中国的行政区划数据。它可以帮助开发者快速集成一套完整、易于使用的地址输入控件。 ### 安装 首先你需要安装 `element-china-area-data` 插件到你的项目中。可以通过 npm 或者 yarn 进行安装: ```bash npm install element-china-area-data --save # 或者 yarn add element-china-area-data ``` ### 引入与配置 引入 `element-china-area-data` 到你的 Vue 组件,并进行基本配置。通常你会在主组件文件中引入这个插件: ```javascript import { AreaSelect } from 'element-china-area-data'; ``` 然后,在你的 Vue 实例或组件模板中添加 `<el-area-select>` 标签,并通过 `props` 或 `data` 属性配置初始值等信息。 ### 使用示例 假设你想创建一个允许用户选择省份、城市、区县直至乡镇的下拉列表,可以这样设置: ```html <template> <div id="app"> <el-area-select v-model="selectedArea" placeholder="请选择地区"></el-area-select> </div> </template> <script> export default { data() { return { selectedArea: null, }; }, }; </script> ``` 这里,`v-model` 控制了选定的区域值,当用户从下拉菜单中选择区域时,选定的值会更新到 `selectedArea` 中。 ### 配置选项 你可以自定义 `el-area-select` 组件的行为和样式,例如设置默认展开层级或提供预设的选择项: ```html <el-area-select v-model="selectedArea" placeholder="请选择地区" @change="handleAreaChange"></el-area-select> ``` 同时在 JavaScript 文件中添加事件处理函数: ```javascript methods: { handleAreaChange(value) { console.log('Selected area:', value); } } ``` 这将监听每次选择变化,并在控制台打印出已选中的区域。 ### 动态配置 如果需要动态改变区域显示的数据(比如根据其他条件筛选),可以利用插件提供的 API 来获取或设置数据源: ```javascript const areas = await getAreas(); this.$refs.areaSelect.setOptions(areas); ``` ### 扩展功能 为了增强用户体验,你还可以结合 Element Plus 其他组件(如按钮、表单元素等)以及自定义样式来构建复杂的界面。此外,针对国际化需求,你可以在获取数据时考虑加载对应地区的语言翻译。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值