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

  • 退个税手续费如何申报
  • 消费税是什么意思大白话
  • 递延所得税负债怎么算
  • 一般纳税人和小规模纳税人交税区别
  • 增值税发票记账联和抵扣联都丢了怎么办
  • 办公楼租金如何定价
  • 货款不入公司账户属什么行为
  • 营业外收入做销项税调整
  • 增值税附加计入什么科目
  • 固定资产的原值是含税价?
  • 医疗设备的折旧年限是多少年
  • 土地出让金计算方法
  • 账务处理和税前扣除如何处理
  • 税务评估补税如何入账处理合适?
  • 两所工资所得怎么扣税
  • 通讯费可以抵扣进项税吗
  • 年终奖可以分几次发吗?
  • 企业与个人租赁合同范本
  • 以公司名义办宽带怎么办
  • 民营医院增值税政策
  • 年底员工聚餐
  • 员工工作服计入劳保费吗
  • 怎样预交增值税
  • 公司发生的费用需要交税吗
  • 工程哪些材料可以做
  • 房地产开发企业所得税管理办法
  • 银行存款账不平怎么办
  • 购买固定资产如何记账
  • 云服务器免费使用
  • 0x8000005解决方案
  • 什么时候不能计入开办费
  • 票据追索权纠纷被告
  • PHP:php_check_syntax()的用法_misc函数
  • kb4598481是什么
  • ghost打开
  • php可以和iis配合运行吗?
  • 住房公积金领出来用了影响以后买房贷款吗
  • 商品流通企业会计分录
  • laravel搭建
  • 美国大峡谷在哪儿
  • php实现留言板功能
  • 物流公司过户给我需要做什么
  • 没有关系怎么表达
  • php二分查找算法两种方法
  • php接收post
  • 材料报废及处置方案
  • 电影制片过程
  • 提供加工劳务怎么开票
  • 一般企业预缴税额怎么算
  • mongodb简单使用
  • 织梦使用教程
  • 电子发票开出后如何查看
  • 更改增值税申报表退税在哪里退钱
  • 月入一万怎么样
  • 个体经营所得税怎么网上申报
  • 工程施工的主要经济指标包括哪些
  • 高工资的工资
  • 固定资产在以后会计期间可以转回吗
  • 物业公司付电业费合法吗
  • 货款和发票金额一样吗
  • 不是公司股东的情况说明模板
  • 差旅费属于什么会计要素
  • 退回备用金在现金怎么办
  • 长期股权投资损益调整怎么回事
  • 外贸企业怎么开出口发票
  • 税务登记证办理流程
  • win7全局搜索
  • 修改虚拟机中的用户名
  • Android OpenGL ES 入门
  • 骨骼动画程序设计
  • 深入浅出python
  • node调试工具
  • js面向对象的原理
  • jquery单选框
  • jquery 遍历
  • 河北省电子税务局网上申报
  • 残疾人个人所得税减免政策
  • 供热企业税收优惠政策执行情况
  • 建筑行业增值税税收优惠政策
  • 广州地税网上社保怎么交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设