<template>
	<view style="box-sizing: border-box; min-height: 100vh; background-color: #ededed; padding-bottom: calc(50px + env(safe-area-inset-bottom)); opacity: 0; animation: fadeIn 0.2s ease forwards;">
		<gListApply :status="menuActive" :hasRequested.sync="hasRequested" :isLogin="isLogin"></gListApply>
		<custom-tabbar :current="3" />
	</view>
</template>

<script>
import gListApply from "../../components/list/applyPage";
export default {
	components: {
		gListApply,
	},
	onReady() {
		this.G.setNavStyle();
	},
	onShareAppMessage() {
		let that = this;
		let path;
		path = `/pages/order/index`;
		let appInfo = uni.getStorageSync("miniApp-info");
		return {
			title: appInfo.slogan || "为劳动者创造价值",
			imageUrl: appInfo.sharePoster,
			path,
		};
	},
	onShareTimeline() {
		let that = this;
		let appInfo = uni.getStorageSync("miniApp-info");
		return {
			title: appInfo.slogan || "为劳动者创造价值",
			imageUrl: appInfo.logo,
		};
	},
	props: {
		// from: {
		// 	type: String,
		// 	default: "home",
		// },
		// upAgencyId: {
		// 	type: Number,
		// 	default: null,
		// },
	},
	data() {
		return {
			isHaveOrder: -1,
			loading: true,
			speed: -1,
			query: {
				page: 1,
				size: 50,
				list: [],
				isFinish: -1,
			},
			GZHInfo: 0,
			cdnBaseImg: this.G.store().cdnBaseImg,
			keyword: "",
			tabbarHeight: uni.getStorageSync("TABBAR_HEIGHT"),

			tabActive: 0,
			tabTip: "",
			tabInfo: [
				{
					name: "我报的",
					childList: [
						{
							name: "全部",
							tip: "",
						},
						{
							name: "审核中",
							tip: "10",
						},
						{
							name: "待接待",
							tip: "20",
						},
						{
							name: "待面试",
							tip: "25",
						},
						{
							name: "待入职",
							tip: "30",
						},
						{
							name: "在职中",
							tip: "40,48",
						},
						{
							name: "已完成",
							tip: "21,26,35,45,50",
						},
					],
				},
				{
					name: "报给我的",
					childList: [
						{
							name: "全部",
							tip: "",
						},
						{
							name: "审核中",
							tip: "10",
						},
						{
							name: "待接待",
							tip: "20",
						},
						{
							name: "待面试",
							tip: "25",
						},
						{
							name: "待入职",
							tip: "30",
						},
						{
							name: "在职中",
							tip: "40,48",
						},
						{
							name: "已完成",
							tip: "21,26,35,45,50",
						},
					],
				},
			],
			menuList: [],
			menuActive: 0,
			isLogin: false,
			loginInfo: {},
			navInfo: {},
			hasRequested: false,
		};
	},
	onHide() {
		let that = this;
		if (uni.getStorageSync("apply-supplierAccount") == 1) {
			// 有
			that.tabActive = 1;
		} else {
			// 无
			that.tabActive = 0;
		}
		uni.removeStorageSync("apply-tab-active");
	},
	onLoad(options) {
		let that = this;
		if (options.status) {
			that.menuActive = Number(options.status); 
			// setTimeout(() => {
			// 	that.menuActive = Number(options.status);
			// }, 200);
		}

		// console.log(123123123);
	},
	created() {
		let that = this;
		// // console.log(4567456456);
		// // 导航栏高度信息
		// that.navInfo = that.G.getNavInfo();
		// if (uni.getStorageSync("apply-supplierAccount") == 1) {
		// 	// 有
		// 	that.isHaveOrder = 1;
		// 	if (uni.getStorageSync("apply-tab-active") == 1) {
		// 		that.tabActive = 0;
		// 	} else {
		// 		that.tabActive = 1;
		// 	}
		// } else {
		// 	// 无
		// 	that.isHaveOrder = 0;
		// 	that.tabActive = 0;
		// }
		// // console.log("that.isLogin", that.isLogin);
		// that.loginInfo = uni.getStorageSync("apply-userinfo");

		// this.getList();
		// if (!that.isLogin) {
		// 	that.loading = false;
		// 	that.speed = 0;
		// 	this.menuList = this.tabInfo[this.tabActive].childList;
		// } else {
		// 	this.query.page = 1;
		// 	that.loading = true;
		// 	this.menuList = this.tabInfo[this.tabActive].childList;
		// 	this.getList();
		// }
		this.isLogin = uni.getStorageSync("apply-token") ? true : false;
	},
	onShow() {
		let that = this;
		this.isLogin = uni.getStorageSync("apply-token") ? true : false;
		if (that.isLogin) {
			if (uni.getStorageSync("applyType") || uni.getStorageSync("applyType") === 0) {
				that.menuActive = uni.getStorageSync("applyType");
				uni.removeStorageSync("applyType");
			}
			this.hasRequested = false;
			// this.getList();
		}
		this.getGZHInfo();
		// that.G.watchUserPage("pages/workBench/index");
	},
	onReachBottom() {
		let that = this;
		this.G.isLogin();
		if (this.G.isLogin()) {
			if (that.query.isFinish == -1 || that.query.isFinish == that.query.size) {
				that.query.page++;
				that.getList("concat");
			}
		}
	},
	methods: {
		formatRelativeTime(timeStr) {
			if (!timeStr) {
				return "--";
			}
			let now = new Date().getTime();
			let time = new Date(timeStr).getTime();
			
			if (isNaN(time)) {
				return "--";
			}
			
			let diff = now - time;
			
			let minute = 60 * 1000;
			let hour = 60 * minute;
			let day = 24 * hour;
			
			if (diff < minute) {
				return "刚刚";
			} else if (diff < hour) {
				return Math.floor(diff / minute) + "分钟前";
			} else if (diff < day) {
				return Math.floor(diff / hour) + "小时前";
			} else {
				let date = new Date(time);
				let year = date.getFullYear();
				let month = String(date.getMonth() + 1).padStart(2, '0');
				let day = String(date.getDate()).padStart(2, '0');
				return year + "年" + month + "月" + day + "日";
			}
		},
		reachBottom() {
			let that = this;
			this.G.isLogin();
			if (this.G.isLogin()) {
				if (that.query.isFinish == -1 || that.query.isFinish == that.query.size) {
					that.query.page++;
					that.getList("concat");
				}
			}
		},
		getList($type = "init") {
			let that = this;
			// console.log("是否登录", that.isLogin);
			if (!that.isLogin) {
				return false;
			}
			that.G.Post(
				that.api.order_list_new,
				{
					pageNum: that.query.page,
					pageSize: that.query.size,
					keys: that.keyword,
					classify: 1,
					upAgencyId: that.upAgencyId,
					// classify: that.tabActive + 1,
					statusStr: that.tabInfo[that.tabActive].childList[that.menuActive].tip,
					jobAgencyId:uni.getStorageSync("miniApp-info").id
				},
				(res) => {
					// console.log("res", res);
					// return
					if (res.recordCount == 0) {
						that.loading = false;
					} else {
						that.loading = true;
					}
					that.$forceUpdate();
					that.speed = res.recordCount;
					that.query.isFinish = res.recordList.length;
					if (that.speed > 0) {
						// uni.setBackgroundColor({
						// 	backgroundColorBottom: "#ffffff",
						// });
						res.recordList.forEach((item, index) => {
							if (item.status == 10) {
								// 待审核 报名时间
								item.time = that.G.getPointTime(item.createTime, "MM--DD HH:MM");
								item.newtime = that.formatRelativeTime(item.createTime);
							} else if (item.status == 20) {
								// 待接待 预约接待时间
								item.time = that.G.getPointTime(item.receptionTime, "MM--DD HH:MM");
								item.newtime = that.formatRelativeTime(item.receptionTime);
							} else if (item.status == 21 || item.status == 26 || item.status == 35 || item.status == 48 || item.status == 45) {
								// 已完成 完成时间
								item.time = that.G.getPointTime(item.finishTime, "MM--DD HH:MM");
								item.newtime = that.formatRelativeTime(item.finishTime);
							} else if (item.status == 25) {
								// 待面试 面试时间
								item.time = that.G.getPointTime(item.interviewTime, "MM--DD HH:MM");
								item.newtime = that.formatRelativeTime(item.interviewTime);
							} else if (item.status == 30) {
								// 待入职 预约入职时间
								item.time = that.G.getPointTime(item.willEntryTime, "MM--DD HH:MM");
								item.newtime = that.formatRelativeTime(item.willEntryTime);
							} else if (item.status == 40) {
								// 已入职 入职时间
								item.time = that.G.getPointTime(item.entryTime, "MM--DD HH:MM");
								item.newtime = that.formatRelativeTime(item.entryTime);
							} else if (item.status == 50) {
								// 已离职 离职时间
								item.time = that.G.getPointTime(item.leaveTime, "MM--DD HH:MM");
								item.newtime = that.formatRelativeTime(item.leaveTime);
							} else {
								item.time = that.G.getPointTime(item.updateTime, "MM--DD HH:MM");
								item.newtime = that.formatRelativeTime(item.updateTime);
							}

							item.status_text = that.G.getOrderStatus().filter((itm, inx) => {
								return itm.id == item.status;
							})[0].name;
							item.setTitle = that.G.titleToStr(item);
						});
					} else {
						// uni.setBackgroundColor({
						// 	backgroundColorBottom: "#ededed",
						// });
					}
					if ($type == "init") {
						that.query.list = res.recordList;
						// that.query.list = [...res.recordList, ...res.recordList, ...res.recordList, ...res.recordList, ...res.recordList];
					} else {
						that.query.list = that.query.list.concat(res.recordList);
					}
				},
			);
		},
		goTel($item) {
			// console.log($item);
			if ($item) {
				uni.makePhoneCall({
					phoneNumber: $item,
				});
			}
		},
		getGZHInfo() {
			let that = this;
			if (that.isLogin) {
				that.G.Get(that.api.user_getGZHstatus, { type: "BMZS" }, (res) => {
					// console.log(res);
					that.GZHInfo = res;
				});
			}
		},
		/**
		 * 跳转搜索页
		 */
		goSearch() {
			this.G.isLogin();
			if (this.G.isLogin()) {
				uni.navigateTo({
					url: `/root/other/search?from=apply&active=${this.tabActive}`,
				});
			}
		},
		// 一级tab切换
		handleUpdateTab(e) {
			let that = this;
			// console.log("e", e);
			this.tabActive = e;
			this.menuActive = 0;
			this.menuList = this.tabInfo[this.tabActive].childList;
			this.speed = -1;
			this.query.page = 1;
			that.G.isLogin();
			if (that.G.isLogin()) {
				this.getList();
			}
		},
		// 二级tab切换
		handleUpdateMenu($item, $index) {
			let that = this;
			// console.log("$item", $item);
			this.menuActive = $item;
			this.loading = true;
			this.speed = -1;
			this.query.page = 1;
			that.G.isLogin();
			if (that.G.isLogin()) {
				this.getList();
			}
		},
		getSearch(type) {
			let that = this;
			// console.log("typetypetype", type);
			// console.log("getSearch", that.keyword);
			if (type == "clear" && !that.keyword) {
				that.getList();
			} else if (type == "search") {
				that.getList();
			}
		},
		goDetail($item, $index) {
			let that = this;
			// console.log("$item", $item);
			// return
			uni.navigateTo({
				// url: "/root/detail/apply?id=" + $item.id + "&type=" + (that.tabActive + 1),
				url: `/root/detail/apply?id=${$item.id}&type=${that.tabActive + 1}&relationId=${$item.relationId}`,
			});
		},
		goLogin() {
			uni.reLaunch({
				url: "/root/person/loginIndex",
			});
		},
		toMessage() {
			uni.navigateTo({
				url: "/root/person/message",
			});
		},
	},
};
</script>

<style lang="scss">
.apply-header {
	position: fixed;
	left: 50%;
	transform: translateX(-50%);
	.box {
		padding: 0 2px;
		width: 148px;
		height: 32px;
		background-color: #eeeeee;
		border-radius: 4px;
		.item {
			width: 72px;
			height: 28px;
			margin-top: 2px;
			border-radius: 4px;
			.btn {
				font-size: 14px;
				color: #333;
			}
		}
		.item-active {
			background-color: #fff;
		}
	}
}
.p-apply-inedx {
	width: 100vw;
	background-color: #ededed;
	overflow-x: hidden;
	min-height: 100%;

	.bg_shawdoc {
		background: linear-gradient(180deg, #caf1e0 1%, rgba(249, 249, 249, 0));
	}

	.suffix {
		position: absolute;
		right: 20rpx;
		top: 10px;
		z-index: 1;
		border-top-right-radius: 110rpx;
		border-bottom-right-radius: 110rpx;
	}

	.tab-fixed {
		position: fixed;
		left: 0;
		top: 0;
		width: 100%;
		height: calc(112rpx + 36px);
		background-color: #fff;
		z-index: 1;
	}

	.m-search {
		.u-icon-wrap {
		}
	}

	.m-search-active {
		.u-icon-wrap {
			position: inherit;
			left: 0rpx;
		}
	}

	.m-select {
		.u-tab-bar {
			bottom: 5px !important;
		}

		.link {
			.item {
				.doc {
					bottom: 0;
					left: 50%;
					transform: translateX(-50%);
				}
			}
		}

		.showdoc {
			// box-shadow: 0 2px 4px rgba(0, 0, 0, .04), 0 0 6px rgba(0, 0, 0, .02);
			border-bottom: 1rpx solid #eee;
			overflow-x: "auto";
			width: 100vw;

			.menu-obj {
				min-width: 422px;

				.menu-btn {
					margin-right: 8px;

					.btn {
						background: rgba(204, 204, 204, 0.2);
						color: #666666;
					}

					&:first-child {
						margin-left: 12px;
					}
				}

				.menu-active {
					.btn {
						background: rgba(0, 182, 102, 0.1);
						color: #00b666;
					}
				}
			}
		}
	}
	.m-login-false {
		height: calc(100% - 92px);
		.m-panel,
		.link {
			height: 100%;
			.m-log {
				height: 100%;
			}
		}
	}
	.m-panel {
		min-height: 100%;
	}
	.m-box-fixed {
		position: fixed;
		left: 0;
		// top: 92px;
		width: 100vw;
		background-color: #fff;
		z-index: 999;
	}
}
.sticky {
	position: sticky;
	top: 0px;
	left: 0;
	z-index: 100;
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}
</style>
