ADD: Recuperación de contraseña
This commit is contained in:
parent
b68bd0c27b
commit
31862e7cf5
@ -18,6 +18,7 @@ const emit = defineEmits([
|
|||||||
/** Propiedades */
|
/** Propiedades */
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
class: String,
|
class: String,
|
||||||
|
disabled: Boolean,
|
||||||
id: String,
|
id: String,
|
||||||
modelValue: Number | String,
|
modelValue: Number | String,
|
||||||
onError: String | Array,
|
onError: String | Array,
|
||||||
@ -71,6 +72,8 @@ onMounted(() => {
|
|||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
ref="input"
|
ref="input"
|
||||||
class="input-primary"
|
class="input-primary"
|
||||||
|
:class="{ 'cursor-not-allowed': disabled }"
|
||||||
|
:disabled="disabled"
|
||||||
:id="autoId"
|
:id="autoId"
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
:required="required"
|
:required="required"
|
||||||
|
|||||||
@ -18,6 +18,7 @@ const emit = defineEmits([
|
|||||||
/** Propiedades */
|
/** Propiedades */
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
class: String,
|
class: String,
|
||||||
|
disabled: Boolean,
|
||||||
id: String,
|
id: String,
|
||||||
icon: String,
|
icon: String,
|
||||||
modelValue: Number | String,
|
modelValue: Number | String,
|
||||||
@ -73,6 +74,8 @@ onMounted(() => {
|
|||||||
v-model="value"
|
v-model="value"
|
||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
class="pl-2 w-full outline-none border-none bg-transparent"
|
class="pl-2 w-full outline-none border-none bg-transparent"
|
||||||
|
:class="{ 'cursor-not-allowed': disabled }"
|
||||||
|
:disabled="disabled"
|
||||||
:id="autoId"
|
:id="autoId"
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
:type="type"
|
:type="type"
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
import { success } from "toastr";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
'&':'y',
|
'&':'y',
|
||||||
account: {
|
account: {
|
||||||
@ -101,6 +103,8 @@ export default {
|
|||||||
description: '¿Ha olvidado su contraseña? No hay problema. Sólo tienes que indicarnos tu dirección de correo electrónico y te enviaremos un enlace para restablecer la contraseña que te permitirá elegir una nueva.',
|
description: '¿Ha olvidado su contraseña? No hay problema. Sólo tienes que indicarnos tu dirección de correo electrónico y te enviaremos un enlace para restablecer la contraseña que te permitirá elegir una nueva.',
|
||||||
sendLink: 'Enviar enlace de recuperación',
|
sendLink: 'Enviar enlace de recuperación',
|
||||||
title: 'Contraseña olvidada',
|
title: 'Contraseña olvidada',
|
||||||
|
success: 'Se ha enviado un enlace de recuperación a su dirección de correo electrónico.',
|
||||||
|
error: 'Error al enviar el enlace de recuperación, intente más tarde.',
|
||||||
},
|
},
|
||||||
login: 'Iniciar sesión',
|
login: 'Iniciar sesión',
|
||||||
logout: 'Cerrar sesión',
|
logout: 'Cerrar sesión',
|
||||||
|
|||||||
@ -18,7 +18,16 @@ const form = useForm({
|
|||||||
|
|
||||||
/** Métodos */
|
/** Métodos */
|
||||||
const submit = () => {
|
const submit = () => {
|
||||||
form.post(route('password.email'));
|
form.post(route('auth.forgot-password'), {
|
||||||
|
onSuccess: () => {
|
||||||
|
Notify.success(Lang('auth.forgotPassword.success'));
|
||||||
|
router.push({ name: 'index' });
|
||||||
|
},
|
||||||
|
onError: () => {
|
||||||
|
Notify.error(Lang('auth.forgotPassword.error'));
|
||||||
|
router.push({ name: 'index' });
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -1,31 +1,45 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
|
import { onMounted, ref } from 'vue';
|
||||||
|
import { useRoute, useRouter } from 'vue-router';
|
||||||
import { useForm } from '@Services/Api.js'
|
import { useForm } from '@Services/Api.js'
|
||||||
|
|
||||||
import PrimaryButton from '@Holos/Button/Primary.vue';
|
import PrimaryButton from '@Holos/Button/Primary.vue';
|
||||||
import Input from '@Holos/Form/InputWithIcon.vue'
|
import Input from '@Holos/Form/InputWithIcon.vue'
|
||||||
|
|
||||||
/** Propiedades */
|
/** Definidores */
|
||||||
const props = defineProps({
|
const vroute = useRoute();
|
||||||
email: String,
|
const router = useRouter();
|
||||||
token: String,
|
|
||||||
});
|
|
||||||
|
|
||||||
|
/** Propiedades */
|
||||||
const form = useForm({
|
const form = useForm({
|
||||||
token: props.token,
|
token: '',
|
||||||
email: props.email,
|
|
||||||
password: '',
|
password: '',
|
||||||
password_confirmation: '',
|
password_confirmation: '',
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const email = ref('');
|
||||||
|
|
||||||
/** Métodos */
|
/** Métodos */
|
||||||
const submit = () => {
|
const submit = () => {
|
||||||
form.post(route('password.update'), {
|
form.post(route('auth.reset-password'), {
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
Notify.success(Lang('auth.reset.success'));
|
Notify.success(Lang('auth.reset.success'));
|
||||||
|
router.push({ name: 'index' })
|
||||||
},
|
},
|
||||||
onFinish: () => form.reset('password', 'password_confirmation'),
|
onError: () => {
|
||||||
|
router.push({ name: 'index' });
|
||||||
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
console.log('mount')
|
||||||
|
|
||||||
|
form.token = vroute.query.token;
|
||||||
|
email.value = vroute.query.email;
|
||||||
|
|
||||||
|
// router.replace({ query: {} });
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -34,9 +48,8 @@ const submit = () => {
|
|||||||
icon="mail"
|
icon="mail"
|
||||||
id="email"
|
id="email"
|
||||||
type="email"
|
type="email"
|
||||||
v-model="form.email"
|
v-model="email"
|
||||||
:onError="form.errors.email"
|
disabled
|
||||||
:placeholder="$t('email.title')"
|
|
||||||
/>
|
/>
|
||||||
<Input
|
<Input
|
||||||
icon="password"
|
icon="password"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user