微信小程序开发 逐级选择地区

1.需求

  微信小程序开发,逐级选择地区(市、区县、街道、社区、网格),选择每一级然后展示下一级数据。

微信小程序逐级选择

2. 完整代码

2.1. 选择界面

在这里插入图片描述

2.1.1. selectArea.wxml

<text bindtap="selectGrid">{{gridName}}</text>
<!-- 选择地区位置 -->
<view class="area_selection" hidden="{{area_selection}}"><view class="communitypop_con"><selectionbox id="selectionbox" class="communitypop" bind:cliclCancel="cliclCancel" bind:cliclConfirm="cliclConfirm"></selectionbox></view>
</view>

2.1.2. selectArea.wxss

.area_selection {position: fixed;top: 0;left: 0;width: 100%;height: 100%;background: rgba(0, 0, 0, 0.6);z-index: 800;
}.communitypop_con {display: flex;flex-direction: row;align-items: center;width: 100%;height: 100%;justify-content: center;align-items: center;
}.communitypop {width: 90%;height: 80%;overflow-y: auto;background: white;border-radius: 8rpx;
}

2.1.3. selectArea.json

{"usingComponents": {"selectionbox":"../selectionBox/selectionBox"}
}

2.1.4. selectArea.js

// pages/selectArea/selectArea.js
Page({/*** 页面的初始数据*/data: {area_selection: true,gridName:"请选择"},/*** 生命周期函数--监听页面加载*/onLoad(options) {var that = thisthat.selectionbox = that.selectComponent("#selectionbox");},/*** 获取网格*/selectGrid: function () {let that = thisthat.selectionbox.getCityData()that.setData({area_selection: false})},// 地区选择框确定cliclConfirm: function (e) {let that = thisvar gridObj = e.detailthat.setData({gridName: gridObj.name,area_selection: true})},// 地区选择框取消cliclCancel: function (e) {let that = thisthat.setData({area_selection: true})},
})

2.2. 逐级选择地区弹出框

2.2.1. selectionBox.wxml

<view class="page-body"><view class="header-layout"><text class="header-title">所在网格:</text><view class="header-content"><text >{{cityStr}}</text><text hidden="{{isCountyHidden}}">>{{countyStr}}</text><text hidden="{{isStreetHidden}}">>{{streetStr}}</text><text hidden="{{isCommunityHidden}}">>{{communityStr}}</text><text hidden="{{isGridHidden}}">>{{gridStr}}</text></view></view><!-- 所属市 --><view><view class="item-header-top">所属市: </view><view class="item-layout"><view class="item-title {{index+1== cityIndex?'item-title-active':''}}" bindtap="cityClick" wx:for="{{cityList}}" data-index="{{index}}" data-item-id="{{item.id}}" data-value="{{item.name}}" wx:for-index="index" wx:key="index">{{item.name || '暂无'}}</view></view></view><!-- 所属区县 --><view hidden="{{isCountyHidden}}"><view class="item-header">所属区县:</view><view class="item-layout"><view class="item-title {{index+1== countyIndex?'item-title-active':''}}" bindtap="countyClick" wx:for="{{countyList}}" data-index="{{index}}" data-item-id="{{item.id}}" data-value="{{item.name}}" wx:for-index="index" wx:key="index">{{item.name || '暂无'}}</view></view></view><!-- 所属街镇 --><view hidden="{{isStreetHidden}}"><view class="item-header">所属街镇:</view><view class="item-layout"><view class="item-title {{index+1== streetIndex?'item-title-active':''}}" bindtap="streetClick" wx:for="{{streetList}}" data-index="{{index}}" data-item-id="{{item.id}}" data-value="{{item.name}}" wx:for-index="index" wx:key="index">{{item.name || '暂无'}}</view></view></view><!-- 所属社区 --><view hidden="{{isCommunityHidden}}"><view class="item-header">所属社区:</view><view class="item-layout"><view class="item-title {{index+1== communityIndex?'item-title-active':''}}" bindtap="communityClick" wx:for="{{communityList}}" data-index="{{index}}" data-item-id="{{item.id}}" data-value="{{item.name}}" wx:for-index="index" wx:key="index">{{item.name || '暂无'}}</view></view></view><!-- 所属网格 --><view hidden="{{isGridHidden}}"><view class="item-header">所属网格:</view><view class="item-layout"><view class="item-title {{index+1== gridIndex?'item-title-active':''}}" bindtap="gridClick" wx:for="{{gridList}}" data-index="{{index}}" data-item-id="{{item.id}}" data-value="{{item.name}}" wx:for-index="index" wx:key="index">{{item.name || '暂无'}}</view></view></view><view class="item-interval"></view><view class="opera-layout"><text class="opera-item-cancel" bindtap="cliclCancel">取消</text><text class="opera-item-confirm" bindtap="cliclConfirm">确定</text></view>
</view>

2.2.2. selectionBox.wxss

@import "../../public/wxss/base.wxss";.page-body{width: 100%;height: 100%;border: 1rpx solid white;border-radius: 10rpx;box-sizing: border-box;background-color: white;
}.header-layout {background-color: white;display: flex;flex-direction: column;margin-bottom: 20rpx;position: absolute;width: 90%;padding: 15rpx 10rpx;
}
.header-title {color: #000;font-weight: 800;font-size: 32rpx;margin-top: 10rpx;
}
.header-content {display: flex;flex-direction: row;flex: 1;color: #333;font-size: 30rpx;
}
.item-title-top {margin: 80rpx 20rpx 10rpx;color: #333;font-weight: 700;font-size: 30rpx;
}
.item-header-top {margin: 120rpx 20rpx 10rpx;color: #0B8DF8;font-weight: 700;font-size: 30rpx;
}
.item-header {margin: 0 20rpx 10rpx;color: #0B8DF8;font-weight: 700;font-size: 30rpx;
}
.item-layout {display: flex;flex-direction: row;align-items: center;justify-content: flex-start;padding: 10rpx 0 10rpx;flex-wrap: wrap;padding-bottom: 30rpx;background-color: white;
}.item-title{width: 21%;color: #000;font-size: 30rpx;text-align: center;padding:10rpx 10rpx;box-shadow: 0 0 5rpx #bbb;border-radius: 10rpx;background: white;margin:10rpx 2.0% 10rpx;
}
.item-title-active{color: white;background: #0B8DF8;
}.item-interval {height: 20rpx;}.opera-layout{position: absolute;left: 5%;bottom: 60rpx;width: 90%;background: #fff;display: flex;flex-direction: row;justify-content: space-between;padding: 10rpx 80rpx 30rpx;border-radius: 10rpx;font-size: 34rpx;
}.opera-item-cancel{display: inline-block;color: white;background:#ccc;border-radius: 70rpx;padding: 10rpx 50rpx;
}
.opera-item-confirm{display: inline-block;color: white;background:#0B8DF8;border-radius: 70rpx;padding: 10rpx 50rpx;
}

2.2.3. selectionBox.js

import areaJson from '../../public/json/areaJson';
Page({data: {comId: null,ciryList: [],countyList: [],streetList: [],communityList: [],gridList: [],isCountyHidden: true,isStreetHidden: true,isCommunityHidden: true,isGridHidden: true,cityIndex: null,countyIndex: null,streetIndex: null,communityIndex: null,gridIndex: null,},/*** 获取市级数据*/getCityData: function () {let that = thisthat.setData({cityList: areaJson.data.areaList})},/*** 获取区县数据*/getCountyData: function (itemid) {let that = thisthat.setData({countyList: areaJson.data.countyList})},/*** 获取街道数据*/getStreetData: function (itemid) {let that = thisthat.setData({streetList: areaJson.data.streetList})},/*** 获取社区数据*/getCommunityData: function (itemid) {let that = thisthat.setData({communityList: areaJson.data.communityList})},/*** 获取网格数据*/getGridData: function (itemid) {let that = thisthat.setData({gridList: areaJson.data.gridList})},/*** 市级点击*/cityClick: function (e) {var that = thisvar itemIndex = parseInt(e.currentTarget.dataset.index) + 1var itemValue = e.currentTarget.dataset.valuevar itemId = e.currentTarget.dataset.itemIdthat.setData({countyList: [],streetList: [],communityList: [],gridList: [],isCountyHidden: false,isStreetHidden: true,isCommunityHidden: true,isGridHidden: true,cityIndex: itemIndex,countyIndex: null,streetIndex: null,communityIndex: null,gridIndex: null,cityStr: itemValue,countyStr: '',streetStr: '',communityStr: '',gridStr: ''})//获取区县数据that.getCountyData(itemId)},/*** 区县点击*/countyClick: function (e) {var that = thisvar itemIndex = parseInt(e.currentTarget.dataset.index) + 1var itemValue = e.currentTarget.dataset.valuevar itemId = e.currentTarget.dataset.itemIdthat.setData({streetList: [],communityList: [],gridList: [],isStreetHidden: false,isCommunityHidden: true,isGridHidden: true,countyIndex: itemIndex,streetIndex: null,communityIndex: null,gridIndex: null,countyIndex: itemIndex,streetIndex: null,communityIndex: null,gridIndex: null,countyStr: itemValue,streetStr: '',communityStr: '',gridStr: ''})//获取街道数据that.getStreetData(itemId)},/*** 街道点击*/streetClick: function (e) {var that = thisvar itemIndex = parseInt(e.currentTarget.dataset.index) + 1var itemValue = e.currentTarget.dataset.valuevar itemId = e.currentTarget.dataset.itemIdthat.setData({communityList: [],gridList: [],isCommunityHidden: false,isGridHidden: true,streetIndex: itemIndex,communityIndex: null,gridIndex: null,streetStr: itemValue,communityStr: '',gridStr: ''})//获取社区数据that.getCommunityData(itemId)},/*** 社区点击*/communityClick: function (e) {var that = thisvar itemIndex = parseInt(e.currentTarget.dataset.index) + 1var itemValue = e.currentTarget.dataset.valuevar itemId = e.currentTarget.dataset.itemIdthat.setData({gridList: [],isGridHidden: false,communityIndex: itemIndex,gridIndex: null,communityStr: itemValue,gridStr: ''})//获取网格数据that.getGridData(itemId)},/*** 网格点击*/gridClick: function (e) {var that = thisvar itemIndex = parseInt(e.currentTarget.dataset.index) + 1var itemValue = e.currentTarget.dataset.valuethat.setData({gridIndex: itemIndex,deptId: itemIndex-1,gridStr: itemValue,})},// 取消选择cliclCancel: function () {var that = this//清除数据that.clearData()that.triggerEvent('cliclCancel')},/*** 清除数据*/clearData: function () {var that = thisthat.setData({ciryList: [],countyList: [],streetList: [],communityList: [],gridList: [],isCountyHidden: true,isStreetHidden: true,isCommunityHidden: true,isGridHidden: true,cityIndex: null,countyIndex: null,streetIndex: null,communityIndex: null,gridIndex: null,cityStr: '',countyStr: '',streetStr: '',communityStr: '',gridStr: ''})},// 确定选择cliclConfirm: function () {let that = thisvar cityStr = that.data.cityStrvar countyStr = that.data.countyStrvar streetStr = that.data.streetStrvar communityStr = that.data.communityStrvar gridStr = that.data.gridStrif (!cityStr) {wx.showToast({icon: 'none',title: '请选择市',})return} else if (!countyStr) {wx.showToast({icon: 'none',title: '请选择区县',})return} else if (!streetStr) {wx.showToast({icon: 'none',title: '请选择街镇',})return} else if (!communityStr) {wx.showToast({icon: 'none',title: '请选择社区',})return} else if (!gridStr) {wx.showToast({icon: 'none',title: '请选择网格',})return} //清除数据that.clearData()var obj = {}obj.id = that.data.deptIdobj.name = cityStr+countyStr+streetStr+communityStr+gridStrif (obj) {that.triggerEvent('cliclConfirm', obj)} else {wx.showToast({icon: 'none',title: '缺少参数',})}},
})

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

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

相关文章

Git安装详细步骤

目录 1、双击安装包&#xff0c;点击NEXT​编辑 2、更改安装路径&#xff0c;点击NEXT 3、选择安装组件 4、选择开始菜单页 5、选择Git文件默认的编辑器 6、调整PATH环境 7、选择HTTPS后端传输 8、配置行尾符号转换 9、配置终端模拟器与Git Bash一起使用 10、配置额外…

LabVIEW工业机器人系统

介绍了ABB工业机器人与LabVIEW之间进行数据交互的解决方案。通过使用TCP/IP协议的socket通信&#xff0c;实现了机器人坐标数据的读取&#xff0c;为人机交互提供了一个更便捷、更高效的新思路。 系统主要由ABB工业机器人、基于TCP/IP协议的通信接口和LabVIEW软件组成。工业机…

XSS_Labs靶场通关笔记

每一关的方法不唯一&#xff1b;可以结合源码进行分析后构造payload&#xff1b; 通关技巧&#xff08;四步&#xff09;&#xff1a; 1.输入内容看源码变化&#xff1b; 2.找到内容插入点&#xff1b; 3.测试是否有过滤&#xff1b; 4.构造payload绕过 第一关 构造paylo…

苹果提审被拒反馈崩溃日志.text | iOS 审核被拒crashLog

iOS审核人员拒绝后每个截图&#xff0c;只给了几个text文件&#xff0c;这种情况就是审核的时候运行你的代码&#xff0c;崩溃了。 仅仅看text文件&#xff0c;是看不出所以然来的&#xff0c;所以我们要将日志转换成.crash格式 1.将.text文件下载下来&#xff0c;将 .text手动…

零基础学习数学建模——(五)美赛写作指导

本篇博客将详细讲解美赛论文写作。 文章目录 标题摘要目录引言问题背景问题重述前人研究我们的工作 模型假设及符号说明正文问题分析模型建立模型求解结果分析模型检验 模型优缺点及展望模型优缺点模型展望 参考文献及附录参考文献附录 2024年美赛论文新要求 标题 标题要简洁…

JS中的try...catch

一、定义和结构 作用&#xff1a;捕获同步执行代码下的异常错误 在没有使用try...catch的情况下&#xff0c;同步代码执行遇到异常会报错&#xff0c;并中断后续代码执行&#xff1b; 在使用try...catch的情况下&#xff0c;同步代码执行遇到异常会抛出异常&#xff0c;并继续…

第2章-神经网络的数学基础——python深度学习

第2章 神经网络的数学基础 2.1 初识神经网络 我们来看一个具体的神经网络示例&#xff0c;使用 Python 的 Keras 库 来学习手写数字分类。 我们这里要解决的问题是&#xff0c; 将手写数字的灰度图像&#xff08;28 像素28 像素&#xff09;划分到 10 个类别 中&#xff08;0…

百度Apollo | 实车自动驾驶:感知、决策、执行的无缝融合

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下…

Docker入门篇(一)

Docker入门篇&#xff08;一&#xff09; 插播&#xff01;插播&#xff01;插播&#xff01;亲爱的朋友们&#xff0c;我们的Cmake/Makefile/Shell这三个课程上线啦&#xff01;感兴趣的小伙伴可以去下面的链接学习哦~ 构建工具大师-CSDN程序员研修院 一、引言 随着云计算…

Chatgpt的崛起之路

Chatgpt的崛起之路 背景与发展历程背景发展历程 技术原理第一阶段&#xff1a;训练监督策略模型第二阶段&#xff1a;训练奖励模型第三阶段&#xff1a;采用强化学习来增强模型的能力。 国内使用情况及应用的领域面临的数据安全挑战与建议ChatGPT获取数据产生的问题数据泄露问题…

【牛客刷题】笔试选择题整理(day1-day2)

每天都在进步呀 文章目录 1. 小数求模运算2. 进程的分区&#xff0c;这里说的不是JVM的分区。进程中&#xff0c;方法存放在方法区。3. 访问权限控制4. 继承与多态5. 与equals()6. 类加载顺序7. super()与this()7.1 super7.1.1 super调用父类构造方法7.1.2 super调用父类属性和…

(免费领源码)java#Springboot#mysql旅游景点订票系统68524-计算机毕业设计项目选题推荐

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作…

【C++】C++ 入门 — 命名空间,输入输出,函数新特性

C 1 前言2 命名空间2.1 概念引入2.2 开始使用2.3 投入应用 3 输入与输出3.1 基础知识3.2 开始使用3.3 注意局限 4 函数新特性4.1 缺省参数4.1.1 开始使用4.1.2 注意事项 4.2 函数重载4.2.1 开始使用4.2.2 如何实现 Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读下…

go-zero 全局异常处理-全局中间件

1、在主入口新增 package mainimport ("flag""fmt""go/application/internal/config""go/application/internal/handler""go/application/internal/middleware""go/application/internal/svc"manage "go/pk…

Hive常见问题汇总

Hive和Hadoop的关系 Hive 构建在 Hadoop 之上&#xff0c; HQL 中对查询语句的解释、优化、生成查询计划是由 Hive 完成的 所有的数据都是存储在 Hadoop 中 查询计划被转化为 MapReduce 任务&#xff0c;在 Hadoop 中执行&#xff08;有些查询没有 MR 任务&#xff0c;如&…

Linux使用二进制包安装MySQL

目录 一、软件包下载 二、上传软件包到Linux根目录 1、使用xftp将软件包上传到根目录 2、解压缩 三、准备工作 四、初始化软件 五、设置MySQL的配置文件 六、配置启动脚本 一、软件包下载 官网下载&#xff1a;MySQL :: Download MySQL Community Server 二、上传软件…

数学知识第三期 欧拉函数

前言 相信大家在高中的时候接触过欧拉函数&#xff0c;希望大家通过本篇文章能够进一步理解欧拉函数&#xff01;&#xff01;&#xff01; 一、什么是欧拉函数&#xff1f; 欧拉函数是一个在数论中用于描述特定正整数的互质数的概念。具体来说&#xff0c;对于一个正整数n&…

Spring扩展点在微服务应用(待完善)

ApplicationListener扩展 nacos注册服务&#xff0c; 监听容器发布事件 # 容器发布事件 AbstractAutoServiceRegistration#onApplicationEvent # 接收事件吗&#xff0c;注册服务到nacos NacosServiceRegistry#register Lifecycle扩展 #订阅服务实例更改的事件 NamingService#…

Python环境下基于机器学习的NASA涡轮风扇发动机剩余使用寿命RUL预测

本例所用的数据集为C-MAPSS数据集&#xff0c;C-MAPSS数据集是美国NASA发布的涡轮风扇发动机数据集&#xff0c;其中包含不同工作条件和故障模式下涡轮风扇发动机多源性能的退化数据&#xff0c;共有 4 个子数据集&#xff0c;每个子集又可分为训练集、 测试集和RUL标签。其中&…

文心一言 VS ChatGPT :谁是更好的选择?

前言 目前各种大模型、人工智能相关内容覆盖了朋友圈已经各种媒体平台&#xff0c;对于Ai目前来看只能说各有千秋。GPT的算法迭代是最先进的&#xff0c;但是它毕竟属于国外产品&#xff0c;有着网络限制、注册限制、会员费高昂等弊端&#xff0c;难以让国内用户享受。文心一言…