<template>
	<view class="page">
		<view class="grace-idcard-main">
			<view class="con">
				
				<view class="icon">
					<view class="iltxt">请输入旧密码</view>
					<uni-easyinput class="itxt" v-model="pwdold" type="password" @blur="mmhandleBlur" placeholder="请输入6-20位新密码" />
				</view>
				
				<view class="icon">
					<view class="iltxt">请输入新密码</view>
					<uni-easyinput class="itxt" v-model="pwd" type="password" @blur="mmhandleBlur" placeholder="请输入6-20位新密码" />
				</view>
				
				<view class="icon">
					<view class="iltxt">再次输入密码</view>
					<uni-easyinput class="itxt" v-model="pwdagain" type="password" @blur="mmhandleBlur" placeholder="请输入6-20位新密码" />
				</view>
				<view style="margin-top:30rpx;margin-bottom:130rpx; text-align: left;">
					<text class="text-gray text-df" style="line-height: 40rpx;">
						密码必须是6-20位字符至少包括英文字母、数字、特殊符号（除空格）中2种以上。
					</text>
				</view>
				
				<view style="margin-top:60rpx; height: 120rpx;">
					<button type="primary" class="btn" @click="gotosubmit" >确认</button>
				</view>
			
			</view>
		</view>
		
		<!-- 提示信息弹窗 -->
		<uni-popup ref="message" type="message">
			<uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message>
		</uni-popup>
		
	</view>
</template>
<script>
	import { myCache } from '../../utils/utils.js';
export default {
	data() {
		return {
			openId:"",
			phone:"",
			userid:"",
			pwdold:"",
			pwd:'',
			pwdagain:'',
			msgType :'success',
			messageText:'', //错误提示框
		};
	},
	onLoad() {},
	onShow() {
		this.openId = myCache('openId');
		var user = myCache('user');
		this.userid = user.userid? user.userid:'';
		this.phone = user.userphone;
		if(this.userid==""||this.userid=="0"){
			uni.navigateTo({
				url: `/pages/login/login`
			});
		}
	},
	methods: {
		messageToggle(type,msg) {
			this.msgType = type;
			this.messageText = msg;
			this.$refs.message.open();
		},
		// 判断密码是否合规
		mmhandleBlur(e){
			console.log(e)
			if(e.detail.value&&!this.checkMM(e.detail.value)){
				//'密码必须是由6-20位长度的字母、数字组成，请核实！',
				this.messageToggle('error','密码必须是6-20位字符至少包括英文、数字、特殊符号中2种以上，请核实！')
			}
		},
		// 校验密码
		checkMM(mm) {
		 if (!(/^(?!([a-zA-Z]+|\d+)$)[a-zA-Z\d]{6,20}$/.test(mm))) {
		   // if (!(/((^(?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9])[\da-zA-Z_\W]{8,20}$)|(^(?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9])[\da-zA-Z_\W]{8,20}$)|(^(?=.*\d)(?=.*[a-z])(?=.*[^A-Za-z0-9])[\da-zA-Z_\W]{8,20}$)|(^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[\da-zA-Z_\W]{8,20}$))/.test(mm))) {
		    return false;
		  }
		  return true;
		},
		async gotosubmit() {
			 
			if(!this.pwdold){
				this.messageToggle('warn','请输入旧密码！');
				return false;
			}
			if(!this.pwd){
				this.messageToggle('warn','请输入新密码！');
				return false;
			}
			if(!this.pwdagain){
				this.messageToggle('warn','请输入确认密码！');
				return false;
			}
			if(this.pwd!==this.pwdagain){
				this.messageToggle('warn','两次输入密码不一致，请核实！');
				return false;
			}
			uni.showLoading({
				title: '数据提交中...'
			}); 
			const {data: res} = await uni.$http.post('/api/my/modifyMyInformation', {id:this.userid,password:this.pwdold,newPassword:this.pwdagain});
			console.log(res)
			if(res&&res.success){
				uni.showToast({
					title: '密码已修改！',
					icon: 'success',
					duration: 2000
				});
				setTimeout(() => {
					uni.navigateBack({
						delta: 1
					});
				}, 2000);
			}
			else{
				uni.showToast({
					title: '密码修改失败！请重试',
					icon: 'error',
					duration: 2000
				}) 
			}
		}
	}
};
</script>
<style lang="less" scoped>
.page{
	background: #FFF !important;
	height: 100vh;
}
::v-deep .uni-easyinput__content-input{
	font-size: 30rpx !important;
}
::v-deep .uni-easyinput__placeholder-class {
	font-size: 30rpx !important;
}
.icon{
	margin-top: 50rpx;
	margin-bottom: 20rpx;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		.iltxt{
			line-height: 44rpx;
			font-size: 30rpx;
			font-family: PingFang SC, PingFang SC;
			font-weight: 600;
			color: #333333;
			margin-bottom: 40rpx;
			display: flex;
			flex: 1;
		}
		.itxt{
			display: flex;
			flex: 1;
			font-size: 28rpx;
		}
	}
	
.btn{
		margin: 60rpx 20rpx;
		font-size: 32rpx;
		font-family: PingFang SC-Medium, PingFang SC;
		font-weight: 500;
		color: #FCFCFD;
		height: 80rpx;
		line-height: 80rpx;
		background: #89965f;
		box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
		border-radius: 10rpx;
		opacity: 1;
		&::after{
			border:none;
		}
}
.btn:after{
	border:none;
}
.grace-idcard-main {
	margin: 50rpx 30rpx;
}
 
</style>
