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

  • QQ群快速引流的5大绝招!(qq群引流群)

    QQ群快速引流的5大绝招!(qq群引流群)

  • qq怎么展示友谊的小船(qq怎样展示好友互动标识)

    qq怎么展示友谊的小船(qq怎样展示好友互动标识)

  • 表格前面加0怎么弄(表格前面加0怎么设置)

    表格前面加0怎么弄(表格前面加0怎么设置)

  • 为什么智慧团建一直显示密码错误(为什么智慧团建密码对了登录不进去)

    为什么智慧团建一直显示密码错误(为什么智慧团建密码对了登录不进去)

  • 抖音ip是什么意思(抖音ip什么意思)

    抖音ip是什么意思(抖音ip什么意思)

  • 苹果x电池容量86正常吗(苹果x电池容量80%需要换吗)

    苹果x电池容量86正常吗(苹果x电池容量80%需要换吗)

  • 华为p40拍照怎么设置(华为p40拍照怎么显示时间日期)

    华为p40拍照怎么设置(华为p40拍照怎么显示时间日期)

  • 百度输入法手写设置在哪里(百度输入法手写怎么设置)

    百度输入法手写设置在哪里(百度输入法手写怎么设置)

  • 显示对方忙线中是什么意思(给对方打微信视频显示对方忙线中)

    显示对方忙线中是什么意思(给对方打微信视频显示对方忙线中)

  • 电脑软件怎么下载安装到桌面 (电脑软件怎么下载安装到桌面)

    电脑软件怎么下载安装到桌面 (电脑软件怎么下载安装到桌面)

  • 苹果id验证码收不到怎么办(苹果id验证码收不到咋回事?)

    苹果id验证码收不到怎么办(苹果id验证码收不到咋回事?)

  • ipad哪一款可以插手机卡(ipad哪一款可以开90帧)

    ipad哪一款可以插手机卡(ipad哪一款可以开90帧)

  • 飞行模式打电话是关机吗(飞行模式打电话会显示关机吗)

    飞行模式打电话是关机吗(飞行模式打电话会显示关机吗)

  • 数据存储单位从小到大排列顺序是(数据存储单位从小到大排列顺序( ))

    数据存储单位从小到大排列顺序是(数据存储单位从小到大排列顺序( ))

  • 华为手机的测距仪在那(华为手机的测距功能在哪里)

    华为手机的测距仪在那(华为手机的测距功能在哪里)

  • iphonex多长机身(iphonex机身有多长)

    iphonex多长机身(iphonex机身有多长)

  • 淘宝付定金立减是什么意思(淘宝付定金立减在哪里看)

    淘宝付定金立减是什么意思(淘宝付定金立减在哪里看)

  • 苹果xs能遥控空调吗(iphonexs能遥控空调吗)

    苹果xs能遥控空调吗(iphonexs能遥控空调吗)

  • 苹果手机怎么设置照片时间(苹果手机怎么设置密码锁屏)

    苹果手机怎么设置照片时间(苹果手机怎么设置密码锁屏)

  • 京东好店是什么意思(京东好店是什么意思?)

    京东好店是什么意思(京东好店是什么意思?)

  • VScode 调试教程 tasks.json和launch.json的设置(超详细)(vscode调试在哪)

    VScode 调试教程 tasks.json和launch.json的设置(超详细)(vscode调试在哪)

  • dnsconf命令  设置DNS服务器组态(dns configuration)

    dnsconf命令 设置DNS服务器组态(dns configuration)

  • 公司债券和企业债券哪个风险大
  • 全额纳税是什么意思
  • 计入资本公积的固定资产报废
  • 实际已缴纳所得税额不自动带出
  • 小企业今年怎么过
  • 施工单位的产值报告模板
  • 2019年所得税季度增值税怎么报
  • 企业合并固定资产增值的规定
  • 个人可支配收入缩写
  • 资本金可以出借吗
  • 公司收到银行承兑汇票会计分录
  • 嵌入式软件产品增值税即征即退
  • 先征后返的所得税账务处理
  • 收入做多增值税怎么算
  • 异地工程要预缴环境税款吗
  • 开加工费的发票该如何抵扣?
  • 简并增值税税率政策解读
  • 特殊行业会计公司排名
  • 捐赠货品怎么做会计分录
  • 付款方付款的发票税金能入账吗?
  • 研发阶段计入管理费用吗吗
  • 发票单据流水号
  • 政府授权国企为基建项目建设单位
  • 8款应用
  • 根据新企业会计准则,职工薪酬包括
  • 苹果mac双系统按住哪个键
  • 施工企业工程结算
  • 应收票据包括哪些支票
  • 冲回以前年度计提的坏账准备
  • win11好用吗知乎
  • js map foreach遍历
  • 所有者权益期末减期初等于净利润还是利润总额
  • vue3props用法
  • 技术服务费可以计入成本吗
  • 小企业会计准则财务报表至少包括
  • googlelabs
  • AI - stable-diffusion(AI绘画)的搭建与使用
  • 增值税专用发票几个点
  • 应收款需要平行公司吗
  • 所得税汇算清缴怎么操作
  • 酒店行业销售费用占比
  • 税率的确定和什么因素有关
  • 什么是,利息
  • 什么是指企业的市场营销活动发生影响的各种因素的总和
  • sqlserver复制需要有实际的服务器名称
  • 非公司员工可以报销差旅费吗
  • mysql数据控制语句
  • sql 按顺序查询
  • 备用金用发票核销去哪核销
  • 哪些发票不可以报销入账
  • 个税手续费返还增值税申报表怎么填
  • 利润表和资产负债表不平的原因
  • 药品的增值税税率13%还是17%?
  • 固定资产残值怎么做账务处理
  • 银行存款利息如何计算
  • 基本工资和什么挂钩
  • 商品验收入库时怎么做账
  • 综合所得预扣预缴表校验结果以下人员未报送
  • 滴滴发票抬头是什么意思
  • 贴现收到票据时会计分录
  • 防伪税控技术维护费
  • 企业享受所得税免税政策
  • ubuntu包管理命令
  • 外接法实物图
  • win7系统的启动项在哪里
  • window出现问题
  • scair.exe是什么程序
  • windows8.1升级到windows10
  • es6解构函数
  • 如何实现js对象和json数据互转
  • linux dig命令
  • jquery给表单赋值
  • 类库怎么用
  • 个人出租商铺个人所得税计算
  • 河南地税网上个税怎么交
  • 怎么使用企业级app
  • 云南税务总局官网
  • 山东水利建设基金减免政策
  • 成都交房需要交什么费用
  • 江苏省常熟市归哪管
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设