React 省市查询组件完整代码

目录

一、地区文件

二、Antd配合使用

三、实现效果


一、地区文件

下载地址:全国省市区数据_JSON格式_SQL格式

export const chinaArea = {0: {1: '北京',2: '天津',3: '河北省',4: '山西省',5: '内蒙古自治区',6: '辽宁省',7: '吉林省',8: '黑龙江省',9: '上海',10: '江苏省',11: '浙江省',12: '安徽省',13: '福建省',14: '江西省',15: '山东省',16: '河南省',17: '湖北省',18: '湖南省',19: '广东省',20: '广西壮族自治区',21: '海南省',22: '重庆',23: '四川省',24: '贵州省',25: '云南省',26: '西藏自治区',27: '陕西省',28: '甘肃省',29: '青海省',30: '宁夏回族自治区',31: '新疆维吾尔自治区',32: '台湾',33: '香港特别行政区',34: '澳门特别行政区',35: '海外'},1: {36: '北京市'},2: {37: '天津市'},3: {38: '石家庄市',39: '唐山市',40: '秦皇岛市',41: '邯郸市',42: '邢台市',43: '保定市',44: '张家口市',45: '承德市',46: '沧州市',47: '廊坊市',48: '衡水市'},4: {49: '太原市',50: '大同市',51: '阳泉市',52: '长治市',53: '晋城市',54: '朔州市',55: '晋中市',56: '运城市',57: '忻州市',58: '临汾市',59: '吕梁市'},5: {60: '呼和浩特市',61: '包头市',62: '乌海市',63: '赤峰市',64: '通辽市',65: '鄂尔多斯市',66: '呼伦贝尔市',67: '巴彦淖尔市',68: '乌兰察布市',69: '兴安盟',70: '锡林郭勒盟',71: '阿拉善盟'},6: {72: '沈阳市',73: '大连市',74: '鞍山市',75: '抚顺市',76: '本溪市',77: '丹东市',78: '锦州市',79: '营口市',80: '阜新市',81: '辽阳市',82: '盘锦市',83: '铁岭市',84: '朝阳市',85: '葫芦岛市'},7: {86: '长春市',87: '吉林市',88: '四平市',89: '辽源市',90: '通化市',91: '白山市',92: '松原市',93: '白城市',94: '延边朝鲜族自治州'},8: {95: '哈尔滨市',96: '齐齐哈尔市',97: '鸡西市',98: '鹤岗市',99: '双鸭山市',100: '大庆市',101: '伊春市',102: '佳木斯市',103: '七台河市',104: '牡丹江市',105: '黑河市',106: '绥化市',107: '大兴安岭地区'},9: {108: '上海市'},10: {109: '南京市',110: '无锡市',111: '徐州市',112: '常州市',113: '苏州市',114: '南通市',115: '连云港市',116: '淮安市',117: '盐城市',118: '扬州市',119: '镇江市',120: '泰州市',121: '宿迁市'},11: {122: '杭州市',123: '宁波市',124: '温州市',125: '嘉兴市',126: '湖州市',127: '绍兴市',128: '金华市',129: '衢州市',130: '舟山市',131: '台州市',132: '丽水市'},12: {133: '合肥市',134: '芜湖市',135: '蚌埠市',136: '淮南市',137: '马鞍山市',138: '淮北市',139: '铜陵市',140: '安庆市',141: '黄山市',142: '滁州市',143: '阜阳市',144: '宿州市',145: '六安市',146: '亳州市',147: '池州市',148: '宣城市'},13: {149: '福州市',150: '厦门市',151: '莆田市',152: '三明市',153: '泉州市',154: '漳州市',155: '南平市',156: '龙岩市',157: '宁德市'},14: {158: '南昌市',159: '景德镇市',160: '萍乡市',161: '九江市',162: '新余市',163: '鹰潭市',164: '赣州市',165: '吉安市',166: '宜春市',167: '抚州市',168: '上饶市'},15: {169: '济南市',170: '青岛市',171: '淄博市',172: '枣庄市',173: '东营市',174: '烟台市',175: '潍坊市',176: '济宁市',177: '泰安市',178: '威海市',179: '日照市',180: '莱芜市',181: '临沂市',182: '德州市',183: '聊城市',184: '滨州市',185: '菏泽市'},16: {186: '郑州市',187: '开封市',188: '洛阳市',189: '平顶山市',190: '安阳市',191: '鹤壁市',192: '新乡市',193: '焦作市',194: '濮阳市',195: '许昌市',196: '漯河市',197: '三门峡市',198: '南阳市',199: '商丘市',200: '信阳市',201: '周口市',202: '驻马店市'},17: {203: '武汉市',204: '黄石市',205: '十堰市',206: '宜昌市',207: '襄阳市',208: '鄂州市',209: '荆门市',210: '孝感市',211: '荆州市',212: '黄冈市',213: '咸宁市',214: '随州市',215: '恩施土家族苗族自治州'},18: {216: '长沙市',217: '株洲市',218: '湘潭市',219: '衡阳市',220: '邵阳市',221: '岳阳市',222: '常德市',223: '张家界市',224: '益阳市',225: '郴州市',226: '永州市',227: '怀化市',228: '娄底市',229: '湘西土家族苗族自治州'},19: {230: '广州市',231: '韶关市',232: '深圳市',233: '珠海市',234: '汕头市',235: '佛山市',236: '江门市',237: '湛江市',238: '茂名市',239: '肇庆市',240: '惠州市',241: '梅州市',242: '汕尾市',243: '河源市',244: '阳江市',245: '清远市',246: '东莞市',247: '中山市',248: '东沙群岛',249: '潮州市',250: '揭阳市',251: '云浮市'},20: {252: '南宁市',253: '柳州市',254: '桂林市',255: '梧州市',256: '北海市',257: '防城港市',258: '钦州市',259: '贵港市',260: '玉林市',261: '百色市',262: '贺州市',263: '河池市',264: '来宾市',265: '崇左市'},21: {266: '海口市',267: '三亚市',268: '三沙市'},22: {269: '重庆市'},23: {270: '成都市',271: '自贡市',272: '攀枝花市',273: '泸州市',274: '德阳市',275: '绵阳市',276: '广元市',277: '遂宁市',278: '内江市',279: '乐山市',280: '南充市',281: '眉山市',282: '宜宾市',283: '广安市',284: '达州市',285: '雅安市',286: '巴中市',287: '资阳市',288: '阿坝藏族羌族自治州',289: '甘孜藏族自治州',290: '凉山彝族自治州'},24: {291: '贵阳市',292: '六盘水市',293: '遵义市',294: '安顺市',295: '铜仁市',296: '黔西南布依族苗族自治州',297: '毕节市',298: '黔东南苗族侗族自治州',299: '黔南布依族苗族自治州'},25: {300: '昆明市',301: '曲靖市',302: '玉溪市',303: '保山市',304: '昭通市',305: '丽江市',306: '普洱市',307: '临沧市',308: '楚雄彝族自治州',309: '红河哈尼族彝族自治州',310: '文山壮族苗族自治州',311: '西双版纳傣族自治州',312: '大理白族自治州',313: '德宏傣族景颇族自治州',314: '怒江傈僳族自治州',315: '迪庆藏族自治州'},26: {316: '拉萨市',317: '昌都市',318: '山南地区',319: '日喀则市',320: '那曲地区',321: '阿里地区',322: '林芝市'},27: {323: '西安市',324: '铜川市',325: '宝鸡市',326: '咸阳市',327: '渭南市',328: '延安市',329: '汉中市',330: '榆林市',331: '安康市',332: '商洛市'},28: {333: '兰州市',334: '嘉峪关市',335: '金昌市',336: '白银市',337: '天水市',338: '武威市',339: '张掖市',340: '平凉市',341: '酒泉市',342: '庆阳市',343: '定西市',344: '陇南市',345: '临夏回族自治州',346: '甘南藏族自治州'},29: {347: '西宁市',348: '海东市',349: '海北藏族自治州',350: '黄南藏族自治州',351: '海南藏族自治州',352: '果洛藏族自治州',353: '玉树藏族自治州',354: '海西蒙古族藏族自治州'},30: {355: '银川市',356: '石嘴山市',357: '吴忠市',358: '固原市',359: '中卫市'},31: {360: '乌鲁木齐市',361: '克拉玛依市',362: '吐鲁番市',363: '哈密地区',364: '昌吉回族自治州',365: '博尔塔拉蒙古自治州',366: '巴音郭楞蒙古自治州',367: '阿克苏地区',368: '克孜勒苏柯尔克孜自治州',369: '喀什地区',370: '和田地区',371: '伊犁哈萨克自治州',372: '塔城地区',373: '阿勒泰地区'},32: {374: '台北市',375: '高雄市',376: '台南市',377: '台中市',378: '金门县',379: '南投县',380: '基隆市',381: '新竹市',382: '嘉义市',383: '新北市',384: '宜兰县',385: '新竹县',386: '桃园县',387: '苗栗县',388: '彰化县',389: '嘉义县',390: '云林县',391: '屏东县',392: '台东县',393: '花莲县',394: '澎湖县',395: '连江县'},33: {396: '香港岛',397: '九龙',398: '新界'},34: {399: '澳门半岛',400: '离岛'},35: {401: '海外'}
}

二、Antd配合使用

/*** @author Dragon Wu* @since 2024/7/4 10:37*/
import React, {useEffect} from "react";
import {Select, Tooltip} from 'antd';
import {useState} from "react";
import {chinaArea} from "@/store/json/chinaArea";
import useWindowSize from "@/hooks/pageParams/useWindowSize";
import {widthSmallLimit} from "@/config/setting/pageSetting";const provinceData: string[] = Object.values(chinaArea[0]);const ProvinceAreaSelect: React.FC<{ onChange: Function, value?: string }> =React.memo(({onChange, value}) => {/* 加载数据 */const [loaded, setLoaded] = useState<boolean>(false)useEffect(() => {if (value && (!loaded)) {const values: string[] = value.split(",")setProvince(values[0])const num: number = provinceData.indexOf(values[0]);if (num > -1) {setCityData(Object.values(chinaArea[num + 1]))setProvinceIndex(num)}if (values.length > 1) {setCity(values[1])const indexCity = Object.values(chinaArea[num + 1]).indexOf(values[1]);if (indexCity > -1) {setCityIndex(indexCity)}}setLoaded(true)}}, [value])const [provinceIndex, setProvinceIndex] = useState<number>(0)const [province, setProvince] = useState<string>("")const [city, setCity] = useState<string>("")const [cityIndex, setCityIndex] = useState<number>(0)const [cityData, setCityData] = useState<string[]>([])const windowSize = useWindowSize()const onChangeProvince = (e: number) => {onChange(provinceData[e])setProvince(provinceData[e])setProvinceIndex(e)setCity("")setCityData(Object.values(chinaArea[e + 1]))}const onChangeCity = (e: number) => {onChange(province + "," + cityData[e])setCity(cityData[e])setCityIndex(e)}return (<div style={{width: "100%", display: "flex", justifyContent: "space-between", flexWrap: "wrap"}}><Tooltip title={"选择您的省份"}><Selectplaceholder={"选择省"}showSearchvalue={province ? provinceIndex : undefined}style={{width: windowSize.clientWidth > widthSmallLimit ? "48%" : "100%"}}options={provinceData.map((item: string, index: number) => ({label: item, value: index}))}onChange={onChangeProvince}/></Tooltip><Tooltip title={"请先选择省,再选择城市"}><Selectplaceholder={"选择市"}showSearchstyle={windowSize.clientWidth > widthSmallLimit ? {width: "48%"} : {width: "100%",marginTop: "20px"}}value={city ? cityIndex : undefined}options={cityData.map((item: string, index: number) => ({label: item, value: index}))}onChange={onChangeCity}/></Tooltip></div>)})ProvinceAreaSelect.displayName = "ProvinceAreaSelect";export default ProvinceAreaSelect;

三、实现效果

总结完毕!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/40675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

维护和管理LDAP之OpenDJ

目录 基本介绍 服务专有名词 安装 命令行工具 密码管理 重置管理员密码 管理服务器进程 管理索引 如何搜索 管理索引 管理目录数据 测试数据 导出数据 导入数据 LDIF文件数据查看和比较 数据存储-Backends 配置连接 开启 HTTP/HTTPS连接 使用 REST访问 -open…

Spring AOP、Spring MVC工作原理、发展演变、常用注解

Spring AOP 概念 AOP全称为Aspect Oriented Programming&#xff0c;表示面向切面编程。切面指的是将那些与业务无关&#xff0c;但业务模块都需要使用的功能封装起来的技术。 AOP基本术语 **连接点&#xff08;Joinpoint&#xff09;&#xff1a;**连接点就是被拦截到的程序执…

AQWA | 水动力分析 二阶波浪力

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

Midjourney对图片细微调整和下载保存

点击v2是对第二图片细微调整。 点击u3对第3张图片进行放大。 保存图片: 对点击u3放大的图片&#xff0c;双击 , 右键保存图片

停车场小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;车主管理&#xff0c;商家管理&#xff0c;停车场信息管理&#xff0c;预约停车管理&#xff0c;商场收费管理&#xff0c;留言板管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;停车场信息…

审核平台前端新老仓库迁移

背景 审核平台接入50业务&#xff0c;提供在线审核及离线质检、新人培训等核心能力&#xff0c;同时提供数据报表、资源追踪、知识库等工具。随着平台的飞速发展&#xff0c;越来越多的新业务正在或即将接入审核平台&#xff0c;日均页面浏览量为百万级别。如今审核平台已是公司…

代码提交错分支了怎么办?

你有么有遇到过正在开发的代码&#xff0c;提交到生产环境的分支去&#xff0c;遇到这种情况怎么办&#xff1f; 问题重现&#xff1a; 这段注释// AAAAAAAAAAA 本来应该写在dev分支的&#xff0c;现在提交并push到master分支了 现在第一步&#xff0c;撤回提交 第二步&…

MySQL的Geometry数据处理之WKB方案

MySQL的Geometry数据处理之WKT方案&#xff1a;https://blog.csdn.net/qq_42402854/article/details/140134357 MySQL的Geometry数据处理之WKT方案中&#xff0c;介绍WTK方案的优点&#xff0c;也感受到它的繁琐和缺陷。比如&#xff1a; 需要借助 ST_GeomFromText和 ST_AsTex…

qt结合vs2022安装

进入清华大学开源软件&#xff1a; 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 下载完成后&#xff0c;双击进行安装&#xff1a; 进入邮箱进行验证&#xff1a; 可能是因为网络问题&#xff0c;无法安装。 重新安装5.12.12版本。 安装后启动失败&#xff0c;重新…

横截面交易策略:概念与示例

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学&#xff0c;点击下方链接报名&#xff1a; 量化投资速成营&#xff08;入门课程&#xff09; Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…

数据结构--单链表实现

欢迎光顾我的homepage 前言 链表和顺序表都是线性表的一种&#xff0c;但是顺序表在物理结构和逻辑结构上都是连续的&#xff0c;但链表在逻辑结构上是连续的&#xff0c;而在物理结构上不一定连续&#xff1b;来看以下图片来认识链表与顺序表的差别 这里以动态顺序表…

WGAN(Wassertein GAN)

WGAN E x ∼ P g [ log ⁡ ( 1 − D ( x ) ) ] E x ∼ P g [ − log ⁡ D ( x ) ] \begin{aligned} & \mathbb{E}_{x \sim P_g}[\log (1-D(x))] \\ & \mathbb{E}_{x \sim P_g}[-\log D(x)] \end{aligned} ​Ex∼Pg​​[log(1−D(x))]Ex∼Pg​​[−logD(x)]​ 原始 GAN …

springboot基于Java的超市进销存系统+ LW+ PPT+源码+讲解

第三章系统分析与设计 3.1 可行性分析 一个完整的系统&#xff0c;可行性分析是必须要有的&#xff0c;因为他关系到系统生存问题&#xff0c;对开发的意义进行分析&#xff0c;能否通过本网站来补充线下超市进销存管理模式中的缺限&#xff0c;去解决其中的不足等&#xff0c…

6域名系统DNS

《计算机网络》第7版&#xff0c;谢希仁 每次记不清楚的知识点&#xff0c;通过上网查找&#xff0c;总是只能看到很零碎的答案。最后还是最喜欢看这个版本的书&#xff0c;一看就回忆起来了&#xff0c;逻辑严谨&#xff0c;循循善诱&#xff0c;知识讲解的全面又清晰&#xf…

架构师应该在团队中发挥怎样的作用?

架构师分为5种&#xff1a; 1.企业架构师EA(Enterprise Architect) EA的职责是决定整个公司的技术路线和技术发展方向。 2.基础结构架构师IA(Infrastructure Architect) IA的工作就是提炼和优化技术方面积累和沉淀形成的基础性的、公共的、可复用的框架和组件&#xff0c;这…

Qt 基础组件速学 鼠标和键盘事件

学习目标&#xff1a; 鼠标事件和键盘事件应用 前置环境 运行环境:qt creator 4.12 学习内容和效果演示&#xff1a; 1.鼠标事件 根据鼠标的坐标位置&#xff0c;做出对应的事件。 2.键盘事件 根据键盘的输入做出对应操作 详细主要代码 1.鼠标事件 #include "main…

一文读懂轻量日志收集系统Loki工作原理

Loki 是由 Grafana Labs 开发的日志聚合系统&#xff0c;设计目标是提供一种高效、低成本的日志收集和查询解决方案。与传统的日志系统&#xff08;如 ELK Stack&#xff09;不同&#xff0c;Loki 不会对日志内容进行索引&#xff0c;而是仅对日志的元数据进行索引&#xff0c;…

FTP、http 、tcp

HTTP VS FTP HTTP &#xff1a;HyperText Transfer Protocol 超文本传输协议&#xff0c;是基于TCP协议 FTP&#xff1a; File Transfer Protocol 文件传输协议&#xff0c; 基于TCP协议&#xff0c; 基于UDP协议的FTP 叫做 TFTP HTTP 协议 通过一个SOCKET连接传输依次会话数…

FIND_IN_SET使用案例--[sql语句根据多ids筛选出对应数据]

一 FIND_IN_SET select id,system_ids from intellect_client_info where FIND_IN_SET(5, system_ids) > 0;

Spring Boot 中的监视器是什么?有什么作用?

前言&#xff1a; 监听器相信熟悉 Spring、Spring Boot 的都知道&#xff0c;但是监视器又是什么&#xff1f;估计很多人一脸懵的状态&#xff0c;本篇分享一下 Spring Boot 的监视器。 Spring Boot 系列文章传送门 Spring Boot 启动流程源码分析&#xff08;2&#xff09; …