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

  • 荣耀平板v7pro屏幕多大(荣耀平板V7pro屏幕和外框更换)

    荣耀平板v7pro屏幕多大(荣耀平板V7pro屏幕和外框更换)

  • vivoz5x手机尺寸多少(vivo z5x尺寸是多少厘米)

    vivoz5x手机尺寸多少(vivo z5x尺寸是多少厘米)

  • 一个邮箱可以注册几个steam账号(一个邮箱可以注册几个steam)

    一个邮箱可以注册几个steam账号(一个邮箱可以注册几个steam)

  • 懒人听书怎么看充值记录(懒人听书怎么看文字听书同步)

    懒人听书怎么看充值记录(懒人听书怎么看文字听书同步)

  • iqoou1电池容量有多大(iqoo手机电池容量)

    iqoou1电池容量有多大(iqoo手机电池容量)

  • 微信怎么隐藏windows已登录(微信怎么隐藏转账后面的名字)

    微信怎么隐藏windows已登录(微信怎么隐藏转账后面的名字)

  • 为什么快手显示无网络(为什么快手显示账号异常)

    为什么快手显示无网络(为什么快手显示账号异常)

  • 抖音钻石卡怎么得?(抖音钻石卡怎么才能获得)

    抖音钻石卡怎么得?(抖音钻石卡怎么才能获得)

  • 什么是其他微信账号聊天数据(其他账号的微信内容如何清理)

    什么是其他微信账号聊天数据(其他账号的微信内容如何清理)

  • 企业微信管理员权限有哪些(企业微信管理员怎么添加员工)

    企业微信管理员权限有哪些(企业微信管理员怎么添加员工)

  • 微信辅助注册多久一次(微信辅助注册多少钱一个)

    微信辅助注册多久一次(微信辅助注册多少钱一个)

  • ssd是什么意思(128gssd是什么意思)

    ssd是什么意思(128gssd是什么意思)

  • 咪咕视频用券和vip区别(咪咕视频 劵)

    咪咕视频用券和vip区别(咪咕视频 劵)

  • 为什么微信语音不能转文字(为什么微信语音声音很小)

    为什么微信语音不能转文字(为什么微信语音声音很小)

  • 苹果uc无法看网页视频(苹果uc无法看网页怎么办)

    苹果uc无法看网页视频(苹果uc无法看网页怎么办)

  • 网络卡是路由器问题还是网络问题(网络卡是路由器的原因吗)

    网络卡是路由器问题还是网络问题(网络卡是路由器的原因吗)

  • 苹果智能手表能和安卓手机搭配使用吗(苹果智能手表能用几年)

    苹果智能手表能和安卓手机搭配使用吗(苹果智能手表能用几年)

  • 手机打过去说号码有误(为什么打对方手机号响一下说是空号)

    手机打过去说号码有误(为什么打对方手机号响一下说是空号)

  • 手机膜撕下来对手机有影响吗(手机膜撕了有影响吗)

    手机膜撕下来对手机有影响吗(手机膜撕了有影响吗)

  • 路由器当交换机用还有wi-fi吗(思科能不能把路由器当交换机)

    路由器当交换机用还有wi-fi吗(思科能不能把路由器当交换机)

  • qq账号解冻一般要几天(qq解冻一般多久)

    qq账号解冻一般要几天(qq解冻一般多久)

  • 淘宝猜你喜欢是什么意思(淘宝猜你喜欢是朋友搜索的)

    淘宝猜你喜欢是什么意思(淘宝猜你喜欢是朋友搜索的)

  • 蓝牙鼠标怎么连接手机(蓝牙鼠标怎么连接台式电脑)

    蓝牙鼠标怎么连接手机(蓝牙鼠标怎么连接台式电脑)

  • 最快的SDHC是什么(sdhc 速度)

    最快的SDHC是什么(sdhc 速度)

  • java读写锁的特性(java 读写锁 map)

    java读写锁的特性(java 读写锁 map)

  • 前端学习笔记(一)——HTML表格(table、tr、td、th、thead、tbody、tfoot标签)(前端必学)

    前端学习笔记(一)——HTML表格(table、tr、td、th、thead、tbody、tfoot标签)(前端必学)

  • 汇算清缴所得税退回做账
  • 什么是价外税价外税有哪些
  • 企业间无偿划转资产,非关联方经营
  • 用友t6会计科目在哪里找
  • 红字发票的数电票号码是啥
  • 技术服务费属于哪个商品编码
  • 小规模变一般纳税人需要哪些资料
  • 企业计提的资产包括哪些
  • 加计扣除退回的所得税怎么做账
  • 过期的费用发票怎么处理
  • 企业支付员工一年多少钱
  • 发票作为付款凭证的案例
  • 企业所得税核定征收怎么计算
  • 成品油发票应该怎么冲红?
  • 总账会计需要做账吗
  • 餐饮发票忘记作废也没冲红怎么处理?
  • 酒店预收款是什么意思
  • 小规模纳税人如何计算增值税
  • 资产减值损失是什么类科目
  • 简易计税项目进项
  • 工资中的话费补助是什么
  • 工会收到单位拨款怎么办
  • acer笔记本电脑怎么恢复出厂设置
  • 返利是冲减收入吗
  • 小宝宝耸肩膀缩脖子
  • wordpress访客插件
  • PHP:bzcompress()的用法_Bzip2函数
  • 汽车消费税有发票吗
  • 异构图神经网络 电影推荐
  • session.php
  • 出售固定资产减免的税款账务处理
  • 办公楼装修费两万合理吗
  • 佛罗里达naples
  • 房产税的征税范围为
  • 工程建设质保金比例
  • npm install 的 --save 选项是什么?
  • sudo命令功能
  • thinkphp如何连接数据库
  • 出口货物视同内销征税的会计核算?
  • php源码破解
  • arraylist源码分析1.8
  • centos8 mongodb
  • 火车头 采集器
  • 开发支出在资产负债表填哪一栏
  • 银行进账单是外来原始凭证吗
  • 进项票和销项票金额一样可以吗
  • 化粪池承包合同
  • Win2003系统下SQL Server 2008安装图解教程(详细图解)
  • sql删除表中的某一行
  • 含税含运费价格,运费谁出
  • 捐赠的增值税可以抵扣吗
  • 事业单位财政直拔工资误填为劳务费怎么写情况说明
  • 坏账准备贷方表示什么
  • 车船税没有发票可以入账吗
  • 合同资产科目设置
  • 产品质量监督检查的重点是
  • 汇算清缴缴纳的所得税怎么做账
  • 研发成功后的产品出售如何处理
  • 计算机二级考试报名入口官网
  • mysql5717安装及配置超详细教程
  • ubuntu怎么说
  • ubuntu14.04安装ssh服务
  • VMware虚拟机安装苹果Mac OS
  • 手机找回删除的文件
  • windows无法更改设置
  • linux vps 教程
  • windows开始界面
  • centos ulimit
  • win8.1 应用商店是不是不能用了
  • linux tar -xzvf
  • win10预览体验推荐哪个通道
  • shell 多个文件合并
  • 考四级题型
  • javascript内存管理
  • js比较数值
  • flash怎么测试当前场景
  • bootstrap基础教程
  • 发票查验怎么弄
  • 福建省国税局电话号码
  • 苏宁易购的联系电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设