位置: 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是什么进程 有什么用

  • 微信可以指定回复别人发的消息吗(微信可以指定回复好友吗)

    微信可以指定回复别人发的消息吗(微信可以指定回复好友吗)

  • play4tpro有陀螺仪功能吗(荣耀play4tpro陀螺仪延迟怎么办)

    play4tpro有陀螺仪功能吗(荣耀play4tpro陀螺仪延迟怎么办)

  • airpods连接上没声音(airpods连接上没有耳机图标)

    airpods连接上没声音(airpods连接上没有耳机图标)

  • 苹果锁屏后不显示时间(苹果锁屏后不显示时间和日期)

    苹果锁屏后不显示时间(苹果锁屏后不显示时间和日期)

  • erp系统规划包括哪些环节(erp系统计划)

    erp系统规划包括哪些环节(erp系统计划)

  • 华为手机延时拍照在哪里设置(华为手机延时拍照怎么设置为10秒)

    华为手机延时拍照在哪里设置(华为手机延时拍照怎么设置为10秒)

  • pad屏幕无法旋转(pad屏幕旋转不了)

    pad屏幕无法旋转(pad屏幕旋转不了)

  • 滴滴学生认证条件不符合(滴滴学生认证打几折)

    滴滴学生认证条件不符合(滴滴学生认证打几折)

  • win101803和1903有啥区别(win101809和1903哪个更好)

    win101803和1903有啥区别(win101809和1903哪个更好)

  • iphone来信息闪光灯怎么关闭(iphone来信息闪光光灯)

    iphone来信息闪光灯怎么关闭(iphone来信息闪光光灯)

  • 华为p40pro限量套装有什么(华为p40pro限量版套装都有什么)

    华为p40pro限量套装有什么(华为p40pro限量版套装都有什么)

  • 手机三卡合一什么意思(手机卡3卡合一什么意思)

    手机三卡合一什么意思(手机卡3卡合一什么意思)

  • iphone激活出错怎么解决(iphone激活出错怎么办如何才能恢复)

    iphone激活出错怎么解决(iphone激活出错怎么办如何才能恢复)

  • mcs51单片机是16位的吗(mcs51单片机是属于什么体系结构)

    mcs51单片机是16位的吗(mcs51单片机是属于什么体系结构)

  • 微信账单怎么一键清除(微信账单怎么一次性全部删除掉)

    微信账单怎么一键清除(微信账单怎么一次性全部删除掉)

  • 苹果11电池能用几个小时(苹果11电池能用几年呢)

    苹果11电池能用几个小时(苹果11电池能用几年呢)

  • 抖音举报别人知道吗(抖音举报别人别人知道是我举报的吗)

    抖音举报别人知道吗(抖音举报别人别人知道是我举报的吗)

  • 微信延迟到账怎么撤回到自己账户(微信延迟到账怎么改成实时到账)

    微信延迟到账怎么撤回到自己账户(微信延迟到账怎么改成实时到账)

  • 卸载软件怎么清理干净(卸载软件怎么清理缓存)

    卸载软件怎么清理干净(卸载软件怎么清理缓存)

  • 华为相机滤镜怎么开(华为相机滤镜怎么设置)

    华为相机滤镜怎么开(华为相机滤镜怎么设置)

  • 手机微信如何发送邮箱(手机微信如何发邮箱给别人)

    手机微信如何发送邮箱(手机微信如何发邮箱给别人)

  • 淘宝备注在哪里备注(淘宝备注在哪里找出来)

    淘宝备注在哪里备注(淘宝备注在哪里找出来)

  • 华为noto3的夜间模式在哪里开(华为nova3i夜间模式)

    华为noto3的夜间模式在哪里开(华为nova3i夜间模式)

  • 华为p30可以登两个微信嘛(华为p30可以登录两个微信吗)

    华为p30可以登两个微信嘛(华为p30可以登录两个微信吗)

  • 无法启动此程序因为计算机中丢失api-ms-w(无法启动此程序vcruntime140.dll)

    无法启动此程序因为计算机中丢失api-ms-w(无法启动此程序vcruntime140.dll)

  • 微信名片上显示电话哪里可以设置(微信名片上显示银行卡号码)

    微信名片上显示电话哪里可以设置(微信名片上显示银行卡号码)

  • 关闭Edge Dev浏览器新建标签页下方的资讯内容(新版关闭edge地址栏建议)

    关闭Edge Dev浏览器新建标签页下方的资讯内容(新版关闭edge地址栏建议)

  • 微软输入法中文模式打出来是字母解决方法(微软输入法中文输入卡顿)

    微软输入法中文模式打出来是字母解决方法(微软输入法中文输入卡顿)

  • 苹果电脑录屏的文件位置(苹果电脑录屏的视频保存在哪里)

    苹果电脑录屏的文件位置(苹果电脑录屏的视频保存在哪里)

  • 印花税的处理
  • 营业执照副本上的二维码扫描不出来
  • 建筑发票开具与土增税扣有什么关系?
  • 党建经费可以用来干什么
  • 暂估入库可以跨年吗
  • 单用途卡与多用途卡
  • 自然人税收管理系统换了电脑怎么恢复数据
  • 不进行工商登记会怎样
  • 业务招待费列支内容
  • 二手房增值税如何交
  • 房屋赠与时契税的计税依据
  • 公司清算后未处理财产
  • 计提折旧需要减去预计净残值吗
  • 员工异地缴纳社保协议
  • 4s店买车首付能付一成吗
  • 事业单位取得了应税收入如何纳税?
  • 结转安装费用的会计分录
  • 预支的采购备用金是什么
  • 固定资产清理科目怎么结转
  • 补缴以前年度税费
  • 外购的半成品属于原材料吗
  • 增值税减除后附加税计算方法
  • 企业所得税汇算清缴退税账务处理
  • 建设单位增值税抵扣
  • 收到上级补助收入怎么记账
  • 外币投入资本不产生汇兑损益
  • 汇算清缴工资填哪个数
  • 增值税进项留抵退税的账务处理
  • win10系统声音有杂音
  • 电脑自动进入睡眠模式黑屏
  • 其他应付款转营业外收入需要交增值税吗
  • 销售产品取得收入4500万元
  • CoverDesigner.exe是一个安全进程吗 CoverDesigner进程查询
  • 企业收到政府出资款交增值税
  • 请问简单的
  • 年度汇算清缴怎么查询
  • 绩效奖个人所得怎么算
  • 外商投资企业法人独资属于内资还是外资
  • 世界上最贵的鼠标是用什么做的
  • nginx静态文件服务器
  • 注意力机制工作原理
  • 全网最详细的李白解说来了
  • ps打不了字只显示一个点怎么办
  • python3.9怎么清屏
  • 每个季度30万免增值税
  • 差旅费计入什么
  • 计提税费可以记入成本吗
  • mysql5.7字符集
  • 织梦cms为什么不维护了
  • 税控盘开票机号在哪里能查到
  • 小型微利企业所得税按什么预缴
  • 关于发票的相关法律
  • 食堂购电饭锅账务处理
  • 社保阶段性减免范围
  • 增值税年末必须要交吗
  • 子公司利润母公司还有其他方式吗
  • 补交增值税如何转管理费用
  • 生产型企业加计扣除10%
  • sql server 2012 数据库bak脚本还原
  • win7资源管理器未响应怎么办
  • win7系统修复工具在哪
  • Radio.exe - Radio是什么进程 有什么用
  • 修改linux启动项
  • win7升级到win10有无影响
  • 建立一个新用户并把它加入wheel组,设置用户密码为123
  • win7怎么cmd
  • linux就要这样学
  • jquery mouse
  • css隐藏显示元素的方法
  • nodejs cgi
  • 在javascript中关于alert confirm
  • socket.io与pm2(cluster)集群搭配的解决方案
  • python3.9爬取网页教程
  • javascript设置字体
  • js框架开发实例
  • 龙华区有几个地方
  • 率土之滨怎么提高建设值上限
  • 河北省国家税务局电话
  • 授课费800元个税要收吗
  • 写给税务局的表扬信
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设