微信小程序picker动态数据,支持picker和文本同时使用

news/2024/5/5 16:58:21/文章来源:https://www.cnblogs.com/qqxx/p/16663289.html

效果图

 

 如果按钮下没有内容会直接输出结果

wxml

<view class="tr"><view style="width: 30%;text-align: center;" wx:for="{{buildinglist}}" wx:for-index="i" wx:key="key"><view wx:if="{{buildinglist[i].unitList.length!=0}}"><picker mode="multiSelector" data-index="{{i}}" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArrayList[i]}}"><view data-index="{{i}}" data-text="{{item.building}}" class="building"bindtap="pickerPop">{{item.building}}</view></picker></view><view wx:else><view data-index="{{i}}" data-text="{{item.building}}" class="building" bindtap="JumpPop">{{item.building}}</view></view></view>
</view>

wxss

.tr {
padding: 20rpx;
font-size: 30rpx;
display: flex;
flex-direction: row;
flex-wrap: wrap;
/* margin: 0 auto; */
position: relative;
justify-content: space-between;
}.building {color: #07C160;border: 1px solid #07C160;padding: 10rpx 0;margin: 10rpx 0;border-radius: 10rpx;
}

js

// pages/lhxz/lhxz.js
Page({/*** 页面的初始数据*/data: {buildinglist:[{building: "tree_select1",unitList: [{unit: "幼儿园",Id: 1,DoorplateList: [{Doorplate: "小班",},{Doorplate: "中班",},{Doorplate: "大班",}]},{unit: "一级选项",Id: 1,DoorplateList: [{Doorplate: "一年级",},{Doorplate: "二年级",},{Doorplate: "三年级",}]},{unit: "二级选项",Id: 1,DoorplateList: [{Doorplate: "7",},{Doorplate: "8",},{Doorplate: "9",}]}]}, {building: "tree_select2",unitList: []}],multiIndex: [0, 0],},//确定事件
  bindMultiPickerChange: function (e) {console.log('picker发送选择改变,携带值为', e.detail.value)const index = e.currentTarget.dataset.index;let yhdz = this.data.buildinglist[index].building + "-" + this.data.multiArrayList[index][0][this.data.multiIndex[0]] + "-" + this.data.multiArrayList[index][1][this.data.multiIndex[1]];console.log(yhdz)},//普通view点击事件
  JumpPop(e) {const text = e.currentTarget.dataset.text;console.log(text)},openPop(e) {// 处理数据let multiArrayList = [];for (let i = 0; i < this.data.buildinglist.length; i++) {const unitList = this.data.buildinglist[i].unitListif (unitList.length > 0) {let firstItems = []let secondItems = []firstItems = unitList.map(it => it.unit) // 第一列数据const child = unitList[0]secondItems = child.DoorplateList.map(it => it.Doorplate) // 第二列数据let multiArray = [firstItems, secondItems];multiArrayList.push(multiArray);}}this.setData({multiArrayList,})},// 滚动选项,触发事件
  bindMultiPickerColumnChange: function (e) {this.data.multiIndex[e.detail.column] = e.detail.value;if (e.detail.column == 0) {const index = e.currentTarget.dataset.index;const value = this.data.multiIndexconst unitList = this.data.buildinglist[index].unitListlet firstItems = []let secondItems = []let selectValue1 = 0firstItems = unitList.map(it => it.unit) // 第一列数据selectValue1 = value.length > 0 ? value[0] : 0const child = unitList[selectValue1]secondItems = child.DoorplateList.map(it => it.Doorplate) // 第二列数据let multiArray = [firstItems, secondItems];let multiArrayList = [];multiArrayList[index] = multiArray;this.setData({multiArrayList,})}},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {this.openPop();//页面加载时处理数据
  },/*** 生命周期函数--监听页面初次渲染完成*/onReady: function () {},/*** 生命周期函数--监听页面显示*/onShow: function () {},/*** 生命周期函数--监听页面隐藏*/onHide: function () {},/*** 生命周期函数--监听页面卸载*/onUnload: function () {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh: function () {},/*** 页面上拉触底事件的处理函数*/onReachBottom: function () {},/*** 用户点击右上角分享*/onShareAppMessage: function () {}
})

 

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

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

相关文章

解析管道数据文件IDF

IDF和PCF是包含管道走向数据的文本文件,一般是由工厂软件系统从管道三维模型中提取数据生成,作为ISOGEN的输入文件来自动生成管道ISO轴测图。一个IDF/PCF文件可以包含多个管道Pipeline数据,但是通常工厂设计系统Plant Design System将一个管道Pipeline生成到一个IDF/PCF中,…

硬核解析MySQL的MVCC实现原理,面试官看了都直呼内行

MVCC全称是Multi-Version Concurrency Control(多版本并发控制),是一种并发控制的方法,通过维护一个数据的多个版本,减少读写操作的冲突。 如果没有MVCC,想要实现同一条数据的并发读写,还要保证数据的安全性,就需要操作数据的时候加读锁和写锁,这样就降低了数据库的并…

Python + Django4 搭建个人博客(十二):实现删除文章功能页面

前文我们实现了分别实现了显示文章&#xff0c;创建文章等功能。 Python Django4 搭建个人博客&#xff08;十一&#xff09;: 利用表单实现创建文章的功能页面_李威威wiwi的博客-CSDN博客本篇我们学习了使用Django用于处理表单的Form类&#xff0c;利用forms.ModelForm 类的…

Linux Kernel TCP/IP Stack|Linux网络硬核系列

介绍Linux网络技术中最核心的部分--TCP/IP协议栈 。 我们先看一下抽象的网络协议栈模型 再按分层思想看Linux内核协议栈实现框架 1. socket layer socket框架 socket系统调用(socket,bind,listen,accept,send,recv等)BSD socket API协议栈sock抽象适配层tcp/udp/icmp/ra…

图论——欧拉回路

一、前置知识 1、连通、极大联通子图连通:图中任意两点皆可互达 极大连通子图:对连通图来说:是这个连通图本身 对非连通图来说: 有多个极大联通子图2、回路、简单回路、简单路径回路:从一个点到经过一些其他节点,再回到该点的一个路径。此时,除了起点和终点,其他节点也…

Python做一个中秋节嫦娥投食小游戏

山河远阔&#xff0c;烟火人间&#xff0c;又一年&#xff0c;千里婵娟~ 今天给大家带来的是给玉兔投喂月饼的小游戏。八月十五中秋夜晚&#xff0c;让我们对着月亮许愿&#xff1a;希望我们在意和在意我们的人&#xff0c;诸邪避退、百事无忌、平安喜乐、万事胜意。提前祝大家…

VMware Workstation虚拟机怎么和主机之间互传文件?

VMware Workstation虚拟机怎么和主机之间互传文件?前言 工具/材料 操作方法前言 在使用Windows 10工作时会遇到形形色色的问题,比如虚拟机需要与主机之间互传文件。那么如何进行设置呢?下面小编与你分享具体步骤和方法。 工具/材料 Windows 10操作系统 操作方法启动Windows …

前端JS-Day21

client系列:获得可视区域的相关信息clientWidth和offsetWidth区别:clientWidth只包含内容和padding,offsetWidth包含内容和内外边框。 立即执行函数:无需调用,直接执行。且独立创建了一个作用域。(function() {})(); (function(){}()); 两种写法 像素比:即devicePixe…

STM32使用串口空闲中断(IDLE)和 DMA接收一串数据流

STM32使用串口空闲中断&#xff08;IDLE&#xff09;和 DMA接收不定长数据 方法一、使用宏定义判断IDLE标志位 空闲的定义是总线上在一个字节的时间内没有再接收到数据&#xff0c;USART_IT_IDLE空闲中断是检测到有数据被接收后&#xff0c;总线上在一个字节的时间内没有再接…

spring cloud alibaba (一)

Spring Cloud Alibaba官网:https://spring.io/projects/spring-cloud-alibaba gitHub:https://github.com/alibaba/spring-cloud-alibaba这节主要目标:掌握nacos使用 了解服务与服务之间调用1、简介 1.1、什么是分布式 将一套系统拆分成不同子系统部署在不同服务器上(这叫分…

flex常用布局

公共样式:<style>* {margin: 0;padding: 0;}.has-flex {display: flex;}</style> 垂直居中 子元素左右分布 css.father-one {width: 100%;height: 200px;background-color: #fffcef;align-items: center; /*纵轴)方向上的对齐方式。*/justify-content: space-bet…

5.2 创建个人中心页面-前端部分

&#x1f60a;如果写的可以帮到你&#xff0c;可以点个赞吗&#xff0c;你的支持就是我写下去的动力。&#x1f60a; 本文阅读大概 10 分钟, 自己写加思考大概 1 ~ 2 小时。建议&#xff1a;代码可以手抄&#xff0c; 但不要复制。 1. 整体框架 2. 前端页面布局 使用 bootstra…

达梦数据库图形化工具

图形化工具列表 (1)DM数据库配置助手 (2)DM服务查看器 (3)DM管理工具 (4)DM控制台工具 (5)DM数据库迁移工具 (6)DM性能监测工具图形化工具详解 界面展示DM数据库配置助手[dmdba@localhost tool]$ ./dbca.sh DM服务查看器DM管理工具DM控制台工具DM数据库迁移工具DM性能监测工具功…

马拉车算法

这篇博客写的非常清晰 https://zhuanlan.zhihu.com/p/549242325 给定一个字符串,问有多少个以 k,f,c 结尾的回文子串。#include<bits/stdc++.h> using namespace std; #define lowbit(x) x&(-x) #define ll long long const int maxn=1e6+5; int n,sum; ll len[maxn…

22-09-04 西安 谷粒商城(01)MySQL主从复制、MyCat读写分离、MyCat分库分表

人人尽说江南好&#xff0c;游人只合江南老。 春水碧于天&#xff0c;画船听雨眠。 MySQL主从复制 mysql主从复制&#xff1a;分摊读写压力&#xff08;cpu计算压力&#xff09; 写交给主库&#xff0c;读有主从分摊处理&#xff08;原因是写操作较少&#xff0c;读操作较多&…

面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!

由于现在大多计算机都是多核CPU,多线程往往会比单线程更快,更能够提高并发,但提高并发并不意味着启动更多的线程来执行。更多的线程意味着线程创建销毁开销加大、上下文非常频繁,你的程序反而不能支持更高的TPS。 时间片 多任务系统往往需要同时执行多道作业。作业数往往大…

ABAP-LP01和PDF打印机配置

事务代码SPAD1.LP01配置2.PDF配置

Netty+WebSocket整合STOMP协议

1.STOMP协议简介 常用的WebSocket协议定义了两种传输信息类型:文本信息和二进制信息。类型虽然被确定,但是他们的传输体是没有规定的,也就是说传输体可以自定义成什么样的数据格式都行,只要客户端和服务端约定好,得到数据后能够按照约定的语义解析数据就好。相较于Http协议…

猿创征文|我的后端成长之路(985科班两年,我发现了大学正确打开方式)

零.前言 当看到官方的这个活动的时候&#xff0c;我突然感到手指充满了力量&#xff0c;好像是我的键盘要向我尖端放电&#xff0c;谁还不是怀着满腔的热忱来写这篇文章帮助未来的学弟学妹们避坑呢&#xff1f;(其实是为了活动的奖励&#x1f917;)。不过不要在意这些细节&…

本地连接是干什么的?

当您创建家庭或小型办公网络时&#xff0c;运行 windows XP Professional 或 windows XP home edition 的计算机将连接到局域网 (Lan)。 安装 windows XP 时&#xff0c;将检测您的网络适配器&#xff0c;而且将创建本地连接。 像所有其他连接类型一样&#xff0c;它将出现在…