resePassword.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <template>
  2. <div>
  3. <el-dialog
  4. title="重置密码"
  5. :visible.sync="visible"
  6. width="500px"
  7. :before-close="close"
  8. :close-on-click-modal="false">
  9. <el-form :model="form" :rules="rules" ref="ruleForm" class="demo-ruleForm">
  10. <el-form-item label="账号" prop="personnelUserName">
  11. <el-input v-model="form.personnelUserName" placeholder="请输入账号"></el-input>
  12. </el-form-item>
  13. <el-form-item label="邮箱" prop="personnelEmail">
  14. <el-input v-model="form.personnelEmail" placeholder="请输入账号绑定的邮箱"></el-input>
  15. </el-form-item>
  16. </el-form>
  17. <span slot="footer" class="dialog-footer">
  18. <el-button @click="close">取 消</el-button>
  19. <el-button type="primary" @click="sure">确 定</el-button>
  20. </span>
  21. </el-dialog>
  22. </div>
  23. </template>
  24. <script>
  25. export default {
  26. data() {
  27. const errorPersonnelEmail = (rule, value, callback) => {
  28. if (rule.errorMessage) {
  29. callback(new Error(rule.errorMessage))
  30. } else {
  31. if (!value) {
  32. callback(new Error('请输入账号绑定的邮箱'))
  33. } else {
  34. let reg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9_\.\-])+\.)+([a-zA-Z0-9]{2,4})+$/
  35. let re = new RegExp(reg)
  36. if (re.test(value)) {
  37. callback()
  38. } else {
  39. callback(new Error('请输入正确的邮箱格式'))
  40. }
  41. }
  42. }
  43. }
  44. const errorPersonnelUserName = (rule, value, callback) => {
  45. if (rule.errorMessage) {
  46. callback(new Error(rule.errorMessage))
  47. } else {
  48. if (!value) {
  49. callback(new Error('请输入账号'))
  50. } else {
  51. callback()
  52. }
  53. }
  54. }
  55. return {
  56. form: {},
  57. visible: false,
  58. rules: {
  59. personnelUserName: [{ required: true, validator:errorPersonnelUserName, trigger: 'blur' },],
  60. personnelEmail: [
  61. { required: true, validator:errorPersonnelEmail, trigger: "blur" },
  62. ]
  63. },
  64. }
  65. },
  66. mounted() {
  67. },
  68. methods: {
  69. open() {
  70. this.visible = true
  71. },
  72. sure() {
  73. this.$refs.ruleForm.validate((valid) => {
  74. if (valid) {
  75. this.$api.reSetPasswordBeforeLogin(this.form).then(res => {
  76. if (res.code == 200) {
  77. this.$message.success('密码重置成功,请您到邮箱中查看新密码')
  78. this.close()
  79. }
  80. }).catch(error => {
  81. if (error.message.indexOf('账号') != -1) {
  82. var personnel = 'personnelUserName'
  83. }else if (error.message.indexOf('邮箱')!=-1) {
  84. var personnel = 'personnelEmail'
  85. }
  86. this.rules[personnel][0].errorMessage = error.message
  87. this.$refs.ruleForm.validateField(personnel)
  88. this.rules[personnel][0].errorMessage = ''
  89. })
  90. } else {
  91. return false;
  92. }
  93. });
  94. },
  95. close() {
  96. this.visible = false
  97. this.$refs.ruleForm.resetFields()
  98. },
  99. },
  100. }
  101. </script>
  102. <style lang="scss" scoped>
  103. </style>