<template>
	<view class="home">
		
		<image :src="configList.img_13"
		class="page-bg"
		mode="aspectFill"></image>
		
		<image :src="configList.img_7"
		class="logo"
		mode="widthFix"></image>
		
		<view class="content">
			
			<image :src="configList.img_11"
			class="content-bg"
			mode="scaleToFill"></image>
			
			<view
			class="topt"
			v-if="!id">
				<span style="font-size: 25rpx;">请选择您方便的时间，</span>
				<span style="font-size: 25rpx;">我们将根据您的日程为您安排上门威士忌品鉴服务，</span>
				<span style="font-size: 25rpx;">确保您能在舒适的环境中尽享专属体验</span>
			</view>
			<span class="font-bold" style="margin-top: 10rpx;">预约信息</span>
			<view class="" style="width: 600rpx;">
				<view class="flex-sb" style="margin-top: 10rpx;"
				@click="id || $refs.datetimePicker.open()">
					<view class="date">
						{{ $dayjs(date).format('YYYY') }}年
						<img src="../static/info/a.png" style="width: 25rpx; height: 25rpx;"/>
					</view>
					<view class="date">
						{{ $dayjs(date).format('MM-DD') }}
						<img src="../static/info/a.png" style="width: 25rpx; height: 25rpx;"/>
					</view>
					<view class="date">
						{{ $dayjs(date).format('HH:mm') }}
						<img src="../static/info/a.png" style="width: 25rpx; height: 25rpx;"/>
					</view>
				</view>
				<view class="flex-start-col" style="margin-top: 10rpx;">
					<view class="flex-center" style="align-items: flex-end;">
						<view class="flex-start-col" style="gap: 10rpx;">
							<span>姓名:</span>
							<input v-model="form.username" 
							:disabled="id"
							placeholder="请输入姓名" 
							type="text" class="input" style="width: 580rpx;"></input>
						</view>
					</view>
					<view class="flex-center" style="align-items: flex-end;">
						<view class="flex-start-col" style="gap: 10rpx;">
							<span>联系电话:</span>
							<input v-model="form.phone" 
							:disabled="id"
							placeholder="请输入联系电话" 
							type="tel" class="input" style="width: 580rpx;"></input>
						</view>
					</view>
					<picker
					mode="region" 
					@change="bindTimeChange">
						<view class="flex-center">
							<view class="flex-start-col">
								<span>所在地区</span>
								<input 
								:value="form.province + form.city + form.area"
								disabled
								placeholder="请选择所在地区" 
								type="text" class="input" 
								style="width: 580rpx;"></input>
							</view>
						</view>
					</picker>
					<view class="flex-center">
						<view class="flex-start-col">
							<span>详细地址</span>
							<input v-model="form.address" 
							:disabled="id"
							placeholder="请输入详情地址" 
							type="text" class="input" 
							style="width: 580rpx;"></input>
						</view>
					</view>
				</view>
			</view>
		</view>
		
		<view class="flex-center" style="gap: 30rpx;">
			<view class="next-btn" style="padding: 16rpx 80rpx;" @click="pre">
				返回
			</view>
			<view class="next-btn-2" 
			v-if="!id"
			style="padding: 16rpx 80rpx;" @click="submit">
				确认/提交
			</view>
			<view class="next-btn-2" 
			v-else
			style="padding: 16rpx 80rpx;" @click="closeSubmit">
				取消预约
			</view>
		</view>
		<view class="second-color">{{ configList.bg_title }}</view>
		
		
		<uv-datetime-picker 
		ref="datetimePicker" 
		v-model="date" 
		mode="datetime" 
		:minDate="new Date().getTime()" 
		@confirm="confirm">
		</uv-datetime-picker>
		
	</view>
</template>

<script>
	import { mapState } from 'vuex'
	export default {
		data() {
			return {
				// year: '2024年',
				// date: '9月20日',
				// time: '08：00',
				// firstName: '张',
				// lastName: '里于',
				// gender: '',
				// phone: '',
				// message: '',
				date : new Date().getTime(),
				address : {
					province : '',
					city : '',
					district : '',
					address : '',
				},
				form : {
					username:'',
					phone:'',
					province : '',
					city : '',
					area : '',
				},
				id : 0,
			}
		},
		computed : {
			addressCity(){
				return this.address.province + 
				this.address.city + 
				this.address.district
			},
			...mapState(['problemList', 'configList', 'queryMyLog']),
		},
		onLoad(args) {
			if(args.id){
				this.id = args.id
				return
			}
			if(uni.getStorageSync('user_address')){
				this.address = JSON.parse(uni.getStorageSync('user_address'))
			}
			if(uni.getStorageSync('user_phone')){
				this.form = JSON.parse(uni.getStorageSync('user_phone'))
			}
		},
		onShow() {
			this.getDetail()
		},
		methods: {
			getDetail(){
				if(!this.id){
					return
				}
				this.$api('queryReservationDetail',{
					id : this.id
				}, res => {
					if(res.code == 200){
						this.date = new Date(`${res.result.yearValue}-${res.result.monthDay} ${res.result.dayTime}:00`).getTime()
						this.address = res.result
						this.address.district = res.result.area
						this.form = res.result
						this.form.username = res.result.name
					}
				})
			},
			next() {
				// uni.navigate
				
			},
			pre(){
				uni.navigateBack(-1)
				// uni.reLaunch({
				// 	url: '/pages/index/index'
				// })
			},
			confirm(e){
				this.date = e.value
			},
			submit(){
				
				if(this.$utils.verificationAll(this.form, {
					username : '请输入姓名',
					phone : '请输入电话号码',
					province : '请选择所在地区',
					address : '请输入详情地址',
				})){
					return
				}
				
				if(!this.$utils.verificationPhone(this.form.phone)){
					uni.showToast({
						title: '请输入正确的手机号',
						icon: 'none',
					})
					return
				}
				
				this.$api('submit', {
					...this.form,
					name : this.form.username,
					yearValue : this.$dayjs(this.date).format('YYYY'),
					monthDay : this.$dayjs(this.date).format('MM-DD'),
					dayTime : this.$dayjs(this.date).format('HH:mm'),
				}, res => {
					if(res.code == 200){
						// setTimeout(uni.reLaunch, 1000, {
						// 	url : '/pages/index/index'
						// })
						uni.navigateTo({
							url: '/pages/index/cancelArticle?key=success_text'
						})
					}
				})
			},
			// 取消预约
			closeSubmit(){
				uni.showModal({
					title: '确认取消预约吗？',
					success: (res) => {
						if(res.confirm){
							this.$api('cancelReservation', {
								id : this.id
							}, res => {
								if(res.code == 200){
									uni.navigateTo({
										url: '/pages/index/cancelArticle?key=cancel_value'
									})
								}
							})
						}
					}
				})
			},
			
			// 获取省市区
			bindTimeChange(e) {
				this.form.province = e.detail.value[0];
				this.form.city = e.detail.value[1];
				this.form.area = e.detail.value[2];
				// this.form.provinceName = e.detail.value[0] + e.detail.value[1] + e.detail.value[2];
			},
		},
	}
</script>

<style lang="scss" scoped>
	.home{
		font-size: 28rpx;
		.logo{
			width: 600rpx;
			height: 100rpx;
			margin: 150rpx 75rpx;
			margin-bottom: 50rpx;
		}
		.content{
			position: relative;
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			box-sizing: border-box;
			padding: 60rpx;
			text-align: center;
			width: 720rpx;
			margin: 0 auto;
			.content-bg{
				height: 100%;
				width: 700rpx;
				position: absolute;
				top: 0;
				left: 0;
				z-index: -1;
			}
			.topt{
				width: 600rpx; 
				padding: 20rpx 0; 
				gap: 10rpx; 
				border-radius: 12rpx;
				border: 2rpx solid #ecb864;
				display: flex;
				flex-direction: column;
			}
		}
		.second-color{
			text-align: center;
			margin-top: 40rpx;
		}
	}
	

	.date {
		border: 2rpx solid $uni-color;
		padding: 10rpx 30rpx;
		border-radius: 12rpx;
	}

	.main-color{
		flex-wrap: nowrap;
	}
	
	.input{
		border: 2rpx solid $uni-color;
		border-radius: 10rpx;
		padding: 4rpx 10rpx;
	}
	.next-btn{
		width: 160rpx;
		display: flex;
		align-items: center;
		justify-content: center;
		color: white;
		padding: 16rpx 90rpx;
		background-color: $uni-color;
		border-radius: 30rpx;
	}
	.next-btn-2{
		width: 160rpx;
		display: flex;
		align-items: center;
		justify-content: center;
		color: white;
		padding: 16rpx 90rpx;
		background-color: $uni-color-primary;
		border-radius: 30rpx;
	}
</style>