<template>
|
<el-dialog
|
custom-class="sy-modal"
|
|
title="修改密码"
|
:close-on-click-modal="false"
|
width="400px"
|
:before-close="onClose"
|
>
|
<div class="sy-default-form-modal-content" v-loading="loading">
|
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
<el-form-item label="旧密码" prop="uLoginPWDOld">
|
<input type="password" style="width:0;height:0;visibility:hidden;padding:0;border:0;" />
|
<el-input v-model.trim="form.uLoginPWDOld" type="password" placeholder="请输入..." ></el-input>
|
</el-form-item>
|
<el-form-item label="新密码" prop="uLoginPWDNew">
|
<input type="password" style="width:0;height:0;visibility:hidden;padding:0;border:0;" />
|
<el-input v-model.trim="form.uLoginPWDNew" type="password" placeholder="请输入..." ></el-input>
|
</el-form-item>
|
<el-form-item label="确认密码" required prop="uLoginPWDNew2">
|
<input type="password" style="width:0;height:0;visibility:hidden;padding:0;border:0;" />
|
<el-input v-model.trim="form.uLoginPWDNew2" type="password" placeholder="请输入..." ></el-input>
|
</el-form-item>
|
</el-form>
|
</div>
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="onClose">取 消</el-button>
|
<el-button type="primary" @click="onSubmit">提 交</el-button>
|
</span>
|
</template>
|
</el-dialog>
|
</template>
|
|
<script>
|
import md5 from 'js-md5'
|
const defaultForm = {
|
uLoginPWDOld:'',
|
uLoginPWDNew:'',
|
uLoginPWDNew2:''
|
}
|
export default {
|
name:'modifyMyPasswordModalCompontent',
|
emits:['update:visible'],
|
props:{
|
visible:{
|
type:Boolean,
|
default:false
|
}
|
},
|
data(){
|
return {
|
loading:false,
|
form:{...defaultForm},
|
rules:{
|
uLoginPWDOld:[
|
{ required: true, message: '请输入旧密码!', trigger: 'blur' }
|
],
|
uLoginPWDNew:[
|
{ required: true, message: '请输入新密码!', trigger: 'blur' }
|
],
|
uLoginPWDNew2:[
|
{ required: true, message: '请再次输入新密码!', trigger: 'blur' },
|
{ validator:this.validatePwd2, trigger: 'blur' }
|
]
|
}
|
}
|
},
|
watch:{
|
visible(newVal,oldVal){
|
if (newVal!==oldVal) {
|
if (newVal) {
|
this.initForm();
|
}
|
}
|
}
|
},
|
methods:{
|
initForm(){
|
this.form = {...defaultForm}
|
this.$nextTick(()=>{
|
this.$refs.form.clearValidate()
|
})
|
},
|
close(){
|
this.$emit('update:visible',false)
|
},
|
onClose(){
|
this.close();
|
},
|
onSubmit(){
|
this.$refs.form.validate((valid) => {
|
if (valid) {
|
this.dealSubmit((f)=>{
|
if (f) {
|
this.close();
|
this.$message.success('修改密码成功!')
|
}
|
})
|
}
|
})
|
},
|
validatePwd2(rule,value,callback){
|
if (value !== this.form.uLoginPWDNew) {
|
callback(new Error('密码输入不一致!'))
|
} else {
|
callback()
|
}
|
},
|
dealSubmit(callback){
|
let params = {...this.form};
|
delete params.uLoginPWDNew2
|
let tempUser = this.$store.getters['user/getUserInfo'];
|
params.uID = tempUser['user_id'];
|
params.uLoginPWDNew = md5(params.uLoginPWDNew).toLocaleUpperCase()
|
params.uLoginPWDOld = md5(params.uLoginPWDOld).toLocaleUpperCase()
|
this.loading = true
|
this.$api.put('UpdatePassword',params,{block:'user'}).then((d)=>{
|
this.loading = false
|
callback && callback(true)
|
}).catch((err)=>{
|
this.loading = false
|
callback && callback(false)
|
})
|
}
|
}
|
}
|
</script>
|
|
<style scoped lang="scss">
|
</style>
|