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

  • 苹果13promax是双卡吗(苹果13promax是双卡怎么安装)

    苹果13promax是双卡吗(苹果13promax是双卡怎么安装)

  • 华为Mate X2支持的导航有哪些

    华为Mate X2支持的导航有哪些

  • win7自动关机怎么设置(windows7自动关机怎么回事)

    win7自动关机怎么设置(windows7自动关机怎么回事)

  • 怎样设置抖音关注不被别人看到(怎样设置抖音关注后才能看到作品)

    怎样设置抖音关注不被别人看到(怎样设置抖音关注后才能看到作品)

  • 小米开发版公测和内测有什么区别(小米开发版公测申请理由)

    小米开发版公测和内测有什么区别(小米开发版公测申请理由)

  • 指针和数组的区别(指针和数组的区别在哪)

    指针和数组的区别(指针和数组的区别在哪)

  • vulkanrt是什么软件(vulkan什么软件)

    vulkanrt是什么软件(vulkan什么软件)

  • i59400f最高配什么显卡(i59400f最高配什么内存条)

    i59400f最高配什么显卡(i59400f最高配什么内存条)

  • 用户粘性是什么意思(用户黏性还是粘性)

    用户粘性是什么意思(用户黏性还是粘性)

  • 在文档里打勾是怎么做到的(在文档里打勾是哪个键)

    在文档里打勾是怎么做到的(在文档里打勾是哪个键)

  • 磁盘id和硬盘序列号一样吗(硬盘id和磁盘id)

    磁盘id和硬盘序列号一样吗(硬盘id和磁盘id)

  • 怎么下载快手上的视频(怎么下载快手呀)

    怎么下载快手上的视频(怎么下载快手呀)

  • 新闻组属于internet应用吗(新闻组属于虚拟社区网络沟通工具引导工具服务支持工具)

    新闻组属于internet应用吗(新闻组属于虚拟社区网络沟通工具引导工具服务支持工具)

  • 空间动态怎么设置权限(空间动态怎么设置权限时间)

    空间动态怎么设置权限(空间动态怎么设置权限时间)

  • 原彩和夜览模式区别(原彩和夜览开哪一个)

    原彩和夜览模式区别(原彩和夜览开哪一个)

  • windows7黑屏怎么解决(windows7黑屏怎么强制关机)

    windows7黑屏怎么解决(windows7黑屏怎么强制关机)

  • 快手QQ授权登录为什么登不了(快手 qq登录)

    快手QQ授权登录为什么登不了(快手 qq登录)

  • iphonex的屏幕材质(iphonex的屏幕材质是蓝宝石吗)

    iphonex的屏幕材质(iphonex的屏幕材质是蓝宝石吗)

  • ipados分屏怎么使用(ipados 如何分屏)

    ipados分屏怎么使用(ipados 如何分屏)

  • 华为mate 30 pro 5g什么时候开售(华为mate30pro5g多重)

    华为mate 30 pro 5g什么时候开售(华为mate30pro5g多重)

  • 软件一直在安装中怎么办(电脑上怎么下载安装软件)

    软件一直在安装中怎么办(电脑上怎么下载安装软件)

  • 交易猫需要手续费吗(交易猫需要注意什么)

    交易猫需要手续费吗(交易猫需要注意什么)

  • 板载内存还能装内存条吗(板载内存可以扩容吗)

    板载内存还能装内存条吗(板载内存可以扩容吗)

  • 微博怎么设置夜间模式(微博怎么设置夜间模式2022)

    微博怎么设置夜间模式(微博怎么设置夜间模式2022)

  • 前端+后端项目 - 论坛信息管理系统(Web+servlet+MySQL+JDBC)(前端项目和后端项目)

    前端+后端项目 - 论坛信息管理系统(Web+servlet+MySQL+JDBC)(前端项目和后端项目)

  • 汽车增值税是企业交给国家的税
  • 购买固定资产的进项税可以抵扣吗
  • 小规模普票怎么冲红
  • 生产领用周转材料
  • 普票也要盖发票专用章吗
  • 分公司预缴企业所得税怎么算
  • 工资交税是用累计税吗
  • 间接持股数怎么计算
  • 金税盘开具电子发票后如何保存电子版
  • 市区增值税附征怎么填
  • 资产负债表存货项目期末余额怎么算
  • 农产品进项税额计算扣除的方法
  • 建帐时库存的原材料如何入帐?
  • 股东收回投资要交税吗
  • 取得的国债利息收入可以抵扣吗
  • 土地增值税属于什么税类
  • 理财认购申购
  • 鼠标玩游戏飘怎么回事
  • 苹果电脑重新安装系统磁盘锁了怎么办
  • windows怎么禁用网络
  • 保税区开出的专票可以抵扣吗
  • 房产税和城镇土地使用税
  • 直接计入当期利润的利得,即企业非日常
  • 上市公司的股份可以转卖吗
  • PSof1.exe - PSof1是什么进程 有什么作用
  • 建筑业成本核算表格百度网盘
  • 无形资产初始计量的表述
  • swoole如何使用
  • 源码阅读技巧
  • yolov5输出result
  • 挪威最北部
  • sysmon安装
  • 财务费用为负数是好事还是坏事
  • 先收票后收货
  • yolov3实现
  • 企业注销亏损怎么处理
  • 政府奖励需要缴纳增值税吗
  • 残疾人就业保障金申报时间
  • 免缴纳的增值税怎么做账
  • 如何用python绘制
  • 驱动开发做得长久吗
  • java中反射
  • 13%和17%税率
  • 小规模纳税人销售不动产适用税率
  • 存货价值的计算公式
  • 向投资者发放现金红利
  • 管理费用借方红字怎么记凭证
  • 财务费用怎么用
  • 什么是代扣代缴税收缴款凭证
  • 公司试驾车怎么开票
  • 建筑业预缴税款怎么退税
  • 非盈利社会团体可以开发票吗
  • 不动产分期抵扣表数据
  • 资产收购一般税务处理
  • 购买二氧化氯
  • 代理记账需要什么章
  • 员工垫付公司费用
  • 建设工程中设备计入包干价是否合法
  • php的每条语句以什么结尾
  • Linux/Mac MySQL忘记密码怎么办
  • win7旗舰版系统还原无法启动
  • win8.1资源管理器频繁假死
  • windows10mobile官网
  • centos5.8服务器
  • route.exe - route是什么进程 有什么用
  • linux ssh -v -p
  • linux zen3
  • assets怎么编辑
  • jquery怎么判断复选框选中
  • 关于中秋节的古诗
  • asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
  • 深圳少儿电子医保卡怎么用
  • 工会经费网上怎么申报
  • 火车票抵扣申报表怎么填
  • 搞农业种植
  • 四川职工医保联网了吗
  • 成品油消费税税率表
  • 如何下载电子国税app
  • 普通发票每个月有限制吗
  • 什么是集体约谈制
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设