room.js 5.97 KB
import App from '../../../utils/api';
import util from '../../../utils/util';
let dur=['morning','noon','night','midnight']
Component({
	properties:{
		seller:Object,
		date:{
			type:String,
			value:util.unixtoTime(new Date()/1000,'YYYY-MM-DD')
		},
		section:String,
		usecondition:{
			type:String,
			value:'custom'
		},
		seletroomlist:{
			type:Array,
			value:[]
		}
	},
	data:{
        roomlist:[],
        ddate_solt:'',	
	},
	observers: {
		'date,section': function(newdate,newsection) {
			console.log('room',newdate,newsection)
			this.setData({
				roomlist:[]
			})
			if(newdate && newsection){
                this.getLocalLunchTime()
			}
		}
	},
	attached(){
		console.log('初次进入详情页---小米8测试',this.data.date ? this.data.date : '没有日期','openid:',getApp().openid)
	},
	methods:{
        //获取日期对应的多时段
        getLocalLunchTime(){
            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.section = 'ket'+index
                })
                let obj=lunchDinnerList.filter(item=>{return item.section == this.data.section});
                let ddate_solt = '';
                if(obj && obj[0]){
                    ddate_solt = obj[0].ddate_solt;
                }
                this.setData({
                    ddate_solt
                })
                this.getroomtype(ddate_solt)
            }).catch(res => {
                console.log(res, '获取多时段失败');
            })
        },
		getroomtype(ddate_solt){
			let parmdata={
				sellerid:this.data.seller.id,
				day:util.timetouUnix(this.data.date+' 00:00:00'),
				interval:ddate_solt,
			}
			console.log('参数',this.data.date,parmdata);
			App.Seller.GetSellerTableClass(parmdata).then((json)=>{
				console.log('roomlist',json)
				if(json.ret==200){
					if(json.data.length>0){
						if(this.data.usecondition=="custom"){
							json.data.forEach((v,i)=>{
								v.selectnum=0;
							})
						}
					}
					this.setData({
						roomlist:json.data
                    })
					if(this.data.seletroomlist.length>0){
						this.changestyle();
					}
				}
			})
		},
		selectroom(e){
			let _target=e.currentTarget.dataset;
			console.log(typeof _target.selectnum,this.data.usecondition)
			if(this.data.usecondition=='custom'){
				console.log('custom:true为点击了订满的包间类型',this.data.roomlist[_target.index].isorderFull==1 || this.data.roomlist[_target.index].isFull==1)
				if(this.data.roomlist[_target.index].isorderFull==1 || this.data.roomlist[_target.index].isFull==1){
					let obj={
						act:'reserve',
						seller:this.data.seller.sellername,
						date:this.data.date,
                        section:this.data.section,
						room:this.data.roomlist[_target.index].name
					}
          // this.selectComponent('#qiang').show(obj);
				}else{
					console.log('执行了选中包间类型');
					if((this.data.seletroomlist && this.data.seletroomlist.length<3) || !this.data.seletroomlist){
						let setkey='roomlist['+_target.index+'].selectnum';
						this.setData({
							[setkey]:_target.selectnum+1
						})
						let obj={
							id:_target.id,
							name:this.data.roomlist[_target.index].name,
							standard:this.data.roomlist[_target.index].standard,
							action:'confirm'
						}
						this.triggerEvent('selectroom',obj)
					}else{
						util.toast('最多可选3个包间','none');
					}
				}
			}else{
				//////
				console.log('置满')
				if(!this.data.roomlist[_target.index].isorderFull){
					let  parmdata={
						 classid:_target.id,
						 day:util.timetouUnix(this.data.date+' 00:00:00'),
						 interval:this.ddate_solt
					}
					if(_target.fid){
						parmdata.id=_target.fid;
					}
					App.Seller.SetTableClassFull(parmdata).then((json)=>{
						console.log(json)
						if(json.ret==200){
							this.triggerEvent('changeroom',{id:_target.id,action:parmdata.id ? 'cancel' : 'confirm'})
							this.getLocalLunchTime();
						}
					})
				}
			}
		},
		cancelroom(id){
			let roomlist=this.data.roomlist;
			roomlist.forEach((v,i)=>{
				if(v.id==id){
					let setkey='roomlist['+i+'].selectnum';
					this.setData({
						[setkey]:v.selectnum-1,
					})
				}
			})
		},
		changestyle(){
            let seletroomlist=this.data.seletroomlist;
			let roomlist=this.data.roomlist;
			seletroomlist.forEach((v,i)=>{
				roomlist.forEach((r,n)=>{
					if(v.id==r.id){
						if(r.isFull || r.isorderFull){
							this.cancelroom(r.id);
							let obj={
								id:r.id,
								name:r.name,
								standard:r.standard,
								action:'cancel'
							}
							this.triggerEvent('selectroom',obj)
						}else{
							r.selectnum+=1;
						}
					}
				})
			})
			this.setData({
				roomlist:roomlist
			})
		},
	}
})