changePassword.vue 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <template>
  2. <!-- 修改密码 -->
  3. <div class="changePassword flex-col">
  4. <s-header :name="$t('changePassword.changePassword')" :noback="false"></s-header>
  5. <div class="changePasswordFormBox">
  6. <van-form @submit="changePasswordSubmit">
  7. <van-field v-model="password" name="password" type="password" :label="$t('changePassword.passwordLabel')"
  8. :placeholder="$t('changePassword.passwordPlaceholder')"
  9. :rules="[{ required: true, message: $t('changePassword.passwordRequired') }]" />
  10. <br>
  11. <van-field v-model="passwordCheck" name="passwordCheck" type="password"
  12. :label="$t('changePassword.passwordCheckLabel')" :placeholder="$t('changePassword.passwordCheckPlaceholder')"
  13. :rules="[{ required: true, message: $t('changePassword.passwordCheckRequired') }]" />
  14. <van-button round type="primary" class="register" native-type="submit">{{ $t('changePassword.registerButton') }}
  15. </van-button>
  16. </van-form>
  17. </div>
  18. </div>
  19. </template>
  20. <script>
  21. import md5 from 'js-md5';
  22. import { ref } from 'vue';
  23. import { showToast, showFailToast } from 'vant';
  24. import sHeader from "@/components/SimpleHeader";
  25. // import { useRouter, useRoute } from "vue-router";
  26. import { useRouter } from "vue-router";
  27. import { updatePassword } from '@/service/changePassword';
  28. import { useI18n } from 'vue-i18n';
  29. import { getLoginUser } from "@/common/js/utils";
  30. import { styleUrl } from '../common/js/utils';
  31. export default {
  32. setup() {
  33. // 引入语言
  34. const { t } = useI18n();
  35. const router = useRouter();
  36. // const route = useRoute();
  37. const user = getLoginUser();
  38. const password = ref('');
  39. const passwordCheck = ref('');
  40. // 加载样式
  41. styleUrl('changePassword');
  42. // 验证-表单
  43. const changePasswordSubmit = async () => {
  44. if (password.value !== passwordCheck.value) {
  45. showFailToast(t('changePassword.inconsistentPasswords'));
  46. return false;
  47. }
  48. const { data } = await updatePassword({
  49. // username: route.query.name,
  50. username: user.username,
  51. password: md5(password.value)
  52. });
  53. if (data.code === '00000') {
  54. showToast(t('changePassword.pwdEditSucess'));
  55. router.push({ path: '/login' });
  56. } else {
  57. showFailToast(data.message);
  58. }
  59. };
  60. return {
  61. password,
  62. passwordCheck,
  63. changePasswordSubmit
  64. };
  65. },
  66. components: { sHeader },
  67. };
  68. </script>
  69. <style lang="less" scoped>
  70. @import "../common/style/mixin";
  71. </style>