<template>
	<view class="flex-col justify-start relative page" :style="{ backgroundImage: 'url(' + bkgPubilcPath + ')'}">
	  <image
	    class="image pos" mode="aspectFill"
	    :src="publicPath + (isShow ? obj.introImg : obj.image)"
	  />
	  <view class="flex-col items-start section_2 pos_2">
	    <text class="font text">{{ obj.name }}</text>
	    <text class="mt-20 font text_2">￥{{ obj.price.toFixed(2) }}{{ isShow ? '起' : '/天' }}</text>
		<button class="customer" open-type="contact" bindcontact="handleContact" session-from="sessionFrom">
			<customerServiceVue></customerServiceVue>
		</button>
	  </view>
	  <view class="section_3 pos_3">
		  <rich-text :nodes="obj.richText"></rich-text>
	  </view>
	  <view class="flex-col justify-start items-center section_4 pos_4">
	    <view class="flex-col justify-start items-center text-wrapper" @click="openPopup"><text class="text_3">立即预约</text></view>
	  </view>
	</view>
	
	<uni-popup ref="rent" :safe-area="false">
		<view class="rent">
			<clothesAttributeVue></clothesAttributeVue>
		</view>
	</uni-popup>
	
	
	<uni-popup ref="book" :safe-area="false">
		<view class="book">
			<clothesAttributePlusVue></clothesAttributePlusVue>
		</view>
	</uni-popup>
	
</template>

<script setup>
	import {nextTick, onMounted, onUnmounted, ref} from 'vue'
	import { baseUrl } from '../../../../api/request';
	import { bookUrl,bkgPubilcPath } from '../../../../common/globalImagesUrl';
	import { publicPath } from '../../../../common/globalImagesUrl';
	import { onLoad } from "@dcloudio/uni-app";
	import clothesAttributeVue from '../../clothesRent/component/clothesAttribute.vue';
	import clothesAttributePlusVue from '../../clothesRent/component/clothesAttributePlus.vue';
	import emitter from '../../../../utils/emitter';
	import { getFonts } from '../../../../common/globalFont';
	import customerServiceVue from '../component/customerService.vue';

	const book = ref(null)
	const rent = ref(null)
	const cookie = wx.getStorageSync("cookie")  //请求头
	const bkgUrl = ref(bookUrl + '/myPhotoProductDetail/bkg.png')
	const isShow = ref(true)
	const id = ref(0)
	const obj = ref({})
	const bookingDateVOList = ref([])
	
	
	const closeClothesAttributePopupHandler = () => {
		nextTick(() => {
			if (rent.value) {
				rent.value.close()
			}
		})
	}
	
	const closeClothesAttributePlusPopupHandler = () => {
		nextTick(() => {
			if (book.value) {
				book.value.close()
			}
		})
	}
	
	
	onLoad((options) => {
		getFonts()
		id.value = JSON.parse(options.id)
		isShow.value = JSON.parse(options.isShow)
	})
	
	onMounted(() => {
		if (isShow.value) {
			getPhotoProductsById(id.value)
		} else {
			getClothesById(id.value)
		}
		emitter.on('closeClothesAttributePopup', closeClothesAttributePopupHandler)
		
		emitter.on('closeClothesAttributePlusPopup', closeClothesAttributePlusPopupHandler)
	})
	
	onUnmounted(() => {
		emitter.off('closeClothesAttributePopup', closeClothesAttributePopupHandler)
		
		emitter.off('closeClothesAttributePlusPopup', closeClothesAttributePlusPopupHandler)
	})
	
	const getPhotoProductsById = async (val) => {
		const res = await uni.request({
			url: baseUrl + '/photoProducts/list/detail',
			method: 'POST',
			header: {
				cookie
			},
			data: {
				id: val
			}
		})
		obj.value = res.data.data
		bookingDateVOList.value = res.data.data.bookingDateVOList
		console.log(obj.value)
	}
	
	const getClothesById = async (val) => {
		const res = await uni.request({
			url: baseUrl + '/clothes/get/id',
			method: 'POST',
			header: {
				cookie
			},
			data: {
				id: val
			}
		})
		obj.value = res.data.data
		console.log(obj.value)
	}
	
	const openPopup = () => {
		if (isShow.value) {
			if (bookingDateVOList.value.length === 0) {
				uni.showModal({
					title: '提示',
					content: '当前写真产品的所有时段已约满',
					showCancel: false
				})
				return ;
			}
			emitter.emit('getPhotoProductsInfo', obj.value)
			book.value.open('bottom')
		} else {
			emitter.emit('getClothesInfo', obj.value)
			rent.value.open('bottom')
		}
	}
	
</script>

<style scoped lang="scss">
	
button {
	padding: 0;
	margin: 0;
	background-color: #fff;
}
button::after{
	border: none; 
}
.customer {
	position: absolute;
	right: 52.5rpx;
	bottom: 45rpx;
	display: flex;
	align-items: center;
	height: 60rpx;
}
.rent {
	justify-content: center;
	background-color: #fff;
	border-radius: 20rpx 20rpx 0 0;	
}
.book {
	justify-content: center;
	background-color: #fff;
	border-radius: 20rpx 20rpx 0 0;	
}
.page {
  background-color: #ffffff;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  width: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  height: 100vh;
}
.image {
  width: 100vw;
  height: 106vw;
}
.pos {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
}
.section_2 {
  padding: 37.5rpx 52.5rpx 45rpx;
  background-color: #ffffff;
  border-radius: 18.75rpx;
  box-shadow: 11.25rpx 11.25rpx 11.25rpx #32323226;
}
.pos_2 {
  position: absolute;
  left: 18.75rpx;
  right: 18.77rpx;
  top: 750rpx;
}
.font {
  font-size: 45rpx;
  font-family: FangZhengFonts;
  color: #323232;
}
.text {
  line-height: 43.76rpx;
}
.text_2 {
  line-height: 33.22rpx;
}
.section_3 {
  background-color: #ffffff;
  border-radius: 18.75rpx;
  width: 712.5rpx;
  height: auto;
}
.pos_3 {
  padding: 40rpx;
  margin: 984.38rpx 18.75rpx 200rpx;
}
.section_4 {
  padding: 24.38rpx 0 16.88rpx;
  background-color: #ffffff;
}
.pos_4 {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
}
.text-wrapper {
  padding: 26.25rpx 0;
  background-color: #e79ea1;
  border-radius: 187.5rpx;
  width: 573.75rpx;
}
.text_3 {
  color: #ffffff;
  font-size: 30rpx;
  font-family: FangZhengFonts;
  line-height: 28.84rpx;
}
@import url(../../../../common/css/global.css);
</style>
