section.js 4.33 KB
import util from '../../../utils/util';
import App from '../../../utils/api';
let dur=['morning','noon','night','midnight']
Component({
	properties:{
		seller:Object,
		//选中日期
		date:{
			type:String,
			value:util.unixtoTime(new Date()/1000,'YYYY-MM-DD'),
		},
		section:String
	},
	attached(){
	},
	observers: {
		'date'(newdate){
			console.log('section',this.data.date,newdate,this.data.section)
			//今天日期
			if(newdate){
				let today=util.unixtoTime(new Date()/1000,'YYYY-MM-DD');
				this.getsectionlist();
				if(today==newdate){
					this.markoversection();
				}else{
					if(this.data.section){
						this.changesectionstyle(this.data.section);
					}else{
						this.changesectionstyle(this.data.sectionlist[0].section);
					}
					let obj={
						section:this.data.section ? this.data.section : this.data.sectionlist[0].section,
						action:'defalut',
						time:this.data.sectionlist[0].sectiondur.split('-')[0]
					}
					if(this.data.section){
						this.data.sectionlist.forEach((v,i)=>{
							if(this.data.section==v.section){
								obj.time=v.sectiondur.split('-')[0]
							}
						})
					}
					this.triggerEvent('selectsection',obj)
				}
			}
		},
	},
	ready(){
		
	},
	methods:{
		getsectionlist(){
			let section={'morning':'早餐','noon':'午餐','night':'晚餐','midnight':'夜宵'};
			let sectionlist=[];
			for(let key in this.data.seller.daily){
				if(this.data.seller.daily[key]!=""){
					sectionlist.push({
						section:key,
						sectiondur:this.data.seller.daily[key],
						showmark:section[key],
						overdate:false,
						isselected:false
					})
				}
			}
			this.setData({
				sectionlist:sectionlist
			})
			console.log(sectionlist)
		},
		markoversection(){
			let sectionlist=this.data.sectionlist;
			//今天日期
			let today=util.unixtoTime(new Date()/1000,'YYYY-MM-DD');
			let curtimestamp=Math.ceil(new Date()/1000);
			let interval=[],flag=false;
			sectionlist.forEach((v,i)=>{
				let sectionarr=v.sectiondur.split('-');
				if(curtimestamp>Number(util.timetouUnix(today+' '+sectionarr[1]+':00'))){
					v.overdate=true
				}
				if(!v.overdate){
					let intervaldur=curtimestamp-Number(util.timetouUnix(today+' '+sectionarr[1]+':00'));
					interval.push({
						index:i
					})
				}
				if(this.data.section==v.section && v.overdate){
					this.setData({
						section:null
					})
					flag=true;
				}
			})
			if(!this.data.section){
				if(interval.length>0){
					sectionlist[interval[0].index].isselected=true;
					if(flag){
						this.tellsection(sectionlist[interval[0].index].section,'click',interval[0].index);
					}else{
						this.tellsection(sectionlist[interval[0].index].section,'defalut',interval[0].index);	
					}
					this.changesectionstyle(sectionlist[interval[0].index].section)
				}else{
					let obj={
						section:'',
						action:'click',
						time:''
					}
					this.triggerEvent('selectsection',obj)
				}
			}else{
				this.changesectionstyle(this.data.section)
			}
			this.setData({
				sectionlist:sectionlist
			})
			console.log(sectionlist)
		},
		//点击时段
		selectsection(e){
			let _target=e.currentTarget.dataset;
			this.changesectionstyle(_target.section);
			this.tellsection(_target.section,'click',_target.index);
			console.log(_target.index);
		},
		//通知时段
		tellsection(selectsection,action,index){
			console.log(index);
			let today=util.unixtoTime(new Date()/1000,'YYYY-MM-DD');
			let curtimestamp=new Date()/1000;
			let sectionarr=this.data.sectionlist[index].sectiondur.split('-');
			let starttimestamp=Number(util.timetouUnix(today+' '+sectionarr[0]+':00'));
			let endtimestamp=Number(util.timetouUnix(today+' '+sectionarr[1]+':00'));
			let obj={
				section:selectsection,
				action:action
			}
			console.log(curtimestamp,starttimestamp)
			if(curtimestamp<starttimestamp){
				obj.time=sectionarr[0]
			}else{
				obj.time=sectionarr[1]
			}
			this.triggerEvent('selectsection',obj)
			
		},
		changesectionstyle(selectsection){
			let sectionlist=this.data.sectionlist;
			let previndex,curindex;
			sectionlist.forEach((v,i)=>{
				if(v.isselected){
					previndex=i;
					let prevkey='sectionlist['+previndex+'].isselected';
					this.setData({
						[prevkey]:false
					})
				}
				if(selectsection==v.section){
					curindex=i;
					
				}
			})
			let curkey='sectionlist['+curindex+'].isselected';
			this.setData({
				[curkey]:true
			})
		}
	}
})