<template>
	<view class="p-root-detail-user g_w_all g_bg_f_5 g_kuaishou">
		<view class="g_h_10"></view>
		<!-- 基本信息 -->
		<view class="" style="position: relative">
			<view class="" style="position: relative; z-index: 1">
				<g-panel-card-info
					:info="{
						avatar: info.logo,
						title: info.agencyName,
						num: info.supplierAccount == 1 ? (info.agencyDesp ? info.agencyDesp : '该发单号还未填写简介') : info.tel ? info.tel : '-',
						isHaveOrder: info.supplierAccount == 1 ? true : false,
					}"
					:radius="8"
					:isShowMore="isShowMore == 'true' ? 1 : 0"
					@clickCard="goMore"
				/>
			</view>
			<view v-if="info.supplierAccount == 1" style="position: absolute; left: 50%; transform: translateX(-50%); bottom: -40px; width: calc(100% - 20px); margin: 0 auto; height: 48px">
				<view class="g_radius_8" style="background-color: #e5e5e5; height: 100%">
					<view class="g_h_16"></view>
					<view class="g_flex_row_center">
						<view v-for="(item, index) in numSlot" :key="index" class="g_flex_row_center g_w_three g_position_rela">
							<view class="g_flex_row_center">
								<view class="g_fs_14 g_c_6 g_flex_column_end">{{ item.name }}</view>
								<view class="g_fs_16 g_c_3 g_fw_600 g_ml_4">{{ item.num }}</view>
							</view>
							<view class="bor" v-if="index < 2" style="position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 1rpx; height: 8px; background-color: #333"></view>
						</view>
					</view>
				</view>
			</view>
		</view>
		<view v-if="info.supplierAccount == 1">
			<view class="g_h_40" v-if="info.supplierAccount == 1"></view>
			<view v-if="!isSelf">
				<view class="g_flex_row_center" v-if="info.recordStatus == 1">
					<!-- 已关注 -->
					<view style="width: 520rpx; height: 80rpx" class="g_bg_c g_c_f g_radius_22 g_fs_18 g_fw_600 g_mt_6 g_flex_c" hover-class="thover" @click="handleCancel">已关注</view>
				</view>
				<view class="g_flex_row_center" v-if="info.recordStatus == 2">
					<!-- 互相关注 -->
					<view style="width: 520rpx; height: 80rpx" class="g_bg_c g_c_f g_radius_22 g_fs_18 g_fw_600 g_mt_6 g_flex_c" @click="handleCancel">互相关注</view>
				</view>
				<view class="g_flex_row_center" v-if="(info.recordStatus == 4 || info.recordStatus == 3) && !isSelf">
					<!-- 判断是否已关注 -->
					<view style="width: 520rpx; height: 80rpx" class="g_bg_main g_c_f g_radius_22 g_fs_18 g_fw_600 g_mt_6 g_flex_c" hover-class="thover" @click="handleSubmit">申请关注</view>
				</view>
				<view class="g_flex_row_center" v-if="info.recordStatus == 5">
					<!-- 提交申请，等待中 -->
					<view style="width: 520rpx; height: 80rpx; background-color: #ccc" class="g_c_f g_radius_22 g_fs_18 g_fw_600 g_mt_6 g_flex_c">等待通过</view>
				</view>
				<view class="g_flex_row_center" v-if="info.recordStatus == 6 && !isSelf">
					<!-- 已过期 -->
					<view style="width: 520rpx; height: 80rpx" class="g_bg_main g_c_f g_radius_22 g_fs_18 g_fw_600 g_mt_6 g_flex_c" hover-class="thover" @click="handleSubmit">申请关注</view>
				</view>
				<view class="g_flex_row_center" v-if="info.recordStatus == 7">
					<!-- 邀请关注的申请关注 -->
					<view style="width: 520rpx; height: 80rpx" class="g_bg_main g_c_f g_radius_22 g_fs_18 g_fw_600 g_mt_6 g_flex_c" hover-class="thover" @click="inviteSubmit">申请关注</view>
				</view>
			</view>
			<view class="g_h_16"></view>
			<view v-if="jobDetailShow || jobDetailShow == 'true'">
				<!-- 正常职位 -->
				<view class="m-detail" v-if="(info.recordStatus == 1 || info.recordStatus == 2) && info.himSeeBtn == 1">
					<g-list-job @uploadList="getList" :recordStatus="info.recordStatus" :showShare="false" :list="query.list" :loading="loading" :speed="speed" :query="query" @clickTop="goDetailJob" @clickBottom="goDetailUser" emptyText="您关注的发单号暂未发布职位" emptySubText=" " />
				</view>
				<!-- 未关注 -->
				<view class="m-detail" v-if="(info.recordStatus == 4 || info.recordStatus == 3 || info.recordStatus == 5 || info.recordStatus == 6 || info.recordStatus == 7) && info.himSeeBtn == 1">
					<g-list-job @uploadList="getList" from="user" :isSelf="isSelf" :recordStatus="info.recordStatus" :showShare="false" :list="query.list" :loading="loading" :speed="speed" :query="query" @clickTop="goDetailJob" @clickBottom="goDetailUser" :emptyText="isSelf ? speed + '个职位' : '未关注用户仅展示预览职位'" emptySubText=" " />
				</view>
				<view v-if="info.himSeeBtn == 0" style="padding-top: 260rpx">
					<g-empty text="您关注的发单号暂未发布职位" />
				</view>
			</view>
		</view>
		<view v-if="info.supplierAccount == 0" style="width: calc(100% - 20px); margin: 0 auto">
			<view class="g_bg_f g_pl_16 g_pr_16 g_radius_8">
				<view class="g_flex_row_between g_h_56">
					<view class="g_flex_column_center g_fs_16 g_c_3">不让他看我的职位</view>
					<view class="g_flex_column_center">
						<u-switch v-model="mLook" activeColor="#00B666" @change="handleSee"></u-switch>
					</view>
				</view>
			</view>
			<view class="g_w_260 g_h_42 g_radius_25 g_bg_f g_fs_18 g_flex_c g_mt_90" style="color: #fa5151; margin: 90px auto 0" hover-class="thover" @click="goReturn"> 删除粉丝 </view>
		</view>
	</view>
</template>

<script>
export default {
	onReady() {
		this.G.setNavStyle();
	},
	// onShareAppMessage(){
	// 	return this.G.shareFun();
	// },
	data() {
		return {
			numSlot: [],
			isLogin: null,
			pageSpeed: 0,
			isShowMore: true,
			isShowJob: true,
			agencyId: 0,
			loading: true,
			speed: -1,
			query: {
				page: 1,
				size: 50,
				list: [],
				isFinish: -1,
			},
			info: {
				avatar: "",
				agencyName: "",
				jobUpdateNum: 0,
			},

			uid: 0,
			type: 0,
			bindid: 0,
			dataArray: [
				{
					name: "职位",
					num: 120,
				},
				{
					name: "关注",
					num: 108,
				},
				{
					name: "粉丝",
					num: 250,
				},
			],
			mLook: false,
			from: "",
			jobDetailShow: true,
			loginInfo: {},
			isSelf: false, // 是否是自己的信息判断
			scene: "",
		};
	},
	onLoad(options) {
		console.log("用户详情页：", options, " version:", 1);

		this.loginId = uni.getStorageSync("apply-agencyId");
		if (this.loginId == options.id && options.id) {
			this.isSelf = true;
		}
		this.G.checkToken().then((info) => {
			console.log("info11", info);
			if (!info.msg) {
				if (uni.getStorageSync("user_scene") || options.scene) {
					this.scene = uni.getStorageSync("user_scene") ? decodeURIComponent(uni.getStorageSync("user_scene")) : decodeURIComponent(options.scene);
					this.uid = this.scene.split("=")[1];

					console.log("this.uid", this.uid);
					uni.removeStorageSync("user_scene");
				} else {
					if (uni.getStorageSync("user_options")) {
						options = uni.getStorageSync("user_options");
					}
					this.type = options.type ? options.type : "";
					this.isShowMore = options.isShowMore ? options.isShowMore : "";
					this.isShowJob = options.isShowJob ? options.isShowJob : "";
					this.jobDetailShow = options.jobDetailShow || true;
					this.from = options.shareForm;
					this.uid = options.id;
					uni.removeStorageSync("user_options", options);
				}
				this.getDetail();
			} else {
				if (options.scene) {
					uni.setStorageSync("user_scene", options.scene);
				} else {
					uni.setStorageSync("user_options", options);
				}
			}
		});

		if (options.bindid) {
			this.bindid = options.bindid;
		}
	},
	onShow() {
		let that = this;
		that.isLogin = ""; // uni.getStorageSync("apply-token");
		this.loginInfo = uni.getStorageSync("apply-userinfo");
		// if (!that.isLogin) {
		// 	that.loading = false;
		// 	that.speed = 0;
		// } else {
		this.getDetail();
		// }
	},
	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: {
		getDetail() {
			let that = this;
			// this.G.isLogin();
			// if (this.G.isLogin()) {
			that.pageSpeed = 0;
			if (that.uid) {
				that.G.Get(
					that.api.bind_enterpriseDetail + "/" + that.uid,
					{
						agencyId: that.uid,
						type: that.type,
					},
					(res) => {
						console.log("获取详情：", res, " -- ", that.uid);
						that.pageSpeed = 1;
						that.info = res;
						if (!that.uid) {
							if (that.loginInfo.agencyId == that.info.agencyId) {
								that.isSelf = true;
							}
						}
						if (that.info.supplierAccount == 0) {
							that.isShowMore = false;
						}
						that.agencyId = res.agencyId;
						that.mLook = that.info.himSee == 1 ? false : true;
						that.numSlot = [
							{
								name: "职位数",
								num: that.info.himSee == 0 ? 0 : that.info.jobNum,
							},
							{
								name: "今日更新",
								num: that.info.jobUpdateNum,
							},
							{
								name: "粉丝数",
								num: that.info.downNum,
							},
						];
						that.getList();
					}
				);
			}

			// }
		},
		goDetailUser() {
			let that = this;
			this.G.isLogin();
			if (this.G.isLogin()) {
				if (this.info.recordStatus == 1 || this.info.recordStatus == 2) {
					let params = {
						id: that.info.agencyId,
						type: that.type,
						bindid: that.info.id,
						isShowMore: true,
						isShowJob: true,
					};
					uni.navigateTo({
						url: "/root/detail/user?" + that.G.objToStr(params),
					});
				} else {
					if (that.isSelf) {
					} else {
						uni.showToast({
							title: "关注发单号后才可查看详情",
							icon: "none",
						});
					}
				}
			}
		},
		getDefault($type) {
			let that = this;
			this.G.isLogin();
			if (this.G.isLogin()) {
				that.G.Post(
					that.api.job_list,
					{
						pageNum: that.query.page,
						pageSize: that.query.size,
						agencyId: that.agencyId,
						keys: "",
					},
					(res) => {
						if (res.recordCount == 0) {
							that.loading = false;
						} else {
							that.loading = true;
						}
						that.speed = res.recordCount;
						that.query.isFinish = res.recordList.length;
						res.recordList = that.G.toGetAddressv3(res.recordList);
						res.recordList = that.G.toGetAge(res.recordList);
						res.recordList = that.G.yijobCopy(res.recordList);
						if ($type == "init") {
							that.query.list = [];
							that.query.list =
								res.recordList.length > 0
									? res.recordList.map((item, index) => {
											return {
												...item,
												title: item.jobName,
												address: item.district + item.age,
												price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue) : that.G.getSalaryClassifyValue(item.salaryClassify, item.minMonthlyPay, item.maxMonthlyPay),
												fuWuFei: that.G.setReturnFee(item.returnFee, item.returnFeeType),
												gender: that.G.getGenderByMinAge(item),
												logo: item.agencyLogo,
												time: that.G.setDeadLine(item.updateTime, "jiaofu"),
												leafCateId: item.id,
												// serverPrice: that.G.setReturnFee(item.returnFee, item.returnFeeType),
												serverPrice: that.G.setReturnFee(item.agencyReturnFee, item.agencyReturnFeeType),
												recruitmentSwitch: item.recruitment == 1 ? true : false,
												recruitmentImage: item.recruitment,
												isToday: item.today == 0 ? false : true,
												active: 0,
											};
									  })
									: [];
						} else {
							that.query.list = that.query.list.concat(
								res.recordList.length > 0
									? res.recordList.map((item, index) => {
											return {
												...item,
												title: item.jobName,
												address: item.district + item.age,
												price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue) : that.G.getSalaryClassifyValue(item.salaryClassify, item.minMonthlyPay, item.maxMonthlyPay),
												fuWuFei: that.G.setReturnFee(item.returnFee, item.returnFeeType),
												gender: that.G.getGenderByMinAge(item),
												logo: item.agencyLogo,
												time: that.G.setDeadLine(item.updateTime, "jiaofu"),
												leafCateId: item.id,
												// serverPrice: that.G.setReturnFee(item.returnFee, item.returnFeeType),
												serverPrice: that.G.setReturnFee(item.agencyReturnFee, item.agencyReturnFeeType),
												recruitmentSwitch: item.recruitment == 1 ? true : false,
												recruitmentImage: item.recruitment,
												isToday: item.today == 0 ? false : true,
												active: 0,
											};
									  })
									: []
							);
						}
					}
				);
			}
		},
		getHot($type) {
			let that = this;
			this.G.isLogin();
			if (this.G.isLogin()) {
				that.G.Post(
					that.api.job_hotList + "/" + that.agencyId,
					{
						pageNum: that.query.page,
						pageSize: that.query.size,
						agencyId: that.agencyId,
						keys: "",
					},
					(res) => {
						console.log("推荐列表：", res);
						if (res.length == 0) {
							that.loading = false;
						} else {
							that.loading = true;
						}
						that.speed = res.length;
						that.query.isFinish = res.length;
						res = that.G.toGetAddressv3(res);
						res = that.G.toGetAge(res);
						res = that.G.yijobCopy(res);
						if ($type == "init") {
							that.query.list = [];
							that.query.list =
								res.length > 0
									? res.map((item, index) => {
											return {
												...item,
												title: item.jobName,
												address: item.district + item.age,
												price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue) : that.G.getSalaryClassifyValue(item.salaryClassify, item.minMonthlyPay, item.maxMonthlyPay),
												fuWuFei: that.G.setReturnFee(item.returnFee, item.returnFeeType),
												gender: that.G.getGenderByMinAge(item),
												logo: item.agencyLogo,
												time: that.G.setDeadLine(item.updateTime, "jiaofu"),
												leafCateId: item.id,
												// serverPrice: that.G.setReturnFee(item.returnFee, item.returnFeeType),
												serverPrice: that.G.setReturnFee(item.agencyReturnFee, item.agencyReturnFeeType),
												agencyId: item.agencyId,
												recruitmentSwitch: item.recruitment == 1 ? true : false,
												recruitmentImage: item.recruitment,
												teamType: item.teamType,
												creatorName: item.creatorName,
												isToday: item.isToday,
												active: 0,
											};
									  })
									: [];
						} else {
							that.query.list = that.query.list.concat(
								res.length > 0
									? res.map((item, index) => {
											return {
												...item,
												title: item.jobName,
												address: item.district + item.age,
												price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue) : that.G.getSalaryClassifyValue(item.salaryClassify, item.minMonthlyPay, item.maxMonthlyPay),
												fuWuFei: that.G.setReturnFee(item.returnFee, item.returnFeeType),
												gender: that.G.getGenderByMinAge(item),
												logo: item.agencyLogo,
												time: that.G.setDeadLine(item.updateTime, "jiaofu"),
												leafCateId: item.id,
												// serverPrice: that.G.setReturnFee(item.returnFee, item.returnFeeType),
												serverPrice: that.G.setReturnFee(item.agencyReturnFee, item.agencyReturnFeeType),
												recruitmentSwitch: item.recruitment == 1 ? true : false,
												recruitmentImage: item.recruitment,
												active: 0,
											};
									  })
									: []
							);
						}
					}
				);
			}
		},
		getList($type = "init") {
			let that = this;
			this.G.isLogin();
			if (this.G.isLogin()) {
				if (this.info.recordStatus == 1 || this.info.recordStatus == 2) {
					that.getDefault($type);
				} else {
					that.getHot($type);
				}
			} else {
				that.getHot($type);
			}
		},
		goMore() {
			let that = this,
				str = "";
			this.G.isLogin();
			if (this.G.isLogin()) {
				if (that.info.supplierAccount == 1) {
					if (that.isShowMore == "true") {
						if (that.info.recordStatus == 2) {
							str = 3;
						} else {
							str = that.info.up;
						}
						console.log("that.type", that.type);
						uni.navigateTo({
							url: "/root/bind/more?delta=2&id=" + that.agencyId + "&himSee=" + that.info.himSee + "&lookHim=" + that.info.lookHim + "&type=" + str + "&from=" + that.type + "&lid=" + that.info.lookHimOperateId + "&hid=" + that.info.himSeeOperateId,
						});
					}
				}
			}
		},
		goDetailJob($item) {
			let that = this;
			console.log("that.isSelf1", that.isSelf);

			this.G.isLogin();
			console.log("that.isSelf2", that.isSelf);
			if (this.G.isLogin()) {
				if (that.isSelf) {
					uni.navigateTo({
						url: "/root/detail/job?id=" + $item.leafCateId,
					});
				} else if (this.info.recordStatus == 1 || this.info.recordStatus == 2) {
					uni.navigateTo({
						url: "/root/detail/job?id=" + $item.leafCateId,
					});
				} else {
					uni.showToast({
						title: "关注发单号后才可查看详情",
						icon: "none",
					});
				}
			}
		},
		inviteSubmit() {
			let that = this;
			console.log("info", that.info);
			// return;
			uni.showModal({
				title: "关注发单号",
				content: "关注发单号后，您可以查看该账号职位的更新，确定要关注吗？",
				confirmColor: "#576B95",
				success(modalRes) {
					if (modalRes.confirm) {
						that.G.Post(
							that.api.user_updateInviteId,
							{
								agencyIds: that.info.agencyId,
							},
							(res) => {
								uni.showToast({
									title: "关注成功",
								});
								setTimeout(() => {
									that.getDetail();
								}, 800);
							}
						);
					} else if (modalRes.cancel) {
						console.log("用户点击取消");
					}
				},
				fail() {},
			});
		},
		handleSubmit() {
			let that = this;
			this.G.isLogin();
			if (this.G.isLogin()) {
				// 根据参数，判断是名片打开还是其他页面打开
				let _code = 1; // 账号搜索
				if (this.from == "friend") {
					_code = 2; // 名片分享
				} else {
					if (this.scene) {
						_code = 3; // 扫一扫
					} else {
						_code = 1; // 账号搜索
					}
				}

				uni.showModal({
					title: "关注发单号",
					content: "关注发单号后，您可以查看该账号职位的更新，确定要关注吗？",
					confirmColor: "#576B95",
					success(modalRes) {
						if (modalRes.confirm) {
							that.G.Get(
								that.api.bind_subscribeSubmit + "/" + that.info.agencyId,
								{
									agencyId: that.agencyId,
									source: _code,
									remark: "",
								},
								(res) => {
									uni.showToast({
										title: "提交成功",
									});
									setTimeout(() => {
										that.getDetail();
									}, 800);
								}
							);
						} else if (modalRes.cancel) {
							console.log("用户点击取消");
						}
					},
					fail() {},
				});
			}
		},

		handleSee(e) {
			let that = this;
			this.G.isLogin();
			if (this.G.isLogin()) {
				that.G.Get(
					that.api.bind_isSee + "/" + that.info.himSeeOperateId,
					{
						id: that.info.himSeeOperateId,
						himSee: e ? 0 : 1,
					},
					() => {
						uni.showToast({
							icon: "success",
							title: "更新成功",
						});
					}
				);
			}
		},
		goReturn() {
			let that = this;
			this.G.isLogin();
			if (this.G.isLogin()) {
				that.G.handleConfirm({
					content: "确认删除粉丝吗？",
					success: (res) => {
						if (res.confirm) {
							that.G.Get(
								that.api.bind_delApply + "/" + that.agencyId,
								{
									agencyId: that.agencyId,
								},
								() => {
									uni.showToast({
										icon: "success",
										title: "删除粉丝成功",
									});
									setTimeout(() => {
										uni.navigateBack();
									}, 1500);
								}
							);
						}
					},
				});
			}
		},

		handleCancel() {
			let that = this;
			this.G.isLogin();
			if (this.G.isLogin()) {
				that.G.handleConfirm({
					content: "是否取消关注该发单号？",
					success: (res) => {
						if (res.confirm) {
							that.G.Get(
								that.api.bind_cancelApply + "/" + that.agencyId,
								{
									agencyId: that.agencyId,
								},
								() => {
									uni.showToast({
										icon: "success",
										title: "取消关注成功",
									});
									setTimeout(() => {
										that.getDetail();
										that.getList();
									}, 1500);
								}
							);
						}
					},
				});
			}
		},
	},
};
</script>

<style lang="scss">
.p-root-detail-user {
	min-height: 100%;
}
</style>
