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

  • 声卡的功能是什么(声卡有什么功能)

    声卡的功能是什么(声卡有什么功能)

  • iphonexr系统版本过低怎么升级啊(iphonexr系统版本查询)

    iphonexr系统版本过低怎么升级啊(iphonexr系统版本查询)

  • 手机优酷如何下载视频(手机优酷如何下载视频到u盘)

    手机优酷如何下载视频(手机优酷如何下载视频到u盘)

  • 华为5G如何插4G卡(华为5g手机怎么插手机卡)

    华为5G如何插4G卡(华为5g手机怎么插手机卡)

  • 手机屏幕黑屏一闪一闪的是怎么回事(手机屏幕黑屏一直闪怎么回事)

    手机屏幕黑屏一闪一闪的是怎么回事(手机屏幕黑屏一直闪怎么回事)

  • 小米mtde6是什么型号(小米型号mde6)

    小米mtde6是什么型号(小米型号mde6)

  • qq音乐全景环绕怎么设置(qq音乐全景环绕有点吊)

    qq音乐全景环绕怎么设置(qq音乐全景环绕有点吊)

  • qq冰淇淋标识是什么意思(qq冰淇淋图标是什么)

    qq冰淇淋标识是什么意思(qq冰淇淋图标是什么)

  • 手机的勿扰模式有什么作用(手机的勿扰模式在哪里设置)

    手机的勿扰模式有什么作用(手机的勿扰模式在哪里设置)

  • 退款金额怎么修改不了(退款金额修改)

    退款金额怎么修改不了(退款金额修改)

  • vivo手机qq怎么设置自动回复消息(vivo手机qq怎么设置自动回复)

    vivo手机qq怎么设置自动回复消息(vivo手机qq怎么设置自动回复)

  • 微信付款码没网能用吗(微信付款码没网络可以支付吗)

    微信付款码没网能用吗(微信付款码没网络可以支付吗)

  • 华为屏幕暗到看不见(华为屏幕暗到看不清东西)

    华为屏幕暗到看不见(华为屏幕暗到看不清东西)

  • 华为荣耀9lite是不是青春版(荣耀9lite参数)

    华为荣耀9lite是不是青春版(荣耀9lite参数)

  • vivo动态锁屏自定义(vivox27动态锁屏)

    vivo动态锁屏自定义(vivox27动态锁屏)

  • 为什么我的淘宝号是tb(为什么我的淘宝没有淘宝零钱)

    为什么我的淘宝号是tb(为什么我的淘宝没有淘宝零钱)

  • iphone转移到新iphone(iphone转移到新iphone是完全一样吗)

    iphone转移到新iphone(iphone转移到新iphone是完全一样吗)

  • 剪映如何添加歌词(剪映如何添加歌词中英文)

    剪映如何添加歌词(剪映如何添加歌词中英文)

  • 如何看完朋友验证消息(怎么查看朋友验证发来的消息?)

    如何看完朋友验证消息(怎么查看朋友验证发来的消息?)

  • 苹果手表4和5有什么区别(苹果手表4和5的区别)

    苹果手表4和5有什么区别(苹果手表4和5的区别)

  • 微信如何设置信息提醒(微信如何设置信息声音)

    微信如何设置信息提醒(微信如何设置信息声音)

  • win7搜索功能(win7搜索功能设置)

    win7搜索功能(win7搜索功能设置)

  • 土豆视频如何开通会员(土豆视频怎么赚钱)

    土豆视频如何开通会员(土豆视频怎么赚钱)

  • 如何把桌面图标变大(如何把桌面图标缩小)

    如何把桌面图标变大(如何把桌面图标缩小)

  • Vue3中使用vue-i18n实现多语言切换(vue3中使用require)

    Vue3中使用vue-i18n实现多语言切换(vue3中使用require)

  • 搜索神器Perplexity的详细使用方法(持续更新)(搜索神器官网)

    搜索神器Perplexity的详细使用方法(持续更新)(搜索神器官网)

  • 即征即退需要缴纳税款吗
  • 小规模应税行为扣除额如何填
  • 税率的具体形式
  • 每个季度申报怎么申报?
  • 在建工程是资产
  • 支票上哪里填付款人账号
  • 押金不退转收入的情况说明
  • 网上代购收取手机费吗
  • 同一张记账凭证可以出现多笔分录吗
  • 党组织专项经费项社区服务队项目简介
  • 个体工商户的生产、经营所得
  • 租房发票房产税怎么算
  • 公司开发票就会报税吗?
  • 私车公用油费计入什么科目
  • 研发费用进项税额需要转出吗
  • 小规模纳税人纳税申报时间
  • 怎么核算租赁合同的印花税?
  • 钢管租赁营业执照范围
  • 税收滞纳金可以税前扣除吗
  • 物流公司运费的会计分录
  • 受赠房屋涉及哪些税?
  • 一般纳税人存货入账价值
  • 在win7系统中如何让电脑恢复出厂设置方法
  • macbook怎么保存
  • 已提折旧固定资产评估增值的会计处理是企业会计准则
  • 租房交了押金
  • 今天端午节?
  • 新空调的安装费是多少
  • 小程序常见问题
  • 黄石国家公园的建立意义
  • php抓取网页图片
  • redis如何实现分布式事务
  • d3.js下载
  • KITTI数据集可视化(一):点云多种视图的可视化实现
  • js删除
  • vue开发教程
  • python中的sum函数怎么用
  • 银行的抵债资产是否需要缴纳房产税
  • 固定资产折旧怎么做会计科目
  • 企业都有哪些资质
  • 建筑总承包分包单位可以是市政总承包吗
  • db2 日期查询
  • 个人所得税如何纳税
  • 物业费分解
  • 餐饮行业的个体工商户怎么交税
  • 技术服务费可以计入成本吗
  • 销售退回跨年度的会计分录
  • 注销时其他应付款借方余额怎么账务处理
  • 车间消耗品的会计分录
  • 企业为什么要转移用工风险什么意思
  • 诉讼财产保全保函
  • 留抵税额抵减欠税滞纳金
  • 单位要处置一辆车怎么办
  • 手工账月末结账步骤
  • 建筑服务的税率是
  • 总资产报酬率的公式
  • 主营业务收入和库存商品怎么区分
  • 明细账的登记方向与总账的登记方向是一致的
  • macbook appstore在哪
  • uefi硬盘安装win10
  • 使用u盘安装win10
  • linux环境和常用命令
  • win10假死的原因
  • mac os 删除
  • os x10.12支持的机型
  • linux012
  • javascript怎么设置
  • jquery 列表控件
  • linux重定位命令
  • [置顶]津鱼.我爱你
  • python生成器send
  • jquery怎么写
  • django批量上传图片
  • 下列关于javascript的叙述正确的有
  • 广东增值税电子专用发票
  • 泉州企业医保哪里缴费
  • 达州房管局备案查询系统
  • 电子税务网上申报平台
  • 国税官网登录
  • 税务申报网上申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设