<template>
	<view class="box flex justify-start flex-column align-items" :class="{ 'no-scroll': overlay }">
		<view class="swiper">
			<u-swiper :list="detail.images" indicator indicatorMode="line" :indicator-style="{ bottom: '60rpx' }"
				height="580rpx" circular></u-swiper>
		</view>
		<view class="nav">
			<u-navbar :is-back="true" leftIconColor="#FFFFFF" :autoBack='true' title="课程详情" :bgColor="background"
				:titleStyle='titleStyle'> </u-navbar>
		</view>
		<view class="con-center w-100 flex justify-center flex-column align-items flex-start">
			<view class="first-box flex flex-start flex-column justify-start">
				<view class="flex align-items">
					<span class="sigh flex justify-center align-items">报名中</span>
					<span class="first-name">{{detail.title}}</span>
				</view>

				<!-- <view class="flex w-100  align-items" style="margin-top:28rpx;justify-content: space-between;">
					<span class="first-money" v-if="detail.feel == 0">￥{{detail.price}}</span>
					<span class="first-money" v-if="detail.feel == 1"></span>
					<view class="flex align-items justify-center"
						style="width: 30%;justify-content: flex-end;margin-right: 24rpx;">
						<span
							class="first-mine">{{ Number(detail.sign_num + detail.virtual_num)}}/{{detail.limit_num}}</span>
						<span class="first-txt">名额</span>
						<image src="../../static/center/minge.png" mode="" class="icon-size"></image>
					</view>
				</view> -->
				<!-- <span class="line"></span> -->

				<span class="first-image flex align-items" style="margin-top: 38rpx;">
					<image src="../../static/center/authorize.png" mode="" class="icon-size"></image>
					<span style="color: #FF4810;">{{'报名人数: ' +  Number(detail.sign_num + detail.virtual_num)}} /
						{{detail.limit_num}}</span>
				</span>

				<span class="first-image flex align-items" style="margin: 16rpx 0;">
					<image src="../../static/center/Alarm.png" mode="" class="icon-size"></image>
					<span>{{formattedTime.formattedTime}} (共计{{formattedTimeList.length}}节)</span>
				</span>

				<span class="first-image flex align-items"
					@click.stop="toMap(detail.latitude,detail.longitude,detail.address_detail)">
					<image src="../../static/center/address.png" mode="" class="icon-size"></image>
					<span>{{detail.address_detail}}</span>
				</span>
			</view>
			<!-- 正在参与 -->
			<view class="second-box flex align-items space-between">
				<span class="number">{{virtual_people >= 10000 ? '9999+' : virtual_people}}人正在参与</span>
				<view class="flex align-items">
					<u-avatar-group :urls="people.unpaid_user_data" :extraValue="people.unpaid_user_data.length - 5"
						keyName="head_image" size="24" gap="0.2"></u-avatar-group>
					<span class="flex justify-center align-items">
						<image src="/static/center/right_.png" mode="" style="width: 20rpx;height: 20rpx;"></image>
					</span>
				</view>
			</view>
			<!-- 报名成功 -->
			<view class="third flex flex-column" style="justify-content: flex-start;">
				<view class="third-center flex " style="justify-content: space-between;">
					<view class="scroll-container ">
						<view v-for="(item, index) in people.paid_user_data" :key="index" class="item">
							<view class="flex align-items" style="justify-content: space-between;">
								<image :src="item.head_image" mode="" style="width: 40rpx; height: 40rpx;">
								</image>
								<span
									style="width: 72rpx; overflow: hidden; white-space: nowrap;">{{item.nickname}}</span>
								<span class="line-colum"></span>
								<span>报名成功</span>
							</view>
							<span>{{ item.createTime }}</span>
						</view>
					</view>
				</view>
			</view>
			<view class="four flex justify-start align-items flex-column">
				<view class="four-top">
					<view class="left flex align-items">
						<span>授课教师</span>
					</view>
				</view>
				<view class="four-box flex justify-start align-items w-100" @click="toTeacher(detail.teacher.id)">
					<view class="four-header flex align-items w-100" style="justify-content: space-between;">
						<view class="flex align-items" style="justify-content: start; width: 70%;">
							<image :src="detail.teacher.head_image" mode=""
								style="width: 96rpx; height: 96rpx;border-radius: 96rpx;">
							</image>
							<span class="flex justify-center flex-column"
								style="align-items: flex-start;margin-left: 18rpx;">
								<span class="four-name">{{detail.teacher.name}}</span>
								<span class="jigou">{{detail.shop.name}}</span>
								<!-- <span class="flex align-items rate">
									<u-rate :count="count" active-color="#FFBC2C" v-model="detail.teacher.teacher_star"
										allowHalf="true" readonly></u-rate>
									{{detail.teacher.teacher_star}}分
								</span> -->

							</span>
						</view>
						<view class="four-right flex justify-center align-items">
							详情
						</view>
					</view>
				</view>
				<span class="line" style="width: 93%;"></span>
				<span class="tt-detail flex ">
					<u-parse :content="detail.teacher.content"></u-parse>
				</span>
			</view>
			<!-- 机构 -->
			<view class="five flex align-items" style="justify-content: space-around;" @click="toMeDetail()">
				<image :src="detail.shop.logo" mode="" style="width: 64rpx; height: 64rpx;border-radius: 64rpx;">
					<span class="five-name  white-space">{{detail.shop.name}}</span>
					<span class="five-address white-space">{{detail.shop.address_detail}}</span>
					<image src="/static/center/blockRight.png" mode="" style="width: 28rpx; height: 28rpx;"></image>
			</view>
			<!-- 课程详情 -->
			<view class="six flex flex-column" style="justify-content: flex-start;margin-top: 64rpx;">
				<view class="six-top flex align-items space-between">
					<view class="left flex align-items">
						<span>课程详情</span>
					</view>
				</view>
				<view class="six-center flex first-txt  flex-column" style="padding: 0rpx 30rpx;">
					<u-parse :content="detail.content" :tagStyle="style"></u-parse>
				</view>
			</view>

			<!-- 课程须知 -->
			<view class="six flex flex-column" style="justify-content: flex-start;margin-bottom: 106rpx;">
				<view class="six-top flex align-items space-between">
					<view class="left flex align-items">
						<span>课程须知</span>
					</view>
				</view>
				<view class="six-center flex first-txt  flex-column">
					<u-parse :content="detail.notice" :tagStyle="style"></u-parse>
					<!-- <rich-text :nodes="detail.notice" style="width: 100%;" :tagStyle="style"></rich-text> -->
				</view>
			</view>
			<view class="footer flex align-items" style="justify-content: space-between;">
				<view class="footer-left">
					<view @click="callPhone(detail.user.mobile)">
						<image src="../../static/center/phone.png" mode=""></image>
						<span>电话</span>
					</view>
					<view @click="overlayShow()">
						<!-- <view @click="Share()"> -->
						<image src="../../static/center/share.png" mode=""></image>
						<span>分享</span>
					</view>
					<view v-if="is_collect == 0" @click="Collect(1)">
						<image src="../../static/center/Collect.png" mode=""></image>
						<span>收藏</span>
					</view>
					<view v-if="is_collect != 0" @click="Collect(0)">
						<image src="../../static/center/Collected.png" mode=""></image>
						<span>已收藏</span>
					</view>
				</view>
				<view class="footer-right flex justify-center align-items">
					<span v-if="type == 0 && detail.feel == 0" @click="sign()"> 购买 </span>
					<span v-if="type == 0 && detail.feel == 1" @click="sign()"> 马上报名 </span>
					<span v-if="type == 1 && detail.feel == 0" @click="buy()"> 立即支付 </span>
					<span v-if="type == 1 && detail.feel == 1" @click="buy()"> 确认报名 </span>
					<span v-if="type == 2" @click="open()"> 我要预约 </span>
					<span v-if="type == 3" @click="confimTime()"> 确认时间 </span>
					<!-- <image src="../../static/center/signUp.png" mode="" v-if="type == 0" @click="sign()"></image>
				<image src="../../static/center/appointment.png" mode="" v-else-if="type == 1" @click="open()"></image>
				<image src="../../static/center/Confirm.png" mode="" v-else="type == 2" @click="confimTime()"></image> -->
				</view>
			</view>
		</view>

		<!-- 课程时间 -->
		<u-popup :show="show" mode="bottom" :round="10" :zIndex="99999" :custom-style="popupStyle" @close="close"
			@open="open">
			<view class="popupBox flex justify-start align-items flex-column">
				<view class="pop-header flex align-items" style="justify-content: space-between;">
					<image src="../../static/center/classTime.png" mode="" style="width: 252rpx; height: 48rpx;">
					</image>
					<span @click="cancel">取消选择</span>
				</view>
				<!-- <span class="line"></span> -->
				<view class="times flex align-items justify-center" style="flex-wrap: wrap;">
					<span class="selectTime flex justify-center align-items" v-for="(item,index) in timeList"
						:key="index" :class="{ selected: timeSelected(item) }" @click="selectTime(item)">
						{{item.name}}</span>
				</view>
			</view>

		</u-popup>
		<!-- 购买弹窗 -->
		<u-popup :show="buyShow" mode="center" :round="10" :zIndex="99999" :custom-style="popupStyle" @close="buyClose"
			@open="buyOpen" safeAreaInsetBottom="false" closeable="true">
			<view class="popupBox flex justify-start align-items flex-column">
				<view class="pop-header flex align-items flex-column flex-start">
					<span class="name white-space">{{detail.title}}</span>
					<span class="price">
						<span v-if="detail.feel == 0">￥{{detail.price}}</span>
						<span v-if="detail.feel == 1">公益</span>
					</span>
					<!-- <image src="../../static/center/buy.png" mode="" style="width: 168rpx; height: 48rpx;">
					</image> -->
				</view>
				<view class="popup flex-column">
					<span class="first-image flex align-items" style="margin: 16rpx 0;">
						<image src="../../static/center/Alarm.png" mode="" class="icon-size"></image>
						<span>{{formattedTime.formattedTime}} (共计{{formattedTimeList.length}}节)</span>
					</span>
					<span class="first-image flex align-items">
						<image src="../../static/center/address.png" mode="" class="icon-size"></image>
						<span>{{detail.address_detail}}</span>
					</span>
					<!-- <image :src="detail.headimage" mode="" style="width: 200rpx; height: 140rpx;"></image>
					<view class="popur-right flex flex-column">
						<span class="name white-space">{{detail.title}}</span>
						<span class="address">地址:{{detail.address_detail}}</span>
						<span class="date">开始时间:{{detail.start_time_text}}</span>
						<span class="time">结束时间:{{detail.end_time_text}}</span>
						<span class="line-row"></span>
						<span class="price">
							课程价格:
							<span v-if="detail.feel == 0">￥{{detail.price}}</span>
							<span v-if="detail.feel == 1">免费</span>
						</span>
					</view> -->
				</view>
				<view class="popup-footer flex " @click="buy()">
					<span v-if="type == 1 && detail.feel == 0">立 即 支 付</span>
					<span v-if="type == 1 && detail.feel == 1">确 认 报 名</span>
					<!-- <image src="../../static/center/price.png" mode="" style="width: 642rpx;height: 80rpx;"></image> -->
					<u-loading-icon :vertical="true" v-if="uloadingShow"></u-loading-icon>
				</view>
			</view>
		</u-popup>

		<u-overlay :show="overlay" class="pos">
			<view class="btnList">
				<span class="save" @click.stop="save()">保 存 海 报</span>
				<!-- <span class="sharePoster"  @click.stop="sharePoster()">
				分 享
				</span> -->
				<button open-type="share" class="no-border-button" plain="true">
					<span>分 享 发 布</span>
				</button>
			</view>
			<view class="Poster" style="z-index: 9999;height: 1230rpx;">
				<span class="posterClose" @click.stop="overlay = false">
					<image src="../../static/center/close.png" mode="" style="width: 64rpx;height: 64rpx;"></image>
				</span>

				<image :src="path" mode="widthFix" style="width: 690rpx;height: 1230rpx;"></image>
				<l-painter isCanvasToTempFilePath ref="painter" @success="path = $event" hidden
					css="width: 750rpx;height:1230rpx; padding-bottom: 40rpx; background-image: url('https://testy.hschool.com.cn//uploads/20241219/6f46474364fe7ae36295cb8d96854b52.png')">
					<l-painter-image :src="userInfo.avatar"
						css="margin-left: 40rpx; margin-top: 100rpx; width: 90rpx;  height: 90rpx; border-radius: 50%;" />
					<l-painter-view css="margin-top: 100rpx; padding-left: 20rpx; display: inline-block">
						<l-painter-text :text="userInfo.realname || userInfo.nickname"
							css="display: block; padding-bottom: 10rpx; color: #181818; font-size: 34rpx; fontWeight: bold" />
						<l-painter-text text="邀请您一起上课" css="color: #7A7A7A; font-size: 24rpx" />
					</l-painter-view>
					<l-painter-view
						css="margin-left: 35rpx; margin-top: 24rpx; padding: 32rpx; box-sizing: border-box; background: #fff; border-radius: 16rpx; width: 690rpx; box-shadow: 0 20rpx 58rpx rgba(0,0,0,.15)">
						<l-painter-image :src="detail.headimage"
							css="object-fit: cover; object-position: 50% 50%; width: 626rpx; height: 448rpx; border-radius: 12rpx;" />

						<l-painter-view css=" width: 626rpx;display: flex;alignItems: center;">
							<l-painter-view>
								<l-painter-view
									css="margin-top: 32rpx; color: #FF0000; font-weight: bold; font-size: 28rpx; line-height: 1em;">
									<l-painter-text text="￥" css="vertical-align: bottom;font-size: 42rpx"
										v-if="detail.feel == 0" />
									<l-painter-text :text="detail.price" css="vertical-align: bottom; font-size: 58rpx"
										v-if="detail.feel == 0" />
									<l-painter-text text="免费" css="vertical-align: bottom;font-size: 42rpx"
										v-if="detail.feel == 1" />
								</l-painter-view>
								<l-painter-view css="margin-top: 24rpx;">
									<l-painter-text :text="formattedTitle" css="color: #343434;font-size: 36rpx;" />
								</l-painter-view>
								<l-painter-text
									css="line-clamp: 2; color: #333333; line-height: 1.8em; font-size: 26rpx;display: block; width: 380rpx; padding-right:32rpx; box-sizing: border-box"
									:text="'讲师:' + detail.teacher.name"></l-painter-text>
								<l-painter-text
									css="line-clamp: 2; color: #333333; line-height: 1.8em; font-size: 26rpx;display: block;margin-bottom:30rpx; width: 380rpx; padding-right:32rpx; box-sizing: border-box"
									:text="detail.address_detail"></l-painter-text>
							</l-painter-view>
							<l-painter-view css="margin-top: 24rpx;">
								<l-painter-qrcode css="width: 200rpx; height: 200rpx;" :text="qrUrl"></l-painter-qrcode>
							</l-painter-view>
						</l-painter-view>

					</l-painter-view>
				</l-painter>
			</view>
		</u-overlay>

	</view>
</template>

<script>
	import dayjs from 'dayjs';
	export default {
		computed: {
			formattedTitle() {
				if (this.detail.title.length > 9) {
					return this.detail.title.slice(0, 9) + '..';
				}
				return this.detail.title;
			},
			formattedTimeList() {
				return this.timeList.map(item => {
					const startTime = dayjs.unix(item.start_time).format('YYYY-MM-DD HH:mm:ss');
					const endTime = dayjs.unix(item.end_time).format('HH:mm:ss');
					return {
						formattedTime: `${startTime}~${endTime}`,
						limit_num: item.limit_num,
						sign_num: item.sign_num
					};
				});
			},
			formattedTime() {
				const startTime = dayjs.unix(this.detail.start_time).format('YYYY-MM-DD HH:mm');
				const endTime = dayjs.unix(this.detail.end_time).format('YYYY-MM-DD HH:mm');
				return {
					formattedTime: `${startTime}~${endTime}`
				};
			}
		},

		data() {
			return {
				style: {
					// 字符串的形式
					img: 'width: 100%'

				},
				scrollTop: 0,
				overlay: false,
				userInfo: {},
				path: 'https://testy.hschool.com.cn//uploads/20241219/3406baf51fcc28c63c31ebcee5c9c75e.jpg',
				uloadingShow: false,
				show: false,
				buyShow: false,
				type: 0, // 0 支付 1 立即购买 2 预约  3确认时间
				id: 1,
				count: 5,
				value: 5,
				order_no: '',
				PayPirce: 0,
				notice: '',
				detail: {},
				people: {},
				qrUrl: '',
				is_collect: 0,
				virtual_people: 0,
				popupStyle: {
					width: '690rpx',
					height: '716rpx',
					margin: '0 auto', // 水平居中
					display: 'flex',
					justifyContent: 'flex-start',
					alignItems: 'center'
				},
				timeList: [],
				selectedTime: null,
				// indexBackgroundImage: indexBackgroundImage,
				orderId: "",
				classes_lib_spec_id: '',
				order_no2: '',
				mobile: '',
				is_show_model: false, //是否显示分享模态窗
				background: '#ffffff00',
				titleStyle: {
					color: '#FFFFFF'
				},
			};
		},

		onShareTimeline() {
			return {
				title: this.detail.title, //分享的标题
				imageUrl: this.detail.headimage, //展示的图片，这里是本地路径的写法，也可以写http或https开头的图片路径
				query: `id=${this.id}`
			}
		},

		onLoad(options) {
			this.userInfo = uni.getStorageSync("userInfo")
			this.id = options.id
			// this.id = 1
			if (options.type == 2) {
				this.type = 2
				this.orderId = options.orderId
			}
			if (options.type == 1) {
				this.type = 1
				this.order_no = options.order_no
				this.pament()
			}
			console.log(options.id)
			this.getDetail()
			this.getPeople()
			this.getTime()
			this.getShare()
		},

		methods: {

			overlayShow() {
				const token = uni.getStorageSync('token')
				if (token) {
					this.overlay = true
				} else {
					uni.showToast({
						title: '请登录',
						icon: 'none',
						duration: 2000,
						complete: function() {
							setTimeout(function() {
								uni.switchTab({
									url: '/pages/my/index',
								});
							}, 2000);
						}
					});
				}
			},
			getShare() {
				uni.$u.http.post('/api/wechat_util/link', {
					path: 'pages/center/detail',
					query: `id=${this.id}`,
				}).then(res => {
					if (res.code == 1) {
						this.qrUrl = res.data.url_link
					} else {
						uni.showToast({
							title: res.msg,
							icon: 'none',
							duration: 2000
						});
					}
				}).catch(error => {
					uni.showToast({
						title: '请求失败，请稍后再试',
						icon: 'none',
						duration: 2000
					});
				});
			},
			// 时间转换函数
			timeago(timestamp) {
				const now = new Date().getTime(); // 当前时间（毫秒）
				const diff = (now - timestamp * 1000) / 1000; // 时间差（秒）

				if (diff < 60) {
					return `${Math.floor(diff)}秒前`;
				} else if (diff < 3600) {
					return `${Math.floor(diff / 60)}分钟前`;
				} else if (diff < 86400) {
					return `${Math.floor(diff / 3600)}小时前`;
				} else if (diff < 2592000) { // 30天
					return `${Math.floor(diff / 86400)}天前`;
				} else {
					return `${Math.floor(diff / 2592000)}个月前`;
				}
			},

			// sharePoster() {
			// 	//获取带参数二维码并传递
			// 	this.is_show_model = false
			// 	this.$refs.poster.showCanvas()
			// },

			// 获取课时规格
			getTime() {
				uni.$u.http.get('/api/school/classes/spec', {
					params: {
						id: this.id,
					}
				}).then(res => {
					if (res.code == 1) {

						this.timeList = res.data.spec;
					} else {
						uni.showToast({
							title: res.msg,
							icon: 'none',
							duration: 2000
						});
					}
				}).catch(error => {
					uni.showToast({
						title: '请求失败，请稍后再试',
						icon: 'none',
						duration: 2000
					});
				});
			},
			// 获取报名详情
			getPeople() {
				const that = this
				uni.$u.http.get('/api/school/classes/people', {
					params: {
						id: that.id,
					}
				}).then(res => {
					if (res.code == 1) {
						that.processPeopleData(res.data).then(processedData => {
							that.people = processedData;
							console.log('that.people', that.people)
						});

					} else {
						that.showErrorToast(res.msg);
					}
				}).catch(error => {
					that.showErrorToast('请求失败，请稍后再试');

				});
			},
			// 数据转换
			processPeopleData(data) {
				return new Promise((resolve) => {
					const paidUserData = data.paid_user_data.map(item => {
						item.createTime = this.timeago(item.time);
						return item;
					}).reverse();
					const unpaidUserData = data.unpaid_user_data
					const processedData = {
						unpaid_user_data: unpaidUserData,
						paid_user_data: paidUserData
					}
					resolve(processedData);
				});
			},
			// 提示
			showErrorToast(msg) {
				uni.showToast({
					title: msg,
					icon: 'none',
					duration: 2000
				});
			},
			// 获取详情
			getDetail() {
				uni.$u.http.get('/api/school/classes/detail', {
					params: {
						id: this.id,
					}
				}).then(res => {
					if (res.code == 1) {
						this.detail = res.data.detail
						this.notice = res.data.detail.notice.replace(/<[^>]*>/g, '')
						this.virtual_people = res.data.detail.views
						if (res.data.detail.is_collect != 0) {
							this.is_collect = 1
						} else {
							this.is_collect = 0
						}
						if (this.detail.user.realname) {
							this.detail.user.realname = this.detail.user.realname.slice(0, 1) + 'XX';
						}
						this.mobile = this.detail.user.mobile.slice(0, 3) + 'XXXX' + this.detail.user.mobile.slice(
							7);
					} else {
						uni.showToast({
							title: res.msg,
							icon: 'none',
							duration: 2000
						})
					}
				}).catch(error => {});
			},
			// 报名  0 支付 1 立即购买 2 预约  3确认时间

			sign() {
				this.buyShow = true
				this.type = 3
				// uni.navigateTo({
				// 	url: '/pages/CashierDesk/CashierDesk?id=' + this.id
				// })

			},
			buy() {
				this.uloadingShow = true
				this.getMoney()
			},
			// 购买弹窗 type =  0 支付 1 立即购买 2 预约  3确认时间
			buyOpen() {
				this.buyShow = true
				this.type = 1
			},
			// 预约弹窗 type = 2 0 支付 1 立即购买 2 预约  3确认时间
			open() {
				this.show = true
				this.type = 3
			},
			// 确认时间  type = 0  0 支付 1 立即购买 2 预约  3确认时间
			confimTime() {
				uni.$u.http.post('/api/school/hour_order/confirm', {
					classes_order_id: this.orderId,
					classes_lib_spec_id: this.classes_lib_spec_id,
					order_no: this.order_no2,
					is_compute: 1
				}).then(res => {
					if (res.code == 1) {
						this.order_no2 = res.data.order_no
						this.timeCreat(res.data.order_no)
					} else {
						uni.showToast({
							title: res.msg,
							icon: 'none',
							duration: 2000
						})
						this.type = 2
						// _this.$api.toast(res.msg);
					}
				}).catch(error => {

				});

				this.show = false
				this.type = 0
			},
			// 预约下单
			timeCreat(order_no) {
				uni.$u.http.post('/api/school/hour_order/create', {
					order_no: order_no,
				}).then(res => {
					if (res.code == 1) {
						uni.showToast({
							title: res.msg,
							icon: 'none',
							duration: 2000,
							complete: function() {
								setTimeout(function() {
									uni.reLaunch({
										url: "/packageA/my/makeList?status=" + -1
									})
								}, 2000);
							}

						})

					} else {
						uni.showToast({
							title: res.msg,
							icon: 'none',
							duration: 2000
						})
						this.type = 2
						// _this.$api.toast(res.msg);
					}
				}).catch(error => {

				});
			},
			// 教师详情
			toTeacher(id) {
				uni.navigateTo({
					url: `/pages/center/teacherDetail?id=${id}`
				})
			},
			// 导航
			toMap(latitude, longitude, name) {
				uni.openLocation({
					latitude: parseFloat(latitude),
					longitude: parseFloat(longitude),
					name: name,
					success: function() {
						console.log('success');
					}
				});
			},
			// 机构详情
			toMeDetail() {
				uni.navigateTo({
					url: "/pages/center/MechanismDetail?id=" + this.detail.shop.id
				})
			},

			close() {
				this.type = 0
				this.selectedTime = null
				this.show = false
			},
			buyClose() {
				this.type = 0
				this.selectedTime = null
				this.buyShow = false
			},
			// 返回首页
			toIndex() {
				uni.switchTab({
					url: "/pages/index/index"
				})
			},
			// 保存海报
			save() {
				let base64 = this.path.replace(/^data:image\/\w+;base64,/, ""); //图片替换
				let filePath = wx.env.USER_DATA_PATH + '/qrcode.png';
				uni.getFileSystemManager().writeFile({
					filePath: filePath, //创建一个临时文件名
					data: base64, //写入的文本或二进制数据
					encoding: 'base64', //写入当前文件的字符编码
					success: (res) => {
						uni.saveImageToPhotosAlbum({
							filePath: filePath,
							success: () => {
								uni.showToast({
									title: '保存成功',
									icon: "none",
									duration: 5000
								})
							},
							fail: (err) => {
								console.log(err);
								uni.showToast({
									title: '保存失败',
									icon: "none",
									duration: 5000
								})
							}
						})
					},
					fail: (err) => {
						console.log(err)
					}
				})
			},
			//分享发布
			sharePoster() { //分享图片给好友按钮的点击事件函数
				let that = this
				this.base64ToFilePath(this.path, (filePath) => {
					console.log(filePath);
					wx.showShareImageMenu({ //分享给朋友
						path: filePath,
						success: (res) => {
							console.log("分享成功：", res);
						},
						fail: (err) => {
							console.log("分享取消：", err);
						},
					})
				})
			},


			base64ToFilePath(base64data, callback) {
				const time = new Date().getTime();
				const imgPath = `${wx.env.USER_DATA_PATH}/addFriends${time}share_qrcode.png`;
				const imageData = base64data.replace(/^data:image\/\w+;base64,/, "");
				const fileSystemManager = uni.getFileSystemManager();

				fileSystemManager.writeFile({
					filePath: imgPath,
					data: imageData,
					encoding: 'base64',
					success: () => {
						callback(imgPath);
					},
					fail: (err) => {
						console.error('Write file failed:', err);
						uni.showToast({
							title: '写入文件失败',
							icon: 'none'
						});
					}
				});
			},

			// 收藏和取消
			Collect(number) {
				uni.$u.http.post('/api/school/classes/collect', {
					id: this.id,
					is_collect: number
				}).then(res => {
					if (res.code == 1) {
						this.is_collect = number
						if (number == 0) {
							uni.showToast({
								title: '取消收藏',
								icon: 'none',
								duration: 2000
							})
						} else {
							uni.showToast({
								title: '收藏成功',
								icon: 'none',
								duration: 2000
							})
						}

					} else {
						uni.showToast({
							title: res.msg,
							icon: 'none',
							duration: 2000
						})
						// _this.$api.toast(res.msg);
					}
				}).catch(error => {

				});
			},
			callPhone(phone) {
				uni.makePhoneCall({
					phoneNumber: phone
				})
			},

			// 取消选择
			cancel() {
				this.selectedTime = null
			},
			selectTime(time) {
				this.selectedTime = time;
				this.classes_lib_spec_id = time.id

			},
			timeSelected(time) {
				return this.selectedTime === time;
			},
			moveScroll() {},
			// 获取价格
			getMoney() {
				uni.$u.http.post('/api/school/order/confirm', {
					classes_lib_id: this.id,
					order_no: this.order_no,
					is_compute: 1
				}).then(res => {
					if (res.code == 1) {
						this.PayPirce = res.data.order_data.totalprice
						this.order_no = res.data.order_no
						this.create(this.order_no, this.PayPirce)
					} else {
						uni.showToast({
							title: res.msg,
							icon: 'none',
							duration: 2000
						})
						// _this.$api.toast(res.msg);
					}
					this.uloadingShow = false
				}).catch(error => {

				});
			},
			// 创建订单
			create(order_no, PayPirce) {
				uni.$u.http.post('/api/school/order/create', {
					order_no: order_no,
				}).then(res => {
					if (res.code == 1) {
						if (PayPirce != 0) {
							this.pament()
						} else {
							this.uloadingShow = false
							uni.showToast({
								title: '创建成功',
								icon: 'success',
								duration: 2000,
								complete: function() {
									setTimeout(function() {
										uni.redirectTo({
											url: "/packageA/my/orderList?status=" + 3
										})
									}, 2000);
								}
							});
						}
					} else {
						uni.showToast({
							title: res.msg,
							icon: 'none',
							duration: 2000
						})
						that.uloadingShow = false

						// _this.$api.toast(res.msg);
					}
				}).catch(error => {

				});
			},
			// 支付
			pament() {
				let that = this
				that.uloadingShow = false
				uni.$u.http.post('/api/school/pay/payment', {
					type: 'wechat',
					order_no: that.order_no,
					platform: 'miniapp'
				}).then(res => {
					if (res.code == 1) {
						wx.requestPayment({
							timeStamp: res.data.paydata.timeStamp, //时间戳
							nonceStr: res.data.paydata.nonceStr, //随机字符串
							package: res.data.paydata.package, //prepay_id
							signType: res.data.paydata.signType, //签名算法MD5
							paySign: res.data.paydata.paySign, //签名
							success(res) {
								if (res.errMsg == "requestPayment:ok") {
									that.order_no = ''
									uni.redirectTo({
										url: "/packageA/my/orderList?status=" + 3
									})
									console.log('支付成功', res)
								} else {
									that.uloadingShow = false
									console.log('支付失败')
								}
							},
							fail(res) {
								that.uloadingShow = false
								console.log('支付失败', res)
							}
						})
					} else {
						uni.showToast({
							title: res.msg,
							icon: 'none',
							duration: 2000
						})
						// _this.$api.toast(res.msg);
					}
				}).catch(error => {

				});
			},
		},
	}
</script>

<style lang="scss" scoped>
	.w-100 {
		width: 100%;
	}

	.flex {
		display: flex;
	}

	.flex-start {
		align-items: flex-start;
	}

	.justify-center {
		justify-content: center;
	}

	.align-items {
		align-items: center;
	}

	.flex-column {
		flex-flow: column;
	}

	.justify-start {
		justify-content: start;
	}

	.white-space {
		overflow: hidden;
		/* 确保超出容器的文本被隐藏 */
		white-space: nowrap;
		/* 确保文本在一行内显示 */
		text-overflow: ellipsis;
		/* 使用省略号表示被截断的文本 */
		width: 100%;
	}

	.con-center {
		background: white;
		border-radius: 20rpx;
		position: absolute;
		top: 540rpx;
	}

	.space-between {
		justify-content: space-between;
	}

	.swiper {
		width: 100%;
		height: 580rpx;
	}

	.box {
		position: relative;
	}

	.first-box {
		width: 690rpx;
		background: #FFFFFF;
		padding-left: 24rpx;
		margin-top: 40rpx;
		border-radius: 20rpx;

		.sigh {
			width: 88rpx;
			height: 40rpx;
			background: #BEEE03;
			border-radius: 4rpx 4rpx 4rpx 4rpx;
			font-family: Source Han Sans CN, Source Han Sans CN;
			font-weight: 500;
			font-size: 24rpx;
			color: #222222;
		}
		.first-name{
			width: 586rpx;
			height: 52rpx;
			font-family: Source Han Sans CN, Source Han Sans CN;
			font-weight: bold;
			font-size: 34rpx;
			color: #222222;
			margin-left: 16rpx;
		}


		.first-mine {
			height: 32rpx;
			font-family: PingFang SC, PingFang SC;
			font-weight: 500;
			font-size: 24rpx;
			color: #7A7A7A;

		}

		.first-txt {
			font-family: PingFang SC, PingFang SC;
			font-weight: 500;
			font-size: 24rpx;
			color: #7A7A7A;
			line-height: 32rpx;
			margin: 0 6rpx;
		}

		.first-image {
			font-family: PingFang SC, PingFang SC;
			font-weight: 500;
			font-size: 24rpx;
			color: #7A7A7A;

			span {
				width: 650rpx;
				height: 40rpx;
				font-family: Source Han Sans CN, Source Han Sans CN;
				font-weight: 400;
				font-size: 26rpx;
				color: #222222;
			}
		}
	}

	.second-box {
		width: 690rpx;
		height: 64rpx;
		background: #222222;
		border-radius: 16rpx 16rpx 16rpx 16rpx;
		margin: 48rpx 0 16rpx 0;


		.number {
			height: 40rpx;
			font-family: Source Han Sans CN, Source Han Sans CN;
			font-weight: 400;
			font-size: 26rpx;
			color: #FFFFFF;
			margin-left: 32rpx;
		}

		view {
			span {
				width: 24rpx;
				height: 24rpx;
				background: rgba(255, 255, 255, 0.4);
				border-radius: 24rpx;
				margin: 0 22rpx 0 4rpx;
			}
		}

	}

	.third {
		width: 690rpx;

		.third-box {
			margin: 12rpx 0 0 24rpx;
		}

		.third-center {
			margin-top: 28rpx;
			width: 100%;
			height: 242rpx;
			overflow: hidden;
			position: relative;
		}

		.scroll-container {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			animation: scroll 12s linear infinite;
		}

		@keyframes scroll {
			0% {
				transform: translateX(0);
			}

			100% {
				transform: translateX(calc(-100% + 8 * 100px));
				/* 8 * 100px 是假设每个项目的宽度为 100px */
			}
		}

		.item {
			display: flex;
			width: 94%;
			align-items: center;
			justify-content: space-between;
			padding: 22rpx 24rpx 24rpx 24rpx;
			font-family: Source Han Sans CN, Source Han Sans CN;
			font-weight: 400;
			font-size: 24rpx;
			color: #222222;
			height: 32rpx;

			/* 假设每条数据的高度为60rpx */
		}

		.item image {
			margin-right: 10rpx;
		}

		.line-colum {
			margin: 0 10rpx;
			border-left: 1rpx solid #ccc;
			height: 42rpx;
		}

		.item span {
			margin-right: 10rpx;
		}

		@keyframes scroll {
			0% {
				transform: translateY(0);
			}

			100% {
				transform: translateY(-240rpx);
				/* 总高度为 4 * 60rpx = 240rpx */
			}
		}
	}

	.four {
		margin-top: 48rpx;
		background: #FFFFFF;
		border-radius: 20rpx 20rpx 20rpx 20rpx;
		width: 690rpx;

		// height: 338rpx;
		.four-top {
			width: 100%;
			margin: 0 0 48rpx 0;

			.left {
				background-image: url("/static/center/footer.png");
				background-repeat: no-repeat;
				background-position: left bottom;

				span {
					width: 128rpx;
					font-family: Source Han Sans CN, Source Han Sans CN;
					font-weight: bold;
					font-size: 32rpx;
					color: #222222;
				}

			}
		}

		.four-box {
			.four-header {

				.four-name {
					font-family: Source Han Sans CN, Source Han Sans CN;
					font-weight: bold;
					font-size: 32rpx;
					color: #000000;
				}

				.jigou {
					height: 42rpx;
					font-family: Source Han Sans CN, Source Han Sans CN;
					font-weight: 400;
					font-size: 28rpx;
					color: #000000;
					margin-top: 8rpx;
				}

				.rate {
					font-family: PingFang SC, PingFang SC;
					font-weight: 800;
					font-size: 26rpx;
					color: #FFBC2C;
					line-height: 26rpx;
				}

			}

			.four-right {
				width: 116rpx;
				height: 48rpx;
				background: #222222;
				border-radius: 200rpx 200rpx 200rpx 200rpx;
				font-family: Source Han Sans CN, Source Han Sans CN;
				font-weight: 400;
				font-size: 26rpx;
				color: #BEEE03;
			}
		}


		.tt-detail {
			width: 690rpx;
			// padding: 0rpx 24rpx 18rpx 24rpx;
			justify-content: flex-start;
			align-items: left;
			flex-flow: column;
			font-family: PingFang SC, PingFang SC;
			font-weight: 500;
			font-size: 24rpx;
			color: #7A7A7A;

			span {
				display: -webkit-box;
				-webkit-box-orient: vertical;
				-webkit-line-clamp: 4;
				/* 设置行数 */
				overflow: hidden;
				text-overflow: ellipsis;
				line-height: 1.5em;
				/* 根据需要调整行高 */
				max-height: 6em;
				/* 行高 * 行数 */
			}
		}

	}

	.five {
		width: 690rpx;
		height: 96rpx;
		background: linear-gradient(90deg, #FDF850 0%, #85EE9C 100%);
		border-radius: 200rpx 200rpx 200rpx 200rpx;
		margin-top: 30rpx;

		.five-name {
			width: 250rpx;
			height: 48rpx;
			font-family: Source Han Sans CN, Source Han Sans CN;
			font-weight: 500;
			font-size: 32rpx;
			color: #000000;
			margin: 0 32rpx 0 24rpx;
		}

		.five-address {
			width: 182rpx;
			height: 40rpx;
			font-family: Source Han Sans CN, Source Han Sans CN;
			font-weight: 400;
			font-size: 26rpx;
			color: #000000;
		}
	}

	.six {
		margin-top: 64rpx;
		width: 750rpx;
		// background: linear-gradient(to bottom, #F1F2F8 0%, #FFFFFF 1%, #FFFFFF 100%);
		align-items: center;


		.six-top {
			width: 690rpx;

			.left {
				background-image: url("/static/center/footer.png");
				background-repeat: no-repeat;
				background-position: left bottom;

				span {
					width: 160rpx;
					font-family: Source Han Sans CN, Source Han Sans CN;
					font-weight: bold;
					font-size: 40rpx;
					color: #222222;
					line-height: 47rpx;
				}

			}
		}

		.six-box {
			width: 690rpx;
			margin: 12rpx 0 0 24rpx;
		}

		.six-center {
			width: 670rpx;
			margin-top: 41rpx;




			.s-footer {
				padding: 24rpx;
				width: 642rpx;

				span {
					font-family: PingFang SC, PingFang SC;
					font-weight: 500;
					font-size: 24rpx;
					color: #7A7A7A;
				}
			}

			.s-footer .h4 {
				font-family: PingFang SC, PingFang SC;
				font-weight: bold;
				font-size: 36rpx;
				color: #656565;
			}
		}

	}


	.line {
		width: 95%;
		height: 1rpx;
		background: #D9D9D9;
		margin: 19rpx 0 19rpx 0;
	}

	.icon-size {
		width: 28rpx;
		height: 28rpx;
		margin-right: 12rpx;
	}


	.footer {
		width: 100%;
		height: 166rpx;
		background: #ffffff;
		// box-shadow: 0rpx -2rpx 0rpx 0rpx rgba(0, 0, 0, 0.4);
		border-radius: 0rpx 0rpx 0rpx 0rpx;
		position: sticky;
		z-index: 99;
		/* 绝对定位 */
		bottom: 0;
		/* 定位在底部 */
		left: 0;
		/* 定位在左边 */

		.footer-left {
			position: absolute;
			left: 30rpx;
			display: flex;

			view {
				display: flex;
				justify-content: center;
				align-items: center;
				flex-flow: column;
				margin-right: 40rpx;
				width: 48rpx;

				span {
					text-align: center;
					width: 48rpx;
					height: 34rpx;
					font-family: Source Han Sans CN, Source Han Sans CN;
					font-weight: 400;
					font-size: 22rpx;
					color: #A4A4A4;
				}
			}

			image {
				width: 48rpx;
				height: 48rpx;
			}
		}

		.footer-right {
			position: absolute;
			right: 30rpx;
			width: 440rpx;
			height: 100rpx;
			background: #222222;
			border-radius: 200rpx;

			span {
				font-family: Source Han Sans CN, Source Han Sans CN;
				font-weight: bold;
				font-size: 32rpx;
				color: #BEEE03;
			}
		}
	}


	.popupBox {
		width: 690rpx;
		height: 716rpx;

		.pop-header {
			width: 100%;
			background-image: url("/static/center/bg.png");
			background-repeat: no-repeat;
			background-position: left bottom;
			height: 265rpx;

			span {
				font-family: PingFang SC, PingFang SC;
				font-weight: 400;
				font-size: 20rpx;
				color: #343434;
			}

			.name {
				width: 594rpx;
				height: 66rpx;
				font-family: Source Han Sans CN, Source Han Sans CN;
				font-weight: bold;
				font-size: 44rpx;
				color: #222222;
				margin-top: 80rpx;
			}

			.price {
				width: 594rpx;
				height: 66rpx;
				font-family: Source Han Sans CN, Source Han Sans CN;
				font-weight: bold;
				font-size: 44rpx;
				color: #FF4810;
				margin-top: 16rpx;

				span {
					font-family: PingFang SC, PingFang SC;
					font-weight: 800;
					font-size: 36rpx;
					color: #FF2323;
					line-height: 32rpx;
				}
			}
		}

		.popup {
			display: flex;
			align-items: self-start;
			justify-content: center;
			width: 594rpx;
		}

		.popup-footer {
			position: absolute;
			left: 48rpx;
			bottom: 48rpx;

			span {
				width: 594rpx;
				height: 100rpx;
				background: #222222;
				border-radius: 200rpx 200rpx 200rpx 200rpx;
				font-family: Source Han Sans CN, Source Han Sans CN;
				font-weight: bold;
				font-size: 32rpx;
				color: #BEEE03;
				display: flex;
				justify-content: center;
				align-items: center;
			}
		}


		.line {
			width: 642rpx;
			height: 1rpx;
			background: #D9D9D9;
			box-shadow: 1rpx 1rpx 0rpx 0rpx rgba(102, 102, 102, 0.25);
			border-radius: 0rpx 0rpx 0rpx 0rpx;
		}

		.times {
			width: 93%;

			.selectTime {
				width: 288rpx;
				height: 50rpx;
				background: #FFFFFF;
				border-radius: 12rpx 12rpx 12rpx 12rpx;
				border: 1rpx solid #D9D9D9;
				color: #4B4B4B;
				font-family: 'PingFang SC', 'PingFang SC';
				font-weight: 500;
				font-size: 24rpx;
				padding-left: 15rpx;
				cursor: pointer;
				margin: 24rpx 32rpx 0 0;
				white-space: nowrap;
				/* 防止文本换行 */
				text-overflow: ellipsis;
				/* 超出部分显示省略号 */
				overflow: hidden;
				/* 隐藏超出部分 */
				text-align: left;
				/* 文字靠左对齐 */
				line-height: 50rpx;
				/* 垂直居中对齐 */
				box-sizing: border-box;
				/* 确保 padding 和 border 不影响宽度和高度 */
				display: inline-block;
				/* 确保容器内文字正确对齐 */
			}

		}

		.selectTime.selected {
			width: 288rpx;
			height: 50rpx;
			border-radius: 12rpx 12rpx 12rpx 12rpx;
			background: #008CFF;
			font-family: PingFang SC, PingFang SC;
			font-weight: 800;
			font-size: 24rpx;
			color: #FFFFFF;
			cursor: pointer;
			margin: 24rpx 32rpx 0 0;

		}
	}

	.share {
		position: fixed;
		color: #FFFFFF;
		right: 0;
		bottom: 190rpx;
		background: linear-gradient(to bottom right, #FE726B, #FE956B);
		padding: 10rpx 10rpx 10rpx 20rpx;
		border-top-left-radius: 50px;
		border-bottom-left-radius: 50px;
		box-shadow: 0 0 20upx rgba(0, 0, 0, .09);
	}

	.cancel {
		width: 100vw;
		padding: 30rpx;
		text-align: center;
		background: #FFFFFF;
		color: red;
		font-weight: bold;
		font-size: 30rpx;
	}

	.md-content {
		display: flex;
		flex-direction: row;
		justify-content: center;
		align-items: center;
		padding: 50rpx 0;
		background-color: white;
	}

	.md-content-item {
		margin: 0 70rpx;
		position: relative;
	}

	.md-content-item image {
		width: 100rpx;
		height: 100rpx;
	}

	.md-content-item view {
		margin-top: 15rpx;
		font-size: 28rpx;
	}

	.sharebtn {
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		opacity: 0;
	}

	.cu-modal {
		position: fixed;
		bottom: 166rpx;
		left: 0;
		z-index: 999999;
	}

	.gj {
		.title {
			font-family: PingFang SC, PingFang SC;
			font-weight: 800;
			font-size: 32rpx;
			color: #4B4B4B;

			span {
				font-family: PingFang SC, PingFang SC;
				font-weight: 800;
				font-size: 24rpx;
				color: #4B4B4B;
			}
		}

		.scroll {
			width: 642rpx;
			max-height: 340rpx;

			view {
				margin: 24rpx;
				width: 600rpx;
				height: 56rpx;
				background: #E8E8E8;
				border-radius: 12rpx 12rpx 12rpx 12rpx;
				display: flex;
				justify-content: center;
				align-items: center;

				.title {
					font-family: PingFang SC, PingFang SC;
					font-weight: 500;
					font-size: 28rpx;
					color: #7A7A7A;
				}

				.red {
					font-family: PingFang SC, PingFang SC;
					font-weight: 500;
					font-size: 28rpx;
					color: #FF5F5F;
				}

				.lan {
					font-family: PingFang SC, PingFang SC;
					font-weight: 500;
					font-size: 28rpx;
					color: #008CFF;
				}
			}
		}
	}

	/deep/ ::-webkit-scrollbar {
		/*滚动条整体样式*/
		width: 4px !important;
		height: 1px !important;
		overflow: auto !important;
		background: #ccc !important;
		-webkit-appearance: auto !important;
		display: block;
	}

	/deep/ ::-webkit-scrollbar-thumb {
		/*滚动条里面小方块*/
		border-radius: 10px !important;
		box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2) !important;
		background: #7b7979 !important;
	}

	/deep/ ::-webkit-scrollbar-track {
		/*滚动条里面轨道*/
		// box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2) !important;
		// border-radius: 10px !important;
		background: #FFFFFF !important;
	}

	.Poster {
		position: relative;
		top: 21rpx;
		left: 30rpx;
		width: 690rpx;
	}

	.posterClose {
		position: absolute;
		right: 8rpx;
		top: 8rpx;
	}

	.pos {
		position: relative;
	}

	.btnList {
		width: 690rpx;
		position: absolute;
		bottom: 150rpx;
		left: 30rpx;
		display: flex;
		justify-content: space-evenly;

		span {
			width: 250rpx;
			height: 80rpx;
			background: #FFFFFF;
			border-radius: 401rpx 401rpx 401rpx 401rpx;
			font-family: PingFang SC, PingFang SC;
			font-weight: 800;
			font-size: 34rpx;
			color: #008CFF;
			display: flex;
			justify-content: center;
			align-items: center;
		}

		.save {}
	}

	.no-scroll {
		overflow: hidden;
		height: 100vh;
	}

	/deep/ ._root {
		padding: 0 10rpx;
	}

	.no-border-button {
		background-color: transparent;
		/* 去掉背景色 */
		border: none;
		/* 去掉边框 */
		padding: 0;
		/* 去掉内边距 */
		margin: 0;
		/* 去掉外边距 */
		display: inline-flex;
		/* 使按钮内容居中 */
		align-items: center;
		/* 垂直居中 */
		justify-content: center;
		/* 水平居中 */
		flex-flow: column;
		height: 80rpx;
		line-height: inherit;

		span {
			width: 250rpx;
			height: 80rpx;
			background: #FFFFFF;
			border-radius: 401rpx 401rpx 401rpx 401rpx;
			font-family: PingFang SC, PingFang SC;
			font-weight: 800;
			font-size: 34rpx;
			color: #008CFF;
			display: flex;
			justify-content: center;
			align-items: center;
		}
	}
</style>