<template>
	<view class="page-content my-bg">
		<cu-custom class="main-topbar bg-main-oil" bgColor="bg-main-oil">
			<block slot="content">星油云站</block>
		</cu-custom>
		<view class="bg-img margin flex padding-lg radius align-center text-center" :style="'background-image: url('+mainURL+'login-bg.png)'">
			<view class="padding-lg margin text-center text-lg text-white w100">
				<text class="">
					油站工作人员绑定油站
				</text>
			</view>

		</view>
		<view class="pannel">
			<view class="bg-white margin padding radius  ">
				<view class="cu-form-group radius " @tap="routerTo('/pages/login/posLogin/posLogin')">
					<view class="title mini-label text-black">已有账号登录</view>
					<view class="cuIcon-right">

					</view>
				</view>
				<!-- <view class="cu-form-group  padding-top" @tap="routerTo('/pages/login/login')">
					<view class="title mini-label text-black">首次认证登录</view>
					<view class="cuIcon-right">
					</view>
				</view> -->
			</view>

		</view>
		<view class="margin text-center">
			<button class="cu-btn round  bg-main-oil  lg text-lg" open-type="getPhoneNumber"
				@getphonenumber="decryptPhoneNumber">
				<text class="cuIcon-weixin padding-right-xs"> </text>
				<text>
					微信用户一键登录
				</text>
			</button>
			<!-- <button class="cu-btn round  btnSize" open-type="getPhoneNumber"
				@getphonenumber="decryptPhoneNumber">
				<text class="cuIcon-weixin  text-green lg"></text>
			</button> -->
		</view>

		<view class="bottom-part">
			<service-hotline />
		</view>
	</view>
</template>

<script>
	import cloudSiteApi from '@/api/cloud-site.js'
	import loginApi from '@/api/login.js'
	import oilIdentityApi from '@/api/oil-identity.js'
	import oliUserApi from '@/api/oli-user.js'
	export default {
		data() {
			return {
				count: 0,
				baseURL: this.global.baseURL,
				mainURL: this.global.mainURL,
				forcedLogin: true,
				oilSiteNo: '',
				sessionKey:'',
				outType:'0'
			};
		},
		created() {
			uni.showShareMenu()
			// this.loginWeixin()
		},
		onLoad(option) {
			if(option.type == '1'){
				this.outType = option.type
				uni.clearStorageSync()//清除缓存
			}
			// this.refreshLocation()
			uni.login({ //微信登陆
				provider: 'weixin',
				success: (loginRes) => {
					const code = loginRes.code
					let _that = this
					this.onceCode = code
					oilIdentityApi.sendCode(this.onceCode).then(res => { //根据微信登陆返回的code获取unionid openid
						if (res.code === 20000) {
							this.sessionKey = res.data.sessionKey
							uni.setStorageSync('openid', res.data.openId)
							uni.setStorageSync('unionid', res.data.unionId)
							if(_that.outType !== '1'){
								this.autoLogin()
								return
							}
						} else if (res.code == 1002) {
							uni.showModal({
								title: '微信登录失败提醒',
								content: `${res.msg}如有疑问,请联系客服处理`
							})
						} else {
							// console.log('res', res.code)
						}
					}).catch(err => {
						uni.reLaunch({
							url: '/BagAuth/pages/login/boforeLogin/boforeLogin',
							fail: (err) => {
								// console.log(err)
							}
						})
					})
				},
				fail: err => {},
			})
		},
		methods: {
			decryptPhoneNumber(e) { // 通过用户授权获取到用户的手机号信息
				if (e.detail.errMsg === 'getPhoneNumber:ok') {
					const data1 = {
						...e.detail,
						sessionKey: this.sessionKey,
						unionId: uni.getStorageSync('unionid'),
						openId: uni.getStorageSync('openid'),
						appId: 'wxaf56b8bae925ba19'
					}
					let url1 = 0 == this.TabCur ? 'bindLoginByPhonePersonal' : 'bindLoginByPhoneCompany'
					this.bindLoginByPhone(data1, url1)
				} else {
					uni.showModal({
						title: '您已拒绝授权手机号'
					})
				}
			},
			bindLoginByPhone(data, url) { //绑定用户手机号
				if (this.count < 1) {
					oilIdentityApi.bindLoginByPhonePersonal(data, url).then(res => {
						if (res.code == 20000) {
							this.loginSuccess(res)
						}
					})
				}
			},
			loginSuccess(res) {//这里是绑定登录
				if (res.data.authTokenDTO.loginFlag) {
					this.setStored(res)
				}
			},
			refreshLocation() {
				uni.getLocation({
					type: 'wgs84',
					success: function(res) {
						uni.setStorageSync('location', res)
					}
				});
			},
			routerTo(url) {
				uni.navigateTo({
					url: url
				})
			},
			autoLogin() {  //根据登录时获取到的 unionid openid 自动登录
				let data={
					unionId:uni.getStorageSync('unionid'),
					openId:uni.getStorageSync('openid')
				}
				console.log(data,'这里是自动登录data')
				oilIdentityApi.loginPersonal(data).then(res => { //微信自动登录
				console.log(res,'这里是自动登录res')
					if (res.data.authTokenDTO.loginFlag == true) {
						this.setStored(res)
					}else {
            uni.showToast({
              icon: 'none',
              title: res.data.msg
            })
          }
				})
			},
			// 存值本地 根据手机号获取其下的油站并且存储本地
			setStored(res){
				let user = res.data.authTokenDTO.loginUser,
				unionId = uni.getStorageSync('unionid'),
				openId = uni.getStorageSync('openid'),
				phone = res.data.sysCustomerInfo.phone //获取该用户手机号
				setTimeout(() => {
					uni.showToast({
						title: res.msg,
						icon: 'none',
						complete: (err) => {
							// console.log(err)
						}
					})
				}, 1000);
				uni.setStorageSync('user', user)
				uni.setStorage({
					key: 'Authorization',
					data: res.data.authTokenDTO.accessToken,
					success: () => {
						console.log('Authorization成功', res.data.authTokenDTO.accessToken)
					}
				})
				uni.setStorage({
					key: 'device',
					data: openId,
					success: () => {
						console.log('deviceopenid', openId)
					}
				})
				uni.setStorage({
					key: 'unionId',
					data:unionId,
					success: () => {
						console.log('deviceunionId', unionId)
					}
				})
				uni.setStorageSync('userMenu', res.data.authTokenDTO.loginUser.roleMenus) //获取权限菜单列表
				uni.setStorageSync('loginUser', { //存储用户基本信息 id,name,userphone
					id: res.data.authTokenDTO.loginUser.id,
					name: res.data.authTokenDTO.loginUser.name,
					userPhone: res.data.authTokenDTO.loginUser.userPhone
				})
				//根据获取手机号 获取其号下的油站信息
				console.log('这里是获取手机号登录')
				oliUserApi.getByPhone(phone).then((res)=>{
					console.log('这里是获取手机号登录',res)
					if(res.code == 20000){
						uni.setStorageSync('oliList',res.data)//本地存储当前用户其下有多少油站,用于用户登录进入时选择进入油站
						// 获取信息存储本地
						uni.setStorageSync('checkFirst',true) //进入前重置进入状态,判断用户是否是登录进入,用来做区分
						uni.showToast({
							title: res.msg,
							icon: 'success',
							duration: 3000
						})
						uni.reLaunch({
							url: '/pages/index/index',
							fail: (err) => {
								console.log(err)
							}
						})
					} else {
						uni.showToast({
							title: '未绑定油站请联系客服',
							icon: 'none',
							duration: 1500
						})
					}
				})
			},
			nextStep() {
				if (this.oilSiteNo) {
					cloudSiteApi.verifyOilSite({
						oilSiteCode: this.oilSiteNo
					}).then(res => {
						if (res.code === 20000) {
							//历史遗留代码---------------------------------
							// address: "安徽省合肥市庐阳区大杨镇"
							// fuelLogo: null
							// linkMan: "符红敏"
							// oilSiteCode: "1591260293"
							// oilSiteName: "杭州首鸿金融信息服务有限公司"
							// phone: "15617055136"
							//--------------------------------------------
							uni.setStorage({
								key: 'oilSiteCode',
								data: this.oilSiteNo,
								success: () => {
									console.log('缓存成功')
								}
							})
							uni.setStorage({
								key: 'oilSite',
								data: res.data,
								success: () => {
									console.log('缓存成功')
								}
							})
							uni.navigateTo({
								url: '/pages/Auth/Auth'
							})
						}
					})
					//历史遗留代码 不知道干嘛的 保不齐之后要用--------------
					// uni.setStorage({
					// 	key: 'oilSiteCode',
					// 	data: this.oilSiteNo,
					// 	success: () => {
					// 		console.log('缓存成功')
					// 	}
					// })
					// uni.navigateTo({
					// 	url: '/pages/Auth/Auth'
					// })
					//--------------------------------------------------
				} else {
					uni.showToast({
						title: '请输入云站号',
						duration: 3000,
						icon: 'none'
					})
				}
			},
			getMsg() {
				uni.requestSubscribeMessage({
					tmplIds: ['W5XD3NQVa6knC5jXHeWT8GS7q5CHrDUMY_sF79kLkKk'],
					success: (res) => {
						console.log(res)
					}
				})
			},
			getUserInfo({
				detail
			}) {
				console.log('三方登录只演示登录api能力,暂未关联云端数据');
				console.log('detail', detail)
				if (detail.userInfo) {
					this.loginLocal(detail.userInfo.nickName);
				} else {
					uni.showToast({
						icon: 'none',
						title: '登陆失败'
					});
				}

			},
			loginLocal(nickName) {
				uni.setStorageSync('login_type', 'local')
				uni.setStorageSync('username', nickName)
				this.toMain(nickName);
			},
			toMain(userName) {
				// this.login(userName)
				/**
				 * 强制登录时使用reLaunch方式跳转过来
				 * 返回首页也使用reLaunch方式
				 */
				if (this.forcedLogin) {
					uni.reLaunch({
						url: '/pages/index/index',
						success: () => {
							console.log('success')
						},
						fail: err => {
							console.log(err)
						}
					});
				} else {
					uni.navigateBack();
				}

			}
		}
	};
</script>

<style scoped>
	.btnSize{
		font-size:60rpx;
	}
	.page-content {
		position: relative;
	}

	.logo {
		min-width: 100%;
		text-align: center;
	}

	.logo img {
		width: 200upx;
		height: 200rpx;
		background-size: contain;
		margin: auto;
	}

	.bottom-bg {
		position: sticky;

		bottom: 50upx;
	}
</style>