<template>
	<view>
		<!-- 状态栏 -->
		<status-nav :titleVal="'自主预约'" :statusTitle="true"></status-nav>
		<!-- 自定义二级分类 -->
		<!-- 列表 -->
		<view :style="{paddingTop: statusHNH+'px'}" class="pad-zy20">
			<view class="bacf mar-s25 pad-zy20 radius20 fon28 col3 pad-x40">
				<view class="disac pad-s32">
					<view class="flexs mar-y20">预约类别</view>
					<view @tap="openXial(0)" class="disjbac width100 radius10 pad-zy20 xiala posir">
						<view>{{category}}</view>
						<image :class="isZhuan?'zhuan':'nozhuan'" src="/static/public/sanj.png" mode="aspectFill"></image>
						<view v-if="isZhuan" class="posia bacf radius10 xial-box">
							<view class="pad-zy20 xial-item-box">
								<view @tap="chooseXia(indexl)" :class="xialCurrent==indexl?'pcol pbord':''" v-for="(iteml,indexl) in xialone" :key="indexl">{{iteml.title}}</view>
							</view>
						</view>
					</view>
				</view>
				<!-- <view class=" disac pad-s32">
					<view class="flexs mar-y20">选择医生</view>
					<view @tap="openXial(1)" class="disjbac width100 radius10 pad-zy20 xiala posir">
						<view>{{categoryT}}</view>
						<image :class="isZhuanT?'zhuan':'nozhuan'" src="/static/public/sanj.png" mode="aspectFill"></image>
						<view v-if="isZhuanT" class="posia bacf radius10 xial-box">
							<view class="pad-zy20 xial-item-box">
								<view @tap="chooseXiaT(indext)" :class="xialCT==indext?'pcol':''" v-for="(itemt,indext) in xialTwo" :key="indext">{{itemt}}</view>
							</view>
						</view>
					</view>
				</view> -->
				<!-- 预约日期 -->
				<view class="mar-s20 mar-x30">预约日期</view>
				<scroll-view scroll-x >
					<view class="disac">
						<view @tap="chooseTime(index)" class="disjcac fc flexs radius20 mar-y20 yutime borbot-df" :class="item.status==0?'bcdb col3':'colc'" :style="{background:timeCurrent==index?publicColor:'',border:timeCurrent==index?`2rpx solid ${publicColor}`:''}" v-for="(item,index) in dataList" :key="index">
							<view :class="timeCurrent==index?'colf':'col3'" class="bold fon28">{{item.title}}</view>
							<view :class="timeCurrent==index?'colf':''" class="fon26 mar-s10">{{item.time}}</view>
						</view>
					</view>
				</scroll-view>
				<!-- 时间段 -->
				<view class="mar-s20 mar-x10">时 间 段</view>
				<view class="disjb fw">
					<view @tap="chooseTD(indextd)" :style="{background:itemtd.tdStatus?publicColor:'',border:itemtd.tdStatus?`2rpx solid ${publicColor}`:''}" :class="itemtd.num==0?'bcdb':''" class="tc radius10 mar-x30 col3 timed borbot-df" v-for="(itemtd,indextd) in dataTD" :key="indextd">
						<view :class="itemtd.tdStatus?'colf':''">{{itemtd.ttime}}</view>
					</view>
				</view>
				<!-- 联系人 -->
				<view class="disac mar-s30">
					<view class="mar-y20 flexs titlel">联 系 人</view>
					<view class="width100 radius10 pad-zy20 borbot-cc height-68">
						<input v-model="lname" maxlength="10" class="fon28 height-68" type="text" placeholder="请填写联系人姓名"/>
					</view>
				</view>
				<!-- 联系方式 -->
				<view class="disac mar-s20">
					<view class="mar-y20 flexs titlel">联系方式</view>
					<view class="width100 radius10 pad-zy20 borbot-cc height-68">
						<input v-model="lphone" maxlength="11" class="fon28 height-68" type="text" placeholder="请输入联系电话"/>
					</view>
				</view>
				<!-- 留言信息 -->
				<view class="dis mar-s20">
					<view class="mar-y20 flexs mar-s20 titlel">留言信息</view>
					<view class="width100 radius10 pad20 borbot-cc" style="height: 300rpx;">
						<textarea v-model="lmsg" class="fon28" maxlength="500" style="height: 300rpx;width: auto;" placeholder="请填写内容"/>
					</view>
				</view>
				<!-- 立即提交底部按钮 -->
				<view @tap="submit" class="fon30 radius20 tc colf bold0 btnl" :style="{background:publicColor}">{{btnCon}}</view>
			</view>
			<!-- 弹框 -->
			<pu-po :isShowT="isShowT" :isCenter="true" :contentVal="'提交成功!等待审核'" :comfrimVal="'好的'" @comfirmev="comfirmev"></pu-po>
		</view>
		<!-- 底部客服 -->
		<public-customer :nright="20"></public-customer>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				statusHNH:uni.getStorageSync('statusHNH'),
				publicColor:uni.getStorageSync('publicColor'),//主题颜色
				timeCurrent:0,
				dataList:[],//日期
				dataTD:[],//时间段
				isShowT:false,
				category:'',
				lname:'',//联系人姓名
				lphone:'',//联系方式
				lmsg:'',//留言信息
				isZhuan:false,
				xialCurrent:0,
				xialone:['植发','脱发'],
				categoryT:'',
				isZhuanT:false,
				xialCT:0,
				xialTwo:['杨幂','周星驰'],
				type_id:'',//预约类别ID
				gday:'',//日期
				dtId:[],//暂存禁选时间段ID
				zanTimeD:[],//暂存时间段
				zanDay:[],//暂存日期
				dangId:'',//当前预约时间段ID
				btnCon:'立即提交'
			}
		},
		onShow() {
			this.$toolAll.tools.isLogin()
		},
		onLoad() {
			this.category = this.xialone[0]
			this.categoryT = this.xialTwo[0]
			this.checkZParmas()
			// this.$toolAll.tools.weekDate()
		},
		methods: {
			gtimeD(id,gday){
				this.$requst.post('user/appointment-period-full',{type_id:id,day:gday}).then(res=>{
					// console.log('查询预约分类某天已约满的时间段:',res);
					if(res.code==0){
						this.dtId = res.data
						this.dataTD = []
						if(this.dtId.length!=0){
							this.zanTimeD.forEach((item,index)=>{
								let newNum = 1
								let newTdStatus = false
								this.dtId.forEach(item1=>{
									if(item.id==item1.id){
										newNum = 0
										newTdStatus = false
									}
								})
								let tdObj = {
									id:item.id,
									ttime:item.ttime,
									num:newNum,
									status:item.status,
									tdStatus:newTdStatus
								}
								this.dataTD.push(tdObj)
							})
						} else {
							this.zanTimeD.forEach(item=>{
								let tdObj = {
									id:item.id,
									ttime:item.ttime,
									num:1,
									status:item.status,
									tdStatus:false
								}
								this.dataTD.push(tdObj)
							})
						}
					}
				},error=>{})
			},
			checkZParmas(){//查询参数
				this.$requst.post('user/appointment-parameters',{page:1,size:20}).then(res=>{
					// console.log('查询自主预约列表:',res);
					if(res.code==0){
						this.gtimeD(res.data.types[0].id,res.data.days[0].day)
						// 预约类别
						if(res.data.types.length!=0){
							this.type_id = res.data.types[0].id
							res.data.types.forEach(item=>{
								let ycateObj = {
									id:item.id,
									title:item.title,
									max:item.max
								}
								this.xialone.push(ycateObj)
							})
							this.category = this.xialone[0].title
						}
						//预约日期
						if(res.data.days.length!=0){
							this.gday = res.data.days[0].day
							this.zanDay = res.data.days
							res.data.days.forEach(item=>{
								let arr = item.day.split('-')
								let newDay = arr[1]+'月'+arr[2]+'日'
								let dayObj = {
									title:item.week,
									time:newDay,
									status:item.status
								}
								this.dataList.push(dayObj)
							})
						}
						// 时间段
						if(res.data.times.length!=0){
							res.data.times.forEach((item,index)=>{
								let tdObj = {
									id:item.id,
									ttime:item.name,
									status:item.status,
								}
								// this.dataTD.push(tdObj)
								this.zanTimeD.push(tdObj)
							})
						}
						
					}
				},error=>{})
			},
			submit(){
				if(!this.lname){
					this.$toolAll.tools.showToast('请输入联系人姓名')
				} else if(!this.lphone){
					this.$toolAll.tools.showToast('请输入联系电话')
				} else if(this.$toolAll.tools.isPhone(this.lphone)){
					this.$toolAll.tools.showToast('请输入正确的联系电话')
				} else if(!this.dangId){
					this.$toolAll.tools.showToast('请选择时间段')
				} else {
					let parmas = {
						type_id:this.type_id,//预约类型ID
						day:this.gday,//预约日期,如:2021-08-11
						period_id:this.dangId,//预约时间段ID
						user_name:this.lname,//联系人姓名
						user_phone:this.lphone,//联系人电话
						remarks:this.lmsg//预约留言信息,(500字以内)
					}
					if(this.btnCon=='立即提交'){
						this.btnCon = "正在提交..."
						this.$requst.post('user/appointment-apply',parmas).then(res=>{
							// console.log('提交预约申请:',res);
							if(res.code==0){
								this.isShowT = true
								wx.requestSubscribeMessage({
									tmplIds: ['uvGd7RqaegheGU-uVxR-uM3y2MadZeMOHdQaNiiWm8U'],
									success: (res)=> { 
										console.log('res',res);
										this.isShowT = true
									}
								})
							} else {
								this.btnCon = "立即提交"
								this.$toolAll.tools.showToast(res.msg)
							}
						},error=>{})
					}
				}
			},
			comfirmev(){
				this.isShowT = false
				uni.navigateBack({delta:1})
			},
			goYu(){//去预约
				uni.navigateTo({
					url:''
				})
			},
			chooseTime(index){
				if(this.dataList[index].status!=0){
					this.timeCurrent = index
					this.gday = this.zanDay[index].day
					this.gtimeD(this.type_id,this.gday)
				}
			},
			chooseTD(index){//时间段选择事件
				if(this.dataTD[index].num!=0){
					this.dangId = this.zanTimeD[index].id
					this.dataTD.forEach(item=>{//发现为true的改为false,即控制单选,注释就表示多选
						if(item.tdStatus==true) item.tdStatus = false
					})
					this.dataTD[index].tdStatus = !this.dataTD[index].tdStatus
				}
			},
			openXial(index){
				if(index==0) {
					this.isZhuanT = false
					this.isZhuan = !this.isZhuan
				}
				if(index==1) {
					this.isZhuan = false
					this.isZhuanT = !this.isZhuanT
				}
			},
			chooseXia(index){//预约类别选择事件
				this.xialCurrent = index
				this.category = this.xialone[index].title
				this.type_id = this.xialone[index].id
				this.gtimeD(this.type_id,this.gday)
			},
			chooseXiaT(index){
				this.xialCT = index
				this.categoryT = this.xialTwo[index]
			},
		}
	}
</script>

<style>
</style>