time.js 3.37 KB
Component({
	properties:{
		seller:Object,
		config:Object,
	},
	data:{
		daylist:[
			{
				name:'今天'
			},
			{
				name:'明天'
			}
		],
		dayidx:0,
		timehidden:true,
	},
	attached(){
		console.log(this.data.config)
		let h=new Date().getHours(),m=new Date().getMinutes();
		this.setData({
			currentval:h+m/60+0.5
		})
		this.gettimelist();
	},
	methods:{
		show(){
			let h=new Date().getHours(),m=new Date().getMinutes();
			this.setData({
				timehidden:false,
				currentval:h+m/60+0.5
			})
		},
		hide(){
			this.setData({
				timehidden:true
			})
		},
		gettimelist(){
			let timelist=[];
			if(this.data.config.lunch_time){
				timelist=timelist.concat(this.getdurlist(this.data.config.lunch_time));
				console.log(timelist,'hhhhhh')
			}
			if(this.data.config.dinner_time){
				timelist=timelist.concat(this.getdurlist(this.data.config.dinner_time));
			}
			this.setData({
				timelist:timelist
			})
			console.log(timelist,'uuuuuuuuuu')
		},
		getdurlist(durtime){
			let arr=durtime.split("-");
			let starttime,endtime,timelist=[];
			arr.forEach((v,i)=>{
				let timearr=v.split(/[: : \s+]/);
				console.log('6666666',timearr)
				if(i==0){
					if(timearr[1]!='00' && (timearr[1]>0 && timearr[1]<30)){
						starttime=Number(timearr[0][0]==0 ? timearr[0][1] : timearr[0])+0.5
					}
					if(timearr[1]!='00' && (timearr[1]>=30 && timearr[1]<=59)){
						starttime=Number(timearr[0][0]==0 ? timearr[0][1] : timearr[0])+1
					}
					if(timearr[1]=='00'){
						starttime=Number(timearr[0][0]==0 ? timearr[0][1] : timearr[0])
					}
				}
				if(i==1){
					if(timearr[1]!='00' && (timearr[1]>0 && timearr[1]<=30)){
						endtime=timearr[0][0]==0 ? timearr[0][1] : timearr[0]
					}
					if(timearr[1]!='00' && (timearr[1]>30 && timearr[1]<=59)){
						endtime=Number(timearr[0][0]==0 ? timearr[0][1] : timearr[0])+.5
					}
					if(timearr[1]=='00'){
						endtime=Number(timearr[0][0]==0 ? timearr[0][1] : timearr[0])
					}
				}
			})
			let len=endtime-starttime;
			for(let i=0;i<len;i++){
				let val=starttime+i,nextval=starttime+(i+1);
				timelist.push({
					stime:val%1==0 ? (val<10 ? '0'+Math.floor(val)+':00' : val+':00') : (val<10 ? '0'+Math.floor(val)+':30' : Math.floor(val)+':30'),
					val:val,
					etime:nextval%1==0 ? (nextval<10 ? '0'+Math.floor(nextval)+':00' : nextval+':00') : (nextval<10 ? '0'+Math.floor(nextval)+':30' : Math.floor(nextval)+':30'),				
				})
			}
			this.timelist=timelist;
			console.log(durtime,starttime,endtime,len,timelist,'uuuuuu');
			return timelist;
		},
		selectday(e){
			let dayidx=e.currentTarget.dataset.index;
			this.setData({
				dayidx:dayidx
			})
			if(this.data.timeidx || (this.data.timeidx==0)){
				if(this.data.currentval<=this.data.timelist[this.data.timelist.length-1].val){
					let tiemobj={
						dayidx:dayidx,
						stime:this.data.timelist[this.data.timeidx].stime,
						etime:this.data.timelist[this.data.timeidx].etime,
						dayname:this.data.daylist[this.data.dayidx].name,
					}
					this.triggerEvent('telltime',tiemobj);
				}
				
			}
		},
		selecttime(e){
			let timeidx=e.currentTarget.dataset.index;
			this.setData({
				timeidx:timeidx
			})
			let tiemobj={
				dayidx:this.data.dayidx,
				stime:this.data.timelist[this.data.timeidx].stime,
				etime:this.data.timelist[this.data.timeidx].etime,
				dayname:this.data.daylist[this.data.dayidx].name,
			}
			this.hide();
			this.triggerEvent('telltime',tiemobj);
		},
	}
})