位置: 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音乐的自动续费(怎么取消qq音乐听书自动续费)

    怎么取消qq音乐的自动续费(怎么取消qq音乐听书自动续费)

  • 来电话时闪光灯闪烁怎么关闭(来电话时闪光灯闪烁怎么设置苹果)

    来电话时闪光灯闪烁怎么关闭(来电话时闪光灯闪烁怎么设置苹果)

  • vivo手机打电话黑屏在哪里设置(vivo手机打电话显示无法访问移动网络是什么意思)

    vivo手机打电话黑屏在哪里设置(vivo手机打电话显示无法访问移动网络是什么意思)

  • 华为手机怎么设置更省电(华为手机怎么设置24小时时间显示)

    华为手机怎么设置更省电(华为手机怎么设置24小时时间显示)

  • 在windows7中,将中文输入方式切换到英文(在windows7的)

    在windows7中,将中文输入方式切换到英文(在windows7的)

  • 为什么手机屏幕突然失灵(为什么手机屏幕失灵点不了)

    为什么手机屏幕突然失灵(为什么手机屏幕失灵点不了)

  • 荣耀手环5i怎么充电(荣耀手环5i怎么接电话)

    荣耀手环5i怎么充电(荣耀手环5i怎么接电话)

  • 成像鼓碳粉严重不足(成像鼓碳粉严重不足更换方法图解)

    成像鼓碳粉严重不足(成像鼓碳粉严重不足更换方法图解)

  • 为什么手机充电会发烫(为什么手机充电会充一下断一下)

    为什么手机充电会发烫(为什么手机充电会充一下断一下)

  • 拼多多匿名评价了商家还能看到吗(拼多多匿名评价之后别人还能看见吗)

    拼多多匿名评价了商家还能看到吗(拼多多匿名评价之后别人还能看见吗)

  • 手机一充电就有广告推送怎么办(手机一充电就有滴答声)

    手机一充电就有广告推送怎么办(手机一充电就有滴答声)

  • 改名定位是什么意思(改名定位是什么原理)

    改名定位是什么意思(改名定位是什么原理)

  • 可以通过wifi知道浏览记录吗(可以通过wifi知道对方手机在干嘛的吗)

    可以通过wifi知道浏览记录吗(可以通过wifi知道对方手机在干嘛的吗)

  • 曲面屏手机应该贴什么膜(曲面屏手机应该用什么膜)

    曲面屏手机应该贴什么膜(曲面屏手机应该用什么膜)

  • aoc显示器是什么牌子(aoc显示器是什么接口)

    aoc显示器是什么牌子(aoc显示器是什么接口)

  • oppok5是5g网络手机吗(oppok5是5g还是4g)

    oppok5是5g网络手机吗(oppok5是5g还是4g)

  • 路由器怎么看有没有网络(路由器怎么看有没有人蹭网)

    路由器怎么看有没有网络(路由器怎么看有没有人蹭网)

  • 锐龙r53500x相当于i几(锐龙r53500怎么样)

    锐龙r53500x相当于i几(锐龙r53500怎么样)

  • 苹果x优化电池要不要打开(苹果X优化电池充电什么意思)

    苹果x优化电池要不要打开(苹果X优化电池充电什么意思)

  • 通常所说的计算机的主机是(通常所说的计算机主机主要由诺依曼结构)

    通常所说的计算机的主机是(通常所说的计算机主机主要由诺依曼结构)

  • 电脑怎么更改代理服务器(电脑怎么更改代理节点)

    电脑怎么更改代理服务器(电脑怎么更改代理节点)

  • 华为mate30pro插卡位置(华为mate30pro插卡口在哪里)

    华为mate30pro插卡位置(华为mate30pro插卡口在哪里)

  • vivos1闪充多少w(vivos1闪充多少瓦)

    vivos1闪充多少w(vivos1闪充多少瓦)

  • qq扩列干啥的(qq扩列是干啥的)

    qq扩列干啥的(qq扩列是干啥的)

  • 如何查找丢失的手机(如何查找丢失的耳机)

    如何查找丢失的手机(如何查找丢失的耳机)

  • CSS渐变背景看这一篇就够了(背景渐变 css)

    CSS渐变背景看这一篇就够了(背景渐变 css)

  • python如何快速采集美~女视频?无反爬(python快速检索)

    python如何快速采集美~女视频?无反爬(python快速检索)

  • Java对象在内存中的结构(java对象内存大小计算)

    Java对象在内存中的结构(java对象内存大小计算)

  • 生产调味料用什么手续
  • 金税盘是什么时候开始使用的
  • 单位产品销售税金
  • 企业转让固定资产使用权的收益应当属于
  • 信息技术费如何做账
  • 发票二维码只有一半可以收吗
  • 无形资产应当按照公允价值进行初始计量吗
  • 建筑安装项目要求有哪些
  • 仲裁调解书赔偿多少钱
  • 费用利润率计算公式是什么意思
  • 所得税汇算清缴分录怎么做
  • 购买办公软件怎么入账
  • 资产一次性摊销
  • 房地产企业建造的商品楼属于存货对吗
  • 企业以前年度的关联交易与预约定价安排
  • 互联网合同要交社保吗
  • 旅行社开具的发票是不都得写旅游服务
  • 个体户开普票要交企业所得税吗
  • 单位买酒报销如何做账
  • 蔬菜免税会计分录怎么做
  • 企业担保形成损失的原因
  • 销售产品的成本属于什么科目
  • 补付工程款会计分录
  • 处理固定资产怎么计算
  • BT模式建设项目怎么处理税收?
  • 工程承包付款最佳方式
  • 计提跌价准备会影响利润吗
  • 全部投资内部收益率
  • 职工教育经费培训费扣除比例
  • 鸿蒙系统怎么快速充电
  • 路由器网速慢怎么设置
  • window10发现威胁怎么办
  • vim diff对比
  • 成本法转为权益法属于会计政策变更吗
  • 房产税城镇土地使用税申报期限
  • 购进的货物
  • 建筑业红冲发票如何处理
  • 布拉格下雪
  • thinkphp6验证器
  • 业务招待费属于现金流量表中的哪个项目
  • 原生php和框架php的区别
  • thinkphp跨域请求
  • 织梦官网倒闭了吗
  • 城建税要计入税金及附加吗
  • 工资不纳税项目
  • 产品成本包括哪些
  • 加速折旧法是指在固定资产使用的早期少提折旧
  • 递延收益为什么属于负债
  • 商务费用报销的工作步骤
  • 银行汇票的会计处理过程分为什么阶段
  • 递延负债和递延收益
  • 跨年度冲红字发票账务处理
  • 工会赞助费
  • 出口退税对应的进项不能抵扣对吗
  • 银行承兑汇票贴现利息计算公式
  • 未完工工程如何验收
  • 自产的产品作为福利增值税
  • 银行回单和发票哪个粘贴到上面
  • 现金账务处理原则规定
  • 问答:分支机构是否需要设立账簿
  • sqlserver日期计算年龄
  • Windows任务计划高级应用
  • windows xp正式退休
  • 快速复制一张同样的幻灯片
  • win7系统怎么删除
  • mac电脑自带软件介绍
  • incomp.file ver什么意思
  • win10不能注销登录
  • winxp系统设备管理器
  • ext.grid.editorgridpanel
  • CSS锦囊
  • lrucache算法
  • python到底怎么学
  • windows批处理官方教程
  • 获取控件的值
  • 浅谈编码,解码的意义
  • ubuntu快捷键大全
  • 课题研究经费预算一般多少比较合适
  • 一般纳税人的进项票必须当月认证吗?
  • 企业代扣代缴个税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设