位置: 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音乐怎么搜索主播)

  • 华为nova3e有耳机孔吗(华为nova3e耳机设置在哪里)

    华为nova3e有耳机孔吗(华为nova3e耳机设置在哪里)

  • 华为怎么允许安装未知应用(华为怎么允许安装应用)

    华为怎么允许安装未知应用(华为怎么允许安装应用)

  • 西瓜视频设备异常怎么办(西瓜视频设备异地登录)

    西瓜视频设备异常怎么办(西瓜视频设备异地登录)

  • 中兴是哪个国家品牌(中兴是哪个国家的手机)

    中兴是哪个国家品牌(中兴是哪个国家的手机)

  • 抖音喜欢锁住了怎么解锁(抖音喜欢锁住了怎么删除)

    抖音喜欢锁住了怎么解锁(抖音喜欢锁住了怎么删除)

  • 抖音播放量怎么算一次(抖音播放量怎么看)

    抖音播放量怎么算一次(抖音播放量怎么看)

  • 抖音背包在哪里查看(抖音背包在哪里打开)

    抖音背包在哪里查看(抖音背包在哪里打开)

  • macbook建议升级系统吗(mac升级系统吗)

    macbook建议升级系统吗(mac升级系统吗)

  • 清空购物车是啥意思(清空购物车2020规则)

    清空购物车是啥意思(清空购物车2020规则)

  • 为什么指纹解锁总是解不开(为什么指纹解锁功能没有了)

    为什么指纹解锁总是解不开(为什么指纹解锁功能没有了)

  • 华为nova2plus有语音助手吗(华为nova2 plus的语音助手怎么开)

    华为nova2plus有语音助手吗(华为nova2 plus的语音助手怎么开)

  • iphone6拍照怎么虚化背景(iPhone6拍照怎么是反的)

    iphone6拍照怎么虚化背景(iPhone6拍照怎么是反的)

  • 承载系统lte打开有什么用(承载系统lte打开不了)

    承载系统lte打开有什么用(承载系统lte打开不了)

  • 电影怎么下载到u盘上(电影怎么下载到手机上)

    电影怎么下载到u盘上(电影怎么下载到手机上)

  • 魅族16th有otg功能吗

    魅族16th有otg功能吗

  • 手机怎么拍红底照片(手机怎么拍红底免冠证件照)

    手机怎么拍红底照片(手机怎么拍红底免冠证件照)

  • vivos5怎么设置休眠时间(vivo手机休眠设置在哪里设置)

    vivos5怎么设置休眠时间(vivo手机休眠设置在哪里设置)

  • 苹果手机怎么取消预订的app(苹果手机怎么取消静音模式)

    苹果手机怎么取消预订的app(苹果手机怎么取消静音模式)

  • psv1000和2000区别(psv1000和2000区别游戏)

    psv1000和2000区别(psv1000和2000区别游戏)

  • 淘手游怎么解绑身份证(淘手游解绑实名认证)

    淘手游怎么解绑身份证(淘手游解绑实名认证)

  • 怎么重设wifi密码步骤(怎么重设wifi密码)

    怎么重设wifi密码步骤(怎么重设wifi密码)

  • vivox9s手机发烫怎么办(vivox9s手机发烫是什么原因 应该怎么办)

    vivox9s手机发烫怎么办(vivox9s手机发烫是什么原因 应该怎么办)

  • phpcms怎么更改后台登录地址(php网站修改)

    phpcms怎么更改后台登录地址(php网站修改)

  • 个税申报本期收入指的是
  • 小规模纳税人销售农产品税率是多少
  • 固定资产待抵扣进项税
  • 环境保护税是什么科目
  • 苗圃公司会计分录
  • 税控盘清卡失败
  • 注册资本转出可以吗
  • 小规模纳税人季度不超45万免增值税
  • 增值税申报表在哪里打印
  • 租车纳税
  • 不能远程补报之前的税款所属期
  • 财税政策是什么
  • 单位代扣代缴个人社保
  • 现金流量表中现金流量净额怎么算
  • 购买办公桌椅属于什么费用
  • 核定征收的合伙企业 取得的投资收益
  • 投资收益填在经营所得申报表的哪里
  • 折旧率通俗理解
  • 土地使用权出让金收费标准
  • 出口企业出口退税
  • 工程承包款要交多少税
  • 预付卡销售怎么做账
  • 政府扶持资金要交所得税吗
  • win7为什么现在不能用了
  • ajax调用php函数
  • 出租房屋收取的水电费的税率
  • win 11怎么安装
  • 年度确认收入怎么算
  • 流转税的计税依据有哪些
  • ChatGPT会让6个低端岗位失业
  • php获取位置
  • 有没有网上学电脑的
  • 发票内容服务费可以吗?没有明细
  • 研发费用如何做加计扣除
  • php实现站内消息推送
  • python里面init
  • Switch Between Gnome And KDE Desktops In Ubuntu Or Kubuntu
  • 顺丰的电子发票是不是只有收到以后能开
  • 什么是指企业的所有部门彼此协调为顾客服务
  • sql server数据库异地备份
  • 贴现法付息的实际利息
  • 其他应收款主要是什么
  • 工业用地便宜
  • 回购股票不注销如何发可转债
  • 高新技术企业收入总额
  • 库存股 注销
  • 向银行按揭贷款时,收入流水不够怎么办?
  • 关于母子公司的关系的表述,正确的是( )
  • 本月没有认证的发票怎么做账
  • 商贸公司购买的水磅怎么入账
  • 其他应收款贷方余额怎么调整
  • 首先我们先了解一下作者英语怎么说呢
  • 土地出让合同的签订主体
  • 零申报必须会计吗?自己可以操作吗
  • 怎么样建账做账
  • 新手学会计怎么学
  • innodb 结构
  • win10图片修改
  • windows7怎么打符号
  • windows route metric
  • xp默认详细信息
  • xp系统如何共享文件夹怎么弄
  • centos支持中文
  • redhat系统界面
  • linux系统的配置
  • linux数据恢复公司 海南
  • win7系统怎么打日语
  • 如何修改windows密码策略
  • three.js菜鸟教程
  • vue父向子传方法
  • jquery插件使用教程
  • opencv for python
  • scrollview不滚动
  • context和getApplicationContext()介绍
  • Android IntentService解析
  • 在android
  • 总结网络io模型的特点
  • 合肥地税局客服电话
  • 地税局属于哪个部门管
  • 音箱海关税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设