section.js 6.37 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': async function(newdate) {
			console.log('section',this.data.date,newdate,this.data.section)
			//今天日期
			if(newdate){
				let today=util.unixtoTime(new Date()/1000,'YYYY-MM-DD');
				await 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);
						//2019-12-13修改优化
						let obj={
							section:this.data.sectionlist[0].section,
							action:'defalut',
							time:this.data.sectionlist[0].sectiondur.split('-')[0]
						}
						this.triggerEvent('selectsection',obj)
					}
					// 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(){
            return new Promise((resolve) => {
                App.Seller.getMealSectionByDay({
                    sellerid: this.data.seller.id,
                    day: this.data.date,
                }).then(res => {
                    let data = res.data;
                    let lunchDinnerList = [];
                    if (data.length <= 3 && !data[0].ddate_solt) {
                        data.forEach(i => {
                            if (i.mname == '早餐') {
                                lunchDinnerList.push({
                                    mname: "早餐",
                                    mdate: i.mdate,
                                    ddate_solt: 1,
                                })
                            }
                            if (i.mname == '午餐') {
                                lunchDinnerList.push({
                                    mname: "午餐",
                                    mdate: i.mdate,
                                    ddate_solt: 2,
                                })
                            }
                            if (i.mname == '晚餐') {
                                lunchDinnerList.push({
                                    mname: "晚餐",
                                    mdate: i.mdate,
                                    ddate_solt: 3,
                                })
                            }
                        })
                    } else {
                        lunchDinnerList = data;
                    }
                    lunchDinnerList.forEach((item,index)=>{
                            item.sectiondur = item.mdate;
                            item.showmark = item.mname;
                            item.section = 'ket'+index
                            item.overdate = false;
                            item.isselected = false;
                    })
                    this.setData({
                        sectionlist:lunchDinnerList
                    })
                    resolve();
                }).catch(res => {
                    console.log(res, '获取多时段失败');
                })
            })
		},
		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,_target.ddate_solt);
		},
		//通知时段
		tellsection(selectsection,action,index,ddate_solt){
			console.log(index);
			//2019-12-13修改
			// 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(this.data.date+' '+sectionarr[0]+':00'));
			let endtimestamp=Number(util.timetouUnix(this.data.date+' '+sectionarr[1]+':00'));
			let obj={
				section:selectsection,
                action:action,
                ddate_solt,
			}
			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
			})
		}
	}
})