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

  • 腾讯会议怎么设置长期会议号(腾讯会议怎么设置静音)

    腾讯会议怎么设置长期会议号(腾讯会议怎么设置静音)

  • 瞬间被隐藏是怎么回事(瞬间被隐藏怎么处理)

    瞬间被隐藏是怎么回事(瞬间被隐藏怎么处理)

  • vivo手机刷机还要密码,怎么办(vivo手机刷机还原所有设置还要密码)

    vivo手机刷机还要密码,怎么办(vivo手机刷机还原所有设置还要密码)

  • 标准vga图形适配器是什么显卡(标准vga图形适配器感叹号)

    标准vga图形适配器是什么显卡(标准vga图形适配器感叹号)

  • lan2闪烁但是连不上网(lan2灯一直闪上不了网)

    lan2闪烁但是连不上网(lan2灯一直闪上不了网)

  • 打印机状态空闲为啥打印不了(打印机状态空闲是什么意思)

    打印机状态空闲为啥打印不了(打印机状态空闲是什么意思)

  • realme x2是什么牌子的手机(realme x2是什么牌子)

    realme x2是什么牌子的手机(realme x2是什么牌子)

  • 手机右上角出现箭头是什么意思(手机右上角出现月亮标志怎么回事)

    手机右上角出现箭头是什么意思(手机右上角出现月亮标志怎么回事)

  • 微信撤回的文件对方还能看到吗(微信撤回的文件怎么恢复)

    微信撤回的文件对方还能看到吗(微信撤回的文件怎么恢复)

  • 群主怎么删除别人发的信息(群主怎么删除别人的接龙)

    群主怎么删除别人发的信息(群主怎么删除别人的接龙)

  • 多媒体输入设备有哪些(常用的多媒体输入设备)

    多媒体输入设备有哪些(常用的多媒体输入设备)

  • 微信连续加多少人会被限制(微信连续加多少个好友就要频繁操作被锁住)

    微信连续加多少人会被限制(微信连续加多少个好友就要频繁操作被锁住)

  • 路由器pon是什么意思(路由器pon是什么灯)

    路由器pon是什么意思(路由器pon是什么灯)

  • id头像换不了怎么回事(id头像换不了怎么办)

    id头像换不了怎么回事(id头像换不了怎么办)

  • ipad保修需要发票吗(ipad保修需要发票吗现在)

    ipad保修需要发票吗(ipad保修需要发票吗现在)

  • 红米手机录音在哪个文件夹(红米手机录音在哪个文件夹里面)

    红米手机录音在哪个文件夹(红米手机录音在哪个文件夹里面)

  • 库乐队没有共享怎么办(库乐队没有共享的铃音)

    库乐队没有共享怎么办(库乐队没有共享的铃音)

  • 小米三指截屏怎么设置(小米三指截屏怎么开)

    小米三指截屏怎么设置(小米三指截屏怎么开)

  • 耳机怎么用(耳机怎么用麦克风说话)

    耳机怎么用(耳机怎么用麦克风说话)

  • crystal是什么牌子(crystalmoist什么牌子)

    crystal是什么牌子(crystalmoist什么牌子)

  • 抖音怎么弄小号(抖音怎么弄小号没有其他手机号)

    抖音怎么弄小号(抖音怎么弄小号没有其他手机号)

  • 淘宝卖家如何设置淘金币抵钱(淘宝卖家如何设置优惠券)

    淘宝卖家如何设置淘金币抵钱(淘宝卖家如何设置优惠券)

  • 为什么qq看不到火花(为什么qq看不到浏览记录)

    为什么qq看不到火花(为什么qq看不到浏览记录)

  • IDEA如何运行Eclipse项目(超详细图解)(idea如何运行springboot项目)

    IDEA如何运行Eclipse项目(超详细图解)(idea如何运行springboot项目)

  • 前端使用lottie-web,使用AE导出的JSON动画贴心教程(前端使用vue)

    前端使用lottie-web,使用AE导出的JSON动画贴心教程(前端使用vue)

  • 如何调整python窗口(Tkinter)大小(python如何设置窗口背景色)

    如何调整python窗口(Tkinter)大小(python如何设置窗口背景色)

  • dedecms织梦搜索页有缩略图调用缩略图,无缩图则不显示缩略图(织梦论坛)

    dedecms织梦搜索页有缩略图调用缩略图,无缩图则不显示缩略图(织梦论坛)

  • 产权转让印花税计税依据
  • 一般纳税人什么条件
  • 收到天使投资如何做账
  • 金蝶kis 反结账
  • 以应税消费品抵偿债务的计税依据
  • 划转税务的非税收入2023
  • 企业发给员工年终奖金
  • 以前年度损益调整会计分录
  • 银行存款核算如何操作
  • 减免的增值税如何账务处理
  • 发票丢失能直接作废吗
  • 增值税实际缴纳总额
  • 非居民企业减免的利息是否交增值税
  • 城市建设维护税怎么计算
  • 个体户一个月开票30万怎么上税
  • 高新企业研发投入后产出增加
  • 企业所得税能否核定征收
  • 承兑贴息收入账务处理怎么做?
  • 金蝶k3初始余额录入打不进字
  • 无法偿还的应付款项予以转账
  • 外经证预缴税款分录怎么记账
  • 暂估成本跨月账务处理
  • 工业废弃物处理方式
  • 代建工地
  • linux系统的文件与目录操作
  • 怎样让鼠标变得好看些
  • 公司换基本户需要多久
  • 预付款无法收回账务处理
  • autorun.exe
  • giantantispywaremain.exe是什么进程 有什么作用 giantantispywaremain进程查询
  • windows无法验证显卡驱动的数字签名
  • php图片链接
  • 保险公司应收账款管理现状及存在的问题
  • 购买免税农产品可以抵扣进项税
  • 虚拟机是什么意思
  • 临时用工账务处理流程
  • php多维数组转一维数组
  • codeignitor
  • 公司给员工餐补计入
  • php取mysql查询单条数据
  • chrome os安装到u盘
  • vue的内置组件
  • mysql表中数据
  • chmod命令用于更改文件或目录的所有者
  • 公司注销后实收资本要交税吗
  • 计提印花税会计
  • 运输开票的税点是多少
  • 到期无法收回的银行承兑汇票计入什么科目
  • 土地使用权出资是什么意思
  • 应交税费借方如何计算
  • 担保费能否抵扣增值税
  • 财务费用的内容包括哪些
  • 内帐与外帐的哪个更好
  • mysql事务视图
  • win10两个网络怎么选择网络
  • Linux系统怎么调整屏幕亮度
  • 64位VMware虚拟机系统打不开怎么办?
  • linux界面显示
  • centosfind命令
  • ubuntu和windows文件互传
  • sbserv.exe - sbserv是什么进程 有什么用
  • linux必学的60个命令及使用
  • Linux系统下的Samba客户端配置
  • win7为什么会出现小黄锁
  • 创建自己百度百科
  • 对用药方案做合理性评估时
  • 好好了解 英文
  • 写出perl中最常见4种控制流
  • cocos2dx-3.0(23) ScrollView 缩放 及 touch新用法
  • 安卓手机画画触屏笔推荐
  • activity启动流程图解
  • python颜色表
  • js操作属性的方法
  • bootstrap需要学多久
  • 电子发票版式文件生成失败怎么办
  • 怎样提高增值税税率
  • 浅谈新时代劳动教育答案
  • 出口货物免抵税额怎么申报附加税
  • 伊朗开心果进口价格
  • 烟叶税是谁交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设