Vue+Elenment+LayUI 修改用户密码

需求:基于Element-UI和LayUI搭建的后台管理系统,除了有权限的管理员手动修改所有人的用户密码以外,需要添加一个自己能修改密码的功能。

效果图
1:添加修改密码
在这里插入图片描述
2:点击修改密码弹出el-dialog弹框
在这里插入图片描述

附上代码

1:首先是弹出框的代码


 <el-dialog
      :title="dialogParamsU.title"
      :visible.sync="dialogParamsU.visible"
      :close-on-click-modal="false"
      custom-class="el-dialog--width360">
	       <el-form :model="dataU = data01.Content" :rules="dialogParamsU.rules" ref="dataU">
	       	<el-form-item label="用户编号" prop="UserCode" :label-width="dialogParamsU.formLabelWidth">
	          <el-input v-model="dataU.UserCode" :disabled="true" placeholder="" auto-complete="off"></el-input>
	        </el-form-item>
	        <el-form-item label="原密码" prop="OldPassword" :label-width="dialogParamsU.formLabelWidth">
	          <el-input v-model="dataU.OldPassword"  placeholder="请输入原密码" auto-complete="off"></el-input>
	        </el-form-item>
	        <el-form-item label="新密码" prop="NewPassword" :label-width="dialogParamsU.formLabelWidth">
	          <el-input v-model="dataU.NewPassword" placeholder="请输入新密码" auto-complete="off"></el-input>
	        </el-form-item>
	        <el-form-item label="确认密码" prop="NewPassword2" :label-width="dialogParamsU.formLabelWidth">
	          <el-input v-model="dataU.NewPassword2" placeholder="请再次输入新密码" auto-complete="off"></el-input>
	        </el-form-item>
	      </el-form>
	      <span slot="footer" class="dialog-footer">
        	<el-button type="success" @click.native.prevent="onSubmit('dataU')"  style="margin-left:-50px;">修改密码</el-button>
      	  </span>   
    </el-dialog>


2:Vue.JS代码



<script>
	export default {
		name: 'VHeader',
		data() {
			//此处添加表单发送之前的验证
			
			//声明validateNewPassword变量验证首次输入的新密码
			var validateNewPassword = (rule, value, callback) => {
				if(!value) {
					callback(new Error("请输入新密码"));
				} else if(value.toString().length < 6 || value.toString().length > 18) {
					callback(new Error("密码长度为6-18位"));
				} else {
					callback();
				}
			};
			
			//声明validateNewPassword2验证再次输入的新密码,并与首次输入的新密码做比较
			var validateNewPassword2 = (rule, value, callback) => {
				if(value === "") {
					callback(new Error("请再次输入密码"));
				} else if(value !== this.data01.Content.NewPassword) {
					callback(new Error("两次输入密码不一致!"));
				} else {
					callback();
				}
			};
			return {
				UserCode: global.MS.UserCode,
				data01: { // 点击保存提交数据给后台
					Content: {
						UserCode: global.MS.UserCode,
						OldPassword: '',
						NewPassword: '',
					},
					Method: ''
				},

				//弹出框标题,大小控制,以及验证每个input框
				dialogParamsU: {
					title: '修改密码',
					visible: false,
					formLabelWidth: '85px',
					rules: {
						//验证旧密码
						OldPassword: [{
							required: true,
							message: '请输入原密码',
							trigger: 'blur'
						}],
						//验证新密码
						NewPassword: [{
							required: true,
							validator: validateNewPassword,
							trigger: 'blur'
						}],
						//验证再次输入的新密码
						NewPassword2: [{
							required: true,
							validator: validateNewPassword2,
							trigger: 'blur'
						}]

					}
				},
				isShow: false
			}
		},
		methods: {
			//点击修改密码弹出框显示
			changePassword() {
				this.dialogParamsU.visible = true
			},
			//添加保存提交表单
			onSubmit() {
				this.$refs.dataU.validate(valid => {
					if(valid) {
						this.$axios({
							method: 'post',
							url: global.MDM + '/MDM0001', //接口地址,不做参考,请根据实际接口地址书写即可
							data: this.data01           //点击保存以后提交的数据
						}).then((res) => {
							if(res.data.Status === 200) {
								this.$notify({
									title: '修改成功',
									message: '您的账户密码已修改成功,5秒后跳转到登录页',
									type: 'success'
								})
								this.dialogParamsU.visible = false		//修改成功以后关闭当前弹出框
								setTimeout(() => {
									this.$router.push('/login')         //修改成功以后跳转到登录页
								}, 5000);
							} else {
								this.$notify.warning({
									title: '修改失败',
									message: '您的修改密码失败,请输入正确的原密码'
								})
							}
						})
						} else {
							return false
						}
				})
			},

		}

	}
</script>



总结:细心是很重要的,希望多多指教

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值