password.vue 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <template>
  2. <el-card shadow="never" header="修改密码">
  3. <el-alert title="密码更新成功后,您将被重定向到登录页面,您可以使用新密码重新登录。" type="info" show-icon style="margin-bottom: 15px;"/>
  4. <el-form ref="form" :model="form" :rules="rules" label-width="120px" style="margin-top:20px;">
  5. <el-form-item label="当前密码" prop="userPassword">
  6. <el-input v-model="form.userPassword" type="password" show-password placeholder="请输入当前密码"></el-input>
  7. <div class="el-form-item-msg">必须提供当前登录用户密码才能进行更改</div>
  8. </el-form-item>
  9. <el-form-item label="新密码" prop="newPassword">
  10. <el-input v-model="form.newPassword" type="password" show-password placeholder="请输入新密码"></el-input>
  11. <sc-password-strength v-model="form.newPassword"></sc-password-strength>
  12. <div class="el-form-item-msg">请输入包含英文、数字的8位以上密码</div>
  13. </el-form-item>
  14. <el-form-item label="确认新密码" prop="confirmNewPassword">
  15. <el-input v-model="form.confirmNewPassword" type="password" show-password placeholder="请再次输入新密码"></el-input>
  16. </el-form-item>
  17. <el-form-item>
  18. <el-button type="primary" @click="save">保存密码</el-button>
  19. </el-form-item>
  20. </el-form>
  21. </el-card>
  22. </template>
  23. <script>
  24. import scPasswordStrength from '@/components/scPasswordStrength'
  25. export default {
  26. components: {
  27. scPasswordStrength
  28. },
  29. data() {
  30. return {
  31. form: {
  32. userPassword: "",
  33. newPassword: "",
  34. confirmNewPassword: ""
  35. },
  36. rules: {
  37. userPassword: [
  38. { required: true, message: '请输入当前密码'}
  39. ],
  40. newPassword: [
  41. { required: true, message: '请输入新密码'}
  42. ],
  43. confirmNewPassword: [
  44. { required: true, message: '请再次输入新密码'},
  45. {validator: (rule, value, callback) => {
  46. if (value !== this.form.newPassword) {
  47. callback(new Error('两次输入密码不一致'));
  48. }else{
  49. callback();
  50. }
  51. }}
  52. ]
  53. }
  54. }
  55. },
  56. methods: {
  57. save(){
  58. this.$refs.form.validate(valid => {
  59. if (valid) {
  60. this.$alert("密码修改成功,是否跳转至登录页使用新密码登录", "修改成功", {
  61. type: 'success',
  62. center: true
  63. }).then(() => {
  64. this.$router.replace({
  65. path: '/login'
  66. })
  67. }).catch(() => {})
  68. }else{
  69. return false
  70. }
  71. })
  72. }
  73. }
  74. }
  75. </script>
  76. <style>
  77. </style>