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

  • 怎样做好微博推广增加10万+粉丝(怎样做好微博推广)

    怎样做好微博推广增加10万+粉丝(怎样做好微博推广)

  • 离线码和健康码有什么区别(离线码和健康码有什么区别照片)

    离线码和健康码有什么区别(离线码和健康码有什么区别照片)

  • iphone13 3dtouch怎么开(iphone133dtouch怎么按出来)

    iphone13 3dtouch怎么开(iphone133dtouch怎么按出来)

  • 电信号码怎么查话费余额查询(电信号码怎么查话费和流量)

    电信号码怎么查话费余额查询(电信号码怎么查话费和流量)

  • 苹果xmax和苹果11对比(苹果xmax和苹果11哪个更值得入手现在)

    苹果xmax和苹果11对比(苹果xmax和苹果11哪个更值得入手现在)

  • 顺风车可不可以邀请多个人接(顺风车可不可以提前预约)

    顺风车可不可以邀请多个人接(顺风车可不可以提前预约)

  • 电脑wps文档墨迹功能在哪里(wps的墨迹在哪里)

    电脑wps文档墨迹功能在哪里(wps的墨迹在哪里)

  • 主控文档和子文档有什么用(主控文档和子文档操作wps)

    主控文档和子文档有什么用(主控文档和子文档操作wps)

  • 华为kirin980是什么处理器(华为kirin980是什么处理器,和骁龙778谁好)

    华为kirin980是什么处理器(华为kirin980是什么处理器,和骁龙778谁好)

  • 智能材料一般有哪些功能(智能材料必须具备的三个要素)

    智能材料一般有哪些功能(智能材料必须具备的三个要素)

  • 简述光纤和光缆的区别(简述光纤和光缆的优缺点)

    简述光纤和光缆的区别(简述光纤和光缆的优缺点)

  • 无线pos机没信号怎么办(pos机无网络信号)

    无线pos机没信号怎么办(pos机无网络信号)

  • 一个手机号微博怎么开小号(一个手机号微博注销了还能再注册吗)

    一个手机号微博怎么开小号(一个手机号微博注销了还能再注册吗)

  • 华为和苹果怎么互相定位(华为和苹果怎么互传视频)

    华为和苹果怎么互相定位(华为和苹果怎么互传视频)

  • 拼多多在哪里投诉(拼多多在哪里投诉快递员?)

    拼多多在哪里投诉(拼多多在哪里投诉快递员?)

  • qplay是什么意思(qplayauto)

    qplay是什么意思(qplayauto)

  • 苹果x刷机报错53解决方法(苹果x刷机报错4013的原因)

    苹果x刷机报错53解决方法(苹果x刷机报错4013的原因)

  • 华为p30有几个微信(华为p30有几个微信软件)

    华为p30有几个微信(华为p30有几个微信软件)

  • 手机可以不贴钢化膜吗(手机可以不贴钢化膜直接贴防窥膜吗)

    手机可以不贴钢化膜吗(手机可以不贴钢化膜直接贴防窥膜吗)

  • ios13三指手势怎么关(ios15三指)

    ios13三指手势怎么关(ios15三指)

  • ios13怎么隐藏图标(苹果13怎么隐藏相册)

    ios13怎么隐藏图标(苹果13怎么隐藏相册)

  • wps打印预览页边距没了(wps打印预览页边距怎么把虚线调出来)

    wps打印预览页边距没了(wps打印预览页边距怎么把虚线调出来)

  • 微信如何查注册时间长短   (微信如何查注册了几个)

    微信如何查注册时间长短   (微信如何查注册了几个)

  • 英特尔酷睿和至强处理器的区别是什么?(英特尔酷睿和至强的区别)

    英特尔酷睿和至强处理器的区别是什么?(英特尔酷睿和至强的区别)

  • 电脑维修中常用的一些工具(电脑维修中常用的软件)

    电脑维修中常用的一些工具(电脑维修中常用的软件)

  • 税务基本任务和稽查范围?
  • 缴纳附加税会计科目怎么做
  • 劳务外包人员算不算从业人员
  • 专票如何开具
  • 建筑服务专用发票需要进项吗
  • 有限合伙企业分红个人所得税
  • 施工企业确认收入的方法有哪两种
  • 商城退换货
  • 企业应纳税所得额计算例题
  • 个人所得税退税多久到账
  • 什么发票可以抵税
  • 软件企业两免三减半税收政策到期
  • 装卸费的增值税是多少
  • 个人开劳务发票几个点
  • 企业预缴多交税了如何申请退税
  • 小规模纳税人是公司还是个人
  • 毛利润和纯利润的计算公式
  • 单位存款账户按用途分为
  • 住宿发票3%和6%区别
  • 期末增值税进项税大于销项税的金额计入哪里
  • 营改增后一般纳税人税率
  • 原生php写接口
  • 计算机网络的基本概念
  • 如何开启framework 3.5
  • 投资性房地产转为存货
  • 存货核算有哪些内容
  • 保险补偿金额的计算
  • 小规模纳税人开专票需要交税吗
  • layui 使用
  • 小糖是谁
  • 微信小程序实现轮播图
  • 气温和降水空间变化一月平均气温规律是什么原因是什么
  • flex布局用法
  • nohup命令挂不上 每次都直接退出
  • 汇兑损益计算方法有哪些
  • ps使用背景橡皮擦的时候需要按住什么键
  • mysql如何上锁
  • 售后租回交易的第二年利息怎么算
  • 固定资产清理借方增加还是减少
  • 不动产固定资产清理
  • 或有资产什么时候要披露
  • 公司组织员工旅游费可以在税前扣除吗
  • 税控盘开票日期一般截止到下个月几号
  • 设计模式代理模式
  • 织梦图片集如何调用
  • 销项负数怎么报增值税
  • 年报资金数额是什么意思
  • 税控盘百科
  • 哪些进项税额不能抵扣
  • 公积金个人缴纳和公司缴纳比例
  • 上一年度所得税忘记计提了怎么办
  • 结转增值税的账务处理
  • 支付结算办法是部门规章吗
  • 提取的安全生产费
  • 私立医院怎么做不被骗的事情
  • 其他应收款个人在贷方表示什么
  • 社保退回的钱怎么做会计分录
  • 票折费用是什么意思
  • 企业没有期初数据,会计怎么做账
  • freebsd使用
  • mac怎么安装字体到ai
  • centos6挂载ntfs硬盘
  • win7无法开机怎么进入安全模式
  • win10 禁用驱动
  • win7打印错误怎么解决
  • win7ie8和ie11
  • threejs 源码
  • js获取节点值
  • unity3drpg游戏
  • js中alert怎么用
  • JavaScript的Number对象的toString()方法
  • jquery入口
  • 河北电子税务局新版登录
  • 浙江通用电子发票注册申请怎么填
  • 上海社保三方协议
  • 昌隆鑫实业集团招聘
  • 黄金增值税管理难点
  • 如何打印更正申请
  • 国家税务总局服务中心
  • 深圳代理记账公司赚钱吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设