<template>
	<view class="home-content">
		<view class="card-container">
			<view class="float-button">
				<image @click="changeOrderType" style="width: 112rpx; height: 112rpx;" slot='cover'
					src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/SystemOrderCircle.png">
			</view>
			<view>
				<view class="top-select">
					<view style="width: 50%;">
						<view class="top-select-left" @click="getLocationInfo">
							<uni-icons type="location-filled" size="20" color="#FFB13F"></uni-icons>
							<text v-if="isCheckLocation"
								style="color: #FFB13F ;font-size: 28rpx;font-weight: 400; line-height: 28rpx; width: 280rpx; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">{{locationName}}</text>
							<text v-else style="color: #AAAAAA;font-size: 28rpx;font-weight: 400;">选择地址</text>
						</view>
					</view>
					<view style="width: 50%;">
						<view class="top-select-right" @click="toggleCalendar('bottom')">
							<image style="width: 32rpx; height: 32rpx; margin-right: 10rpx;" slot='cover'
								src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/Calendar.png"/>
								<text v-if="isCheckTime" style="color: #FFB13F;font-size: 28rpx;font-weight: 400;">
									{{selectedDateShowText}}共{{selectedDate.length}}天</text>
								<text v-else style="color: #AAAAAA;font-size: 28rpx;font-weight: 400;">选择时间</text>
						</view>
						<view>
							<uni-popup ref="popup" background-color="#fff" @change="changePopup">
								<view class="popupBottom">
									<uni-calendar ref="calendar" class="uni-calendar--hook" :selected="selectedDate"
										:startDate="startDate" :endDate="endDate" :showMonth="false"
										@change="changeCalendar" @confirm="changeCalendar" @close="close" />
									<view style="display: flex; justify-content: center; align-items: center;">
										<!-- <button class="bottom-btn" @click="closePopup">确定</button> -->
										<image @click="closePopup" style="width: 670rpx; height: 80rpx;" slot='cover' src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/yesButton.png" />
									</view>
								</view>
							</uni-popup>
						</view>
					</view>
				</view>
			</view>
			<view style="display: flex; margin: 10rpx 20rpx 0 20rpx;">
				<!-- <view>
					<image v-show="isCatCheck" @click="changeSelectedPet('cat')"
						style="width: 224rpx; height: 96rpx; margin-right: 20rpx;" slot='cover'
						src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/CatCheck.png" />
					<image v-show="!isCatCheck" @click="changeSelectedPet('cat')"
						style="width: 224rpx; height: 96rpx; margin-right: 20rpx;" slot='cover'
						src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/CatUncheck.png" />
				</view>
				<view>
					<image v-show="isDogCheck" @click="changeSelectedPet('dog')"
						style="width: 224rpx; height: 96rpx; margin-right: 20rpx;" slot='cover'
						src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/DogCheck.png" />
					<image v-show="!isDogCheck" @click="changeSelectedPet('dog')"
						style="width: 224rpx; height: 96rpx; margin-right: 20rpx;" slot='cover'
						src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/DogUncheck.png" />
				</view> -->
				
				
				<view style="padding: 10rpx 20rpx;border-radius: 50rpx;background-color: #fff;
				display: flex;align-items: center;justify-content: center;width: 450rpx;margin-right: 30rpx;
				color: #AAAAAA;" @click="openFilterPopup">
				
				
					<text>伴宠师条件筛选</text>
					<uni-icons type="forward" size="30rpx" color="#aaa"
					style="margin-top: 7rpx;margin-left: 10rpx;"></uni-icons>
				</view>
				
				<!-- 筛选弹窗组件 -->
				<filter-popup ref="filterPopup" @confirm="handleFilterConfirm"></filter-popup>
				
				
				<uni-easyinput style="border-radius: 84rpx; width: 224rpx; height: 96rpx;" borderColor="#FFB13F"
					prefixIcon="search" v-model="value" placeholder="输入名称" @iconClick="iconClick"></uni-easyinput>
				<!-- <view style="width: 50%;" class="card">
					<uni-data-checkbox multiple selectedColor="#FFB13F" v-model="selectedPet" :localdata="catOrdog"
						@change="changeSelectedPet"></uni-data-checkbox>
				</view>
				<view style="width: 50%;">
					<uni-easyinput style="border-radius: 30rpx;" borderColor="#FFB13F" prefixIcon="search"
						v-model="value" placeholder="搜索" @iconClick="iconClick"></uni-easyinput>
				</view> -->
				<!-- <checkbox-group>
					<label>
						<checkbox value="cb" checked="true" color="#FFB13F" style="transform:scale(0.7)" />选中
					</label>
					<label>
						<checkbox class="color_FFB13F" value="cb" color="#FFB13F" style="transform:scale(0.7)" />未选中
					</label>
				</checkbox-group> -->
			</view>
			<view>
				<view v-if="companionList.length > 0">
					<uni-row :span="12" v-for="(item,index) in companionList" :key="index">
						<uni-card :is-shadow="false" padding=0 margin="10px"
                        @click="getInfo(item.userId)">
							<view class="personal-list-item">
								<view class="personal-info">
									<view>
										<!-- <image class="people-img" slot='cover'
											:src="item&&item.staffImages&&item.staffImages.length>0?item.staffImages[0].url:defaultStaffIamge">
										</image> -->
										
										<image class="people-img" slot='cover'
											:src="item.userImage">
										</image>
										
									</view>
									<view class="personal-info-1">
										<view class="personal-info-2">
											<view class="personal-info-title">
												<view class="personal-name">
													{{ item.userName || '匿名' }}
												</view>
												<view class="personal-sex">
													<img :src="item.appletUsersTeacher.sex == 0?'https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/personal/pet/sex_m.png':
																'https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/personal/pet/sex_f.png'" alt="sex"
														style="width: 20px;height: 20px;" />
												</view>
											</view>
											<view class="personal-star" @click="checkIsLike">
												<text style="color: #FFB13F;">客户点赞数{{ item.appletUsersTeacher.thumbsUp || 0 }}</text>
												<uni-icons v-if="isLike" type="hand-up-filled" size="20"
													color="#FFB13F"></uni-icons>
												<uni-icons v-else type="hand-up" size="20" color="#FFB13F"></uni-icons>
											</view>
										</view>
										<view class="personal-info-3" style="width: 100%;">
											<view class="ellipsis" v-if="item.distanceText">
												距离{{ item.distanceText }}km
											</view>
											<view class="ellipsis" v-else>
												暂无距离估测
											</view>
										</view>
										<view class="personal-info-4" style="width: 100%;">
											<view class="ellipsis" style="max-width: 225px;">
												简介：{{ item.appletUsersTeacher.userBrief || '暂无' }}
											</view>
										</view>
									</view>
								</view>
							</view>
							<view>
								<view class="personal-item-bottom">
									<text class="personal-item-bottom-text">养宠{{ item.experience || 0 }}年 | 评价{{ item.commentNum || 0 }}条 | 服务小结{{ item.serviceSummaryNum || 0 }}份</text>
								</view>
							</view>
						</uni-card>
					</uni-row>
				</view>
				<view v-else
					style="
                    color: #AAAAAA;
                    display: flex; justify-content: center; align-items: center; height: 100px; font-size: 16px; font-weight: bold;">
					暂无数据
				</view>
			</view>
		</view>
	</view>
</template>

<script>
	import uniPopup from '@/uni_modules/uni-popup/components/uni-popup/uni-popup.vue';
	import uniFab from '@/uni_modules/uni-fab/components/uni-fab/uni-fab.vue'
	import FilterPopup from '@/components/FilterPopup/FilterPopup.vue'
    import positionMixin from '../../mixins/position';
	// import {
	// 	getCompanionList,
	// 	getCompanionInfo
	// } from "@/api/system/companion"
	import {
		getTeacherList,
	} from "@/api/order/order"
	export default {
		mixins: [positionMixin],
		data() {
			return {
				allInfo: {
					isCheckLocation: false,
					locationName: '',
					locationLatitude: '',
					locationLongitude: '',
					locationAddress: '',
					selectedDate: [],
					isCheckTime: false,
				},
				// 筛选条件
				filterOptions: {
					gender: '',
					petTypes: [],
					level: ''
				},
				selectedDate: [],
				startDate: '',
				endDate: '',
				isCheckLocation: false,
				locationName: '',
				locationLatitude: '',
				locationLongitude: '',
				locationAddress: '',
				isCheckTime: false,
				selectedDateShowText: '',
				isCatCheck: true,
				isDogCheck: true,
				petTypes: ['1', '2'],
				value: '',
				companionList: [],
				isLike: false,
				likeNum: 560,
				defaultStaffIamge: 'https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/banner/gold_people.png',
			}
		},
		components: {
			uniPopup,
			FilterPopup
		},
		onLoad: function(option) {
			let info = JSON.parse(decodeURIComponent(option.info));
			this.allInfo = info
			console.log('this.allInfo', this.allInfo);
			this.setInfo()
			this.getCompanionList()
		},
		mounted() {
			this.getCalendarDate();
		},
		methods: {
			setInfo() {
				this.isCheckLocation = this.allInfo.isCheckLocation
				this.locationName = this.allInfo.locationName
				this.locationLatitude = this.allInfo.locationLatitude
				this.locationLongitude = this.allInfo.locationLongitude
				this.locationAddress = this.allInfo.locationAddress
				this.selectedDate = this.allInfo.selectedDate
				this.isCheckTime = this.allInfo.isCheckTime
				if (this.allInfo.selectedDate.length == 1) {
					this.selectedDateShowText = this.allInfo.selectedDate[0].date.replace(/-/g, "/") + ' '
				} else if (this.allInfo.selectedDate.length > 1) {
					this.selectedDateShowText = this.allInfo.selectedDate[0].date.replace(/-/g, "/") + '...' + ' '
				}
			},
			checkIsLike() {
				this.isLike = !this.isLike
				this.$forceUpdate()
			},
			changeOrderType() {
				uni.navigateTo({
					url: '/pages/newOrder/serviceNew2'
				});
			},
			getInfo(id) {
				if (id) {
					uni.navigateTo({
						// url: '/pages/companionPetList/companionPetInfo',
						url: `/pages/companionPetList/companionPetInfo?id=${id}`
					});
				}
			},
			trigger(e) {
				uni.showModal({
					title: '提示',
					content: `激活状态：${e.item.active};选中项：${e.item.text}`,
					success(res) {
						if (res.confirm) {
							console.log('用户点击确定');
						} else if (res.cancel) {
							console.log('用户点击取消');
						}
					}
				});
			},
			fabClick() {
				uni.showToast({
					title: '点击了悬浮按钮',
					icon: 'none'
				});
			},
			getCompanionList() {
				// let data = {
				// 	longitude: this.locationLongitude,
				// 	latitude: this.locationLatitude,
				// 	petTypes: this.selectedPet,
				// 	staffName: '',
				// 	address: this.locationAddress
				// }
				let data = {
					address: "上海市浦东新区浦东南路150弄",
					latitude: 29.56471,
					longitude: 106.55073,
					petTypes: ["1", "2"],
					staffName: "君"
				}
				console.log('data', data);
				// getCompanionList(data).then(response => {
				// 	if (response.code == 200) {
				// 		this.companionList = response.rows
				// 		console.log(response);
				// 	}
				// 	console.log(response);
				// })
				getTeacherList(data).then(response => {
					if (response.code == 200) {
						this.companionList = response.rows
						this.calculateTeacherListDistance()
					}
					console.log(response);
				})
			},
            calculateTeacherListDistance(){
                this.companionList.forEach(item => {
                	item.distanceText = this.calculateDistanceAddress(item.appletAddresseList)
                })
            },
			iconClick() {},
			changeSelectedPet(type) {
				console.log('changeSelectedPet type', type);
				if (type == 'cat') {
					this.isCatCheck = !this.isCatCheck
					if (this.petTypes.includes('1')) {
						if (!this.isCatCheck) {
							this.petTypes = this.petTypes.filter(item => item !== '1');
						}
					} else {
						this.isCatCheck ? this.petTypes.push('1') : ''
					}
				} else {
					this.isDogCheck = !this.isDogCheck
					if (this.petTypes.includes('2')) {
						if (!this.isDogCheck) {
							this.petTypes = this.petTypes.filter(item => item !== '2');
						}
					} else {
						this.isDogCheck ? this.petTypes.push('2') : ''
					}
				}
				console.log('this.petTypes', this.petTypes);
			},
			toggleCalendar(type) {
				this.type = type
				uni.hideTabBar()
				this.$refs.popup.open(type)
			},
			closePopup() {
				this.$refs.popup.close()
				setTimeout(() => {
					uni.showTabBar()
				}, 300)
			},
			changePopup(e) {
				console.log('当前模式：' + e.type + ',状态：' + e.show);
				if (e.show) {
					uni.hideTabBar()
				} else {
					setTimeout(() => {
						uni.showTabBar()
					}, 300)
				}
			},
			close() {
				console.log('弹窗关闭');
			},
			confirm(e) {
				console.log('confirm 返回:', e)
			},
			changeCalendar(e) {
				console.log('change 返回:', e)
				this.selectedDateShowText = ''
				// 选中日期
				const selectedValue = this.selectedDate.find(item => item.date === e.fulldate)
				if (selectedValue) {
					// 存在则移除
					this.selectedDate = this.selectedDate.filter(item => item.date !== e.fulldate);
				} else {
					this.selectedDate.push({
						date: e.fulldate,
						info: 'time'
					})
				}
				if (this.selectedDate.length > 0) {
					this.isCheckTime = true
					if (this.selectedDate.length == 1) {
						this.selectedDateShowText = this.selectedDate[0].date.replace(/-/g, "/") + ' '
					} else {
						this.selectedDateShowText = this.selectedDate[0].date.replace(/-/g, "/") + '...' + ' '
					}
				} else {
					this.isCheckTime = false
				}
			},
			getCalendarDate() {
				let tomorrow = new Date()
				tomorrow.setDate(tomorrow.getDate() + 2);
				this.startDate = this.formatDate(tomorrow);
				// 获取三个月后的日期
				let threeMonthsLater = new Date();
				threeMonthsLater.setMonth(threeMonthsLater.getMonth() + 3);
				this.endDate = this.formatDate(threeMonthsLater);
			},
			formatDate(date) {
				let year = date.getFullYear();
				let month = (date.getMonth() + 1).toString().padStart(2, '0');
				let day = date.getDate().toString().padStart(2, '0');
				return year + '-' + month + '-' + day;
			},
			getLocationInfo() {
				wx.chooseLocation({
					type: 'gcj02', // 坐标系，默认为 wgs84 返回 gps 原始坐标，gcj02 返回可用于 wx.openLocation 的坐标
					success: (res) => {
						// 成功回调
						this.isCheckLocation = true
						this.locationName = res.address
						this.locationLongitude = res.longitude
						this.locationLatitude = res.latitude
						this.locationAddress = res.address
						console.log('选择的位置：', res);

                        this.position.address = this.locationAddress
                        this.position.longitude = this.locationLongitude
                        this.position.latitude = this.locationLatitude

					},
					fail: (err) => {
						// 失败回调
						console.error('选择位置失败：', err);
					}
				});
			},
			// 打开筛选弹窗
			openFilterPopup() {
				this.$refs.filterPopup.open()
			},
			// 处理筛选确认
			handleFilterConfirm(filterData) {
				console.log('筛选条件：', filterData)
				this.filterOptions = filterData
				// 根据筛选条件重新获取数据
				this.getCompanionList()
			},
		}
	}
</script>

<style lang="scss">
	.home-content {
		background: linear-gradient(360deg, #F5F5F7 0%, #FFBF60 99%);

		.card-container {
			margin: 0;
			padding: 0;

			.uni-card {
				border-radius: 16rpx;
			}

			.top-select {
				background-color: #fff;
				border: 1px solid #EBEEF5;
				// box-shadow: 0px 0px 3px 1px rgba(0, 0, 0, 0.08);
				display: flex;
				justify-content: space-between;
				margin: 0 10px 10px 10px;
				border-radius: 16rpx;
				padding: 13px;

				.top-select-left {
					display: flex;
					flex-wrap: nowrap;
					align-items: center;
					// justify-content: space-around;
				}

				.top-select-right {
					display: flex;
					flex-wrap: nowrap;
					align-items: center;
				}
			}

			.float-button {
				z-index: 10;
				position: fixed;
				bottom: 100rpx;
				/* 距离底部的距离 */
				right: 32rpx;
				/* 距离右侧的距离 */
				// width: 50px;
				// /* 按钮的宽度 */
				// height: 50px;
			}

			.is-input-border {
				border-radius: 84rpx;
				height: 96rpx;
				width: 224rpx;
			}

			.card {
				// border-radius: 50rpx;
				width: 50%;
				background-color: #fff;
				border: 1px solid #EBEEF5;
				box-shadow: 0px 0px 3px 1px rgba(0, 0, 0, 0.08);
				margin-right: 20rpx;
				// height: 80rpx;
				display: flex;
				align-items: center;
				justify-content: center;
			}

			.personal-list-item {
				padding: 10px 0px 0px 0;

				.personal-info {
					display: flex;
					align-items: center;
					justify-content: flex-start;

					.people-img {
						width: 168rpx;
						height: 168rpx;
						border: #FEA714 5rpx solid;
						border-radius: 20rpx;
					}

					.personal-info-1 {
						margin-left: 10px;
						width: 100%;

						.personal-info-2 {
							display: flex;
							flex-wrap: wrap;

							.personal-info-title {
								display: flex;
								flex-wrap: wrap;
								width: 60%;
							}

							.personal-name {
								color: #333;
								font-size: 32rpx;
								// line-height: 32rpx;
								margin-right: 10rpx;
								font-weight: 900;
								font-style: normal;
							}

							.personal-star {
								color: #FFAA48;
								font-size: 24rpx;
								font-weight: 400;
								line-height: 32rpx;
							}
						}

						.personal-info-3 {
							display: flex;
							align-items: baseline;
							font-size: 28rpx;
							line-height: 32rpx;
							margin-top: 5px;
							color: #FFAA48;
							font-weight: 900;
						}

						.personal-info-4 {
							display: flex;
							align-items: baseline;
							font-size: 24rpx;
							margin-top: 10px;
							color: #7D8196;
							font-weight: 400;
							line-height: 32rpx;
						}

					}

				}
			}

			.personal-item-bottom {
				height: 60rpx;
				background-color: #FFF4E5;
				margin: 20rpx 0 20rpx 0;
				display: flex;
				align-items: center;
				justify-content: center;
				border-radius: 8rpx;

				.personal-item-bottom-text {
					color: #A94F20;
					margin: 14rpx;
					font-size: 24rpx;
					font-weight: 400;
				}
			}

			.popupBottom {
				z-index: 99;
				height: 950rpx;
				overflow: hidden;
				position: fixed;
				bottom: 0;
				left: 0;
				right: 0;
				padding: 10rpx 20rpx;
				border-radius: 20rpx 20rpx 0 0;
				background-color: #fff;

				.bottom-btn {
					width: 100%;
					border-radius: 120rpx;
					background: #FFB13F;
					font-size: 32rpx;
					color: #FFFFFF;
				}
			}

			::v-deep .wx-radio-input.wx-radio-input-checked {
				background-color: #00875a !important;
				border-color: #00875a !important;
				color: #ffffff !important;
			}

			.color_FFB13F {
				color: #FFB13F;
			}

		}
	}
</style>