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

  • 华为悦盒怎么恢复出厂设置(华为悦盒怎么恢复出厂设置密码)

    华为悦盒怎么恢复出厂设置(华为悦盒怎么恢复出厂设置密码)

  • vivox70pro+怎么打开开发者模式(vivox70pro+如何)

    vivox70pro+怎么打开开发者模式(vivox70pro+如何)

  • wps表格打印怎么铺满a4纸(wps表格打印怎么填满一张纸)

    wps表格打印怎么铺满a4纸(wps表格打印怎么填满一张纸)

  • ps字体怎么安装(字体怎么安装)

    ps字体怎么安装(字体怎么安装)

  • a13处理器的手机有哪些(A13处理器的手机)

    a13处理器的手机有哪些(A13处理器的手机)

  • 华为手机nova5怎样返回主页(华为手机nova5怎么取手机卡)

    华为手机nova5怎样返回主页(华为手机nova5怎么取手机卡)

  • 贴吧帖子设为私密别人能看到吗(贴吧帖子设为私密是个人主页看不到)

    贴吧帖子设为私密别人能看到吗(贴吧帖子设为私密是个人主页看不到)

  • 推送引擎是什么意思(推送引擎是什么软件)

    推送引擎是什么意思(推送引擎是什么软件)

  • 腾讯会议中途退出会影响时长吗(腾讯会议中途退出录屏还在吗)

    腾讯会议中途退出会影响时长吗(腾讯会议中途退出录屏还在吗)

  • 微信语音总是提示太短(微信语音总是提示对方忙是怎么回事)

    微信语音总是提示太短(微信语音总是提示对方忙是怎么回事)

  • 芒果tv为什么没有弹幕开启标志(芒果tv为什么没有4k)

    芒果tv为什么没有弹幕开启标志(芒果tv为什么没有4k)

  • 四根线的网线怎么接(四根线的网线怎么插)

    四根线的网线怎么接(四根线的网线怎么插)

  • 腾讯视频hdr臻彩视界什么作用(腾讯视频hdr臻彩和杜比)

    腾讯视频hdr臻彩视界什么作用(腾讯视频hdr臻彩和杜比)

  • u盘删除的文件会在电脑回收站吗(u盘删除的文件可以恢复吗)

    u盘删除的文件会在电脑回收站吗(u盘删除的文件可以恢复吗)

  • 国行苹果序列号是什么开头(国行苹果序列号M开头)

    国行苹果序列号是什么开头(国行苹果序列号M开头)

  • gt和gtx有什么区别

    gt和gtx有什么区别

  • 小米6x能插内存卡吗(小米6x可以加内存卡)

    小米6x能插内存卡吗(小米6x可以加内存卡)

  • 趣配音的视频怎么下载(趣配音的视频怎么免费下载到手机上)

    趣配音的视频怎么下载(趣配音的视频怎么免费下载到手机上)

  • word纸型设置16k(word纸型设置横向)

    word纸型设置16k(word纸型设置横向)

  • ppt怎么设置自动保存(ppt怎么设置自动播放音乐)

    ppt怎么设置自动保存(ppt怎么设置自动播放音乐)

  • 抖音怎么做商品橱窗(抖音怎么做商品推广)

    抖音怎么做商品橱窗(抖音怎么做商品推广)

  • wps怎么搜索关键字(wps怎么搜索关键词手机)

    wps怎么搜索关键字(wps怎么搜索关键词手机)

  • 美国版抖音叫什么(美国抖音app叫什么)

    美国版抖音叫什么(美国抖音app叫什么)

  • 抖音怎么去掉背景音乐(抖音怎么去掉背影照片)

    抖音怎么去掉背景音乐(抖音怎么去掉背影照片)

  • 十分钟,带你了解 Vue3 的新写法(十分钟带你了解阿氏圆)

    十分钟,带你了解 Vue3 的新写法(十分钟带你了解阿氏圆)

  • vue3+ts深入组件(一)Props(深入vue3+typescript技术栈)

    vue3+ts深入组件(一)Props(深入vue3+typescript技术栈)

  • Qt Port of WebKit ¶

    Qt Port of WebKit ¶

  • 进口烟丝交多少税
  • 国税纳税标准
  • 发票领购簿长什么样
  • 只有费用没有收入成本怎么填所得税
  • 进项税额转出有什么影响
  • 工程施工的借方和贷方
  • 交易性金融资产属于什么科目
  • 收到固定资产抵账增值税计税基础
  • 建筑企业如何预缴税款
  • 企业促销应该采用什么方法
  • 营利性养老机构需要缴纳哪些税
  • 金税盘维护费减免政策代码
  • 员工出国补贴标准
  • 企业委托银行收款,银行以办妥手续,而企业尚未收到凭证
  • 租房的装修费怎么入账
  • 拆除固定资产的补偿款
  • 一般代开增值税多少个点?
  • 技术转让所得一百万交多少税
  • 进项税的现金流怎么填
  • 烟酒发票可以抵扣所得税吗
  • 发票密码区出来了一些
  • 股权转让怎么缴纳个人所得税
  • 固定资产报废账目
  • 车辆购置税完税证明电子版二维码怎么扫
  • 专家费1000元个人所得税到底是税前还是税后
  • 会议展览服务费需要交印花税吗
  • php字符串定义
  • 支付包装物押金为什么是其他应收款
  • 免抵退应退税额15栏怎么填进去
  • mac 查看当前用户
  • kernl32.dll
  • 准予在企业所得税税前扣除的有
  • 海恩斯科普简介
  • 浅谈中国式现代化3000字论文
  • 定额发票累计领用金额怎么填
  • b站怎么进抖音模式
  • 企业收到发票后怎么入账
  • 差旅费补贴要交个人所得税文件
  • linux中mongodb启动
  • 小规模纳税人不超过30万怎么做账
  • 建账的三个基本步骤
  • 个体户是什么概念
  • 工程未完工开了发票怎么做账
  • 收到预收款并已付款
  • 专项应付款如何核算
  • 发票优惠金额怎么开
  • 招标代理公司用哪个版本什么意思
  • 事业单位服务收费标准
  • 企业管理费的计算基础
  • 现金日记账的日期怎么写
  • windows共享功能
  • Windows Vista和Windows 7对比
  • pages怎么标记
  • 虚拟机基本知识
  • 戴尔笔记本电脑开不了机
  • 电脑怎样进入安全模式
  • iso镜像怎么装
  • linux i3桌面
  • win10企业版怎么连接无线网
  • LINUX系统下MySQL 压力测试工具super smack
  • flash是什么文件夹
  • window10 wifi打不开
  • 原生js怎么获取input值
  • C#绘制准心脚本
  • bootstrap怎么用
  • shell脚本编写步骤
  • listview设置item宽度
  • python parser解析
  • unity3ds
  • javascript基础笔记
  • 安卓9api
  • 电子税务局下载app苹果版
  • 增值税税控开票软件密码不知道了怎么办
  • 地税办理停保
  • 江西省企业社会保险费缴费指南
  • 如何开通税务系统
  • 房子办不了产权
  • 《税收实务》
  • 劳务派遣工为什么没年假了
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设