163 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
<template>
 | 
						|
	<page-meta :page-font-size="fontValue+'px'" :root-font-size="fontValue+'px'"></page-meta>
 | 
						|
	<view>
 | 
						|
		<view class="changePw">
 | 
						|
			<u--form labelPosition="left" :model="formData" :rules="rules" ref="uForm" labelWidth="80">
 | 
						|
				<u-form-item label="旧密码:" prop="formData.oldPw" borderBottom>
 | 
						|
					<u--input v-model="formData.oldPw" border="none" clearable :password="!oldPwShow" maxlength="16" placeholder="请输入旧密码">
 | 
						|
						<template slot="suffix">
 | 
						|
							<u-icon :name="oldPwShow?'eye-fill':'eye-off'" size="20" style="margin-left: 10rpx;" @click="showPw('oldPw')"></u-icon>
 | 
						|
						</template>
 | 
						|
					</u--input>
 | 
						|
				</u-form-item>
 | 
						|
				<u-form-item label="新密码:" prop="formData.newPw" borderBottom>
 | 
						|
					<u--input v-model="formData.newPw" border="none" clearable :password="!newPwShow" maxlength="16" placeholder="请输入新密码">
 | 
						|
						<template slot="suffix">
 | 
						|
							<u-icon :name="newPwShow?'eye-fill':'eye-off'" size="20" style="margin-left: 10rpx;" @click="showPw('newPw')"></u-icon>
 | 
						|
						</template>
 | 
						|
					</u--input>
 | 
						|
				</u-form-item>
 | 
						|
				<u-form-item label="确认密码:" prop="formData.confirmPw">
 | 
						|
					<u--input v-model="formData.confirmPw" border="none" clearable :password="!confirmPwShow" maxlength="16" placeholder="请确认密码">
 | 
						|
						<template slot="suffix">
 | 
						|
							<u-icon :name="confirmPwShow?'eye-fill':'eye-off'" size="20" style="margin-left: 10rpx;" @click="showPw('confirmPw')"></u-icon>
 | 
						|
						</template>
 | 
						|
					</u--input>
 | 
						|
				</u-form-item>
 | 
						|
			</u--form>
 | 
						|
		</view>
 | 
						|
		
 | 
						|
		
 | 
						|
		<button class="verify-btn" @click="confirmPwClick()">修改</button>
 | 
						|
	</view>
 | 
						|
</template>
 | 
						|
 | 
						|
<script>
 | 
						|
	import AES from '@/utils/aes';
 | 
						|
	import {updateUserPwd} from "@/api/system/user";
 | 
						|
	
 | 
						|
	export default {
 | 
						|
		data() {
 | 
						|
			return {
 | 
						|
				fontValue:uni.getStorageSync('fontSize') || 8,
 | 
						|
				formData: {
 | 
						|
					oldPw: '',
 | 
						|
					newPw: '',
 | 
						|
					confirmPw: ''
 | 
						|
				},
 | 
						|
				oldPwShow: false,
 | 
						|
				newPwShow: false,
 | 
						|
				confirmPwShow: false,
 | 
						|
				rules: {
 | 
						|
					'formData.oldPw': [
 | 
						|
						{
 | 
						|
								validator: (rule, value, callback) => {
 | 
						|
									if(this.formData.oldPw == "") {
 | 
						|
										return false
 | 
						|
									}else{
 | 
						|
										return true
 | 
						|
									}
 | 
						|
								},
 | 
						|
								message: '旧密码填写错误,请检查'
 | 
						|
						}
 | 
						|
					],
 | 
						|
					'formData.newPw': [
 | 
						|
						{
 | 
						|
								validator: (rule, value, callback) => {
 | 
						|
									if(this.formData.confirmPw) {
 | 
						|
										if(this.formData.newPw != this.formData.confirmPw) {
 | 
						|
											callback(new Error('新密码与确认密码不一致,请检查'));
 | 
						|
											return false
 | 
						|
										}else{
 | 
						|
											return true
 | 
						|
										}
 | 
						|
									}else{
 | 
						|
										callback(new Error('请输入密码'));
 | 
						|
									}
 | 
						|
								}
 | 
						|
						}
 | 
						|
					],
 | 
						|
					'formData.confirmPw': [
 | 
						|
						{
 | 
						|
								validator: (rule, value, callback) => {
 | 
						|
									if(this.formData.newPw) {
 | 
						|
										if(this.formData.newPw != this.formData.confirmPw) {
 | 
						|
											callback(new Error('新密码与确认密码不一致,请检查'));
 | 
						|
											return false
 | 
						|
										}else{
 | 
						|
											return true
 | 
						|
										}
 | 
						|
									}else{
 | 
						|
										callback(new Error('请输入密码'));
 | 
						|
									}
 | 
						|
								}
 | 
						|
						}
 | 
						|
					]
 | 
						|
				}
 | 
						|
			}
 | 
						|
		},
 | 
						|
		methods: {
 | 
						|
			showPw(type) {
 | 
						|
				if(type == 'oldPw') {
 | 
						|
					this.oldPwShow = !this.oldPwShow
 | 
						|
				}else if(type == 'newPw') {
 | 
						|
					this.newPwShow = !this.newPwShow
 | 
						|
				}else if(type == 'confirmPw') {
 | 
						|
					this.confirmPwShow = !this.confirmPwShow
 | 
						|
				}
 | 
						|
			},
 | 
						|
			confirmPwClick() {
 | 
						|
				this.$refs.uForm.validate().then(res => {
 | 
						|
					let param = { 
 | 
						|
						"oldPassword":this.formData.oldPw,
 | 
						|
						"newPassword":this.formData.newPw
 | 
						|
					}
 | 
						|
					updateUserPwd(param).then(res => {
 | 
						|
						if(res.code==200){
 | 
						|
							uni.$u.toast('修改成功,请重新登录!')
 | 
						|
							setTimeout(()=>{
 | 
						|
								this.$tab.reLaunch('/pages/login')
 | 
						|
							},1000)
 | 
						|
							
 | 
						|
						}else{
 | 
						|
							uni.$u.toast(res.msg)
 | 
						|
						}
 | 
						|
					})
 | 
						|
				})
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
</script>
 | 
						|
 | 
						|
<style scoped lang="scss">
 | 
						|
.changePw {
 | 
						|
	background-color: #ffffff;
 | 
						|
	padding: 20rpx 30rpx;
 | 
						|
	box-sizing: border-box;
 | 
						|
}
 | 
						|
/deep/.u-form-item__body {
 | 
						|
	padding:  30rpx 0 !important;
 | 
						|
}
 | 
						|
.verify-btn {
 | 
						|
  width: 90%;
 | 
						|
  height: 72rpx;
 | 
						|
  background: #FF8126;
 | 
						|
  color: #fff;
 | 
						|
  font-size: 28rpx;
 | 
						|
  font-weight: 500;
 | 
						|
  border-radius: 32rpx;
 | 
						|
  display: flex;
 | 
						|
  align-items: center;
 | 
						|
  justify-content: center;
 | 
						|
  border: none;
 | 
						|
	margin-top: 100rpx;
 | 
						|
 | 
						|
  &:disabled {
 | 
						|
    opacity: 0.5;
 | 
						|
  }
 | 
						|
 | 
						|
  &:active {
 | 
						|
    opacity: 0.9;
 | 
						|
  }
 | 
						|
}
 | 
						|
</style> |