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

  • 华为tag-al00是什么型号

    华为tag-al00是什么型号

  • 小米mix3字体怎么改(小米手机 第三方字体)

    小米mix3字体怎么改(小米手机 第三方字体)

  • 1万音浪可以换多少人民币(1万音浪可以提现多少)

    1万音浪可以换多少人民币(1万音浪可以提现多少)

  • 抖音怎么把app里的视频保存在手机里(怎么把抖音app放到手机桌面)

    抖音怎么把app里的视频保存在手机里(怎么把抖音app放到手机桌面)

  • 红米k30pro6g运行内存够用吗(红米k30pro性能测试)

    红米k30pro6g运行内存够用吗(红米k30pro性能测试)

  • QQ自动回复在哪里设置(QQ自动回复在哪儿)

    QQ自动回复在哪里设置(QQ自动回复在哪儿)

  • 可编程控制器的组成部分(可编程控制器的特点)

    可编程控制器的组成部分(可编程控制器的特点)

  • 淘宝冻结资金多久解封(淘宝冻结资金多久解封图片)

    淘宝冻结资金多久解封(淘宝冻结资金多久解封图片)

  • wps的行高列宽在哪里(wps office的行高和列宽的单位是什么)

    wps的行高列宽在哪里(wps office的行高和列宽的单位是什么)

  • 集五福可以集两次吗(集五福集两套有用吗)

    集五福可以集两次吗(集五福集两套有用吗)

  • qq打电话关闭麦克风对方会有显示吗(qq打电话关闭麦克风对方还听得见声音吗)

    qq打电话关闭麦克风对方会有显示吗(qq打电话关闭麦克风对方还听得见声音吗)

  • 为什么手机日历到2036年就没有了(为什么手机日历会收到黄色信息)

    为什么手机日历到2036年就没有了(为什么手机日历会收到黄色信息)

  • 200m宽带可以用千兆端口吗(200m宽带可以用多少流量)

    200m宽带可以用千兆端口吗(200m宽带可以用多少流量)

  • 华为nova65g怎么截屏(华为nova65g怎么连接电脑)

    华为nova65g怎么截屏(华为nova65g怎么连接电脑)

  • 2gb是多少内存(2gb内存条多少钱)

    2gb是多少内存(2gb内存条多少钱)

  • windows是一个多任务操作系统指的是什么(windows是一个多任务操作,多任务指的是)

    windows是一个多任务操作系统指的是什么(windows是一个多任务操作,多任务指的是)

  • 大二芯和大三芯通用吗(大二芯和大三芯的区别)

    大二芯和大三芯通用吗(大二芯和大三芯的区别)

  • 怎么把浏览器缓存的视频转换成mp4(怎么把浏览器缓存的视频保存到本地)

    怎么把浏览器缓存的视频转换成mp4(怎么把浏览器缓存的视频保存到本地)

  • iphone4s花屏怎么办(苹果4花屏了怎么办)

    iphone4s花屏怎么办(苹果4花屏了怎么办)

  • 京东怎么退货退款(京东怎么退货退款京东申请退货)

    京东怎么退货退款(京东怎么退货退款京东申请退货)

  • iphone隐藏照片加密(iphone隐藏照片加密码)

    iphone隐藏照片加密(iphone隐藏照片加密码)

  • 抖音开店保证金是多少(抖音开店保证金多久能退回来)

    抖音开店保证金是多少(抖音开店保证金多久能退回来)

  • 苹果不想更新系统怎么取消红点(苹果不想更新系统怎么关)

    苹果不想更新系统怎么取消红点(苹果不想更新系统怎么关)

  • 华为nova4电池耐用吗(华为nova4电池怎么样)

    华为nova4电池耐用吗(华为nova4电池怎么样)

  • 8p双摄像头怎么打开(8p两个摄像头)

    8p双摄像头怎么打开(8p两个摄像头)

  • Windows10如何关闭显示最近打开的项(windows10如何关闭安全中心防护)

    Windows10如何关闭显示最近打开的项(windows10如何关闭安全中心防护)

  • 开机要按F1才能进系统解决办法是什么?(开机要按f1才能进系统)

    开机要按F1才能进系统解决办法是什么?(开机要按f1才能进系统)

  • vue.config.js 中 devServer.proxy 配置说明,以及配置正确不生效问题

    vue.config.js 中 devServer.proxy 配置说明,以及配置正确不生效问题

  • 设计印刷合同
  • 股东个人财产转让协议
  • 代扣代缴个人所得税如何做账
  • 个体工商户的免税政策
  • 什么是财务报表审计
  • 三方代付协议有效吗
  • 不确认销售收入结转销售成本
  • 公司贷款可以转私人吗
  • 什么叫残保金减免
  • 软件行业个人所得税
  • 收到前欠销货款290000元,存入银行的会计分录怎么写
  • 持有至到期投资是什么意思
  • 记账凭证包括哪些种类
  • 组织投标工作
  • 原材料加工成品怎么做账
  • 科研项目间接费用会计分录
  • 订金退回怎么做账
  • 产权转移书据印花税申报期限
  • 未开票收入开票后怎么做账
  • 物流公司一般纳税人怎么报税
  • 高新企业的研究方向
  • 定金转为货款金额需要特别约定吗?
  • 公司投资理财需要纳税吗
  • 个体工商户支付宝怎么开票
  • js map foreach遍历
  • smart图形怎么单独设置动画
  • 公司整体收购缴税
  • LangChain Agent 执行过程解析 OpenAI
  • js的发展历史
  • 增值税专用发票上注明的价款含税吗
  • 个税中累计住房怎么计算
  • 设置cmd命令
  • 表单验证方法一般有哪几种
  • 小企业汇兑损失
  • python分布式执行框架Ray的介绍
  • 企业所得税预缴可以不交吗
  • 前年度多交附加税怎么交
  • 现金预算表中的归还借款和支付利息怎么算
  • 母公司吸收合并全资子公司
  • 小规模纳税人三减一政策
  • 基本户和一般户可以互相转账吗
  • sqlserver 数据迁移
  • 营业收入净额是销售收入净额吗
  • 制造费用工资计入什么科目
  • 管家婆进销存的凭证如何体现?
  • 一般纳税人怎么算税
  • 电商账务怎么做
  • 免租期租金可以追回吗
  • 通信费属于哪个会计科目
  • 办公室装修费计入长期待摊费用
  • 会计调整以前年度遗留问题查不出来说明怎么写
  • 实缴出资未注明投资款
  • 给员工购买的意外险可以税前扣除吗
  • 红冲上一年度销售收入
  • 资本公积只能转现金吗
  • 固定资产应计入什么账户
  • 员工预支工资属于什么科目
  • 如何查看连接网络的密码
  • sql server触发器实验
  • mysql字符串类型有哪些
  • 注册表隐藏桌面图标
  • U盘硬装WIN7 64位旗舰系统,是怎样练成的(妹子装机衔接篇)
  • centos的命令
  • linux系统中网络配置文件一般放在
  • dgservice.exe是什么
  • 电脑xp操作系统
  • win8系统开启摄像头权限
  • win10组策略编辑器没有
  • windows8无法安装wps
  • unity3d界面布局
  • javascript.info
  • bootstrap怎么用
  • Android ViewStub 布局延迟加载
  • vue.js购物车
  • cument.execCommand()用法深入理解
  • shell脚本if用法
  • shell脚本识别十六进制数
  • JavaScript toFixed() 方法
  • 云南国税申报
  • 财务会计制度及核算软件备案怎么填
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设