onLaunch:function(options){
this.defaultcache()
}
defaultcache(){
// 入住信息缓存
var arr = this.getDateTime();
var ReserVation = {
reservType:0,//1 人数 2日期
InCheckin:{},//入离日期
peopleArr:[
{title:'成人',num:2},
{title:'儿童',num:0},
{title:'宝子',num:1},
{title:'房间数',num:1},
],//入住人数
IntimeCur:[
{len:0,str:0},
{len:0,str:0}
],//选择日期
timeDataArr:[],//日期数组
}
ReserVation.timeDataArr = arr[0]
ReserVation.IntimeCur = arr[1]
ReserVation.InCheckin = arr[2][0]
uni.setStorageSync('ReserVation',ReserVation)
},
// 获取日期
getDateTime(){
var that = this
var showY = 3;//显示几个月
var timeData = [];//日期数组
var timestamp = Date.parse(new Date());
var date = new Date(timestamp);
//年
var Y = date.getFullYear();
//月
var M = date.getMonth() + 1;
//日
var D = date.getDate();
// 周几和月份天数
var time = {};
var Yday = 0,Mday = 0,data = {},param = {},toDays = 2;//toDays 默认住几天
for(let i = 0;i < showY;i++){
if(12 < (M + i)){
Yday = Y + 1
Mday = (M + i) - 12
}else{
Yday = Y
Mday = M + i
}
time = that.getDaysInMonth(Yday,Mday)
data = {year:Yday,moon:Mday,arr:[],days:time.days,Z:time.Z}
for(let k = 0;k < time.Z;k++){
data.arr.push({date:''});
}
for(let j = 0;j < time.days;j++){
param = {};
param.date = j + 1;
param.Z = that.getDaysInMonth(Yday,Mday,param.date)
param.price = 0;
if(i == 0 && (j + 1) < D){
param.status = 1
}else if(i == 0 && (j + 1) == D){
param.status = 2
}
data.arr.push(param)
}
timeData.push(data)
}
var start = {
len:0,str:D
};
// if(that.timeData[start.len].days < (D + 1)){
// start.len = 1
// start.str = 0
// }
var end = {
len:0,str:D + toDays - 1
}
if(timeData[end.len].days < end.str){
end.str = end.str - timeData[end.len].days
end.len = 1
}
start.str = start.str + parseInt(timeData[start.len].Z) - 1
end.str = end.str + parseInt(timeData[end.len].Z) - 1
var timeCur = [
start,
end
]
var Checkin = {
start_Y:timeData[timeCur[0].len].year,
start_M:timeData[timeCur[0].len].moon,
start_D:timeData[timeCur[0].len].arr[timeCur[0].str].date,
start_Z:timeData[timeCur[0].len].arr[timeCur[0].str].Z,
end_Y:timeData[timeCur[1].len].year,
end_M:timeData[timeCur[1].len].moon,
end_D:timeData[timeCur[1].len].arr[timeCur[1].str].date,
end_Z:timeData[timeCur[1].len].arr[timeCur[1].str].Z,
days:toDays,
}
return [timeData,timeCur,[Checkin]];
},
// 获取周几和月份天数
getDaysInMonth(Y,M,D){
if(D){
return this.getWeekByDate(`${Y}-${M}-${D}`,true)
}
//一号周几
var Z = this.getWeekByDate(`${Y}-${M}-1`);
// 月份天数
var days = new Date(Y, M, 0).getDate();
return {Z,days}
},
// 返回周几
getWeekByDate(dates,status){
let show_day = status?['周日', '周一', '周二', '周三', '周四', '周五', '周六']:['0', '1', '2', '3', '4', '5', '6'];
let date = new Date(dates);
date.setDate(date.getDate());
let day = date.getDay();
return show_day[day];
},
false"
:style="'--CustomBar--:'+CustomBar+'px;z-index:10000;'">
选择入住条件
房住
{{item.num + item.title}}
{{item.title}}
{{item.num}}
20 || (isType && index == 2)?'':countTap(index,2)">
入离日期
{{Checkin.start_M}}月{{Checkin.start_D}}日
{{Checkin.start_Z}}
{{Checkin.days}}晚
{{Checkin.end_M}}月{{Checkin.end_D}}日
{{Checkin.end_Z}}
*以下价格为单晚入住参考价
{{item}}
{{item.year}}年{{item.moon}}月
{{cell.status == 2?'今天':cell.date}}
¥{{cell.price}}
{{(index == timeCur[0].len && cell_index == timeCur[0].str)?'入住':'离店'}}
打开房租
打开日历
默认选择当天和明天
入住一次性最多选择三十天
默认获取三个月日期数组
存储信息
InCheckin 选择的日期信息
IntimeCur 组件选择的日期
peopleArr 入住人数信息
timeDataArr 显示的日历
引入的组件库ColorUI组件库
用的是uni-app
遇到问题可以看我主页加我Q,很少看博客,对你有帮助别忘记点赞收藏。