<template>
	<view class="">
		<public-module></public-module>
		<u-sticky h5-nav-height="0">
			<view class="headers dis a-c j-start">
				<u-icon name="arrow-left" color="#333" size="38" @click="back"></u-icon>
				<text style="margin: auto;">{{ title }}</text>
			</view>
			<view class="filterTime dis j-s a-c ">
				<view class=" dis a-c " @click="searchPopup">
					<text>{{pageQuery.startTime && pageQuery.endTime ? pageQuery.startTime + '-' + pageQuery.endTime : '时间筛选' }}</text>
					<text>▼</text>
				</view>
				<view class=" dis a-c " @click="statusFilterShow=true">
					<text>{{pageQuery.gradeName || "全部"}}</text>
					<text>▼</text>
				</view>
			</view>

			<u-collapse hover-class="none">
				<u-collapse-item :title="item.head" v-for="(item, index) in itemList" :key="index">
					{{item.body}}
				</u-collapse-item>
			</u-collapse>
		</u-sticky>
		<view class="content" v-if="pageQuery.appStatus=='1'">
			<view class="cold" v-for="(item,index) in transferRecordsData" :key="index"
				@click="transferRecordsClick(item)">
				<view class="rows">
					<view class="left name">{{item.gradeName}}</view>
					<view class="right amount">{{ item.totalAmount }}</view>
				</view>
				<view class="rows mb-2">
					<view class="left">考核时间</view>
					<view class="right" style="white-space: pre-line;" v-if="item.dateTime">
						起{{item.dateTime.upgradeTimeStart}}
						止{{item.dateTime.upgradeTimeEnd}}
					</view>
				</view>
				<view class="rows mb-2">
					<view class="left">冻结时间</view>
					<view class="right" style="white-space: pre-line;" v-if="item.dateTime">
						起{{item.dateTime.freezeStart}}
						止{{item.dateTime.freezeEnd}}
					</view>
				</view>
				<view class="rows" v-if="item.dateTime">
					<view class="left">过期时间</view>
					<view class="right">{{item.dateTime.expired}}</view>
				</view>
			</view>
		</view>
		<view class="content" v-else>
			<view class="cold" v-for="(item,index) in transferRecordsData" :key="index"
				@click="transferRecordsClick(item)">
				<view class="rows">
					<view class="left name">{{item.gradeName}}</view>
					<view class="right amount">{{ item.totalAmount }}</view>
				</view>
				<view class="rows" v-if="item.dateTime">
					<view style="font-size: 20rpx;color: #999;">{{item.dateTime.expired}}</view>
				</view>
			</view>
		</view>
		<u-loadmore v-if="userlist.length!=0" :status="status" />
		<!-- 筛选组件 -->
		<uni-Popup :show="statusFilterShow" @close='statusFilterShow=false' headerTitle="筛选状态" :statusList="tablist"
			contentType="status" @statusConfirm="statusFilterConfirm">

		</uni-Popup>
		<my-date-picker ref="datePicker" @confirmPickDate="confirmPickDate" />
	</view>
</template>
<script>
	import myDatePicker from '../components/todaydate-picker.vue';
	export default {
		components: {
			myDatePicker
		},
		data() {
			return {
				tablist: [],
				itemList: [{
					head: "",
					body: "因您的职级处于冻结状态，且在该职级考核期区间内未完成解锁条件和申请解锁，按照规则，此部分收益已过期，无法再进行领取。",
					open: true,
					disabled: true
				}],
				title: '过期记录',
				referrerInfo: {}, //个人信息
				userlist: [],
				pageQuery: {
					grade: "",
					endTime: "",
					startTime: "",
					appStatus: '',
					pageNum: 1,
					pageSize: 10,
				},
				status: 'loadmore',
				totalPages: 0,
				parentStatus: "",
				transferRecords: [],
				transferRecordsTtoal: {},
				recordType: '',
				collapseTitle: '',
				statusFilterShow: false,
				quickOptions: [{
						label: "全部",
						value: null,
					},
					{
						label: "正常",
						value: "0",
					},
					{
						label: "已冻结",
						value: "1",
					},
					{
						label: "已失效",
						value: "2",
					}
				],
			}
		},
		computed: {
			transferRecordsData() {
				const list = this.transferRecords.filter(val => val.grade != 1);
				return list;
			}
		},
		onReachBottom() {
			if (this.pageQuery.pageNum >= this.totalPages) return;
			this.status = 'loading';
			this.pageQuery.pageNum = ++this.pageQuery.pageNum;
			setTimeout(async () => {
				let res = await this.$http.post('/newAppPartner/selectByIdList', this.pageQuery);
				if (res.code == '200') {
					this.userlist = [...this.userlist, ...res.data.list.records];

				}
				if (this.pageQuery.pageNum >= this.totalPages) this.status = 'nomore';
				else this.status = 'loading';
			}, 1000)
		},
		async onLoad(options) {
			this.pageQuery.grade = options.grade;
			this.pageQuery.appStatus = options.appStatus;
			this.title = this.pageQuery.appStatus == '1' ? '冻结记录' : '过期记录'
			await this.querydata();
			await this.GradeListMap();
			this.itemList[0].head = options.appStatus == '1' ?
				`共有${this.transferRecordsTtoal.size || 0 }条冻结记录，累计冻结${this.transferRecordsTtoal.totalAmount || 0 }元` :
				`共有${this.transferRecordsTtoal.size || 0 }条过期记录，累计过期${this.transferRecordsTtoal.totalAmount || 0 }元`
			this.itemList[0].body = options.appStatus == '1' ?
				'因您的职级在考核期内，未达成考核任务，按照规则，此部分收益将冻结，考核任务达成后即可提现，在规定期间内未达成考核任务，收益将过期。' :
				'因您的职级处于冻结状态，且在该职级考核期区间内未完成解锁条件和申请解锁，按照规则，此部分收益已过期，无法再进行领取。'
		},
		methods: {
			transferRecordsClick(item) {
				let params = {
					grade: item.grade,
					appStatus: this.pageQuery.appStatus,
				}
				uni.navigateTo({
					url: "/pages/institutional/myEarnings?info=" + JSON.stringify(params),
				})
			},
			//获取角色列表
			async GradeListMap() {
				let res = await this.$http.get('/partner/getUserGradeListMap');
				if (res.code == 200) {
					this.tablist = res.data;
					this.tablist.map(val => {
						val.label = val.gradeName;
						return val;
					})
				}
			},
			back() {
				uni.navigateBack({
					delta: 1, // 返回的页面数，如果是1表示返回上一页
					success: function() {}
				});
			},
			async querydata() {
				let res = await this.$http.post('/partner/commissionDetails/queryExpiredLockRecords', this.pageQuery);
				if (res.code == '200') {
					this.transferRecords = res.data.data;
					this.transferRecordsTtoal = res.data.total;
				}
			},
			//激活时间选择组件
			searchPopup() {
				this.$refs.datePicker.open()
			},
			//日期选择回调
			confirmPickDate(startdate, enddate) {
				this.pageQuery.startTime = startdate;
				this.pageQuery.endTime = enddate;
			},
			statusFilterConfirm(item) {
				this.pageQuery.grade = item.grade;
				this.pageQuery.gradeName = item.gradeName;
				this.querydata();
				this.statusFilterShow = false;
			},

		}

	}
</script>

<style lang="scss" scoped>
	.headers {
		width: 100%;
		z-index: 999999;
		padding: 30rpx;
		padding-top: 50px;
		background: linear-gradient(180deg, #D1EFFE 0%, #FFFFFF 100%);
		border-bottom: 1rpx solid #f2f2f2;

		text {
			font-size: 36rpx;
			font-weight: bold;
			color: #000;
		}

		.right {
			position: absolute;
			right: 30rpx;

			image {
				width: 28rpx;
				height: 28rpx;
				margin-right: 4rpx;
			}

			text {
				font-weight: 400;
				color: #000;
				font-size: 24rpx;
			}
		}
	}

	//头部背景
	.homeBackground {
		position: fixed;
		top: 0;
		left: 0;
		z-index: 999;
		width: 100%;
		height: 176rpx;
		background: linear-gradient(180deg, #D1EFFE 0%, #FFFFFF 100%);
		border-bottom: 1rpx solid #f2f2f2;
	}

	//业绩
	.performance {
		width: 100%;
		height: 60rpx;
		background: #EBF4FF;
		border-radius: 0rpx 0rpx 0rpx 0rpx;
		font-size: 30rpx;
		color: #2B67EF;
	}

	//时间筛选
	.filterTime {
		width: 100%;
		background: #fff;
		border-radius: 0rpx 0rpx 0rpx 0rpx;
		padding: 20rpx 30rpx;
		box-sizing: border-box;

		text:first-child {
			font-size: 26rpx;
			color: #333;
		}

		text:last-child {
			font-size: 19rpx;
			color: #666;
			margin-left: 4rpx;
		}
	}

	.intro {
		position: fixed;
		top: 176rpx;
		left: 0;
		z-index: 999;
		width: 100%;
		padding: 25rpx 30rpx;
		box-sizing: border-box;
		background-color: #FFFFFF;

		image {
			width: 128rpx;
			height: 128rpx;

		}

		text {
			font-size: 28rpx;
			color: #666;
		}

		.title {
			font-size: 32rpx;
			color: #333;
			font-weight: bold;
		}

		.level {
			padding: 0 10rpx;
			box-sizing: border-box;
			font-size: 22rpx;
			color: #2D6DFF;
			border: 1rpx solid #2D6DFF;
			border-radius: 4rpx;
			margin-left: 20rpx;
			background: rgba(45, 109, 255, 0.1);
		}

	}

	//列表数据
	.card {
		position: relative;
		background: #FFFFFF;
		border-radius: 10rpx;
		background-image: url("/static/card.png");
		background-size: 100% 100%;
		border-top: 1px solid;
		border-image: linear-gradient(270deg, rgba(45, 109, 255, 0), rgba(45, 109, 255, 1), rgba(45, 109, 255, 0)) 1 1;
		padding: 20rpx 30rpx 30rpx;

		.card-title {
			.avatar {
				width: 40rpx;
				height: 40rpx;
				border-radius: 50%;

				image {
					width: 100%;
					height: 100%;
				}
			}

			>text {
				font-size: 24rpx;
				color: #666;
			}

			.name {
				font-size: 30rpx;
				color: #333;
				font-weight: bold;
			}
		}

		.card-data {
			.view {
				width: 33.33%;

				text:first-child {
					font-size: 30rpx;
					color: #333;
					font-weight: bold;
				}

				text:last-child {
					font-size: 24rpx;
					color: #999;
				}
			}

			.view:nth-child(2) {
				border-left: 1rpx solid #eee;
				border-right: 1rpx solid #eee;
			}
		}

	}

	.content {
		margin: 20rpx 30rpx;
		box-sizing: border-box;
		background-color: #FFFFFF;
		border-radius: 10rpx 10rpx 10rpx 10rpx;
		padding: 0 30rpx;
		box-sizing: border-box;





		.cold {
			padding: 30rpx 0;
			border-bottom: 1rpx solid #eee;

			.rows {
				display: flex;
				justify-content: space-between;

				.amount {
					font-size: 30rpx;
					color: #333;
					font-weight: bold;
				}

				.left {
					font-size: 28rpx;
					color: #999;
				}

				.name {
					font-size: 30rpx;
					color: #333;
				}

				.right {
					font-size: 28rpx;
					color: #333;
				}
			}
		}

		.cold:last-child {
			border-bottom: none;
		}
	}

	::v-deep .uni-collapse-cell__title {
		background-color: #EBF4FF;
		height: 60rpx;
		padding: 0 30rpx;
		color: #2B67EF;
	}

	::v-deep .uni-collapse-cell--hide {
		height: 60rpx;
	}

	::v-deep .uni-collapse-cell__wrapper .content {
		margin: 0;
		background-color: #EBF4FF;
		color: #2B67EF;
		padding: 10rpx 30rpx;
	}

	::v-deep .uni-collapse-cell__title::after {
		content: '';
		/* 确保内容不为空 */
		border-width: 4rpx 4rpx 0 0;
		/* 根据实际需要调整边框宽度 */
		border-style: solid;
		border-color: #2B67EF;
		/* 箭头颜色 */
		width: 16rpx;
		/* 箭头宽度 */
		height: 16rpx;
		/* 箭头高度 */
		transform: rotate(134deg);
		/* 旋转角度 */
		display: inline-block;
		/* 确保以块级元素显示 */
		margin-left: 10px;
		/* 根据需要调整边距 */
	}

	::v-deep {
		.u-collapse-head {
			padding: 20rpx 30rpx;
			box-sizing: border-box;

			.u-icon-wrap {
				.u-icon__icon {
					color: #2B67EF !important;
				}
			}
		}

		.u-collapse-title {
			color: #2B67EF;
		}

		.u-collapse-item {
			background-color: #EBF4FF;
		}

		.u-collapse-body {
			padding: 0 30rpx;
			box-sizing: border-box;

			.u-collapse-content {
				color: #2B67EF;
			}
		}
	}
</style>