91 lines
1.8 KiB
Vue
91 lines
1.8 KiB
Vue
<script setup lang="ts">
|
||
definePageMeta({
|
||
layout: 'login',
|
||
})
|
||
import {useToast} from "vue-toastification";
|
||
const email=ref(useRoute().params.email)
|
||
const toast=useToast()
|
||
const sendEmail=()=>{
|
||
$fetch('/Api/Account/ForgotPassword', {
|
||
method:'GET',
|
||
params:{
|
||
Email:email.value
|
||
},
|
||
headers: {
|
||
'Content-Type': 'application/json',
|
||
},
|
||
baseURL: useRuntimeConfig().public.baseUrl
|
||
}).then(res=>{
|
||
toast.success(res)
|
||
}).catch(err=>{
|
||
toast.error(err.response._data)
|
||
})
|
||
}
|
||
</script>
|
||
|
||
<template>
|
||
<div class="forgotPassword-layout">
|
||
<a href="/signIn">< 返回</a>
|
||
<div class="info">
|
||
<h1>忘记密码</h1>
|
||
<h2>请输入您的邮箱地址,我们将向您发送重置密码的链接。</h2>
|
||
<h3>请检查你的垃圾箱</h3>
|
||
</div>
|
||
<div class="form">
|
||
<div>
|
||
<input v-model="email" type="email" placeholder="请输入您的邮箱地址" required minlength="8" />
|
||
<button @click="sendEmail">发送</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
|
||
<style scoped lang="scss">
|
||
@import "../../base";
|
||
.forgotPassword-layout{
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap:48px;
|
||
*{
|
||
@include SC_Font
|
||
}
|
||
.info{
|
||
display: flex;
|
||
flex-direction: column;
|
||
font-weight: 800;
|
||
gap: $gap;
|
||
}
|
||
input{
|
||
padding: 16px;
|
||
border-radius: 12px;
|
||
border: 1px solid #D4D7E3;
|
||
background: #F7FBFF;
|
||
}
|
||
button{
|
||
display: flex;
|
||
padding: 16px 16px;
|
||
align-items: center;
|
||
justify-content: center;
|
||
border-radius: 12px;
|
||
background: #162D3A;
|
||
color: #FFF;
|
||
text-align: center;
|
||
font-size: 20px;
|
||
font-weight: 400;
|
||
line-height: 100%; /* 20px */
|
||
letter-spacing: 2px;
|
||
}
|
||
.form{
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: $gap*2;
|
||
>div{
|
||
display: flex;
|
||
gap: $gap;
|
||
input{
|
||
flex: 1;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</style> |