当前位置:   article > 正文

微信小程序的日期选择器的使用(picker)_微信小程序日期时间选择器怎么设置

微信小程序日期时间选择器怎么设置

首先可以去官方API看看组件:

https://developers.weixin.qq.com/miniprogram/dev/component/picker.html

需求:主要页面,点击重复方式,弹出js里面的数据,选择指定日期时,显示第三张图片:

     

点击加号可以加view框,点击view框就弹出日期选择器:(记得每个框的日期是不一样的哦!

            

(1)先在js里面定义数据:(在data里面写)

  1. data: {
  2. lists: [{inx:0,date:''}],
  3. selectData: ['每天', '每周', '每年', '指定日期', '自定义(每隔N天)'],//下拉列表的数据
  4. }

(2)我的弹出选择器:wxml

  1. <van-cell is-link catchtap='selectTap'>
  2. <view slot="title" class='content'>
  3. <view class="van-cell-text">重复方式</view>
  4. <view class='text_color'>{{selectData[index]}}</view>
  5. </view>
  6. </van-cell>
  7. <van-popup show="{{ show }}" position="bottom" overlay="{{ false }}" >
  8. <text class='select_text'>重复方式</text>
  9. <view class='option' style='{{index==selectData.length-1&&"border:0;"}}' wx:for='{{selectData}}' wx:key='this' data-index='{{index}}' catchtap='optionTap'>{{item}}</view>
  10. </van-popup>

(3)上面代码里面的catchtap='optionTap'以及catchtap='selectTap'的js代码:

  1. // 点击下拉显示框
  2. selectTap() {
  3. this.setData({
  4. show: !this.data.show
  5. });
  6. },
  7. // 点击下拉列表
  8. optionTap(e) {
  9. let Index = e.currentTarget.dataset.index;//获取点击的下拉列表的下标
  10. this.setData({
  11. index: Index,
  12. show: !this.data.show
  13. });
  14. },

(4)当选中指定日期的选项的wxml布局样式:

  1. <view wx:if="{{selectData[index]=='指定日期'}}">
  2. <!-- <view class="wayDetails">
  3. <text style='margin-bottom:18rpx;margin-left:1rpx;'>提醒日期选择:</text>
  4. </view> -->
  5. <view class='mention'>
  6. <view class="remind">
  7. <text class='advanceTxt' >指定日期</text>
  8. <block wx:for="{{lists}}" wx:key="{{index}}">
  9. <picker mode="date" data-inx="{{index}}" value="{{item.date}}" start="2019-01-01" end="2030-12-30" bindchange="bindDatechange">
  10. <view class="timedata">{{item.date}}</view>
  11. //点击view就弹出日期选择器,然后就把选择的日期填入了view中
  12. </picker>
  13. </block>
  14. <image bindtap='addinput' class="img" src="/imgs/jia.png"></image>
  15. //view后面有一个加号,可以点击不断的加view
  16. </view>
  17. </view>
  18. </view>

(5)上面的bindchange="bindDatechange"以及bindtap='addinput'的js的代码:

  1. // 点击日期组件确定事件
  2. bindDatechange:function(e) {
  3. let inx = e.currentTarget.dataset.inx;
  4. let obj =this.data.lists[inx];
  5. obj.date = e.detail.value;
  6. console.log(e.detail.value)
  7. this.setData({
  8. lists:this.data.lists,
  9. })
  10. },
  11. addinput: function () {
  12. var lists = this.data.lists;
  13. var newData = {inx:lists.length,date:''};
  14. lists.push(newData);//实质是添加lists数组内容,使for循环多一次
  15. this.setData({
  16. lists: lists,
  17. })
  18. },

 

我遇到了对象的问题,选择日期,结果每个框都是一样的日期,后面请教了大佬,大佬帮我解决了!!!!

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/306544
推荐阅读
相关标签
  

闽ICP备14008679号