dur.js 3.06 KB
//获取当前时间
import App from '../../../utils/api';
import util from '../../../utils/util';
Component({
	properties:{
		seller:Object,
		//时间段
		time:{
			type:String,
			value:''
		},
		//日期
		date:{
			type:String,
			value:util.unixtoTime(new Date()/1000,'YYYY-MM-DD')
		}
	},
	data:{
		current:0
	},
	attached(){
		
	},
	ready(){
		
	},
	observers: {
		'date': function(newdate) {
			if(newdate!=''){
				this.getroombydate();
			}
			
		}
    },
	methods:{
		selecttime(e){
			const target=e.currentTarget.dataset;
			this.setData({
				time:target.time
			})
			this.triggerEvent('selecttime',{time:target.time,action:'click'})
		},
		//获得默认所有可订时间段
		getdurlist(houseFull){
			console.log(houseFull)
			const date=new Date();
			let currenttimemark=date.getHours()+date.getMinutes()/60;
			let timedur=this.data.seller.daily;
			let durlist=[];
			for(let key in timedur){
				if(timedur[key]!="" && houseFull[key]==0){   //有这个时间段,并且不满房
					let arr=timedur[key].split('-');
					//每个时段的开始时间、结束时间
					let starttime=Number(arr[0].split(':')[0]);
					let endtime=Number(arr[1].split(':')[0]);
					if(util.unixtoTime(date/1000,'YYYY-MM-DD')==this.data.date){      //当天
						if(currenttimemark+0.5<endtime){
							if(currenttimemark+0.5>starttime){
								console.log(starttime,currenttimemark)
								starttime=Math.round(currenttimemark+0.5);
								console.log(starttime,currenttimemark)
							}
							let thisdurlist=this.getsinglelist(starttime,endtime)
							durlist=durlist.concat(thisdurlist)
						}
					}else{
						let thisdurlist=this.getsinglelist(starttime,endtime);
						durlist=durlist.concat(thisdurlist)
					}
				}	
			}
			let duritem=[];
			for(let i=0;i<Math.ceil((durlist.length)/5);i++){
				duritem.push({
					list:[]
				})
			}
			let time='',current=0;
			durlist.forEach((v,i)=>{
				let thiscurrent=Math.floor(i/5);
				duritem[thiscurrent].list.push(v);
				if(this.data.time==''){
					time=duritem[0].list[0].showdur
				}else{
					if(this.data.time==v.showdur){
						time=v.showdur;
						current=thiscurrent;
					}else{
						time=duritem[0].list[0].showdur
					}
				}
			})
			console.log(this.data.time);
			this.setData({
				durlist:duritem,
				time:time,
				current:current
			})
			this.triggerEvent('selecttime',{time:this.data.time,action:'defalut'})
		},
		//获取每个时段的时间列表
		getsinglelist(starttime,endtime){
			let singledurlist=[];
			for(let i=starttime;i<=endtime;i+=0.5){
				let obj={};
				if(i%1==0){
					obj.showdur=i<10 ? '0'+i+':00' : i+':00'
				}else{
					obj.showdur=i<10 ? '0'+Math.floor(i)+':30' : Math.floor(i)+':30'
				}
				singledurlist.push(obj)
			}
			return singledurlist;
		},
		//获取具体日期时间段满房状态
		getroombydate(){
			//参数:date:'2019-07-24'    sid:1
			let parmdata={
				date:this.data.date,
				sid:this.data.seller.id
			}
			App.Customer.GetHouseFullDateTimes(parmdata).then((json)=>{
				console.log(json)
				if(json.ret==200){
					this.getdurlist(json.data);
				}
			})
		},
	}
})