Completata gestione allegati e riepilogo commessa

This commit is contained in:
2025-09-01 17:38:16 +02:00
parent 588dbe308a
commit 8be3fa9f9e
17 changed files with 341 additions and 60 deletions

View File

@@ -0,0 +1,44 @@
@using salesbook.Shared.Core.Dto
@using salesbook.Shared.Core.Interface
@inject IIntegryApiService IntegryApiService
@inject IAttachedService AttachedService
<div @onclick="OpenAttached" class="activity-card">
<div class="activity-left-section">
<div class="activity-body-section">
<div class="title-section">
<MudText Class="activity-title" Typo="Typo.body1" HtmlTag="h3">
@(Attached.Description.IsNullOrEmpty() ? Attached.FileName : Attached.Description)
</MudText>
<div class="activity-hours-section">
<span class="activity-hours">@($"{Attached.DateAttached:g}")</span>
</div>
</div>
</div>
</div>
<div class="activity-info-section">
@if (Attached.IsActivity)
{
<MudChip T="string" Color="Color.Primary" Variant="Variant.Outlined" Icon="@IconConstants.Chip.Tag" Size="Size.Small">
@Attached.RefAttached
</MudChip>
}
else
{
<MudChip T="string" Color="Color.Warning" Variant="Variant.Outlined" Icon="@IconConstants.Chip.FileTextLine" Size="Size.Small">
@Attached.RefAttached
</MudChip>
}
</div>
</div>
@code {
[Parameter] public CRMAttachedResponseDTO Attached { get; set; } = new();
private async Task OpenAttached()
{
var bytes = await IntegryApiService.DownloadFileFromRefUuid(Attached.RefUuid, Attached.FileName);
await AttachedService.OpenFile(bytes, Attached.FileName);
}
}

View File

@@ -0,0 +1,61 @@
.activity-card {
width: 100%;
display: flex;
flex-direction: column;
padding: .5rem .5rem;
border-radius: 12px;
line-height: normal;
box-shadow: var(--custom-box-shadow);
}
.activity-card.memo { border-left: 5px solid var(--mud-palette-info-darken); }
.activity-card.interna { border-left: 5px solid var(--mud-palette-success-darken); }
.activity-card.commessa { border-left: 5px solid var(--mud-palette-warning); }
.activity-left-section {
display: flex;
align-items: center;
margin-left: 4px;
}
.title-section {
display: flex;
flex-direction: column;
width: 100%;
}
.activity-hours {
color: var(--mud-palette-gray-darker);
font-weight: 600;
font-size: .8rem;
}
.activity-hours-section ::deep .mud-chip { margin: 5px 0 0 !important; }
.activity-body-section {
width: 100%;
display: flex;
flex-direction: column;
}
.title-section ::deep > .activity-title {
font-weight: 700 !important;
margin: 0 !important;
line-height: normal !important;
color: var(--mud-palette-text-primary);
}
.activity-body-section ::deep > .activity-subtitle {
color: var(--mud-palette-gray-darker);
margin: .2rem 0 !important;
line-height: normal !important;
}
.activity-info-section {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: .25rem;
}

View File

@@ -13,6 +13,7 @@
@inject IIntegryApiService IntegryApiService
@inject IMessenger Messenger
@inject IDialogService Dialog
@inject IAttachedService AttachedService
<MudDialog Class="customDialog-form">
<DialogContent>
@@ -142,7 +143,7 @@
{
foreach (var file in ActivityFileList)
{
<MudChip T="string" Color="Color.Default">
<MudChip T="string" OnClick="() => OpenAttached(file.Id, file.FileName)" Color="Color.Default">
@file.FileName
</MudChip>
}
@@ -315,7 +316,7 @@
await ManageData.InsertOrUpdate(newActivity);
await SaveAttached(newActivity.ActivityId);
await SaveAttached(newActivity.ActivityId!);
SuccessAnimation = true;
StateHasChanged();
@@ -353,7 +354,7 @@
{
if (attached.FileContent is not null && attached.Type != AttachedDTO.TypeAttached.Position)
{
await IntegryApiService.UploadFile(activityId, attached.FileContent, attached.Name);
await IntegryApiService.UploadFile(activityId, attached.FileBytes, attached.Name);
}
}
}
@@ -541,12 +542,26 @@
StateHasChanged();
}
private async Task OpenAttached(string idAttached, string fileName)
{
try
{
var bytes = await IntegryApiService.DownloadFile(ActivityModel.ActivityId!, fileName);
await AttachedService.OpenFile(bytes, fileName);
}
catch (Exception ex)
{
Snackbar.Clear();
Snackbar.Add("Impossibile aprire il file", Severity.Error);
Console.WriteLine($"Errore durante l'apertura del file: {ex.Message}");
}
}
private async Task OpenAttached(AttachedDTO attached)
{
if (attached is { FileContent: not null, MimeType: not null })
{
var fileViewerUrl = $"data:{attached.MimeType};base64,{Convert.ToBase64String(attached.FileContent)}";
await ModalHelpers.OpenViewAttach(Dialog, fileViewerUrl);
await AttachedService.OpenFile(attached.FileContent!, attached.Name);
}
else
{

View File

@@ -1,14 +0,0 @@
<MudDialog Class="customDialog-form">
<DialogContent>
@if (!string.IsNullOrEmpty(FileViewerUrl))
{
<iframe src="@FileViewerUrl" style="width:100%; height:80vh; border:none;"></iframe>
}
</DialogContent>
</MudDialog>
@code {
[CascadingParameter] private IMudDialogInstance MudDialog { get; set; }
[Parameter] public string? FileViewerUrl { get; set; }
}

View File

@@ -1,7 +0,0 @@
.content.attached {
display: flex;
flex-direction: column;
gap: 2rem;
padding: 1rem;
height: unset;
}