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

  • 阿里云邮箱如何在邮箱内修改密码(阿里云邮箱如何登录)

    阿里云邮箱如何在邮箱内修改密码(阿里云邮箱如何登录)

  • 苹果volte开关在哪(苹果volte开关在哪里关闭)

    苹果volte开关在哪(苹果volte开关在哪里关闭)

  • 华为nova5pro手机如何截屏(华为nova5pro手机屏幕多大)

    华为nova5pro手机如何截屏(华为nova5pro手机屏幕多大)

  • 拨打电话手表无法连接(电话手表打不出电话显示无网络连接)

    拨打电话手表无法连接(电话手表打不出电话显示无网络连接)

  • word合并段落怎么设置(word合并段落后采用什么格式)

    word合并段落怎么设置(word合并段落后采用什么格式)

  • lsp是什么(lsp是什么意思网络缩写)

    lsp是什么(lsp是什么意思网络缩写)

  • 声音将通过听筒播放是什么意思(声音从听筒出来怎么办)

    声音将通过听筒播放是什么意思(声音从听筒出来怎么办)

  • 笔记本截屏键在哪(笔记本截屏键在哪设置)

    笔记本截屏键在哪(笔记本截屏键在哪设置)

  • 触宝电话不能免费用了(触宝电话怎么不免费了)

    触宝电话不能免费用了(触宝电话怎么不免费了)

  • dvi无信号显示屏不亮(dvi无信号显示屏不亮,主机不能关机,键盘也没用了)

    dvi无信号显示屏不亮(dvi无信号显示屏不亮,主机不能关机,键盘也没用了)

  • 华为nova6双系统怎么设置(华为nova6双系统怎么进去)

    华为nova6双系统怎么设置(华为nova6双系统怎么进去)

  • 华为mate30pro和oppofindx2对比(华为mate30pro和oppofindX5pro哪个好)

    华为mate30pro和oppofindx2对比(华为mate30pro和oppofindX5pro哪个好)

  • 照片显示什么手机拍摄 怎么设置(照片显示拍照手机类型)

    照片显示什么手机拍摄 怎么设置(照片显示拍照手机类型)

  • 苹果6微信怎么切换深色模式(苹果6微信怎么开启黑夜模式)

    苹果6微信怎么切换深色模式(苹果6微信怎么开启黑夜模式)

  • cpu vid电压是什么(cpu vddnb电压)

    cpu vid电压是什么(cpu vddnb电压)

  • 小米bn39什么型号(小米bm31是什么手机)

    小米bn39什么型号(小米bm31是什么手机)

  • 华为平板可以连接打印机打印吗(华为平板可以连两个蓝牙耳机吗)

    华为平板可以连接打印机打印吗(华为平板可以连两个蓝牙耳机吗)

  • 抖音互相关注是好友吗(抖音互相关注是不是就是对方粉丝)

    抖音互相关注是好友吗(抖音互相关注是不是就是对方粉丝)

  • 手机微信分身怎么弄(手机微信分身怎么登录不上)

    手机微信分身怎么弄(手机微信分身怎么登录不上)

  • 快手作品误删了怎么恢复(快手作品误删了如何恢复)

    快手作品误删了怎么恢复(快手作品误删了如何恢复)

  • 华为手机打开hd收费吗(华为手机打开hdb没有反应)

    华为手机打开hd收费吗(华为手机打开hdb没有反应)

  • 苹果手机迅雷下载的视频在哪里找(苹果手机迅雷下载)

    苹果手机迅雷下载的视频在哪里找(苹果手机迅雷下载)

  • 华为p30pro屏幕供应商(华为p30pro屏幕供电引脚在哪里)

    华为p30pro屏幕供应商(华为p30pro屏幕供电引脚在哪里)

  • 小米八怎么设置永不熄屏(小米八怎么设置灵动岛)

    小米八怎么设置永不熄屏(小米八怎么设置灵动岛)

  • 电脑线怎么连接(电脑线怎么连接网络)

    电脑线怎么连接(电脑线怎么连接网络)

  • 9700k配什么主板(i7 9700k配什么主板)

    9700k配什么主板(i7 9700k配什么主板)

  • 牛奶的增值税税率
  • 分期收款方式确认销售收入
  • 政府返还的个税怎么算
  • 收到投资款怎么做账
  • 受赠房产转让可以免个税
  • 税费返还怎么做会计科目
  • 还没入库,发票已经给财务了 怎么办
  • 材料收到发票未到怎么记账
  • 按工人工资比例结转制造费用的科目
  • 公司账户资金
  • 对方电子承兑发出多长时间可以到账
  • 产品质量赔款的账务处理
  • 税控设备可以跨省销售吗
  • 个人所得税0申报操作流程
  • 租赁合同印花税双方都要交吗
  • 增值税进项税额转出的账务处理
  • 单位年底发放的补助
  • 增值税总分机构可以汇总纳税吗
  • 跨月预缴如何做账
  • 累计结转是什么意思
  • 公司员工驻外补贴政策
  • 类似股票期货的产品
  • js监听地址栏
  • 电缆与变压器连接有何规定
  • 事业单位研究开题报告
  • 以非现金资产清偿全部债务
  • 什么是减值测试方法
  • 借用资质(挂靠施工)的法律责任如何判断?
  • 公司社保钱可以套出来吗
  • 无形资产处置计入哪里
  • php zend
  • 委托证券公司购入公允价值为100万元的股票
  • 人脸识别测颜值,al
  • php单态模式简单解释
  • 没有公网ip如何实现外网访问路由器
  • 人工智能机器人
  • 总公司接活让分公司去做可以吗
  • 酒店低值易耗品怎么摊销
  • python导入模块的本质
  • 过渡期怎么坚持下去
  • 经营范围没有的项目可以做吗
  • 建筑企业预缴
  • 找社保代理公司需要提供什么资料
  • 资产负债表编制
  • 资产减值准备的计提影响递延所得税资产吗
  • 一般纳税人增值税怎么算
  • 转让技术所有权是其他业务收入吗
  • 税务评估价多久更新一次
  • 去年的亏损今年第一季度可以弥补吗
  • 内含增长率简易公式如何理解
  • 收到总公司拨款怎么入账
  • 企业员工福利费可以做什么
  • 非盈利社会团体可以开发票吗
  • 借款后的报销流程怎么写
  • 上海残疾人就业保障金计算公式
  • 企业给职工提供的免费住房是不是合法住宅?
  • 建筑行业预收账款预缴税
  • 电子承兑汇票如何入账
  • 二次加工型的企业有哪些
  • 工业企业待摊费用标准
  • sqlserver比较日期时间
  • sqlserver 断开数据库连接
  • windows 安装app
  • linux启动后出现grub
  • win7玩穿越火线电脑应该怎么设置
  • linux内存耗尽怎么解决
  • input和button按钮合到一起
  • css翻转正反面
  • 归档 oracle
  • vue中怎么引入css
  • javascript 代码
  • 创建一个新用户user1,设置其主目录为/home/user1:
  • JavaScript中Number.MIN_VALUE属性的使用示例
  • android多指触控
  • 安卓开源好处
  • 拟录用人员公示后还会递补吗
  • 花都狮岭到广州白云站怎么坐车
  • 新疆视同缴费指数认定?
  • 2018年企业所得税
  • 车辆检测费属于什么科目
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设