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

  • 盒马鲜生会员怎么办理(盒马鲜生会员怎么退款)

    盒马鲜生会员怎么办理(盒马鲜生会员怎么退款)

  • 淘宝店有订单了怎么发货(淘宝店有订单了怎么一件代发)

    淘宝店有订单了怎么发货(淘宝店有订单了怎么一件代发)

  • 华为p10plus录屏设置(华为p10录制屏幕)

    华为p10plus录屏设置(华为p10录制屏幕)

  • start windows normally是什么意思(start windows normally循环)

    start windows normally是什么意思(start windows normally循环)

  • 电脑有没有后置摄像头(电脑有后摄像头吗)

    电脑有没有后置摄像头(电脑有后摄像头吗)

  • 支持mxm显卡的笔记本(mx显卡支持cuda吗)

    支持mxm显卡的笔记本(mx显卡支持cuda吗)

  • 手机去打印店怎么打印(可以用手机去打印店)

    手机去打印店怎么打印(可以用手机去打印店)

  • 激活etc显示订单不存在怎么办(etc激活查不到订单)

    激活etc显示订单不存在怎么办(etc激活查不到订单)

  • 如何判断ipad主板坏了(怎么判断ipad是什么型号)

    如何判断ipad主板坏了(怎么判断ipad是什么型号)

  • 腾讯会议开启摄像头别人能看见吗(腾讯会议开启摄像头有上限吗)

    腾讯会议开启摄像头别人能看见吗(腾讯会议开启摄像头有上限吗)

  • 计算器上0ff是什么意思(计算器上的ff是什么键)

    计算器上0ff是什么意思(计算器上的ff是什么键)

  • 华为nova5pro厚度(nova5pro有多厚)

    华为nova5pro厚度(nova5pro有多厚)

  • 电脑强制恢复出厂设置(电脑强制恢复出厂按什么键)

    电脑强制恢复出厂设置(电脑强制恢复出厂按什么键)

  • 苹果暗黑模式有什么用(苹果暗黑模式是什么意思)

    苹果暗黑模式有什么用(苹果暗黑模式是什么意思)

  • 夸克链信怎么注销账号(夸克链信网页版登录)

    夸克链信怎么注销账号(夸克链信网页版登录)

  • 淘宝预售怎么加购物车(淘宝预售怎么加购)

    淘宝预售怎么加购物车(淘宝预售怎么加购)

  • 快手如何取消实名认证(快手如何取消实名认证注销)

    快手如何取消实名认证(快手如何取消实名认证注销)

  • 在哪里看自己发的抖音(在哪里看自己发过的状态)

    在哪里看自己发的抖音(在哪里看自己发过的状态)

  • 微信正在使用相机怎么关闭(微信正在使用相机什么意思)

    微信正在使用相机怎么关闭(微信正在使用相机什么意思)

  • 手机定位服务需要一直开启吗(手机定位服务需要打开吗苹果)

    手机定位服务需要一直开启吗(手机定位服务需要打开吗苹果)

  • 安卓关闭软件自动更新(安卓手机怎么关闭软件自启动)

    安卓关闭软件自动更新(安卓手机怎么关闭软件自启动)

  • 手机怎么看qq绑定的身份证(手机怎么看qq绑定了哪些软件)

    手机怎么看qq绑定的身份证(手机怎么看qq绑定了哪些软件)

  • 快手怎么看自己评论的作品(快手怎么看自己的浏览记录)

    快手怎么看自己评论的作品(快手怎么看自己的浏览记录)

  • 苹果手机为什么突然出现激活锁(苹果手机为什么打不开wifi开关)

    苹果手机为什么突然出现激活锁(苹果手机为什么打不开wifi开关)

  • 微信头像右上角蓝圈什么意思(微信头像右上角有个标志)

    微信头像右上角蓝圈什么意思(微信头像右上角有个标志)

  • avgamsvr.exe进程是什么文件 avgamsvr进程是安全的吗(agsservice是什么进程)

    avgamsvr.exe进程是什么文件 avgamsvr进程是安全的吗(agsservice是什么进程)

  • 宁波财税网会计招聘
  • 综合收益总额与什么有关
  • 上个月的普票开错了怎么办
  • 什么是明细分类账簿
  • 政府补贴款需要缴纳增值税
  • 劳务费发票可以抵扣进项税吗
  • 购买方怎么写分录
  • 合伙开有限公司注销流程
  • 个体户办理税务登记有什么好处
  • 员工工资薪金会计如何核算?
  • 工会经费的所得税怎么算
  • 个人互换住房土地增值税
  • 私车公用产生的过路费开个人发票还是公司发票
  • 开发成本可以计增值税吗
  • 科目余额表期初借贷一定要相等吗
  • 小规模企业怎么报税
  • 个人独资企业是什么类型
  • 已经缴纳税款怎么作废申报
  • 一般纳税人小型微利企业印花税
  • 购买方纳税人识别号是什么意思
  • 维修属于劳务还是劳务
  • 新租赁准则承租人计提折旧吗
  • 苹果mac切换桌面快捷键
  • 存在弃置费用的固定资产,如果履行弃置义务
  • php 数组对象
  • 已认证未付款可以退款吗
  • 安全生产专用设备目录
  • 恶搞代码vbs教程
  • 收入的特征包括什么
  • 工程未竣工结算但质保期已过
  • php正则替换字符串
  • 外购商誉是资产吗
  • thinkphp config
  • 出差有补贴
  • 房改转移什么意思
  • 差额征税专用发票税额怎么算
  • 一般情况下公司为什么会吊销
  • 计提坏账准备需要确认递延所得税吗
  • 专用发票费率
  • 用支票偿还货款
  • 帝国cms使用手册
  • 研发费用资本化条件有哪些
  • 税前利润包含
  • 检查sqlserver是否安装完成
  • mysql索引命令
  • 因员工过失造成的工伤用不用赔
  • 税务机关多收税款几年可以要求退回
  • 收到红字发票如何申报增值税?
  • 工厂厨房厨具
  • 进项税留抵怎么做分录
  • 过账发票和不过票的区别
  • 饭店会计做账流程
  • 私营公司无形资产怎么算
  • vs2019连接mysql
  • sql提取数据库表中的数据
  • xp系统删除文件怎么删
  • ntldr.exe - ntldr
  • windows提示音神曲
  • 系和系怎么区分
  • linux使用场合
  • 怎么在ubuntu上编程
  • centos5.5网络配置
  • 电脑ip地址设置在哪里
  • xp电脑网络连接配置异常怎么办
  • centos7添加ip地址
  • win10打开iis管理器命令
  • win 7笔记本连接投影仪
  • 奇门遁甲实例详解
  • android基础入门教程
  • qt绘制3d
  • node.js视频教程
  • itertools.permutations
  • 用批处理删除注册表项
  • python递归查找
  • js禁用键盘事件
  • jquery easing
  • python运行批处理文件
  • python asyncio await
  • 电子税务局怎么添加开票员
  • 生产变压器有什么危害
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设