基于element-plus和element-china-area-data的中国省、市、区的地区选择器

目的

        实现新增地址时省、市、区的地区选择,如果使用手写json的方式,由于中国的省、市、区数量很多,会导致工作量很大,且容易出错。

效果图

工具

        element-plus的<el-cascader>级联选择器组件,库element-china-area-data。

        npm库文件下载工具,vue框架。

工具解释

        element-plus的<el-cascader>级联选择器组件可以进行级联选择,可以作为展示数据以供选择的组件。

        库element-china-area-data的核心是china-division,不过china-division的返回值只有当地的六位数字的地区码,无法使用,element-china-area-data对china-division进行了封装,既可以返回地区码,也可以返回具体的值。

操作步骤

        1、在项目中下载element-china-area-data包。

npm install element-china-area-data -S

        2、导入需要的组件。

import { pcaTextArr } from "element-china-area-data";

也有其他的,不过“pcaTextArr”代表省市区联动数据,是纯汉字。

        3、将element-plus的<el-cascader>组件和element-china-area-data联合起来使用。

<el-cascader v-model="area" v-bind:options="pcaTextArr" size="large" />

这样就实现了。

补充

        由于此组件返回值的类型为数组,不便存储和传递,这里提供一种更好的解决方案。

方案描述

        以数组来接受数据,但是转为字符串类型存到数据库中,数组转为字符串可以通过toString()方法来实现,原先数组中的每个数据在字符串中会以“,”逗号隔开。而修改时再将字符串转为数组,字符串转为数组可以通过split()方法实现,传入的参数为分隔符,即split(",")。

代码实现

<script setup>
import { ref, reactive } from 'vue';
import { pcaTextArr } from "element-china-area-data";
let receivingInfo = reactive({
    receivingId : 1001,
    area : '安徽省,芜湖市,镜湖区',
})

let area = ref(receivingInfo.area.split(","));

let updateAddress = () => {
    receivingInfo.area = area.value.toString();
}
</script>

<template>
    <div>
        <p>所在地区 :</p>
        <el-cascader v-model="area" 
                     v-bind:options="pcaTextArr" 
                     style="margin-top: 5px;" 
                     size="large" 
                     @change="updateAddress()"/>
    </div>
</template>

<style scoped>

</style>

参考博文

https://blog.csdn.net/m0_63209237/article/details/134030737

element-china-area-data - npm

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
element-plus提供了地区选择器组件,可以实现三级联动的功能。根据提供的引用内容,可以看到不同的代码示例和用法。 引用\[1\]展示了一个使用element-plus的地区选择器的示例代码,其中使用了`el-cascader`组件来实现三级联动的功能。 引用\[2\]展示了另一个使用element-plus的地区选择器的示例代码,其中使用了`el-cascader`组件来实现三级联动的功能,并且给定了默认的选项。 引用\[3\]展示了使用`elui-china-area-dht`组件的示例代码,该组件也可以实现地区选择的功能,并且提供了一些额外的参数和事件。 综上所述,element-plus提供了多种地区选择器组件,包括`el-cascader`和`elui-china-area-dht`,可以根据具体需求选择适合的组件来实现地区选择功能。 #### 引用[.reference_title] - *1* [ElementPlus el-cascader级联选择器 实现一级菜单单选,二级菜单多选](https://blog.csdn.net/weixin_42365757/article/details/127671228)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [2.vue中element-china-area-data依赖和element-plus级联选择器构建三级联动](https://blog.csdn.net/yangyangdt/article/details/122711509)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [基于vue3.2的element-plus选择器](https://blog.csdn.net/m0_60459392/article/details/127638885)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值