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

  • 电脑ip地址设置(电脑ip地址)(电脑ip地址设置为多少)

    电脑ip地址设置(电脑ip地址)(电脑ip地址设置为多少)

  • icloud关闭后本地照片还在吗(icloud关闭后本地文件还在吗)

    icloud关闭后本地照片还在吗(icloud关闭后本地文件还在吗)

  • win10分区c盘留多大(win10分区c盘留多大合适)

    win10分区c盘留多大(win10分区c盘留多大合适)

  • vivo x6s A字体怎么改(vivo 手机 字体)

    vivo x6s A字体怎么改(vivo 手机 字体)

  • 华为nova5能不能设置门禁卡(华为nova5能不能玩原神)

    华为nova5能不能设置门禁卡(华为nova5能不能玩原神)

  • 微信怎么退出当前账号(如何退出当前微信)

    微信怎么退出当前账号(如何退出当前微信)

  • 测试网络连通性的命令是

    测试网络连通性的命令是

  • 华为freebuds3有线充版和无线充版区别(华为freebuds3有线无线怎么分辨)

    华为freebuds3有线充版和无线充版区别(华为freebuds3有线无线怎么分辨)

  • pdbm00是啥手机(pdbm00啥型号的手机)

    pdbm00是啥手机(pdbm00啥型号的手机)

  • 华为手机怎么打开飞行模式(华为手机怎么打开后盖)

    华为手机怎么打开飞行模式(华为手机怎么打开后盖)

  • 反向充电手机有哪些(反向充电手机有哪几款)

    反向充电手机有哪些(反向充电手机有哪几款)

  • 天猫榜单是什么意思(天猫榜单是正品吗)

    天猫榜单是什么意思(天猫榜单是正品吗)

  • 内存性能多少分正常(内存性能跑多少分正常)

    内存性能多少分正常(内存性能跑多少分正常)

  • 淘宝怎么发视频给卖家(淘宝怎么发视频挂链接)

    淘宝怎么发视频给卖家(淘宝怎么发视频挂链接)

  • 剪辑电视剧片段抖音算搬运吗(剪映怎么剪辑电视剧片段)

    剪辑电视剧片段抖音算搬运吗(剪映怎么剪辑电视剧片段)

  • tf卡怎么在手机上下歌(tf卡怎么在手机上读取)

    tf卡怎么在手机上下歌(tf卡怎么在手机上读取)

  • 任务栏外观设置为锁定任务栏(任务栏外观设置为从不合并)

    任务栏外观设置为锁定任务栏(任务栏外观设置为从不合并)

  • 华为8x有没有红外线功能(华为8x红色)

    华为8x有没有红外线功能(华为8x红色)

  • 三星s6edge返回键不亮怎么办(三星s6edge返回键的灯怎么开)

    三星s6edge返回键不亮怎么办(三星s6edge返回键的灯怎么开)

  • 手机时间长了卡怎么办(手机时间长了卡顿怎么解决华为)

    手机时间长了卡怎么办(手机时间长了卡顿怎么解决华为)

  • 移动固态硬盘优势(移动固态硬盘优缺点分析)

    移动固态硬盘优势(移动固态硬盘优缺点分析)

  • 转发别人快手作品步骤(转发别人快手作品都有水印怎么办)

    转发别人快手作品步骤(转发别人快手作品都有水印怎么办)

  • iPhone6/6 Plus微信无法定位怎么办?(苹果六微信)

    iPhone6/6 Plus微信无法定位怎么办?(苹果六微信)

  • 【图像超分辨率重建】——EDSR论文精读笔记(超分辨率图像复原)

    【图像超分辨率重建】——EDSR论文精读笔记(超分辨率图像复原)

  • 本期实际抵减税额合计0.00不等于
  • 个税申报人员报送成功怎么删除
  • 金税盘离线开票金额超限怎么处理
  • 工资代扣工会会费
  • 企业资产损失所得税税前扣除办法
  • 个人自产自销农产品免税政策
  • 有限责任公司应当具备的条件
  • 欠缴税款会给纳税证明吗
  • 税收滞纳金计税吗
  • 费用暂估会计分录
  • 纳税人和征税对象的区别
  • 进项税抵扣的房租怎么算
  • 三方扣款fd6
  • 全面营改增后,某房地产开发企业需要缴纳哪种税,为什么
  • 增值税主要有三种类型
  • 房开企业增值税确认收入时间
  • 本月无票收入到下月开具如何申报
  • 2019年基金市场
  • 跨年度冲减收入
  • 公司变更名称重新申请
  • mac 应用
  • 税收返还的账务处理
  • 什么叫交付使用
  • php的api调用方法
  • php img
  • amr文件下载
  • 情人节海报怎么画简单
  • 农产品收购发票使用范围
  • Windows 11 CO-21H2 22000.194 正式版官方下载地址(附esd微软三语直链下载x64+arm64)
  • 企业雇佣临时工的工资属于工资薪金支出么
  • 如何看待税收的本质
  • 用php做计算
  • 预收账款通俗易懂的说法
  • top命令可以看到哪些信息
  • 支付劳务费时是什么科目
  • 数据分析课
  • 未开票收入为负数是什么意思
  • 长期待摊费用装修费摊销年限
  • 融资租入固定资产的改建支出
  • 对公账户走账是怎么回事
  • 未达起征点怎么填申报表
  • 减按10%的税率是什么意思
  • 亏损弥补规定
  • 上个月没扣社保 这个月一起交能报账吗
  • 同一控制下企业合并发生的审计费用计入
  • 购入固定资产入账成本
  • MySQL的主从复制基于什么实现的?
  • 土地使用权被政府收回要交个税吗
  • 超市小规模税负怎么算
  • 小企业会计准则跨年红冲
  • 期初金额是什么
  • 应付账款抹零摘要怎么写
  • 纳税期限与缴库期限不符
  • 一般情况下银行加权平均成本的变化主要取决于什么因素
  • 旅游费计入什么会计科目
  • 什么情况下需要割包皮
  • 应付账款账面价值怎么算
  • 劳务公司 成本
  • 新产品的研发费用扣除例题
  • 季报企业所得税弥补亏损数怎么填
  • 非营利医疗机构什么意思
  • 索引的基本原则
  • 比较常见的别墅户型
  • 苹果电脑如何制作
  • efi怎么安装系统
  • win98拨号上网
  • ubuntu安装visual studio2019
  • linux安装dns软件包
  • bootstrap模态窗口
  • python 列表分片
  • vue cli mock
  • 后台实时分流文件的shell脚本
  • javascript怎么用
  • python,字符串
  • 在Unity中使用事件/委托机制(event/delegate)进行GameObject之
  • android事件响应和处理机制
  • python lambda的用法
  • android下拉刷新上拉加载
  • 江苏省税务局官网电话
  • 江苏税务个人所得税app下载
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设