位置: IT常识 - 正文

中国省市区地区选择组件(ElementPlus + Vue3 + TS )(中国各省市区域划分)

编辑:rootadmin
中国省市区地区选择组件(ElementPlus + Vue3 + TS ) 中国省市区地区选择组件(ElementPlus + Vue3 + TS )安装npm install element-china-area-data -S介绍1.引用import { provinceAndCityData, regionData, provinceAndCityDataPlus, regionDataPlus, CodeToText, TextToCode } from 'element-china-area-dat2.用法

推荐整理分享中国省市区地区选择组件(ElementPlus + Vue3 + TS )(中国各省市区域划分),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:中国省份及市区,中国省份及市区,中国省份及市区,中国省市区地区划分,中国省市区地区地图,中国省市区地区划分,中国省市区地区划分,中国省市区地区划分,内容如对您有帮助,希望把文章链接给更多的朋友!

中国省市区地区选择组件(ElementPlus + Vue3 + TS )(中国各省市区域划分)

provinceAndCityData:省市数据(不带“全部”选项) regionData:省市区数据(不带“全部”选项) provinceAndCityDataPlus:省市区数据(带“全部”选项) regionDataPlus:省市区数据(带“全部”选项) CodeToText:例如:CodeToText[‘110000’]输出北京市 TextToCode:例如:TextToCode[‘北京市’].code输出110000

代码<template> <div class="areabox"> <el-select v-model="address.province" placeholder="请选择省" :style="{ width: `${prop.width}px`, marginRight: `${prop.gap}px` }" @change="handleProvinceSelect"> <el-option v-for="item in regionData" :label="item.label" :value="item.value" /> </el-select> <el-select v-model="address.city" placeholder="请选择市" :disabled="!address.province || cityList.length == 0" :style="{ width: `${prop.width}px`, marginRight: `${prop.gap}px` }" @change="handleCitySelect"> <el-option v-for="item in cityList" :label="item.label" :value="item.value" /> </el-select> <el-select v-model="address.area" placeholder="请选择区" :style="{ width: `${prop.width}px` }" :disabled="!address.province || !address.city || areaList.length == 0" @change="handleAreaSelect"> <el-option v-for="item in areaList" :label="item.label" :value="item.value" /> </el-select> </div></template><script lang="ts" setup>import { reactive, computed, ComputedRef } from 'vue'import { regionData, CodeToText } from 'element-china-area-data'const prop = withDefaults( defineProps<{ gap: string | number //选择框中间间隙 width: string | number //选择框宽度 }>(), { gap: '8', width: '210' })//抛出地址const emit = defineEmits<{ (e: 'getAddress', data: { code: string[] //区域码 name: string[] //汉字 isComplete: boolean //是否选择完整,方便校验 }): void}>()let address = reactive<{ province: string city: string area: string}>({ province: '', city: '', area: ''})interface AreaList { value: string label: string children?: AreaList[]}//切换省份函数const handleProvinceSelect = () => { address.city = '' address.area = '' emit('getAddress', { code: [address.province], //区域码 name: [CodeToText[address.province]], //汉字 isComplete: false })}//切换城市函数const handleCitySelect = () => { address.area = '' emit('getAddress', { code: [address.province, address.city], //区域码 name: [CodeToText[address.province], CodeToText[address.city]], //汉字 isComplete: areaList.value.length == 0 ? true : false })}//切换地区函数const handleAreaSelect = () => { emit('getAddress', { code: [address.province, address.city, address.area], //区域码 name: [CodeToText[address.province], CodeToText[address.city], CodeToText[address.area]], //汉字 isComplete: true })}//二级城市列表const cityList: ComputedRef<AreaList[]> = computed((): AreaList[] => { if (!address.province) { return [] } let temp = regionData.find((item: any) => { return item.value == address.province }) return temp.children ? temp.children : []})//三级地区列表const areaList: ComputedRef<AreaList[]> = computed((): AreaList[] => { if (!address.province || !address.city) { return [] } if (cityList.value.length == 0) { return [] } else { let temp = cityList.value.find((item: any) => { return item.value == address.city }) if (temp) { return temp.children ? temp.children : [] } else { return [] } }})</script><style scoped>.areabox { display: flex; align-items: center;}</style>效果图

1.项目需要这种三个下拉选择框

2.选择地址

表单校验//这里只展示地址选择部分import type { FormRules } from 'element-plus'export const FJRrules = reactive<FormRules>({ adress:[ {required: true,validator: addressValidator , trigger: 'change' } ],})const addressValidator = (rule: any, value: any, callback: any) => { if (!value) { //没有选择的情况 return callback(new Error('请选择省/市/区')) } setTimeout(() => { if (!value.isComplete) { //没有选择完整 callback(new Error('请完善地址')) } else { callback() } }, 100)}<template><el-form ref="FJRformRef" inline :model="FJRForm" label-width="120px" :rules="FJRrules"><el-form-item prop="adress" label="省/市/区" required> <area-selected @get-address="handleGetAdress"></area-selected> </el-form-item></el-form></template><script lang="ts" setup>import { FJRrules } from '这里是校验ts文件的地址';const FJRForm = reactive({adress:null,})//接收省市区地址选择组件函数const handleGetAdress = (data:any)=>{ FJRForm.adress = data}</script>
本文链接地址:https://www.jiuchutong.com/zhishi/283457.html 转载请保留说明!

上一篇:Win11 Dev 预览版 22483更新发布推送(附完整更新内容)(win10dev预览版)

下一篇:mtask.exe - mtask是什么进程 有什么用

  • 支付宝的退款会算在支出里吗(支付宝的退款会退到哪里)

    支付宝的退款会算在支出里吗(支付宝的退款会退到哪里)

  • 抖音看了别人的动态,对方知道吗(抖音看了别人的作品会不会留下痕迹)

    抖音看了别人的动态,对方知道吗(抖音看了别人的作品会不会留下痕迹)

  • 抖音怎么删除给别人的评论(抖音怎么删除给商家的评价)

    抖音怎么删除给别人的评论(抖音怎么删除给商家的评价)

  • 为什么我的拼多多设置里面没有拼小圈(为什么我的拼多多没有运费险呢)

    为什么我的拼多多设置里面没有拼小圈(为什么我的拼多多没有运费险呢)

  • 虚拟运营商的号码和普通号码有什么区别(虚拟运营商的号段有哪些)

    虚拟运营商的号码和普通号码有什么区别(虚拟运营商的号段有哪些)

  • 希沃视频展台的使用方法(希沃视频展台的摄像头有什么用)

    希沃视频展台的使用方法(希沃视频展台的摄像头有什么用)

  • 淘宝vr购物取消了吗(淘宝购物如何取消)

    淘宝vr购物取消了吗(淘宝购物如何取消)

  • c语言中&&是什么意思(c语言中是什么意思)

    c语言中&&是什么意思(c语言中是什么意思)

  • p40处理器是麒麟多少(p40pro麒麟芯片)

    p40处理器是麒麟多少(p40pro麒麟芯片)

  • 怎么删掉被移除的微信群(怎么删掉移除的app)

    怎么删掉被移除的微信群(怎么删掉移除的app)

  • 苹果手机进水了充不进去电了怎么办(苹果手机进水了一直自动重启怎么办)

    苹果手机进水了充不进去电了怎么办(苹果手机进水了一直自动重启怎么办)

  • cad面域快捷键(cad相似选择快捷键)

    cad面域快捷键(cad相似选择快捷键)

  • 客户端和服务器区别(客户端和服务器可以在同一个机器上)

    客户端和服务器区别(客户端和服务器可以在同一个机器上)

  • ipados和ios有什么区别(ipad os和ios)

    ipados和ios有什么区别(ipad os和ios)

  • 售后换屏和原来一样吗(售后换屏会不会有瑕疵)

    售后换屏和原来一样吗(售后换屏会不会有瑕疵)

  • 双十一退货红包能退吗(双十一退货红包怎么办)

    双十一退货红包能退吗(双十一退货红包怎么办)

  • 如何把歌词放在桌面上(如何把歌词放在桌面)

    如何把歌词放在桌面上(如何把歌词放在桌面)

  • 淘宝怎么看备注(淘宝怎么看备注历史记录)

    淘宝怎么看备注(淘宝怎么看备注历史记录)

  • oppoa5耳机模式在哪里(oppoa55手机耳机设置在哪)

    oppoa5耳机模式在哪里(oppoa55手机耳机设置在哪)

  • 什么叫开源字体(开源字体可以注册商标吗)

    什么叫开源字体(开源字体可以注册商标吗)

  • 苹果8plus怎么分屏(苹果8plus怎么分身)

    苹果8plus怎么分屏(苹果8plus怎么分身)

  • oppo新款reno相机使用(opporeno2参数)

    oppo新款reno相机使用(opporeno2参数)

  • 优酷怎么取消预约视频(优酷怎么取消订阅自动续费)

    优酷怎么取消预约视频(优酷怎么取消订阅自动续费)

  • 【vue3】关于watch与computed的用法看这个就ok(vue watcher)

    【vue3】关于watch与computed的用法看这个就ok(vue watcher)

  • 个体工商户缴纳税目
  • 增值税应纳税额是要交的钱吗
  • 特许经营权转让合同
  • 各种投资之间的关系
  • 企业合并吸收税务处理
  • 期间费用的界定
  • 第二季度是多少钱
  • 滞留票税务局会罚款多少
  • 合伙企业季度所得税预缴不用纳税调整是吗
  • 税务局可以委托公司代征税,你觉得可能吗?
  • 小规模纳税人开票税率
  • 存出资本保证金是金融资产吗
  • 离境退税政策文件
  • 逾期抵扣办理申请书模板
  • 建筑行业未收款先开发票如何做账?
  • 其他应收款直接计入营业外收入
  • 零售商品收入会计分录
  • 代垫款收到的发票在哪里
  • 应征增值税不含税销售额(3%征收率)怎么算
  • 公司的资本成本取决于投资人的必要报酬率
  • 试营业期间的费用算不算开办费?
  • 小规模税控盘服务费怎么填增值税申报表
  • 小企业成本核算方法有哪几种
  • 农民工签订劳务合同的条件
  • mac dash
  • 简介linux系统中的10个常用命令及功能
  • 出差现场租车费谁承担
  • linux怎么创建一个用户组
  • php中file
  • yolov5 workers
  • 个人股权转让应税凭证名称
  • html转化成图片
  • 前端get请求传数组
  • 路径规划原理
  • 老老实实的人
  • 毕业设计基于51单片机多功能电子钟的设计
  • 装卸费属于什么大类
  • 待摊费用在资产负债表中怎么表示
  • 劳务派遣差额会计分录
  • 预收账款的借贷方向是加还是凿
  • 全套工商登记资料都有什么
  • 国际货运代理公司个人货物
  • 车船税酌定减免
  • 劳务报酬个人所得税税率表2023
  • 一般纳税人领票提交什么资料
  • 企业筹建期间的费用处理
  • 开具房租发票的分录如何做?
  • 个人所得税的纳税期限
  • 半成品加工需要什么手续
  • 报关单是美元收欧元
  • 土地的入账科目
  • 电子发票报销需要在背后签名吗?
  • 建账的要点
  • 商业企业注销应检查哪方面的问题
  • mysql详细教程
  • Win2008 Server Core如何操作?5个步骤学会Win2008 Server Core操作
  • 如何用u盘装系统win10
  • uc聊天大厅
  • 苹果的mac系统
  • windows关闭安全引导
  • win7开机连不上网
  • cmd指令让电脑乱码
  • explorer.exe是什么指令
  • 如何打开音量控制器
  • 微软开始推送win10
  • 一个简单的灵魂福楼拜
  • Python装饰器实现几类验证功能做法实例
  • httprequst向服务端发送请求错误
  • 深入解析抑郁症:什么是它的表现?别小看它的危害程度!
  • node js作用
  • nodejs如何使用
  • unity2d ui
  • 基于JavaScript的图书管理系统
  • 用python学算法
  • jquery课程内容总结
  • androidstudio和idea
  • javascript获取复选框的值
  • 百望税控盘电子发票怎么打
  • 税控盘开票怎么赋码的教程
  • 2017企业所得税年度申报表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设