Merge 4972884b35 into 864ec5baf0
This commit is contained in:
commit
7730f8946c
|
|
@ -338,7 +338,7 @@
|
||||||
<div *ngIf="detailOpen" #detailModal class="modal-card modal-xl-custom" (click)="$event.stopPropagation()">
|
<div *ngIf="detailOpen" #detailModal class="modal-card modal-xl-custom" (click)="$event.stopPropagation()">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<div class="modal-title">
|
<div class="modal-title">
|
||||||
<span class="icon-bg primary-soft"><i class="bi bi-receipt"></i></span>
|
<span class="icon-bg detail-icon"><i class="bi bi-receipt"></i></span>
|
||||||
Detalhes do Faturamento
|
Detalhes do Faturamento
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-sm btn-icon" (click)="closeAllModals()"><i class="bi bi-x-lg"></i></button>
|
<button class="btn btn-sm btn-icon" (click)="closeAllModals()"><i class="bi bi-x-lg"></i></button>
|
||||||
|
|
@ -347,24 +347,16 @@
|
||||||
<div class="modal-body modern-body bg-light-gray" *ngIf="detailData; else detailLoading">
|
<div class="modal-body modern-body bg-light-gray" *ngIf="detailData; else detailLoading">
|
||||||
<div class="mb-3 d-flex flex-wrap align-items-center justify-content-between gap-2">
|
<div class="mb-3 d-flex flex-wrap align-items-center justify-content-between gap-2">
|
||||||
<div class="d-flex flex-column">
|
<div class="d-flex flex-column">
|
||||||
<div class="fw-black" style="font-size: 1.05rem;">
|
<div class="fw-black detail-client">
|
||||||
{{ detailData.cliente || '—' }}
|
{{ detailData.cliente || '—' }}
|
||||||
</div>
|
</div>
|
||||||
<small class="text-muted fw-bold">
|
<small class="text-muted fw-bold">
|
||||||
ITEM: {{ detailData.item }} • QTD LINHAS: {{ detailData.qtdLinhas ?? 0 }}
|
ITEM: {{ detailData.item }} • QTD LINHAS: {{ detailData.qtdLinhas ?? 0 }}
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="d-flex flex-wrap gap-2">
|
|
||||||
<span class="badge-pill vivo"><i class="bi bi-telephone-fill me-1"></i> {{ formatMoney(detailData.valorContratoVivo) }}</span>
|
|
||||||
<span class="badge-pill line"><i class="bi bi-hdd-network-fill me-1"></i> {{ formatMoney(detailData.valorContratoLine) }}</span>
|
|
||||||
<span class="badge-pill lucro" *ngIf="hasLucro(detailData)">
|
|
||||||
<i class="bi bi-cash-stack me-1"></i> {{ formatMoney(detailData.lucro) }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="details-dashboard details-2col">
|
<div class="details-dashboard details-single">
|
||||||
|
|
||||||
<!-- IDENTIFICAÇÃO -->
|
<!-- IDENTIFICAÇÃO -->
|
||||||
<div class="detail-box">
|
<div class="detail-box">
|
||||||
|
|
@ -400,77 +392,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- VIVO -->
|
|
||||||
<div class="detail-box">
|
|
||||||
<div class="box-header justify-content-center">
|
|
||||||
<span><i class="bi bi-telephone-fill me-2"></i> Vivo</span>
|
|
||||||
</div>
|
|
||||||
<div class="box-body">
|
|
||||||
<div class="info-grid">
|
|
||||||
<div class="info-item">
|
|
||||||
<span class="lbl">Franquia Vivo</span>
|
|
||||||
<span class="val fw-black">{{ formatFranquia(detailData.franquiaVivo) }}</span>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="info-item">
|
|
||||||
<span class="lbl text-vivo">Valor Vivo (R$)</span>
|
|
||||||
<span class="val fw-black text-vivo">{{ formatMoney(detailData.valorContratoVivo) }}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- LINE -->
|
|
||||||
<div class="detail-box">
|
|
||||||
<div class="box-header justify-content-center">
|
|
||||||
<span><i class="bi bi-hdd-network-fill me-2"></i> Line Móvel</span>
|
|
||||||
</div>
|
|
||||||
<div class="box-body">
|
|
||||||
<div class="info-grid">
|
|
||||||
<div class="info-item">
|
|
||||||
<span class="lbl">Franquia Line</span>
|
|
||||||
<span class="val fw-black">{{ formatFranquia(detailData.franquiaLine) }}</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="info-item">
|
|
||||||
<span class="lbl text-line">Valor Line (R$)</span>
|
|
||||||
<span class="val fw-black text-line">{{ formatMoney(detailData.valorContratoLine) }}</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="info-item span-2">
|
|
||||||
<span class="lbl text-brand">Lucro</span>
|
|
||||||
<span class="val fw-black text-brand">{{ formatMoney(detailData.lucro) }}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- RESUMO -->
|
|
||||||
<div class="detail-box">
|
|
||||||
<div class="box-header justify-content-center">
|
|
||||||
<span><i class="bi bi-info-circle me-2"></i> Resumo</span>
|
|
||||||
</div>
|
|
||||||
<div class="box-body">
|
|
||||||
<div class="info-grid">
|
|
||||||
<div class="info-item span-2">
|
|
||||||
<span class="lbl">Observação</span>
|
|
||||||
<span class="val">{{ getObservacao(detailData) }}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mt-3 d-flex justify-content-end gap-2 flex-wrap">
|
|
||||||
<button class="btn btn-outline-secondary btn-sm" (click)="closeAllModals()">
|
|
||||||
Fechar
|
|
||||||
</button>
|
|
||||||
<button class="btn btn-primary btn-sm" (click)="onComparativo(detailData)">
|
|
||||||
<i class="bi bi-columns-gap me-1"></i> Abrir Comparativo
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ng-template #detailLoading>
|
<ng-template #detailLoading>
|
||||||
|
|
@ -482,7 +405,7 @@
|
||||||
<div *ngIf="compareOpen" #compareModal class="modal-card modal-lg" (click)="$event.stopPropagation()">
|
<div *ngIf="compareOpen" #compareModal class="modal-card modal-lg" (click)="$event.stopPropagation()">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<div class="modal-title">
|
<div class="modal-title">
|
||||||
<span class="icon-bg success"><i class="bi bi-columns-gap"></i></span> Comparativo Vivo x Line
|
<span class="icon-bg compare-icon"><i class="bi bi-columns-gap"></i></span> Comparativo Vivo x Line
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-sm btn-icon" (click)="closeAllModals()"><i class="bi bi-x-lg"></i></button>
|
<button class="btn btn-sm btn-icon" (click)="closeAllModals()"><i class="bi bi-x-lg"></i></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -781,14 +781,16 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-bg {
|
.icon-bg {
|
||||||
width: 32px;
|
width: 34px;
|
||||||
height: 32px;
|
height: 34px;
|
||||||
border-radius: 10px;
|
border-radius: 12px;
|
||||||
background: rgba(3, 15, 170, 0.1);
|
background: rgba(3, 15, 170, 0.12);
|
||||||
color: var(--blue);
|
color: var(--blue);
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
box-shadow: inset 0 0 0 1px rgba(255,255,255,0.7), 0 8px 18px rgba(3, 15, 170, 0.18);
|
||||||
|
font-size: 1rem;
|
||||||
|
|
||||||
&.success { background: var(--success-bg); color: var(--success-text); }
|
&.success { background: var(--success-bg); color: var(--success-text); }
|
||||||
&.primary-soft { background: rgba(3, 15, 170, 0.1); color: var(--blue); }
|
&.primary-soft { background: rgba(3, 15, 170, 0.1); color: var(--blue); }
|
||||||
|
|
@ -811,6 +813,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.details-2col { grid-template-columns: 1fr 1fr; @media (max-width: 900px) { grid-template-columns: 1fr; } }
|
.details-2col { grid-template-columns: 1fr 1fr; @media (max-width: 900px) { grid-template-columns: 1fr; } }
|
||||||
|
.details-single { grid-template-columns: minmax(0, 1fr); }
|
||||||
|
|
||||||
|
.detail-client {
|
||||||
|
font-size: 1.05rem;
|
||||||
|
letter-spacing: -0.01em;
|
||||||
|
}
|
||||||
|
|
||||||
.detail-box {
|
.detail-box {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
|
|
@ -820,10 +828,22 @@
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon-bg.detail-icon {
|
||||||
|
background: linear-gradient(135deg, rgba(67, 56, 202, 0.18), rgba(14, 165, 233, 0.16));
|
||||||
|
color: #1d4ed8;
|
||||||
|
box-shadow: inset 0 0 0 1px rgba(255,255,255,0.7), 0 10px 22px rgba(29, 78, 216, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-bg.compare-icon {
|
||||||
|
background: linear-gradient(135deg, rgba(16, 185, 129, 0.22), rgba(59, 130, 246, 0.2));
|
||||||
|
color: #0f766e;
|
||||||
|
box-shadow: inset 0 0 0 1px rgba(255,255,255,0.7), 0 10px 24px rgba(16, 185, 129, 0.25);
|
||||||
|
}
|
||||||
|
|
||||||
.box-header.justify-content-center {
|
.box-header.justify-content-center {
|
||||||
justify-content: center !important;
|
justify-content: center !important;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background: rgba(227, 61, 207, 0.04);
|
background: linear-gradient(135deg, rgba(227, 61, 207, 0.08), rgba(59, 130, 246, 0.08));
|
||||||
color: var(--brand);
|
color: var(--brand);
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue