index.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <script setup lang="ts">
  2. defineOptions({
  3. name: "possword"
  4. });
  5. import { reactive, ref } from "vue";
  6. import { useRouter } from "vue-router";
  7. import { ElMessage, ElMessageBox } from "element-plus";
  8. import { postUpdatePassword } from "@/api/password";
  9. const router = useRouter();
  10. const formRef = ref();
  11. const formLabelAlign = reactive({
  12. name: "",
  13. oldPwd: "",
  14. newPwd: "",
  15. reNewPwd: ""
  16. });
  17. // const passWord = ref("");
  18. // passWord.value = localStorage.getItem("password");
  19. formLabelAlign.name = localStorage.getItem("userName");
  20. const UpdatePasswordApi = async () => {
  21. formRef.value.validate(async (valid: boolean) => {
  22. if (valid) {
  23. const { code } = await postUpdatePassword(formLabelAlign);
  24. if (code === 200) {
  25. Object.assign(formLabelAlign, {
  26. oldPwd: "",
  27. newPwd: "",
  28. reNewPwd: ""
  29. });
  30. ElMessage({
  31. message: "修改成功",
  32. type: "success"
  33. });
  34. // ElMessageBox.confirm("密码已修改请重新登录", {
  35. // confirmButtonText: "确定",
  36. // cancelButtonText: "取消",
  37. // type: "warning"
  38. // }).then(() => {
  39. // localStorage.clear();
  40. // router.push("/login");
  41. // });
  42. } else {
  43. // ElMessage({
  44. // message: "修改失败",
  45. // type: "error"
  46. // });
  47. }
  48. } else {
  49. return;
  50. }
  51. });
  52. };
  53. const rules = {
  54. oldPwd: [{ required: true, message: "请输入密码", trigger: "blur" }],
  55. newPwd: [
  56. { required: true, message: "请输入 6 - 14 位密码", trigger: "blur" },
  57. {
  58. min: 6,
  59. max: 14,
  60. message: "请输入 6 - 14 位密码",
  61. trigger: "blur"
  62. }
  63. ],
  64. reNewPwd: [
  65. { required: true, message: "请再次输入新密码", trigger: "blur" },
  66. {
  67. validator: (rule, value, callback) => {
  68. if (value !== formLabelAlign.newPwd) {
  69. callback(new Error("两次输入的密码不一致"));
  70. } else {
  71. callback();
  72. }
  73. },
  74. trigger: "blur"
  75. }
  76. ]
  77. };
  78. </script>
  79. <template>
  80. <div class="box">
  81. <el-form
  82. ref="formRef"
  83. class="m-auto form"
  84. label-position="top"
  85. label-width="auto"
  86. status-icon
  87. :rules="rules"
  88. :model="formLabelAlign"
  89. style="max-width: 400px"
  90. >
  91. <el-form-item label="账户">
  92. <el-input v-model="formLabelAlign.name" disabled />
  93. </el-form-item>
  94. <el-form-item label="旧密码" prop="oldPwd">
  95. <el-input v-model="formLabelAlign.oldPwd" placeholder="请输入密码" />
  96. </el-form-item>
  97. <el-form-item label="新密码" prop="newPwd">
  98. <el-input
  99. v-model="formLabelAlign.newPwd"
  100. type="password"
  101. show-password
  102. placeholder="请输入 6 - 14 位密码"
  103. />
  104. </el-form-item>
  105. <el-form-item label="再次输入密码" prop="reNewPwd">
  106. <el-input
  107. v-model="formLabelAlign.reNewPwd"
  108. type="password"
  109. show-password
  110. placeholder="请输入 6 - 14 位密码"
  111. />
  112. </el-form-item>
  113. <el-form-item label="">
  114. <el-button type="primary" @click="UpdatePasswordApi">提交</el-button>
  115. </el-form-item>
  116. </el-form>
  117. </div>
  118. </template>
  119. <style lang="scss" scoped>
  120. .form {
  121. margin-top: 10%;
  122. }
  123. </style>