index.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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. ElMessage({
  26. message: "修改成功",
  27. type: "success"
  28. });
  29. // ElMessageBox.confirm("密码已修改请重新登录", {
  30. // confirmButtonText: "确定",
  31. // cancelButtonText: "取消",
  32. // type: "warning"
  33. // }).then(() => {
  34. // localStorage.clear();
  35. // router.push("/login");
  36. // });
  37. } else {
  38. // ElMessage({
  39. // message: "修改失败",
  40. // type: "error"
  41. // });
  42. }
  43. } else {
  44. return;
  45. }
  46. });
  47. };
  48. const rules = {
  49. oldPwd: [{ required: true, message: "请输入密码", trigger: "blur" }],
  50. newPwd: [
  51. { required: true, message: "请输入 6 - 14 位密码", trigger: "blur" },
  52. {
  53. min: 6,
  54. max: 14,
  55. message: "请输入 6 - 14 位密码",
  56. trigger: "blur"
  57. }
  58. ],
  59. reNewPwd: [
  60. { required: true, message: "请再次输入新密码", trigger: "blur" },
  61. {
  62. validator: (rule, value, callback) => {
  63. if (value !== formLabelAlign.newPwd) {
  64. callback(new Error("两次输入的密码不一致"));
  65. } else {
  66. callback();
  67. }
  68. },
  69. trigger: "blur"
  70. }
  71. ]
  72. };
  73. </script>
  74. <template>
  75. <div class="box">
  76. <el-form
  77. ref="formRef"
  78. class="m-auto form"
  79. label-position="top"
  80. label-width="auto"
  81. status-icon
  82. :rules="rules"
  83. :model="formLabelAlign"
  84. style="max-width: 400px"
  85. >
  86. <el-form-item label="账户">
  87. <el-input v-model="formLabelAlign.name" disabled />
  88. </el-form-item>
  89. <el-form-item label="旧密码" prop="oldPwd">
  90. <el-input v-model="formLabelAlign.oldPwd" placeholder="请输入密码" />
  91. </el-form-item>
  92. <el-form-item label="新密码" prop="newPwd">
  93. <el-input
  94. v-model="formLabelAlign.newPwd"
  95. type="password"
  96. show-password
  97. placeholder="请输入 6 - 14 位密码"
  98. />
  99. </el-form-item>
  100. <el-form-item label="再次输入密码" prop="reNewPwd">
  101. <el-input
  102. v-model="formLabelAlign.reNewPwd"
  103. type="password"
  104. show-password
  105. placeholder="请输入 6 - 14 位密码"
  106. />
  107. </el-form-item>
  108. <el-form-item label="">
  109. <el-button type="primary" @click="UpdatePasswordApi">提交</el-button>
  110. </el-form-item>
  111. </el-form>
  112. </div>
  113. </template>
  114. <style lang="scss" scoped>
  115. .form {
  116. margin-top: 10%;
  117. }
  118. </style>