⼩程序实现⼯作时间段选择
本⽂实例为⼤家分享了⼩程序⼯作时间段选择的具体代码,供⼤家参考,具体内容如下
1. 效果图如上,需完成时间段的选择以及下⾯的⼯作⽇选择保存按钮为formSubmit提交后台
2.思路:
①时段⽤picker跟input 如果没有占位字符则不需要input
②⼯作⽇选择⽤checkbox 多选的样式⽤label 将checkbox隐藏
③label的选择后的样式跟取消的样式,这⾥⽆需判断checked 当然也可以判断checked 我这⾥的⽅法是,先建⼀个放星期⼀到星期天的数组date,选择之后,在js⾥返回的detail.value⾥到所选择的⽇期selectedList,再判断date是否在selectedList 内存在(注意是date在list中是否存在)。如果存在则设对应的布尔为true,否则false。
下⾯为代码:
wxml
<!--pages/addtime/index.wxml-->
<view class='main'>
<view class='when'>
<form bindsubmit='formSubmit'>
<button formType='submit' id='save'>保存</button>
<!-- 选择时间段 -->
<view class="selectTime">
<text>时段:</text>
<view class="section">
<picker mode="time" value="{{time}}" start="09:00" end="21:00" bindchange="bindTimeChange" id='startTime'>
<!-- 在js中判断所选picker的id为startTime时,将value赋值给startTime,放在input内 -->
<view class="picker">
<input placeholder='开始时间' value='{{startTime}}' name="startTime"></input>
</view>
</picker>
</view>
<text>⾄</text>
<view class="section">
<picker mode="time" value="{{time}}" start="09:00" end="21:00" bindchange="bindTimeChange" id='endTime'>
<!-- 在js中判断所选picker的id为endTime时,将value赋值给endTime,放在input内 -->
<view class="picker">
<input placeholder='结束时间' value='{{endTime}}' name="endTime"></input>
</view>
</picker>
</view>
</view>
<!-- 选择星期 -->
<view class='selectDay'>
<checkbox-group bindchange="checkboxChange" name="checkbox">
重复:
<!--写⼀个class选择后的背景⾊,在js中处理对应布尔值,在class中⽤三元式判断布尔并加背景⾊ -->
<label class="checkbox {{day?'selectedColor':''}}" for='monday'>
⼀
<checkbox value="monday" id='monday' hidden/>
</label>
<label class="checkbox {{selected.tuesday?'selectedColor':''}}" for='tuesday'>
⼆
<checkbox value="tuesday" id='tuesday' hidden/>
</label>
<label class="checkbox {{selected.wednesday?'selectedColor':''}}" for='wednesday'>
三
<checkbox value="wednesday" id='wednesday' hidden/>
</label>
<label class="checkbox {{selected.thursday?'selectedColor':''}}" for='thursday'>
四
<checkbox value="thursday" id='thursday' hidden/>
</label>
<label class="checkbox {{selected.friday?'selectedColor':''}}" for='friday'>
五
<checkbox value="friday" id='friday' hidden/>
</label>
<label class="checkbox {{selected.saturday?'selectedColor':''}}" for='saturday'>
六
<checkbox value="saturday" id='saturday' hidden/>
</label>
<label class="checkbox {{selected.sunday?'selectedColor':''}}" for='sunday'>
七
<checkbox value="sunday" id='sunday' hidden/>
</label>
</checkbox-group>
</view>
</form>
</view>
</view>
wx js
// pages/mine/index.js
php的工作流程Page({
/**
* 页⾯的初始数据
*/
data: {
startTime:null,
endTime: null,
selected: {"monday":false,"tuesday":false,"friday":false,"wednesday":false,"thursday":false,"sunday":false,"saturday":false}, // selected内放对应的⽤来判断class的布尔json
},
bindTimeChange: function(e){
if (e.currentTarget.id=="startTime") {
this.setData({startTime:e.detail.value});
}else if (e.currentTarget.id=="endTime") {
this.setData({endTime:e.detail.value});
}
},
checkboxChange: function(e){
var selectedList = e.detail.value;
var date = ["monday","tuesday","friday","wednesday","thursday","sunday","saturday"];//包含所有⽇期的数组
var selected = this.data.selected;//先获取data中的值,好⽤来赋值
for (var i = 0; i < date.length; i++) {
if (selectedList.indexOf(date[i])!=-1) { //判断所有的⽇期date在所选择的列表中是否存在,存在则给class
selected[date[i]] = true;
}else{
selected[date[i]] = false;
}
}
this.setData({selected:selected});
},
formSubmit:function(e){
//提交后台
console.log(e);
},
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论