Files
Hushian/Presentation/HushianWebApp/Pages/Auth/ForgetPassword.razor
mmrbnjd 067607d98a ...
2025-08-18 14:18:08 +03:30

101 lines
10 KiB
Plaintext

@page "/ForgetPassword"
@layout BeforeLayout
@using Common.Enums
@using HushianWebApp.Components
@inject NavigationManager navigationManager;
<Modal @ref="modal" />
<PageTitle>هوشیان / بازیابی کلمه عبور</PageTitle>
<div class="right-side">
<div class="header-form">
<img src="/Before/assets/images/logofilehushian.png" width="130" alt="Hushian" class="lg:hidden mb-3">
<span>
بازیابی کلمه عبور
</span>
</div>
<div id="alert" class="gap-5 text-xs bg-red-400 bg-opacity-20 px-3 py-2 rounded-md text-start justify-start items-center text-red-600" style="display:none;">
<div>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 0.87793C12.3069 0.87793 12.6962 0.911609 13.0241 1.0307C13.7791 1.30489 14.1225 1.7131 14.5027 2.16498L14.5326 2.20051C15.6287 3.50221 17.1301 5.52401 18.8638 8.49604C21.001 12.1599 22.0535 15.2888 22.5574 17.2397L22.5658 17.2722C22.6183 17.4752 22.6807 17.7162 22.705 17.9698C22.7334 18.2669 22.7093 18.5485 22.6388 18.8651C22.571 19.1697 22.4068 19.4939 22.2702 19.7251C22.1337 19.9564 21.9291 20.2568 21.6951 20.4632C21.4621 20.6687 21.2385 20.8247 20.978 20.942C20.7521 21.0437 20.5262 21.1015 20.3486 21.1469L20.3486 21.1469L20.3188 21.1546C18.6852 21.5737 16.033 21.9999 12 21.9999C7.96696 21.9999 5.31484 21.5737 3.68119 21.1546L3.65143 21.1469C3.47377 21.1015 3.24787 21.0437 3.02198 20.942C2.76146 20.8247 2.53785 20.6687 2.3049 20.4632C2.07091 20.2568 1.86634 19.9564 1.72976 19.7251C1.59318 19.4939 1.42895 19.1697 1.36117 18.8651C1.29072 18.5485 1.26655 18.2669 1.29498 17.9698C1.31926 17.7162 1.38164 17.4752 1.43421 17.2722L1.44261 17.2397C1.94651 15.2888 2.99896 12.1599 5.13622 8.49604C6.86989 5.52401 8.37131 3.50221 9.46744 2.20051L9.49733 2.16498C9.8775 1.7131 10.2209 1.30489 10.9759 1.0307C11.3038 0.911609 11.6931 0.87793 12 0.87793ZM11.6591 2.91054C11.6576 2.91096 11.6574 2.911 11.6586 2.91056C11.5094 2.96477 11.4439 3.00963 11.3855 3.06007C11.2981 3.13551 11.2065 3.24026 10.9973 3.48875C9.97906 4.69794 8.54299 6.62512 6.86377 9.50378C4.83238 12.9862 3.84405 15.9396 3.37906 17.7399C3.31457 17.9895 3.2935 18.0808 3.28588 18.1604C3.28117 18.2096 3.27951 18.2762 3.31197 18.4241L3.31284 18.4265L3.31285 18.4265C3.3154 18.4339 3.32386 18.4583 3.34309 18.501C3.37013 18.561 3.40763 18.6332 3.45189 18.7081C3.49616 18.7831 3.5413 18.8508 3.58079 18.9035C3.6089 18.9409 3.62617 18.9601 3.63137 18.9659L3.63304 18.9678C3.75701 19.0766 3.813 19.1048 3.84312 19.1184C3.89547 19.1419 3.95816 19.1608 4.17826 19.2173C5.62402 19.5883 8.10611 19.9999 12 19.9999C15.8939 19.9999 18.376 19.5883 19.8217 19.2173C20.0418 19.1608 20.1045 19.1419 20.1569 19.1184C20.187 19.1048 20.243 19.0766 20.367 18.9678C20.3669 18.9678 20.3675 18.9672 20.3686 18.9659C20.3738 18.9601 20.3911 18.9409 20.4192 18.9035C20.4587 18.8508 20.5038 18.7831 20.5481 18.7081C20.5924 18.6332 20.6299 18.561 20.6569 18.501C20.6761 18.4582 20.6846 18.4338 20.6871 18.4265L20.688 18.4241C20.7205 18.2762 20.7188 18.2096 20.7141 18.1604C20.7065 18.0808 20.6854 17.9895 20.6209 17.7399C20.1559 15.9396 19.1676 12.9862 17.1362 9.50378C15.457 6.62512 14.0209 4.69794 13.0027 3.48875C12.7935 3.24026 12.7019 3.13551 12.6145 3.06007C12.5561 3.00963 12.4906 2.96477 12.3414 2.91056C12.3419 2.91076 12.3422 2.91086 12.3422 2.91087C12.3421 2.91088 12.3417 2.91077 12.3409 2.91054C12.3344 2.90881 12.3035 2.90049 12.2432 2.89255C12.1741 2.88346 12.0899 2.87793 12 2.87793C11.9101 2.87793 11.8259 2.88346 11.7568 2.89255C11.6965 2.90049 11.6656 2.90881 11.6591 2.91054ZM10.5 15.9999C10.5 15.4476 10.9477 14.9999 11.5 14.9999H12.5C13.0523 14.9999 13.5 15.4476 13.5 15.9999V16.9999C13.5 17.5522 13.0523 17.9999 12.5 17.9999H11.5C10.9477 17.9999 10.5 17.5522 10.5 16.9999V15.9999ZM13 6.99991C13 6.44762 12.5523 5.99991 12 5.99991C11.4477 5.99991 11 6.44762 11 6.99991V12.4999C11 13.0522 11.4477 13.4999 12 13.4999C12.5523 13.4999 13 13.0522 13 12.4999V6.99991Z" fill="currentColor"></path>
</svg>
</div>
<span id="alert-item"></span>
</div>
<div class="form">
<div class="relative group">
<label class="block mb-2 text-slate-600 font-bold" for="PhoneNumber">
شماره همراه
</label>
<div class="relative flex justify-center items-center gap-1 pl-1 group-[.form-invalid]:border-red-500 bg-slate-50 border border-slate-300 hover:border-gray-800 text-slate-900 rounded-md focus:border-gray-800 w-full dark:placeholder-slate-400 dark:text-white ">
<input style="text-align:center" @bind-value="Username" type="number" pattern="[0-9]*" inputmode="numeric" id="number" maxlength="11" placeholder="مثلا 09123456789" title="شماره همراه را وارد کنید." class="input-form hide-arrow input_vk_2" required="" data-val="true" data-val-regex="شماره همراه را به درستی وارد کنید." data-val-regex-pattern="^09\d{9}$" data-val-required="شماره همراه را وارد کنید." name="PhoneNumber">
</div>
</div>
@* <div class=" group">
<label for="dntCaptcha" class="block mb-2 text-slate-600 font-bold">
کد‌‌‌‌‌‌‌ امنیتی
</label>
<div class="dntCaptcha" id="dntCaptcha5ccc40c53c4ef8a66d86a6eed86f9b4f9eef68f37d32223cf93ed20977435372404243268"><img alt="captcha" id="dntCaptchaImg" name="dntCaptchaImg" src="DNTCaptchaImage/Show/Showc0e8.png?data=cCLkZTEwt_8WXVmTAO4YWjJh2L9TWcSpNhCtGX5pS3rJ2-w7-GF7R1E2LzPjnCwew6bizLJfDczIssUAc6tL9IgjW9K1yMH-" style="margin-bottom: 4px;"><a class="btn-refresh" data-ajax="true" data-ajax-begin="onRefreshButtonDataAjaxBegin" data-ajax-failure="onRefreshButtonDataAjaxFailure" data-ajax-method="POST" data-ajax-mode="replace-with" data-ajax-update="#dntCaptcha5ccc40c53c4ef8a66d86a6eed86f9b4f9eef68f37d32223cf93ed20977435372404243268" data-ajax-url="/DNTCaptchaImage/Refresh/Refresh?data=BxYRIFz4xqmFsaK1Qm30KNPZ-Z6isKi8rTq05ptA0iZau2dnd2tk3osy_OAzBPaUMJEGVd4EO9S-zSBm5Oh6kYj8_XXTqZx_" href="#refresh" id="dntCaptchaRefreshButton" name="dntCaptchaRefreshButton"></a><input id="DNTCaptchaText" name="DNTCaptchaText" type="hidden" value="a3-Pm8lioQSD-9vYrK5FpQ"><div class="captcha-input h-full flex-1"><input autocomplete="off" class="bg-transparent border-0 outline-none px-3 w-full rtl h-full rounded" data-required-msg="کد امنیتی را وارد کنید." data-val="true" data-val-required="کد امنیتی را وارد کنید." dir="ltr" id="DNTCaptchaInputText" name="DNTCaptchaInputText" placeholder="کد امنیتی به رقم" required="required" type="text" value=""></div><span class="field-validation-error absolute" data-valmsg-for="DNTCaptchaInputText" data-valmsg-replace="true"></span><input id="DNTCaptchaToken" name="DNTCaptchaToken" type="hidden" value="jhlOWyyDQC-XSci5nR5IgkcP-Ca0BBXCTyD6223w4ZspWodsJz8du1B7tgqQbEGFD-hiHonjTFwFrgVRkCtfZsXFCyhzXfWEOQAiDtlCBXtXXzhJsefTQboA4QSYT6LK"><script nonce="" type="text/javascript"> function onRefreshButtonDataAjaxBegin(xhr, settings) { settings.data = settings.data + '&__RequestVerificationToken=CfDJ8P2efyfpaLFHon15HCO5GnQYiHZToPLUBHxKHM5v-OWfVVFCrkkH7hvAHt3vxFR7nY2kZiSMJ87mnll7CE4tbuUwiPAqR5UQydS31Psq1H3_I9rNevGgDPB_vMDKsTKCOtg_fwejixdzpLRqngJWPVs'; } function onRefreshButtonDataAjaxFailure(xhr, status, error) { if(xhr.status === 429) alert('تعداد درخواست غیر مجاز است.'); }</script></div>
</div> *@
<div class=" space-y-2 ">
<button @onclick=onClickforgetpass class="btn-primary w-full">
ادامه
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.7071 6.29289C15.0976 6.68342 15.0976 7.31658 14.7071 7.70711L11.4042 11.0101C11.0955 11.3187 10.9071 11.5083 10.7772 11.6612C10.7167 11.7325 10.6836 11.7791 10.6651 11.809C10.6563 11.8232 10.6515 11.8325 10.6491 11.8377C10.6467 11.8427 10.6459 11.8451 10.6458 11.8455C10.6132 11.9459 10.6132 12.0541 10.6458 12.1545C10.6459 12.1549 10.6467 12.1573 10.6491 12.1623C10.6515 12.1675 10.6563 12.1768 10.6651 12.191C10.6836 12.2209 10.7167 12.2675 10.7772 12.3388C10.9071 12.4917 11.0955 12.6813 11.4042 12.9899L14.7071 16.2929C15.0976 16.6834 15.0976 17.3166 14.7071 17.7071C14.3166 18.0976 13.6834 18.0976 13.2929 17.7071L9.98997 14.4042L9.96446 14.3787C9.68931 14.1035 9.44171 13.856 9.25255 13.6331C9.04997 13.3945 8.85638 13.1193 8.7437 12.7725C8.58055 12.2704 8.58055 11.7296 8.7437 11.2275C8.85638 10.8807 9.04997 10.6055 9.25254 10.3669C9.44171 10.144 9.6893 9.89647 9.96445 9.62135C9.97293 9.61287 9.98143 9.60437 9.98997 9.59584L13.2929 6.29289C13.6834 5.90237 14.3166 5.90237 14.7071 6.29289Z" fill="currentColor"></path>
</svg>
</button>
<NavLink class="block btn-outline" href="Login">
برگشت
</NavLink>
</div>
</div>
</div>
@code {
public string Username { get; set; }
private Modal modal = default!;
[Inject] protected ToastService ToastService { get; set; } = default!;
public bool Loading { get; set; }
}
@functions {
async Task onClickforgetpass()
{
if (string.IsNullOrEmpty(Username))
{
ToastService.Notify(new(ToastType.Primary, $"برای فراموشی رمز نیاز نام کاربری /موبایل را وارد کنید"));
return;
}
Loading = true;
await forgetpass();
Loading = false;
}
async Task forgetpass()
{
var parameters = new Dictionary<string, object>();
parameters.Add("type", VerificationCodeType.ForgetPassword);
parameters.Add("sendValue", Username);
parameters.Add("ID", 0);
parameters.Add("OnMultipleOfThree", EventCallback.Factory.Create<VerificationCodeType>(this, CallBackVer));
parameters.Add("Title", "بازیابی کلمه عبور" + '\n' + "برای تکمیل کد پبامک شده را وارد کنید");
await modal.ShowAsync<Verification>(title: "احراز", parameters: parameters);
}
async Task CallBackVer(VerificationCodeType type)
{
await modal.HideAsync();
}
}