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

  • excel怎么十字追踪行和列(excel2016怎么十字追踪行和列)

    excel怎么十字追踪行和列(excel2016怎么十字追踪行和列)

  • 苹果xr有没有指纹解锁(苹果xr有没有指纹功能)

    苹果xr有没有指纹解锁(苹果xr有没有指纹功能)

  • x卡住了关机都关不了(x突然卡住了 机都关不了)

    x卡住了关机都关不了(x突然卡住了 机都关不了)

  • 健康码是不是自动定位(健康码是随机的还是固定的)

    健康码是不是自动定位(健康码是随机的还是固定的)

  • 显卡8个口插6个行吗(显卡八个口怎么插)

    显卡8个口插6个行吗(显卡八个口怎么插)

  • 闲鱼曝光率突然下来了(闲鱼曝光率突然很低)

    闲鱼曝光率突然下来了(闲鱼曝光率突然很低)

  • 没有字如何删除空白页(word怎么删除没有字的行)

    没有字如何删除空白页(word怎么删除没有字的行)

  • 华为mate30短信发不出去(华为mate30短信发不出去接收不到怎么办)

    华为mate30短信发不出去(华为mate30短信发不出去接收不到怎么办)

  • 抖音昵称已重置是什么原因(抖音昵称已重置是注销了吗)

    抖音昵称已重置是什么原因(抖音昵称已重置是注销了吗)

  • 抖音已超出关注上限怎么办(抖音已超出关注怎么删除)

    抖音已超出关注上限怎么办(抖音已超出关注怎么删除)

  • 苹果7p重启方法(苹果7p怎么样重启)

    苹果7p重启方法(苹果7p怎么样重启)

  • 双摄像头的手机为什么只有一个能用(双摄像头的手机第2摄像头是拿来干嘛的)

    双摄像头的手机为什么只有一个能用(双摄像头的手机第2摄像头是拿来干嘛的)

  • 手机账号是什么(华为手机账号是什么)

    手机账号是什么(华为手机账号是什么)

  • 移动数据lte是4g吗(移动数据中的lte)

    移动数据lte是4g吗(移动数据中的lte)

  • 小米mixalpha什么时候上市(小米mixalpha什么时候发布)

    小米mixalpha什么时候上市(小米mixalpha什么时候发布)

  • 手机let打开有什么用处(手机设置里的let开启的好处和坏处)

    手机let打开有什么用处(手机设置里的let开启的好处和坏处)

  • 一加7怎么设置定时开关机(一加7怎么设置来电铃声)

    一加7怎么设置定时开关机(一加7怎么设置来电铃声)

  • 条码打印机设置(条码打印机设置纸张大小为什么不能设置)

    条码打印机设置(条码打印机设置纸张大小为什么不能设置)

  • 苹果手机备份怎么删除(苹果的手机备份)

    苹果手机备份怎么删除(苹果的手机备份)

  • rgb转cmyk怎么让颜色不变(rgb转cmyk怎么让色差减小)

    rgb转cmyk怎么让颜色不变(rgb转cmyk怎么让色差减小)

  • pr怎么设置转场效果(pr怎么设置转场效果持续20帧)

    pr怎么设置转场效果(pr怎么设置转场效果持续20帧)

  • WPS如何设置二级下拉列表(wps如何设置二级编号)

    WPS如何设置二级下拉列表(wps如何设置二级编号)

  • 快影如何去水印(快影如何去水印图片)

    快影如何去水印(快影如何去水印图片)

  • 华为荣耀10和青春版有什么区别(华为荣耀10青春版配置参数)

    华为荣耀10和青春版有什么区别(华为荣耀10青春版配置参数)

  • 拼多多新用户邀请在哪(拼多多新用户邀请在哪提现现金)

    拼多多新用户邀请在哪(拼多多新用户邀请在哪提现现金)

  • 【Node.js+koa--后端管理系统】设计动态发布、修改、查询、删除接口(nodejs hook)

    【Node.js+koa--后端管理系统】设计动态发布、修改、查询、删除接口(nodejs hook)

  • CentOS利用telnet命令检测IP端口的命令方法(centos8 telnet)

    CentOS利用telnet命令检测IP端口的命令方法(centos8 telnet)

  • 个人物品出售要交哪些税
  • 对外支付人民币存在残缺污损的问题
  • 增值税附征怎么计算
  • 契税是什么税,怎么算的
  • 企业所得税申报时间
  • 对方发票丢失怎么办理
  • 委托付款税务认可吗
  • 销项税额是不是开出去的发票金额
  • 对公账户的钱能转到私人账户吗
  • 适用会计制度备注怎么填?
  • 红字发票票据怎么处理
  • 交车辆购置税需要开车去吗
  • 其他货币资金包括
  • 港币转人民币怎么转账
  • 车辆保险怎么计算器
  • 去年的原材料发票能入账吗
  • 营改增的范围包括
  • 职工福利部门的工资
  • 调整已结转的税种有哪些
  • 计提年终奖金的会计分录怎么写
  • 企事业承包承租方缴纳的管理费税费
  • 职工工资个人所得税缴纳标准
  • 甲公司聘用乙为业务经理
  • 专项附加扣除什么时候返还
  • 创新券补贴可以算作高新收入吗?
  • 集团内部资金借贷制度
  • 收到退回留抵退款的短信
  • 在建工程一次还是多次
  • 如何修复windows11无法的注册表值
  • PHP+Mysql+jQuery实现发布微博程序 php篇
  • 工人工资怎么算
  • 期间损益包括
  • 进口付汇流程
  • 股票红利税如何收
  • 北海道的鱼
  • 累计折旧在贷方还是借方
  • php面向对象的三大特征
  • 智能优化算法书籍推荐
  • 浅谈一下新冠的好处
  • vue常用
  • 如何用python给excel每一行添加序号
  • mongodb主从复制和副本集架构有什么联系和区别
  • 出库单可以自制吗
  • 其它应付款的审计内容
  • mysql数据库压力测试工具
  • 公司注销实收资本怎么处理
  • 其他应收款账务核销后放在哪个科目里
  • 结转费用后利润怎么算
  • 供应合同转让协议
  • 保险增值税发票是什么
  • 小微企业如何自己开发票
  • 生产车间生产工人的薪酬计入什么
  • 预收账款占销售收入比例预警值为比例大于
  • 滴滴发票抬头是什么意思
  • 费用分析的作用
  • 什么时候用税前项目举例说明工程项目
  • 红字冲销发票的作用
  • 固定资产怎么录入系统
  • 利润所属科目
  • mysqldump导出csv文件
  • 在window7
  • 提高搜索引擎检索效果的方法
  • linux服务器怎么连接wifi
  • centos双网卡配置超详细
  • 电脑ems是什么意思啊
  • win10如何清除系统
  • shell脚本while true循环
  • python笛卡尔积
  • javascript中window.onload
  • jquery 回车
  • js跨域是什么意思
  • wpf 设置鼠标样式
  • python3 flask
  • 安卓通知栏管理工具
  • Python的collections模块中namedtuple结构使用示例
  • python自带的gui
  • 江苏电子税务局官网登录入口
  • 公司向境外汇款限额
  • 纳税工会经费申请怎么写
  • 辽宁省银监局长
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设