小程序获取一年内的时间预约功能
直接上代码:var dateUtils = require('date.js')
var CN_Date = require('getCNDate.js');
var app = getApp()
var t = new Date();
Page({
data: {
dataArray: "", // 保存当前界面的五天日期
checkday: "",
checktime: "",
telphone: "",
item_id: "",
hiddenLoading: true,
currentIndex: 0,
currentTime: 0,
catalogSelect: 0
},
sendRequestDate: function (uploadDate) {
var that = this
var item_id = that.data.item_id
console.log(uploadDate)
this.setData({
hiddenLoading: false
})
wx.request({
url: '',//后台地址
data: {
date: uploadDate,
product_id: item_id
},
method: 'POST',
header: {
'content-type': 'application/json'
},
success: function (res) {
var data = res.data;
console.log(res.data)
var dataArray = [];
var i = 0;
for (var date in data) { // 遍历时期的key
var timeList = data;
var j = 0;
var timeArray = [];
for (var time in timeList) { // 遍历时间的key
timeArray = {
time: time,
isSelect: timeList,
select: j + 1
}
j++;
}
var timeStamp = new Date(date);
dataArray = {
date: date,
dateName: dateUtils.getDateFormatFromMMdd(timeStamp),
weekName: dateUtils.getWeekName(timeStamp),
timeArray: timeArray
}
i++;
}
that.setData({
hiddenLoading: true,
dataArray: dataArray
});
},
});
},
// 调用错误提示弹窗的方法
showToastErr(msg) {
const _this = this;
_this.$wuxToast.show({
type: 'forbidden',
color: '#fff',
timer: 1000,
text: msg,
success: () => console.log('禁止操作')
})
},
onLoad: function (options) {
var that = this;
this.$wuxToast = app.wux(this).$wuxToast
// 接收从byorder-detail界面传过来的值
that.setData({
item_id: options.id,
telphone: options.phone
})
// 获取当日的时间戳
var todayTimeStamp = Date.parse(new Date());
// 初始化日期数据
var uploadDate = dateUtils.getDateFormatFromyyyyMMdd(new Date().getTime())
that.sendRequestDate(uploadDate)
},
/**
* 用户点击了向右的箭头
*/
dj1: function () {
var that = this
var dateArrayOld = that.data.dataArray;
var dateName = dateArrayOld.date;
var uploadDate = dateUtils.getNextDayForyyyyMMdd(new Date(dateName).getTime())
that.setData({
catalogSelect: 0,
checkday: "",
checktime: ""
})
that.sendRequestDate(uploadDate)
},
/**
* 用户点击了向左的箭头
*/
dj2: function () {
var that = this
var dateArrayOld = that.data.dataArray;
if (dateArrayOld.weekName == "今天") {
return;
}
var dateName = dateArrayOld.date;
var uploadDate = dateUtils.getPreFiveForyyyyMMdd(new Date(dateName).getTime())
that.setData({
catalogSelect: 0,
checkday: "",
checktime: ""
})
that.sendRequestDate(uploadDate)
},
/**
* 用户选择了日期
*/
select: function (event) {
var that = this
var index = event.currentTarget.dataset.index
//为上半部分的点击事件
that.setData({
currentIndex: index,
catalogSelect: 0,
checkday: "",
checktime: ""
})
},
/**
* 用户选择了时间
*/
selectTime: function (data) {
var that = this
var dataItem = that.data.dataArray;
var index = data.currentTarget.dataset.tindex
if(dataItem.timeArray.isSelect=='false'){
that.showToastErr('当前时间不可选');
return;
}
var dateTime = dataItem.dateName
var timeArr = dataItem.timeArray.time
console.log(data.currentTarget.dataset.select)
this.setData({
currentTime: index,
checkday: dateTime,
checktime: timeArr,
catalogSelect: data.currentTarget.dataset.select
})
},
confirm_byorder: function (e) {
var user = wx.getStorageSync('user')
this.setData({
user: user
})
var that = this
var formId = e.detail.formId
var openId = (wx.getStorageSync('openId'))
var telphone = that.data.telphone
var item_id = that.data.item_id
var checkday = that.data.dataArray.date
var checktime = that.data.checktime
var uploadDate = that.data.dataArray.date;
if (checkday == '' || checktime == '') {
this.setData({
hiddenLoading: !this.data.hiddenLoading
})
setTimeout(function () {
that.setData({
hiddenLoading: true
});
})
that.showToastErr('请选择服务时间')
} else {
this.setData({
hiddenLoading: !this.data.hiddenLoading
})
wx.request({
url: 'https://ssl.ycml-bj.com/api/wx/activity/reserve',
data: {
formId: formId,
openId: openId,
user_phone: user,
phone: telphone,
product_id: item_id,
date: checkday,
time: checktime
},
method: 'POST',
header: {
'content-type': 'application/json'
},
success: function (res) {
setTimeout(function () {
that.setData({
hiddenLoading: true
});
})
if (res.data.code == 430007){
that.sendRequestDate(uploadDate)
that.showToastErr('预约人数已满')
} else {
wx.showToast({
title: '预约成功',
icon: 'success',
duration: 1500,
mask: true,//是否显示透明蒙层,防止触摸穿透,默认:false
success: function () {
// setTimeout(function () {
// wx.reLaunch({
// url: '/pages/index/index'
// })
// }, 2000)
}
})
}
},
});
}
}
})
页:
[1]