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

  • 华为mate30pro可以分屏吗(华为mate30pro可以用120w充电器吗)

    华为mate30pro可以分屏吗(华为mate30pro可以用120w充电器吗)

  • 黄v和蓝v有什么区别

    黄v和蓝v有什么区别

  • html中空格代码是什么(html空格代码/n)

    html中空格代码是什么(html空格代码/n)

  • oppor11什么时候上市(oppor11什么时候停产的)

    oppor11什么时候上市(oppor11什么时候停产的)

  • 快手粉丝团怎么升三级(快手粉丝团怎么创建)

    快手粉丝团怎么升三级(快手粉丝团怎么创建)

  • 抖音一天发几个作品容易热门(抖音一天发几个视频容易火)

    抖音一天发几个作品容易热门(抖音一天发几个视频容易火)

  • 激萌怎样用照片制作漫画头像(激萌怎么照相好看)

    激萌怎样用照片制作漫画头像(激萌怎么照相好看)

  • 手机qq空间签名怎么改(手机qq空间签名在哪里设置)

    手机qq空间签名怎么改(手机qq空间签名在哪里设置)

  • word表格打印出来没表格线(word表格打印出来有阴影)

    word表格打印出来没表格线(word表格打印出来有阴影)

  • 华为荣耀9x和畅享10 plus有什么区别(华为荣耀9X和畅享9P电池通用吗)

    华为荣耀9x和畅享10 plus有什么区别(华为荣耀9X和畅享9P电池通用吗)

  • 16g内存卡能录几天(16g的内存卡能够录多长时间)

    16g内存卡能录几天(16g的内存卡能够录多长时间)

  • oppor11语音助手怎么唤醒(oppor11语音助手怎么关闭)

    oppor11语音助手怎么唤醒(oppor11语音助手怎么关闭)

  • 白苹果怎么修复不丢数据(白苹果还有恢复原来的模样吗)

    白苹果怎么修复不丢数据(白苹果还有恢复原来的模样吗)

  • 华为20pro与华为p20pro区别(华为20pro与华为7se)

    华为20pro与华为p20pro区别(华为20pro与华为7se)

  • 亚马逊怎么退货(亚马逊怎么退货退款)

    亚马逊怎么退货(亚马逊怎么退货退款)

  • 华为mate30需要贴膜吗(华为mate30需要贴屏幕膜吗)

    华为mate30需要贴膜吗(华为mate30需要贴屏幕膜吗)

  • 微信开启横屏式是干嘛的(微信打开横屏模式)

    微信开启横屏式是干嘛的(微信打开横屏模式)

  • 微信乘车码可以欠费嘛(微信乘车码可以坐重庆地铁吗)

    微信乘车码可以欠费嘛(微信乘车码可以坐重庆地铁吗)

  • 微信为什么要发原图(微信为什么要发红包)

    微信为什么要发原图(微信为什么要发红包)

  • 华为mate20pro指纹在哪(华为mate20pro指纹锁在哪里设置)

    华为mate20pro指纹在哪(华为mate20pro指纹锁在哪里设置)

  • 苹果11怎么设置双卡(苹果11怎么设置来电闪光灯)

    苹果11怎么设置双卡(苹果11怎么设置来电闪光灯)

  • 计算机上的date是什么键(计算机上的单位怎么取消)

    计算机上的date是什么键(计算机上的单位怎么取消)

  • 抖音上传照片怎么剪音乐(抖音上传照片怎么不能滑动了呢)

    抖音上传照片怎么剪音乐(抖音上传照片怎么不能滑动了呢)

  • 抖音换头发颜色是什么特效(抖音换头发颜色的特效在哪里)

    抖音换头发颜色是什么特效(抖音换头发颜色的特效在哪里)

  • CAD怎么将画的图虚拟打印到文件(cad怎么将画的图复制出来)

    CAD怎么将画的图虚拟打印到文件(cad怎么将画的图复制出来)

  • 全民k歌视频保存到手机(全民k歌视频保存不了)

    全民k歌视频保存到手机(全民k歌视频保存不了)

  • 无合同销售收入怎么算
  • 税务局 强制
  • 按份共同保证和连带共同保证
  • 待摊费用属于企业的费用
  • 增值税发票记账联要盖章吗
  • 收到税务局汇算清缴通知
  • 公司员工社保怎么办理的
  • 闲置设备折旧企业所得税税前扣除
  • 资产负债表试算平衡表是什么
  • 已报废的固定资产
  • 会计凭证归档后几年后可销毁
  • 上市公司存货跌价准备怎么看
  • 政策性搬迁资产损失情况怎么写
  • 国外客户给你寄来礼物怎么感谢
  • 因产品不合格退回报废会计处理
  • 朋友挂靠公司社保
  • 退回多交的所得税怎么做分录小规模
  • 增值税普通发票可以抵扣吗
  • 企业拥有房产每年如何交税
  • 营改增以后算税公式
  • 三证合一怎么查询
  • 未分配利润转入本年利润
  • 一次性计提折旧的政策
  • 定额发票可以抵进项税吗
  • 发票已认证还能作废吗2020
  • 开启资源管理器自动刷新功能
  • redis网络模型 框架图
  • 奖金发放的原则
  • vue设置图片
  • vue引入svg图片
  • yii2-admin
  • 发生的计提费用没有发生怎么办
  • 事业单位增值税可以抵扣吗
  • tomcat服务器在哪个位置
  • bash详解
  • 升级到miui14感觉耗电快了
  • 权益法的比例是多少
  • 在建工程业务核算
  • 外贸出口退税进项发票有多家供应商怎么匹配
  • 网上怎么申请增驾摩托车
  • 应付债券利息费用计算表怎么填
  • javascript 箭头
  • 公司茶水间管理规定
  • 企业做账会计分录流程
  • 在sysservers中找不到服务器
  • 银行多扣了钱法律是怎么判
  • 普通发票可以开多少税率
  • 宣传费怎么做账
  • 运输费计入什么科目里面
  • 勾选通行费发票后如何做分录
  • 出口退税企业如何更正申报增值税
  • 会计凭证后面需要打勾的是
  • 营改增人力资源服务
  • 新准则委托代建会计处理
  • 房地产企业会计核算和税务处理大全
  • 新买的电脑如何验机
  • winxp文件夹选项在哪
  • Fedora Core 8中yum设置
  • 如何关闭电脑端口
  • windows7自带的画图软件在哪里打开
  • linux网络编程视频教程
  • centos清理缓存
  • linux中dhcp
  • flashhelperservice.exe是什么程序
  • win8.1卸载系统自带应用工具
  • Linux如何使用clash
  • opengl 实现
  • 小郭聊一聊
  • angular的ngif
  • 细说javascript
  • python win
  • android studio绑定按钮
  • 国家税务局河南省税务总局官网
  • 新收入准则租赁业务
  • 大连个体营业执照怎么办
  • 增值税运输费用税额计算
  • 国税发票真伪查询手机怎么查
  • 江西企业社保缴费基数查询
  • 上海增值税怎么报税流程
  • 北京社保个人账户10万元退休金多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设