You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
3.6 KiB
149 lines
3.6 KiB
<template> |
|
<div> |
|
<basic-container> |
|
<avue-tabs :option="tabOption" @change="handleTabClick"></avue-tabs> |
|
<div v-if="index === 0"> |
|
<avue-form :option="userInfoOption" v-model="form" @submit="handleSubmit"></avue-form> |
|
</div> |
|
<div v-else-if="index === 1"><avue-form ref="pwdForm" :option="userPwdOption" v-model="pwdform" @submit="handleSubmit2"> |
|
</avue-form> |
|
</div> |
|
</basic-container> |
|
</div> |
|
</template> |
|
|
|
<script> |
|
import { userInfoOption } from "@/option/user/info"; |
|
import { getUserInfo, updateInfo, updatePassword } from "@/api/system/user"; |
|
import md5 from 'js-md5'; |
|
import func from "@/util/func"; |
|
|
|
|
|
export default { |
|
data() { |
|
var validatePass2 = (rule, value, callback) => { |
|
if (value === '') { |
|
callback(new Error('请再次输入密码')); |
|
} else if (value !== this.pwdform.newPassword1) { |
|
callback(new Error('两次输入密码不一致!')); |
|
} else { |
|
callback(); |
|
} |
|
}; |
|
return { |
|
index: 0, |
|
tabOption: { |
|
column: [{ |
|
label: '个人信息', |
|
prop: '0', |
|
}, { |
|
label: '修改密码', |
|
prop: '1', |
|
},] |
|
}, |
|
userInfoOption: userInfoOption, |
|
userPwdOption: { |
|
column: [{ |
|
label: '原密码', |
|
span: 12, |
|
row: true, |
|
type: 'password', |
|
prop: 'oldPassword', |
|
rules: [{ |
|
required: true, |
|
message: "请输入原密码", |
|
trigger: "blur" |
|
}] |
|
}, { |
|
label: '新密码', |
|
span: 12, |
|
row: true, |
|
type: 'password', |
|
prop: 'newPassword', |
|
rules: [{ |
|
required: true, |
|
message: "请输入新密码", |
|
trigger: "blur" |
|
}] |
|
}, { |
|
label: '确认密码', |
|
span: 12, |
|
row: true, |
|
type: 'password', |
|
prop: 'newPassword1', |
|
rules: [{ validator: validatePass2, trigger: 'blur' }] |
|
}] |
|
}, |
|
form: {}, |
|
pwdform: {} |
|
}; |
|
}, |
|
created() { |
|
this.handleWitch(); |
|
}, |
|
methods: { |
|
handleSubmit(form, done) { |
|
updateInfo(form).then(res => { |
|
if (res.data.success) { |
|
this.$message({ |
|
type: "success", |
|
message: "修改信息成功!" |
|
}); |
|
} else { |
|
this.$message({ |
|
type: "error", |
|
message: res.data.msg |
|
}); |
|
} |
|
done(); |
|
}, error => { |
|
window.console.log(error); |
|
done(); |
|
}) |
|
}, |
|
handleSubmit2(form, done) { |
|
updatePassword(md5(form.oldPassword), md5(form.newPassword), md5(form.newPassword1)).then(res => { |
|
if (res.data.success) { |
|
this.$message({ |
|
type: "success", |
|
message: "修改密码成功!" |
|
}); |
|
} else { |
|
this.$message({ |
|
type: "error", |
|
message: res.data.msg |
|
}); |
|
} |
|
done(); |
|
}, error => { |
|
window.console.log(error); |
|
done(); |
|
}) |
|
}, |
|
handleWitch() { |
|
if (this.index === 0) { |
|
getUserInfo().then(res => { |
|
const user = res.data.data; |
|
this.form = { |
|
id: user.id, |
|
avatar: user.avatar, |
|
name: user.name, |
|
realName: user.realName, |
|
phone: user.phone, |
|
email: user.email, |
|
} |
|
}); |
|
} |
|
}, |
|
handleTabClick(tabs) { |
|
if(tabs.prop != '1'){ |
|
this.$refs.pwdForm.resetForm(); |
|
} |
|
this.index = func.toInt(tabs.prop); |
|
this.handleWitch(); |
|
} |
|
} |
|
}; |
|
</script> |
|
|
|
<style></style>
|
|
|