index.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <template>
  2. <div class="app-container">
  3. <el-card class="filter-container" shadow="hover">
  4. <back-button></back-button>
  5. </el-card>
  6. <el-card class="filter-container" style="margin-top: 20px;" shadow="hover">
  7. <el-form :model="admin" ref="admin" label-width="150px" :rules="rules" size="small">
  8. <div class="blSet">
  9. <h4>修改密码</h4>
  10. </div>
  11. <el-form-item label="登录账号:" prop="username">
  12. <el-input v-model="admin.username" disabled type="text" style="width: 250px"></el-input>
  13. </el-form-item>
  14. <el-form-item label="旧密码:" prop="oldPassword">
  15. <el-input v-model="admin.oldPassword" clearable placeholder="请输入历史密码" type="number" number
  16. style="width: 250px"></el-input>
  17. </el-form-item>
  18. <el-form-item label="新密码:" prop="pwd">
  19. <el-input v-model="admin.pwd" clearable placeholder="请输入新密码" type="" number
  20. style="width: 250px"></el-input>
  21. </el-form-item>
  22. <el-form-item label="确认密码:" prop="newPassword">
  23. <el-input v-model="admin.newPassword" clearable placeholder="请确认密码" type="" number
  24. style="width: 250px"></el-input>
  25. </el-form-item>
  26. </el-form>
  27. <el-divider content-position="left"></el-divider>
  28. <div style="display: flex;align-items: center;justify-content: center;">
  29. <el-button type="primary" @click="submitForm" size="medium">保存</el-button>
  30. </div>
  31. </el-card>
  32. </div>
  33. </template>
  34. <script>
  35. import { getCookie } from '@/utils/support';
  36. import { updatePassword } from '@/api/distribution';
  37. import { removeToken } from '@/utils/auth';
  38. const defaultAdmin = {
  39. username: null,
  40. oldPassword: null,
  41. pwd: null,
  42. newPassword: null
  43. };
  44. export default {
  45. data() {
  46. return {
  47. admin: Object.assign({}, defaultAdmin),
  48. rules: {
  49. oldPassword: [
  50. { required: true, message: '请输入历史密码', trigger: 'blur' },
  51. ],
  52. pwd: [
  53. { required: true, message: '请输入新密码', trigger: 'blur' },
  54. { min: 6, max: 12, message: '长度在 6 到 12 个字符', trigger: 'blur' },
  55. ],
  56. newPassword: [
  57. { required: true, message: '请输入二次确认密码', trigger: 'blur' },
  58. { min: 6, max: 12, message: '长度在 6 到 12 个字符', trigger: 'blur' },
  59. ]
  60. }
  61. }
  62. },
  63. created() {
  64. this.admin.username = getCookie("username")
  65. },
  66. computed: {
  67. },
  68. methods: {
  69. submitForm() {
  70. let data = {
  71. oldPassword: this.admin.oldPassword,
  72. newPassword: this.admin.newPassword
  73. }
  74. if (this.admin.oldPassword == this.admin.newPassword) {
  75. this.$message.error('新密码不能与旧密码相同')
  76. return
  77. }
  78. if (this.admin.pwd != this.admin.newPassword) {
  79. this.$message.error('两次输入的密码不一致')
  80. return
  81. }
  82. this.$refs.admin.validate(valid => {
  83. if (valid) {
  84. updatePassword({ ...data }).then(res => {
  85. if (res.code == 200) {
  86. this.$message.success('修改成功,请重新登录')
  87. this.$store.dispatch('LogOut').then(() => {
  88. location.reload()
  89. })
  90. removeToken()
  91. window.localStorage.clear()
  92. }
  93. })
  94. }
  95. })
  96. }
  97. },
  98. }
  99. </script>
  100. <style lang="scss" scoped></style>