Добавил пару новых страниц
This commit is contained in:
@@ -1,9 +1,17 @@
|
||||
@inject NavigationManager Navigation
|
||||
|
||||
@code {
|
||||
private static string _returnClass = "step-primary";
|
||||
private int _lvl = 0;
|
||||
|
||||
private Dictionary<string, string> _links = new()
|
||||
{
|
||||
{ "Анкета", "/otchislenie/questionnaire" },
|
||||
{ "Заявление", "/otchislenie/statement" },
|
||||
{ "Отправка", "/otchislenie/result" },
|
||||
{ "Свобода", "/otchislenie/congratulation" }
|
||||
};
|
||||
|
||||
// TODO: Упростить это
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
base.OnInitialized();
|
||||
@@ -16,9 +24,12 @@
|
||||
case "otchislenie/statement":
|
||||
_lvl = 2;
|
||||
break;
|
||||
case "otchislenie/congratulation":
|
||||
case "otchislenie/result":
|
||||
_lvl = 3;
|
||||
break;
|
||||
case "otchislenie/congratulation":
|
||||
_lvl = 4;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -26,10 +37,28 @@
|
||||
<footer class="card fixed bottom-0 w-96 h-20 bg-base-200 rounded-badge p-4 mb-3">
|
||||
<div class="flex justify-center items-center">
|
||||
<ul class="steps justify-center center">
|
||||
<a href="/" class="step step-primary">Выбор</a>
|
||||
<a href="/otchislenie/questionnaire" class="step @((MarkupString)(_lvl >= 1 ? _returnClass : ""))">Анкета</a>
|
||||
<a href="/otchislenie/statement" class="step @((MarkupString)(_lvl >= 2 ? _returnClass : ""))">Заявление</a>
|
||||
<a href="/otchislenie/congratulation" class="step @((MarkupString)(_lvl >= 3 ? _returnClass : ""))" data-content="♿">Свобода</a>
|
||||
<a href="/" class="step step-primary text-gray-500">Выбор</a>
|
||||
@foreach (int i in Enumerable.Range(1, 4))
|
||||
{
|
||||
if (_lvl == 4 && i == 4)
|
||||
{
|
||||
<a href="/otchislenie/congratulation" class="step step-primary select-none " data-content="♿">Свобода</a>
|
||||
continue;
|
||||
}
|
||||
|
||||
if (_lvl == i)
|
||||
{
|
||||
<i class="step select-none step-primary">@_links.ElementAt(i - 1).Key</i>
|
||||
}
|
||||
else if (_lvl > i)
|
||||
{
|
||||
<a href="@_links.ElementAt(i - 1).Value" class="step step-primary select-none text-gray-500">@_links.ElementAt(i - 1).Key</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
<i class="step select-none"> @_links.ElementAt(i - 1).Key</i>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
@@ -1,6 +1,6 @@
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
@inherits LayoutComponentBase
|
||||
@attribute [Authorize] // НЕ РАБОТАЕТ
|
||||
@attribute [Authorize]
|
||||
|
||||
<div class="flex items-center accent-error justify-center min-h-screen font-roboto text-primary-content">
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="text-center mx-auto mb-4 font-bold text-4xl md:text-5xl w-max justify-center italic">Поздравляем!</div>
|
||||
<img class="w-96 h-96 mx-auto" src="img/party-popper.svg" alt=""/>
|
||||
<div class="flex flex-col space-y-4 lg:flex-row lg:space-x-4 lg:space-y-0 mt-4">
|
||||
<a href="/otchislenie/statement" class="btn w-full lg:w-48 h-12 btn-primary rounded-full text-2xl">
|
||||
<a href="/otchislenie/result" class="btn w-full lg:w-48 h-12 btn-primary rounded-full text-2xl">
|
||||
Назад
|
||||
</a>
|
||||
<a href="/" class="btn w-full lg:w-48 h-12 btn-primary rounded-full text-2xl">
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@page "/otchislenie/questionnaire"
|
||||
@using Otchinslator.Components.Layout
|
||||
@layout OtchislenieLayout
|
||||
<h3>questionnaire</h3>
|
||||
<a href="/otchislenie/statement">questionnaire</a>
|
||||
|
||||
@code {
|
||||
|
||||
|
||||
42
src/Otchinslator/Components/Pages/Result.razor
Normal file
42
src/Otchinslator/Components/Pages/Result.razor
Normal file
@@ -0,0 +1,42 @@
|
||||
@page "/otchislenie/result"
|
||||
@using Otchinslator.Components.Layout
|
||||
@layout OtchislenieLayout
|
||||
|
||||
<script>
|
||||
function showCongratulation() {
|
||||
document.getElementById('congratulation').classList.remove('hidden');
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="w-full">
|
||||
<div class="flex flex-col space-y-4 w-96 mx-auto">
|
||||
<div class="card rounded-badge bg-base-200 p-4">
|
||||
<div class="flex flex-col space-y-4 mt-1">
|
||||
<button class="btn h-16 btn-primary rounded-full text-2xl relative">
|
||||
Отправить директору
|
||||
</button>
|
||||
<button id="downloadPDF" onclick="showCongratulation()" class="btn h-16 btn-primary rounded-full text-2xl relative">
|
||||
Скачать PDF
|
||||
<div class="absolute bg-base-200 rounded-full right-1 w-14 h-14">
|
||||
<img class="p-3" src="img/pdf.svg" alt=""/>
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@* TODO: Сделать адаптив *@
|
||||
@* <div class="mt-9 flex flex-col space-y-4 lg:flex-row lg:space-x-4 lg:space-y-0 w-96 mx-auto" > *@
|
||||
<div class="mt-9 flex flex-col space-y-4 w-96 mx-auto" >
|
||||
<a href="/otchislenie/statement" class="btn w-96 h-14 btn-primary rounded-full text-2xl">
|
||||
Назад
|
||||
</a>
|
||||
<a href="/" class="btn w-96 h-14 btn-primary rounded-full text-2xl">
|
||||
Выход
|
||||
</a>
|
||||
</div>
|
||||
<div class="w-96 mx-auto mt-6">
|
||||
<a id="congratulation" href="/otchislenie/congratulation" class="btn w-full h-16 btn-primary rounded-full text-2xl hidden">
|
||||
Страница поздравления
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,7 +1,7 @@
|
||||
@page "/otchislenie/statement"
|
||||
@using Otchinslator.Components.Layout
|
||||
@layout OtchislenieLayout
|
||||
<h3>Statement</h3>
|
||||
<a href="/otchislenie/result">Statement</a>
|
||||
|
||||
@code {
|
||||
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
@page "/weather"
|
||||
@attribute [StreamRendering]
|
||||
|
||||
<PageTitle>Weather</PageTitle>
|
||||
|
||||
<h1>Weather</h1>
|
||||
|
||||
<p>This component demonstrates showing data.</p>
|
||||
|
||||
@if (forecasts == null)
|
||||
{
|
||||
<p>
|
||||
<em>Loading...</em>
|
||||
</p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Temp. (C)</th>
|
||||
<th>Temp. (F)</th>
|
||||
<th>Summary</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var forecast in forecasts)
|
||||
{
|
||||
<tr>
|
||||
<td>@forecast.Date.ToShortDateString()</td>
|
||||
<td>@forecast.TemperatureC</td>
|
||||
<td>@forecast.TemperatureF</td>
|
||||
<td>@forecast.Summary</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
|
||||
@code {
|
||||
private WeatherForecast[]? forecasts;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
// Simulate asynchronous loading to demonstrate streaming rendering
|
||||
await Task.Delay(500);
|
||||
|
||||
var startDate = DateOnly.FromDateTime(DateTime.Now);
|
||||
var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" };
|
||||
forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast
|
||||
{
|
||||
Date = startDate.AddDays(index),
|
||||
TemperatureC = Random.Shared.Next(-20, 55),
|
||||
Summary = summaries[Random.Shared.Next(summaries.Length)]
|
||||
}).ToArray();
|
||||
}
|
||||
|
||||
private class WeatherForecast
|
||||
{
|
||||
public DateOnly Date { get; set; }
|
||||
public int TemperatureC { get; set; }
|
||||
public string? Summary { get; set; }
|
||||
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user