<template>
	<view class="login-wrap">
		<view v-if="!buildType" style="text-align: center;color: #999999;padding-top: 40px;">{{ envTips }}</view>
		<image src="../../static/logo.jpg" class="logo"></image>
		<form class="login-form" @submit="formSubmit">
			<view class="form-item">
				<u-icon size="34" color="#999" name="account"></u-icon>
				<input v-model="form.loginName" class="item-inp" name="loginName" type="number" maxlength="11" placeholder="请输入用户名" />
			</view>
			<view class="form-item">
				<u-icon size="34" color="#999" name="lock"></u-icon>
				<input v-model="form.password" class="item-inp" name="password" password type="text" maxlength="12" placeholder="请输入密码" />
			</view>
			<view class="flex-box" style="margin-top: 60upx;">
				<view class="remember-pass">
					<u-checkbox v-model="isRemember" value="true" :size="30" :label-size="26" active-color="#2ab4e5" class="login-form-checkbox" @change="rememberChange">记住密码</u-checkbox>
				</view>
			</view>
			<view class="form-btn-con">
				<button class="form-btn" form-type="submit">登录</button>
				<!-- <text class="apply-btn" @click="applyTrial">还没有账号？马上申请试用</text> -->
			</view>
		</form>
		<view class="authUserYs">
			<u-checkbox v-model="isAuthuserYs" value="true" :size="30" :label-size="26" active-color="#2ab4e5" class="login-form-checkbox" @change="authuserChange">登录代表同意</u-checkbox>
			<text @click="toYsPage()" style="vertical-align: text-top;font-size: 26rpx;text-decoration: underline;">乐色助手用户协议及隐私保护政策</text>
		</view>
	</view>
</template>

<script>
import market from "@/js_sdk/dc-market/market.js"
import { checkVersionToLoadUpdate, setStorageForAppVersion,clzConfirm } from '@/libs/tools'
import { isvalidPhone } from '@/libs/validate.js';
import { login } from '@/api/user.js';
import { getSysVersion } from '@/api/data.js'
export default {
	data() {
		return {
			form: {
				loginName: this.$store.state.vuex_user.account,
				password: this.$store.state.vuex_user.password
			},
			isRemember: true, //  是否记住密码
			isAuthuserYs: false, // 是否同意隐私政策
			envTips: '',
			buildType: '',
		};
	},
	mounted() {
		this.isRemember = this.$store.state.vuex_isRemember || true;
		this.isAuthuserYs = this.$store.state.vuex_isUsrAuthYs || false;
		this.envTips = getApp().globalData.envTips;
		this.buildType = getApp().globalData.buildType;
	},
	onShow() {
		//#ifdef APP-PLUS
		  uni.getSystemInfo({
			  success:(res) => {
				  console.log(res)
				  //检测当前平台，如果是安卓则启动安卓更新  
				  if(res.platform=="android"){  
					  // 获取最新版本信息
					  plus.runtime.getProperty(plus.runtime.appid,(wgtinfo)=>{
					  	getApp().globalData.version = wgtinfo
					  	this.AndroidCheckUpdate()
					  })
				  }  
			  }  
		  })
		//#endif
	},
	methods: {
		//  获取微信login  code
		getWechatCode(){
			const _this = this
			wx.login({
			  success (res) {
			    if (res.code) {
					//发起网络请求
					let formData = JSON.parse(JSON.stringify(_this.form))
					formData.code = res.code
					_this.submitForm(formData)
			    } else {
					console.log('登录失败，点击“登录”重试！' + res.errMsg)
			    }
			  }
			})
		},
		// 安卓版本更新
		AndroidCheckUpdate(){
			let _this = this
			getSysVersion().then(ret => {
				if(ret.status == 200){
					this.$store.state.vuex_versionInfo = ret.data
					let currTimeStamp = new Date(ret.data.publicDate).getTime();
					// 判断缓存时间
					uni.getStorage({
						key: 'tip_version_update_time',
						success: function (res) {
							let lastTimeStamp = res.data;
							//定义提醒的时间间隔，避免烦人的一直提示，一个小时：36000；一天：60*60*1000*24
							let tipTimeLength = 60*60*1000*3;
							// 强制更新
							if(ret.data.forceUpgrade == 1){
								tipTimeLength = 0
								//进行版本型号的比对 以及下载更新请求
								checkVersionToLoadUpdate(ret.data,0,market);
							}else{
								if((lastTimeStamp+tipTimeLength) <= currTimeStamp){
									//重新设置时间戳
									setStorageForAppVersion(currTimeStamp);
									//进行版本型号的比对 以及下载更新请求
									checkVersionToLoadUpdate(ret.data,0,market);
								}
							}
						},
						fail:function(res){
							setStorageForAppVersion(currTimeStamp);
						}
					});
				}
			})
		},
		// 过滤权限code
		fiterAuthCode(data) {
			data.permCodes = data.permCodes.filter(item => item.indexOf('_mobile') > 0);
			return data;
		},
		//  表单提交
		formSubmit() {
			const _this = this;
			//  表单校验
			if (_this.form.loginName == '') {
				uni.showToast({ icon: 'none', title: '请输入用户名' });
				return;
			}
			if (!isvalidPhone(_this.form.loginName)) {
				uni.showToast({ icon: 'none', title: '请输入正确的手机号码' });
				return;
			}
			if (_this.form.password == '') {
				uni.showToast({ icon: 'none', title: '请输入密码' });
				return;
			}
			if (_this.form.password.length < 6 || _this.form.password.length > 12) {
				uni.showToast({ icon: 'none', title: '请输入6-12位密码' });
				return;
			}
			if (!_this.isAuthuserYs) {
				uni.showToast({ icon: 'none', title: '请同意并阅读用户隐私政策' });
				return;
			}
			uni.showLoading({
				title: '正在登录...'
			});
			// #ifdef MP-WEIXIN
				//  获取微信login   code
				this.getWechatCode()
			// #endif
			// #ifndef MP-WEIXIN
				this.submitForm(_this.form)
			// #endif
		},
		submitForm(formData){
			const _this = this;
			//  登录
			login(formData).then(res => {
				uni.hideLoading();
				if (res.status == 200) {
					_this.$u.vuex('vuex_token', res.data);
					// _this.$u.vuex('vuex_userData', _this.fiterAuthCode(res.auth_user));
					getApp().globalData.token = res.data;
					//登录成功将用户名密码存储到用户本地
					if (_this.isRemember) {
						//用户勾选“记住密码”
						_this.$u.vuex('vuex_user.account', _this.form.loginName);
						_this.$u.vuex('vuex_user.password', _this.form.password);
					} else {
						//用户没有勾选“记住密码”
						_this.$u.vuex('vuex_user.account', '');
						_this.$u.vuex('vuex_user.password', '');
						_this.form.loginName = '';
						_this.form.password = '';
					}
					uni.setStorageSync('loginTimeOut', 'NO');
					_this.toMain();
				} else {
					uni.showToast({ icon: 'none', title: res.message });
				}
			});
		},
		toMain() {
			// 跳转到首页
			uni.switchTab({
				url: '/pages/index/index'
			});
		},
		//  申请试用
		applyTrial() {
			uni.navigateTo({
				url: '/pages/login/apply-trial'
			});
		},
		//  忘记密码
		forgetPass() {
			uni.navigateTo({
				url: '/pages/login/forget-pass?username=' + this.form.loginName
			});
		},
		//  判断是否记住密码
		rememberChange(e) {
			this.isRemember = e.value;
		},
		// 隐私
		authuserChange(e) {
			this.isAuthuserYs = e.value;
			this.$u.vuex('vuex_isUsrAuthYs', this.isAuthuserYs);
		},
		toYsPage() {
			uni.navigateTo({
				url: '/pages/agreement/agreement'
			});
		}
	}
};
</script>
<style scoped lang="scss">
@import './login.scss';
</style>
