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

  • 天猫精灵cc7屏幕多大(天猫精灵cc7屏幕只显示时间设置)

    天猫精灵cc7屏幕多大(天猫精灵cc7屏幕只显示时间设置)

  • 火山小视频怎么赚钱(火山小视频怎么改名字)

    火山小视频怎么赚钱(火山小视频怎么改名字)

  • 登录号被支付宝本地占用什么意思(支付宝账号被别人登录了会有影响吗)

    登录号被支付宝本地占用什么意思(支付宝账号被别人登录了会有影响吗)

  • 微信顾客付款后怎么联系对方(微信顾客付款后叫退款,然后又重新支付)

    微信顾客付款后怎么联系对方(微信顾客付款后叫退款,然后又重新支付)

  • 华为关机闹钟会不会响(华为关机后闹钟)

    华为关机闹钟会不会响(华为关机后闹钟)

  • 手机掉电快是什么原因(手机掉电快是什么回事)

    手机掉电快是什么原因(手机掉电快是什么回事)

  • autocad默认扩展名是什么(autocad默认扩展名)

    autocad默认扩展名是什么(autocad默认扩展名)

  • 笔记本磁盘占用率高怎么办(笔记本磁盘占用百分百)

    笔记本磁盘占用率高怎么办(笔记本磁盘占用百分百)

  • dvd rw驱动器是什么意思(dvd rw驱动器变成了cd驱动器)

    dvd rw驱动器是什么意思(dvd rw驱动器变成了cd驱动器)

  • 叮咚音箱连不上网怎么解决(叮咚音箱连不上网络怎么办)

    叮咚音箱连不上网怎么解决(叮咚音箱连不上网络怎么办)

  • 换手机怎么保存微信聊天记录(换手机怎么保存电话号码)

    换手机怎么保存微信聊天记录(换手机怎么保存电话号码)

  • 如何退出微信传输助手(微信传送门怎么关掉)

    如何退出微信传输助手(微信传送门怎么关掉)

  • word文档怎么画线条(word文档怎么画下划线横线)

    word文档怎么画线条(word文档怎么画下划线横线)

  • web安全属于什么专业(web安全属于什么岗位)

    web安全属于什么专业(web安全属于什么岗位)

  • 苹果x有没有耳机孔(苹果x有没有耳机)

    苹果x有没有耳机孔(苹果x有没有耳机)

  • 抖音怎么上传高清视频(抖音怎么上传高清画质)

    抖音怎么上传高清视频(抖音怎么上传高清画质)

  • 为什么别人看不到我的qq动态(为什么别人看不了我的朋友圈)

    为什么别人看不到我的qq动态(为什么别人看不了我的朋友圈)

  • 微信读书币会清零吗(微信读书书币使用)

    微信读书币会清零吗(微信读书书币使用)

  • word选项卡隐藏在哪里(word选项卡隐藏了怎么办)

    word选项卡隐藏在哪里(word选项卡隐藏了怎么办)

  • 小米cc9e防水级别(小米cc9pro防水等级)

    小米cc9e防水级别(小米cc9pro防水等级)

  • 饿了吗首单立减用不了(饿了么外卖首单立减怎么用不了)

    饿了吗首单立减用不了(饿了么外卖首单立减怎么用不了)

  • 小米怎么取消私密文件(小米怎么取消私密相册设置)

    小米怎么取消私密文件(小米怎么取消私密相册设置)

  • vivoz3什么时候更新9.0系统(vivoz3什么时候官网下架)

    vivoz3什么时候更新9.0系统(vivoz3什么时候官网下架)

  • 手机证件照怎么拍(手机证件照怎么排版)

    手机证件照怎么拍(手机证件照怎么排版)

  • 劳务派遣公司如何收费
  • 城市维护建设税为什么是流转税
  • 产值利税率是什么
  • 计入税金及附加的科目
  • 贷款利息收入如何开票
  • 冲红电子发票是什么意思
  • 自来水厂的供水管是什么材质的
  • 小规模纳税人涉税风险
  • 公司商标注册费用属于什么费用
  • 已经报销的发票还会查吗
  • 非营利组织注册登记证件图片
  • 培训费没有发票怎么办
  • 视同销售存货账务处理方法是什么?
  • 增值税只有销项没有进项怎么做账
  • 所得税季度申报表营业成本怎么填
  • 企业开票代码是什么意思
  • 包销和代销哪个风险大
  • 房屋贷款基准利率表 历年查询
  • 预付款和进度款支付有冲突吗
  • 非营利组织属于企业吗
  • 工程款中包含增值税怎么处理
  • 纳税人购买税控设备抵扣问题
  • 修改bios设置
  • 先支付后收到发票怎么做账
  • 双链表的删除操作算法,两条改链语句能调换位置吗?
  • 中秋买东西有讲究吗?
  • 计提房屋租赁费的会计分录
  • PHP:curl_strerror()的用法_cURL函数
  • 提坏账准备的调整分录
  • PHP:mcrypt_cfb()的用法_Mcrypt函数
  • 企业年金缴纳标准400什么意思啊
  • 视频监控智能化应用
  • 合伙搞养殖
  • php文件用什么运行
  • 购买电脑固定资产怎么记账
  • yolov5标签格式
  • php怎么写数据库
  • 前端实现文件下载列表
  • css选择器详解
  • 企业对外投资资产的成本可以税前扣除吗
  • 弥补以前年度亏损报表怎么填
  • 卖出周转材料的分录怎么做
  • 物料最低库存
  • 远期汇票分为哪几种
  • 货物不符合质量条款规定
  • 清算汇缴报表填写范本
  • sql2008混合模式
  • 年金保险是指什么保险
  • 进出口代理的账务怎么做
  • 安全生产费用应当专户储存专款专用专户核算
  • 劳务费个税账务处理办法
  • 装修费摊销会计准则
  • 被工商吊销营业执照怎么办
  • 土地返还金
  • 进项都抵扣完了怎么做账
  • 个人开具发票需要税号吗?
  • 公司租的房子电费发票怎么开
  • 国际快递能发吗
  • 企业在非同一控制下的企业合并
  • 利用rpm安装软件包时,应使用命令选项
  • xp系统删除文件怎么删
  • 简述操作系统更新设置方法
  • winsock2
  • 微软手机
  • wysafe.exe是什么
  • XP系统升级WIN7系统
  • win8怎样设置禁止弹出广告
  • win10能运行的单机游戏
  • JavaScript浏览器打开
  • pops基本属性
  • php消息队列面试题及答案
  • perl子函数
  • jquery实战
  • 批处理检查输入文本是否为字母或数字
  • python第六章函数
  • Tcp/ip协议族
  • javascript的简介
  • 12366纳税服务平台人工时间
  • 国家税务总局公告2017年第21号
  • 2023年四川城乡居民养老保险多少钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设