UpdatePassword2.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <template>
  2. <v-dialog
  3. title="修改密码"
  4. :close-on-click-modal="true"
  5. append-to-body
  6. v-model="dialogVisible"
  7. width="70%"
  8. height="600px"
  9. >
  10. <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmit()"
  11. label-width="80px" @submit.native.prevent>
  12. <div style="margin-bottom: 20px;" v-if="showTip">
  13. <el-alert
  14. title="当前账号的密码仍为初始密码,风险较大,请及时修改"
  15. type="warning"
  16. :closable="false"
  17. center
  18. show-icon>
  19. </el-alert>
  20. </div>
  21. <el-form-item label="账号">
  22. <span>{{ userName }}</span>
  23. </el-form-item>
  24. <el-form-item label="原密码" prop="password">
  25. <el-input type="password" size="small" v-model="dataForm.password" ></el-input>
  26. </el-form-item>
  27. <el-form-item label="新密码" prop="newPassword">
  28. <el-input type="password" size="small" v-model="dataForm.newPassword" ></el-input>
  29. </el-form-item>
  30. <el-form-item label="确认密码" prop="confirmPassword">
  31. <el-input type="password" size="small" v-model="dataForm.confirmPassword" ></el-input>
  32. </el-form-item>
  33. </el-form>
  34. <span slot="footer" class="dialog-footer" style="float: right">
  35. <el-button size="large" @click="dialogVisible = false" icon="el-icon-circle-close">关闭</el-button>
  36. <el-button size="large" type="primary" @click="dataFormSubmit()" icon="el-icon-circle-check">确定</el-button>
  37. </span>
  38. </v-dialog>
  39. </template>
  40. <script>
  41. import {clearLoginInfo} from '@/utils'
  42. import userService from '@/api/sys/UserService'
  43. export default {
  44. name:'child',
  45. props:{
  46. innerVisible:{
  47. type: Boolean,
  48. default: false
  49. }
  50. },
  51. data() {
  52. let validateConfirmPassword = (rule, value, callback) => {
  53. if (this.dataForm.newPassword !== value) {
  54. callback(new Error('确认密码与新密码不一致'))
  55. } else {
  56. callback()
  57. }
  58. }
  59. return {
  60. dialogVisible: this.innerVisible,
  61. showTip: true,
  62. dataForm: {
  63. password: '',
  64. newPassword: '',
  65. confirmPassword: ''
  66. },
  67. dataRule: {
  68. password: [
  69. {required: true, message: '原密码不能为空', trigger: 'blur'}
  70. ],
  71. newPassword: [
  72. {required: true, message: '新密码不能为空', trigger: 'blur'}
  73. ],
  74. confirmPassword: [
  75. {required: true, message: '确认密码不能为空', trigger: 'blur'},
  76. {validator: validateConfirmPassword, trigger: 'blur'}
  77. ]
  78. }
  79. };
  80. },
  81. computed: {
  82. userName: {
  83. get () {
  84. return this.$store.state.user.name
  85. }
  86. },
  87. mainTabs: {
  88. get () {
  89. return this.$store.state.common.mainTabs
  90. },
  91. set (val) {
  92. this.$store.commit('common/updateMainTabs', val)
  93. }
  94. }
  95. },
  96. methods: {
  97. // 初始化
  98. init (showTip) {
  99. this.showTip = showTip
  100. this.dialogVisible = true
  101. this.$nextTick(() => {
  102. this.$refs.dataForm.resetFields()
  103. })
  104. },
  105. // 表单提交
  106. dataFormSubmit () {
  107. this.$refs.dataForm.validate((valid) => {
  108. if (valid) {
  109. userService.savePwd({
  110. 'oldPassword': this.dataForm.password,
  111. 'newPassword': this.dataForm.newPassword
  112. }).then((data) => {
  113. this.$message({
  114. message: '修改成功, 请重新登录!',
  115. type: 'success',
  116. duration: 1500
  117. })
  118. this.dialogVisible = false
  119. this.$nextTick(() => {
  120. this.mainTabs = []
  121. clearLoginInfo()
  122. this.$router.push({path: "/login"})
  123. })
  124. })
  125. }
  126. })
  127. }
  128. },
  129. created(){
  130. }
  131. };
  132. </script>
  133. <style></style>