Добавил добавление объекта
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 12s

This commit is contained in:
2026-07-03 18:35:09 +03:00
parent 5b14466d24
commit fd6506af7b
16 changed files with 336 additions and 54 deletions
+21
View File
@@ -0,0 +1,21 @@
using static System.Net.WebRequestMethods;
namespace Visor.Models
{
public class AllPubData
{
public static List<ObjectItems> ListObjectItems { get; set; } = new();
public static HttpClient http { get; set; } = new()
{
BaseAddress = new Uri("http://localhost:5262/")
};
public static Task GetObjects() => _GetObject();
private static async Task _GetObject()
{
ListObjectItems = await http.GetFromJsonAsync<List<ObjectItems>>("api/Object/GetObject");
}
}
}
+12
View File
@@ -0,0 +1,12 @@
using System.ComponentModel.DataAnnotations;
namespace Visor.Models
{
public class ObjectItems
{
[Key]
public int Id { get; set; }
public string NameObject { get; set; } = "Unknown";
public string DescriptionObject { get; set; } = string.Empty;
}
}
+2 -2
View File
@@ -1,5 +1,5 @@
@page "/"
@using Visor.Models
@inject IVersionProvider VersionProvider
<Heading Size="HeadingSize.Is1" Margin="Margin.Is3.FromBottom">Blazorise</Heading>
<Heading Size="HeadingSize.Is1" Margin="Margin.Is3.FromBottom">ДАШБОРД</Heading>
@@ -1,48 +1,179 @@
@page "/setting/add_objects"
@using Visor.Models
<Row>
<Column ColumnSize="ColumnSize.Is4">
<Button Color="Color.Primary" Outline Clicked="@ShowAddObjetc">
<Icon Name="IconName.Add" TextColor="TextColor.Success" />
@* @inject HttpClient Http *@
<LoadingIndicator Visible="@isLoading" FullScreen />
<Row Width="Width.Max100">
<Column ColumnSize="ColumnSize.Is10"></Column>
<Column ColumnSize="ColumnSize.Is2">
<Button Color="Color.Primary" Clicked="@ShowAddObjetc">
<Icon Name="IconName.Add" />
</Button>
<Button Color="Color.Primary" Outline Clicked="@ShowDelObjetc">
<Icon Name="IconName.Delete" />
</Button>
</Column>
</Row>
<Divider />
<Div>
@if (isLoading || listObjects is null)
{
<Paragraph>@MessagePages</Paragraph>
}
else if (listObjects != null && listObjects.Any())
{
<Table>
<TableHeader>
<TableRow>
<TableHeaderCell>Название</TableHeaderCell>
<TableHeaderCell>Описание</TableHeaderCell>
</TableRow>
</TableHeader>
<TableBody>
@foreach (var item in listObjects)
{
<TableRow>
<TableRowCell>@item.NameObject</TableRowCell>
<TableRowCell>@item.DescriptionObject</TableRowCell>
</TableRow>
}
</TableBody>
</Table>
}
else
{
<Alert Color="Color.Warning">@MessagePages</Alert>
<Paragraph>@MessagePages</Paragraph>
}
</Div>
<Row>
<Label>
Тут будет таблица всех объектов
</Label>
</Row>
@code {
private List<ObjectItems>? listObjects = AllPubData.ListObjectItems;
private Modal modalAdd;
private Modal modalDel;
private int select_id { get; set; }
private int id_object { get; set; }
private string name_object { get; set; }
private string decript_object { get; set; }
private HttpClient Http = AllPubData.http;
private string? MessagePages;
bool isLoading = true;
protected override async Task OnInitializedAsync()
{
await AllPubData.GetObjects();
listObjects = AllPubData.ListObjectItems;
if (listObjects.Count == 0)
MessagePages = "Нет данных";
isLoading = false;
}
private Task ShowAddObjetc()
{
id_object = listObjects.Count;
return modalAdd.Show();
}
private async Task AddObject()
{
var obj = new ObjectItems()
{
NameObject = name_object,
DescriptionObject = decript_object
};
var post = await Http.PostAsJsonAsync("api/Object/AddObject", obj);
if (post.IsSuccessStatusCode)
{
listObjects.Add(obj);
await modalAdd.Hide();
//await AllPubData.ReloadObject();
}
}
private Task ShowDelObjetc() => modalDel.Show();
private async Task DelObject()
{
var del = await Http.DeleteAsync($"api/Object/DelObject?id={select_id}");
if (del.IsSuccessStatusCode)
{
listObjects.Remove(listObjects.Where(i => i.Id == select_id).First());
await HideDelModal();
}
}
private Task HideAddModal() => modalAdd.Hide();
private Task HideDelModal() => modalDel.Hide();
}
<Modal @ref="modalAdd" Centered>
<ModalContent>
<ModalHeader>
<ModalTitle>Добавить объект</ModalTitle>
</ModalHeader>
<ModalBody>
@* <Addons>
<Addon AddonType="AddonType.Start">
<AddonLabel>Id</AddonLabel>
</Addon>
<Addon AddonType="AddonType.Body">
<NumericInput Disabled Placeholder="Номер объекта" @bind-Value="@id_object" />
</Addon>
</Addons> *@
<Addons>
<Addon AddonType="AddonType.Start">
<AddonLabel>Name</AddonLabel>
</Addon>
<Addon AddonType="AddonType.Body">
<TextInput @bind-Value="@name_object" Placeholder="Имя объекта" />
</Addon>
</Addons>
<Addons>
<Addon AddonType="AddonType.Start">
<AddonLabel>Описание</AddonLabel>
</Addon>
<Addon AddonType="AddonType.Body">
<TextInput Placeholder="Дополнительная информация" @bind-Value="@decript_object" />
</Addon>
</Addons>
<ModalFooter>
<Button Color="Color.Secondary" Clicked="@HideModal">Close</Button>
<Button Color="Color.Primary" Clicked="@HideModal">Save Changes</Button>
<Button Color="Color.Secondary" Clicked="@HideAddModal">Close</Button>
<Button Color="Color.Primary" Clicked="@AddObject">Добавить</Button>
</ModalFooter>
</ModalBody>
</ModalContent>
</Modal>
@code {
private Modal modalAdd;
private Modal modalDel;
private Task ShowAddObjetc()
{
return modalAdd.Show();
}
private Task ShowDelObjetc()
{
return modalDel.Show();
}
private Task HideModal()
{
return modalAdd.Hide();
}
}
<Modal @ref="modalDel" Centered>
<ModalContent>
<ModalHeader>
<ModalTitle>Удалить объект</ModalTitle>
</ModalHeader>
<ModalBody>
<Addons>
<Addon AddonType="AddonType.Start">
<AddonLabel>Id</AddonLabel>
</Addon>
<Addon AddonType="AddonType.Body">
<Select TValue="int" @bind-Value="@select_id">
<SelectItem Value="9999">Объект</SelectItem>
@foreach (var item in listObjects)
{
<SelectItem Value="@item.Id">@item.NameObject</SelectItem>
}
</Select>
</Addon>
</Addons>
<ModalFooter>
<Button Color="Color.Secondary" Clicked="@HideDelModal">Close</Button>
<Button Color="Color.Primary" Clicked="@DelObject">Удалить</Button>
</ModalFooter>
</ModalBody>
</ModalContent>
</Modal>
-3
View File
@@ -1,3 +0,0 @@
@using Visor.Components.TodoApp
@page "/apps/todo"
<TodoItems />
+2
View File
@@ -24,6 +24,8 @@
<PackageReference Include="Blazorise.Bootstrap5" Version="2.2.1" />
<PackageReference Include="Blazorise.Icons.FontAwesome" Version="2.2.1" />
<PackageReference Include="Blazorise.DataGrid" Version="2.2.1" />
<PackageReference Include="Blazorise.LoadingIndicator" Version="2.2.1" />
<PackageReference Include="Blazorise.SpinKit" Version="2.2.1" />
</ItemGroup>
</Project>
+2
View File
@@ -9,4 +9,6 @@
@using Visor
@using Blazorise
@using Blazorise.SpinKit
@using Blazorise.LoadingIndicator
@using Blazorise.DataGrid