199 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			199 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
<template>
 | 
						||
	<view class='base-info'>
 | 
						||
		<view class="flex-info">
 | 
						||
			<view class='label-text'>旧密码</view>
 | 
						||
			<view class="password-info">
 | 
						||
				<!-- <u-form-item prop="originPassword"> -->
 | 
						||
				<u--input name='originPassword' border="none" v-model="originPassword" placeholder='请输入原密码' password />
 | 
						||
				<!-- </u-form-item>	 -->
 | 
						||
			</view>
 | 
						||
		</view>
 | 
						||
		<view class="flex-info">
 | 
						||
			<view class='label-text'>新密码</view>
 | 
						||
			<view class="password-info">
 | 
						||
				<!-- <u-form-item prop="newPassword"> -->
 | 
						||
				<u--input name='newPassword' border="none" v-model="newPassword" placeholder='请输入新密码' password />
 | 
						||
				<!-- </u-form-item> -->
 | 
						||
			</view>
 | 
						||
		</view>
 | 
						||
		<view class="flex-info">
 | 
						||
			<view class='label-text'>确认新密码</view>
 | 
						||
			<view class="password-info">
 | 
						||
				<!-- <u-form-item prop="matchPassword"> -->
 | 
						||
				<u--input name='matchPassword' border="none" v-model="matchPassword" password placeholder='请确认新密码' />
 | 
						||
				<!-- </u-form-item> -->
 | 
						||
			</view>
 | 
						||
		</view>
 | 
						||
		<view class="warn-info">密码由6-15位字母和数字组成,区分大小写</view>
 | 
						||
		<button @click="formSubmit" type="primary" class='save-btn' :disabled="buttonDis">重置密码</button>
 | 
						||
 | 
						||
		<show-toast></show-toast>
 | 
						||
	</view>
 | 
						||
</template>
 | 
						||
 | 
						||
<script>
 | 
						||
	import MD5 from 'md5'
 | 
						||
	import {
 | 
						||
		modifyPassword
 | 
						||
	} from '../../../services/common'
 | 
						||
	import showToast from '../../../components/custom/show-info/show-toast.vue'
 | 
						||
 | 
						||
	export default {
 | 
						||
		data() {
 | 
						||
			return {
 | 
						||
				actionCode: '',
 | 
						||
				originPassword: '',
 | 
						||
				newPassword: '',
 | 
						||
				matchPassword: '',
 | 
						||
				buttonDis: true,
 | 
						||
			}
 | 
						||
		},
 | 
						||
		watch: {
 | 
						||
			originPassword: function(newVal) {
 | 
						||
				if(newVal && this.newPassword && this.matchPassword){
 | 
						||
					this.buttonDis = false
 | 
						||
				}else{
 | 
						||
					this.buttonDis = true
 | 
						||
				}
 | 
						||
			},
 | 
						||
			newPassword: function(newVal) {
 | 
						||
				if(newVal && this.originPassword && this.matchPassword){
 | 
						||
					this.buttonDis = false
 | 
						||
				}else{
 | 
						||
					this.buttonDis = true
 | 
						||
				}
 | 
						||
			},
 | 
						||
			matchPassword: function(newVal) {
 | 
						||
				if(newVal && this.newPassword && this.originPassword){
 | 
						||
					this.buttonDis = false
 | 
						||
				}else{
 | 
						||
					this.buttonDis = true
 | 
						||
				}
 | 
						||
			}
 | 
						||
		},
 | 
						||
		methods: {
 | 
						||
			async formSubmit() {
 | 
						||
					const appInfoData = uni.getStorageSync('appInfo')
 | 
						||
					const userId = appInfoData?.User?.ID || ''
 | 
						||
 | 
						||
					const params = {
 | 
						||
						Keyword: userId,
 | 
						||
						Parameter1: MD5(this.originPassword),
 | 
						||
						Parameter2: MD5(this.newPassword)
 | 
						||
					}
 | 
						||
					let eeeeeee = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,15}$/;
 | 
						||
					if (!this.originPassword) {
 | 
						||
						this.$showToast({
 | 
						||
							title: "请输入原密码",
 | 
						||
							content: "",
 | 
						||
							icon: 'fail',
 | 
						||
							success: res => {}
 | 
						||
						});
 | 
						||
						return
 | 
						||
					}
 | 
						||
					if (!this.newPassword) {
 | 
						||
						this.$showToast({
 | 
						||
							title: "请输入新密码",
 | 
						||
							content: "",
 | 
						||
							icon: 'fail',
 | 
						||
							success: res => {}
 | 
						||
						});
 | 
						||
						return
 | 
						||
					}
 | 
						||
					if (!this.matchPassword) {
 | 
						||
						this.$showToast({
 | 
						||
							title: "请确认新密码",
 | 
						||
							content: "",
 | 
						||
							icon: 'fail',
 | 
						||
							success: res => {}
 | 
						||
						});
 | 
						||
						return
 | 
						||
					}
 | 
						||
					if (this.newPassword !== this.matchPassword) {
 | 
						||
						this.$showToast({
 | 
						||
							title: "确认密码与新密码不一致",
 | 
						||
							content: "",
 | 
						||
							icon: 'fail',
 | 
						||
							success: res => {}
 | 
						||
						});
 | 
						||
						return
 | 
						||
					}
 | 
						||
					if (!eeeeeee.test(this.newPassword)) {
 | 
						||
						this.$showToast({
 | 
						||
							title: "请设置6-15位的密码",
 | 
						||
							content: "至少包含字母、数字",
 | 
						||
							icon: 'fail',
 | 
						||
							success: res => {}
 | 
						||
						});
 | 
						||
						return
 | 
						||
					}
 | 
						||
					const res = await modifyPassword(params)
 | 
						||
					if (res.IsSuccessful) {
 | 
						||
						this.$showToast({
 | 
						||
							title: "修改密码成功",
 | 
						||
							content: "",
 | 
						||
							icon: 'success',
 | 
						||
							success: res => {
 | 
						||
								uni.removeStorageSync('accessToken')
 | 
						||
								uni.removeStorageSync('orgId')
 | 
						||
								uni.removeStorageSync('Tenant')
 | 
						||
								uni.removeStorageSync('appInfo')
 | 
						||
								uni.redirectTo({
 | 
						||
									url: '/pages/login/index'
 | 
						||
								})
 | 
						||
							}
 | 
						||
						});
 | 
						||
					}
 | 
						||
			},
 | 
						||
			gainAuthCodeAction() {
 | 
						||
 | 
						||
			}
 | 
						||
		}
 | 
						||
	}
 | 
						||
</script>
 | 
						||
 | 
						||
<style scoped>
 | 
						||
	.base-info {
 | 
						||
		padding: 10px 0px;
 | 
						||
		width: 100%;
 | 
						||
		height: 100vh;
 | 
						||
		position: relative;
 | 
						||
		box-sizing: border-box;
 | 
						||
		background-color: #F1F2F8;
 | 
						||
 | 
						||
	}
 | 
						||
 | 
						||
	.flex-info {
 | 
						||
		display: flex;
 | 
						||
		flex-direction: row;
 | 
						||
		align-items: center;
 | 
						||
		justify-content: space-between;
 | 
						||
		background-color: #ffffff;
 | 
						||
		margin-bottom: 1px;
 | 
						||
		padding: 0px 15px;
 | 
						||
	}
 | 
						||
 | 
						||
	.password-info {
 | 
						||
		/* width: 75%; */
 | 
						||
		padding: 15px 0px;
 | 
						||
		flex: 1;
 | 
						||
	}
 | 
						||
 | 
						||
	.label-text {
 | 
						||
		font-size: 16px;
 | 
						||
		width: 25%;
 | 
						||
		margin-right: 20px;
 | 
						||
	}
 | 
						||
 | 
						||
	.warn-info {
 | 
						||
		font-size: 14px;
 | 
						||
		color: #868A93;
 | 
						||
		margin: 5px 0px 0px 15px;
 | 
						||
	}
 | 
						||
 | 
						||
	.info-form {}
 | 
						||
 | 
						||
	.save-btn {
 | 
						||
		margin: 20px 15px 0px 15px;
 | 
						||
	}
 | 
						||
</style> |