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

  • magicbook恢复出厂设置后果(magicbook恢复出厂设置)

    magicbook恢复出厂设置后果(magicbook恢复出厂设置)

  • 小米9se能换大电池吗(小米9se换大电池哪个牌子耐用)

    小米9se能换大电池吗(小米9se换大电池哪个牌子耐用)

  • 知乎举报人对方会知道吗(知乎举报人对方会受什么处罚)

    知乎举报人对方会知道吗(知乎举报人对方会受什么处罚)

  • 华为一年保修包括什么(华为一年保修收费吗)

    华为一年保修包括什么(华为一年保修收费吗)

  • word为什么改行距没有变化(为什么word一换行格式就变了)

    word为什么改行距没有变化(为什么word一换行格式就变了)

  • 拉黑能看到十条朋友圈吗(拉黑能看到十条消息吗)

    拉黑能看到十条朋友圈吗(拉黑能看到十条消息吗)

  • 苹果耳机一代二代区别(苹果耳机一代二代怎么区分)

    苹果耳机一代二代区别(苹果耳机一代二代怎么区分)

  • 苹果xr怎么开闪光灯(苹果xr怎么开闪光)

    苹果xr怎么开闪光灯(苹果xr怎么开闪光)

  • usb摄像头电脑上插上为什么不显示(usb摄像头电脑上插上为什么不显示无需驱动)

    usb摄像头电脑上插上为什么不显示(usb摄像头电脑上插上为什么不显示无需驱动)

  • 荣耀20青春版与荣耀9x对比(荣耀20青春版与荣耀play3)

    荣耀20青春版与荣耀9x对比(荣耀20青春版与荣耀play3)

  • qq群被别人举报了会封号吗(qq群被别人举报了怎么恢复)

    qq群被别人举报了会封号吗(qq群被别人举报了怎么恢复)

  • 蓝牙耳机卡顿怎么回事(蓝牙耳机太卡怎么办)

    蓝牙耳机卡顿怎么回事(蓝牙耳机太卡怎么办)

  • 怎样把电视剧片段保存到相册(怎样把电视剧片段发到火山上)

    怎样把电视剧片段保存到相册(怎样把电视剧片段发到火山上)

  • 华为手机碎片整理怎么打开(华为手机碎片整理app)

    华为手机碎片整理怎么打开(华为手机碎片整理app)

  • 怎么把手机上的歌传到mp3(怎么把手机上的照片传到电脑上)

    怎么把手机上的歌传到mp3(怎么把手机上的照片传到电脑上)

  • 嘀嗒怎样用高德导航(高德地图嘀嗒出租车怎么付款)

    嘀嗒怎样用高德导航(高德地图嘀嗒出租车怎么付款)

  • 苹果手机录屏功能在哪里(苹果手机录屏功能怎么设置)

    苹果手机录屏功能在哪里(苹果手机录屏功能怎么设置)

  • 荣耀阅读怎么卸载(荣耀阅读怎么卸载掉)

    荣耀阅读怎么卸载(荣耀阅读怎么卸载掉)

  • uc浏览器的隐私相册在哪(uc浏览器的隐私空间怎样加锁)

    uc浏览器的隐私相册在哪(uc浏览器的隐私空间怎样加锁)

  • 小度怎么视频通话

    小度怎么视频通话

  • 苹果wapi是什么意思(苹果wapi是什么用)

    苹果wapi是什么意思(苹果wapi是什么用)

  • Google Chrome谷歌浏览器崩溃,错误代码: STATUS_STACK_BUFFER_OVERRUN(googlechrome谷歌浏览器)

    Google Chrome谷歌浏览器崩溃,错误代码: STATUS_STACK_BUFFER_OVERRUN(googlechrome谷歌浏览器)

  • python如何提取文本信息?(python如何提取文件中的数据)

    python如何提取文本信息?(python如何提取文件中的数据)

  • 期末留抵税额怎么算开票金额
  • 小微企业年度所得税优惠政策
  • 疫情期间发生的费用进什么科目
  • 金税盘当月不抵扣如何做分录
  • 代扣代缴增值税是什么意思
  • 销售部门快递费用怎么算
  • 小规模纳税人综合税负
  • 商业地产运营成本核算
  • 委托进口增值税如何抵扣
  • 公司出让土地是利好
  • 企业用于存货的支出
  • 增值税普通发票可以抵扣吗
  • 剪头开发票
  • 装修行业属于什么行业分类
  • 进项税额转出是好事还是坏事
  • 开发商开临时发票
  • 物业公司怎么开发票
  • 向关联企业支付管理费用可以税前扣除吗
  • 二手房个人所得税和增值税
  • 2020年开公司优惠政策
  • 建筑服务安装费会计分录
  • 销售额的意思
  • 员工高温补贴奖励怎么写
  • 定额发票属于什么会计
  • 什么是suv汽车
  • php数组函数 菜鸟
  • 公众号 隐藏文章
  • 进程mmc.exe
  • 极路由怎么用
  • php使用方法
  • 担保赔偿准备金和未到期责任准备金实例
  • 发票开错的常见情况和处理办法?
  • 前端打印语句
  • 未确认融资费用怎么算
  • thinkphp input
  • 应纳税所得额的意思
  • vue中用echarts
  • 高通芯片开发
  • springboot比spring做了哪些改进
  • 人工智能大模型上市公司
  • php微信公众号开发反回图片怎么弄的学校
  • 电子发票怎么开具?
  • 个人独资企业用企业资金进行个人消费
  • 进项税额转出会影响当期纳税吗?
  • 年末结转增值税明细
  • 接待客户的住宿费计入什么科目
  • 机械租赁费税率是多少
  • 即征即退进项划分说明
  • 转让无形资产使用权
  • 建筑施工仪器设备有哪些
  • 市政道路基础设施
  • 善意取得增值税专用发票所得税
  • 建筑公司异地施工
  • 商贸企业增值税税率是多少
  • 应交税费科目怎么调整
  • 应收账款周转率计算公式
  • 购进的材料没有发票可以入库吗?
  • 税务监制章验证无效
  • 小规模纳税人采用简易计税方法征收增值税
  • 如何进行汇算清缴
  • 冲销销售收入分录
  • 国税退回多缴税款
  • 软件租赁费入什么账户
  • 会计凭证的主要种类
  • 清除sql表内容
  • mysql通过文档读取并执行命令之快速为mysql添加多用户和数据库技巧
  • 通过SQL Server的位运算功能巧妙解决多选查询方法
  • windows2.0下载
  • win10升级电脑
  • mac safari使用技巧
  • win8经典模式
  • win8怎么查看ip地址
  • perl ne
  • 深入浅出nginx实战
  • u3d地形编辑贴图
  • jquery作品
  • js 原型方法
  • 国家电子税务局登录入口
  • 四川税务专管员查询
  • 南京税务事务所排行
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设