section.js 3.6 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)
			//今天日期
			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]
					}
					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=new Date()/1000;
			let interval=[];
			sectionlist.forEach((v,i)=>{
				let sectionarr=v.sectiondur.split('-');
				if(curtimestamp>=new Date(today+' '+sectionarr[1]+':00')/1000){
					v.overdate=true
				}
				if(!v.overdate){
					let intervaldur=curtimestamp-new Date(today+' '+sectionarr[0]+':00')/1000;
					interval.push({
						intervaldur:intervaldur,
						index:i
					})
				}
			})
			console.log(interval)
			if(interval.length>0){
				sectionlist[interval[0].index].isselected=true;
				this.tellsection(sectionlist[interval[0].index].section,'defalut',interval[0].index)
			}
			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);
		},
		//通知时段
		tellsection(selectsection,action,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=new Date(today+' '+sectionarr[0]+':00')/1000;
			let endtimestamp=new Date(today+' '+sectionarr[1]+':00')/1000;
			let obj={
				section:selectsection,
				action:action
			}
			if(curtimestamp>=starttimestamp && curtimestamp<endtimestamp){
				obj.time=sectionarr[1]
			}else{
				if(curtimestamp>=endtimestamp){
					obj.time=sectionarr[1]
				}else{
					obj.time=sectionarr[0]
				}
			}
			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
			})
		}
	}
})