微信小程序picker动态数据,支持picker和文本同时使用
2022/9/7 1:23:09
本文主要是介绍微信小程序picker动态数据,支持picker和文本同时使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
效果图
如果按钮下没有内容会直接输出结果
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].unitList if (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.multiIndex const unitList = this.data.buildinglist[index].unitList let firstItems = [] let secondItems = [] let selectValue1 = 0 firstItems = unitList.map(it => it.unit) // 第一列数据 selectValue1 = value.length > 0 ? value[0] : 0 const child = unitList[selectValue1] secondItems = child.DoorplateList.map(it => it.Doorplate) // 第二列数据 let multiArray = [firstItems, secondItems]; let multiArrayList = []; multiArrayList[index] = multiArray; this.setData({ multiArrayList, }) } }, /** * 生命周期函数--监听页面加载 */ onl oad: function (options) { this.openPop();//页面加载时处理数据 }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })
这篇关于微信小程序picker动态数据,支持picker和文本同时使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-13微信小程序如何封装接口域名?-icode9专业技术文章分享
- 2024-11-13如何在微信小程序中实现直传功能?-icode9专业技术文章分享
- 2024-11-13如何在小程序的地图组件中添加标记和文字?-icode9专业技术文章分享
- 2024-11-13在微信小程序的地图组件中如何实现自定义标记和气泡?-icode9专业技术文章分享
- 2024-11-01微信小程序教程:零基础入门到实战
- 2024-11-01微信小程序全栈教程:从入门到实践
- 2024-10-31微信小程序怎么实现关注公众号功能-icode9专业技术文章分享
- 2024-10-30微信小程序cover-view,支持bindtap吗-icode9专业技术文章分享
- 2024-10-30微信小程序的cover-image支持bindtap吗-icode9专业技术文章分享
- 2024-10-30微信小程序web-view怎么设置高度?-icode9专业技术文章分享