feat(loan-origination): tabbed CIC report dialog with real PDF parsing via pdfjs-dist
Extracts score, accounts, DPD payment history and enquiries directly from an uploaded bureau PDF (position-aware parsing, so blank DPD months are handled correctly) instead of always showing a simulated report, falling back to the simulated analysis when a file can't be read.
This commit is contained in:
@@ -773,3 +773,117 @@
|
||||
min-width: 260px;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
// CIC Credit Bureau Hero Card in Stage detail
|
||||
.loi-cic-hero-card {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
background: #fff;
|
||||
border: 1px solid #e2e8f0;
|
||||
border-radius: 12px;
|
||||
padding: 16px 20px;
|
||||
margin-bottom: 16px;
|
||||
box-shadow: 0 2px 8px rgb(15 23 42 / 4%);
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.loi-cic-score-badge {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-width: 90px;
|
||||
height: 80px;
|
||||
border-radius: 12px;
|
||||
padding: 8px 12px;
|
||||
color: #fff;
|
||||
background: linear-gradient(135deg, #10b981, #059669);
|
||||
|
||||
.loi-cic-score-num {
|
||||
font-size: 1.8rem;
|
||||
font-weight: 800;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.loi-cic-score-band {
|
||||
font-size: 0.72rem;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
margin-top: 4px;
|
||||
letter-spacing: 0.04em;
|
||||
}
|
||||
|
||||
&--excellent {
|
||||
background: linear-gradient(135deg, #10b981, #047857);
|
||||
}
|
||||
|
||||
&--good {
|
||||
background: linear-gradient(135deg, #0ea5e9, #0284c7);
|
||||
}
|
||||
|
||||
&--fair {
|
||||
background: linear-gradient(135deg, #f59e0b, #d97706);
|
||||
}
|
||||
|
||||
&--poor {
|
||||
background: linear-gradient(135deg, #f43f5e, #e11d48);
|
||||
}
|
||||
}
|
||||
|
||||
.loi-cic-details-grid {
|
||||
display: flex;
|
||||
gap: 24px;
|
||||
flex: 1;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.loi-cic-detail-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.loi-cic-label {
|
||||
font-size: 0.76rem;
|
||||
color: #64748b;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.loi-cic-val {
|
||||
font-size: 0.88rem;
|
||||
font-weight: 700;
|
||||
color: #0f172a;
|
||||
}
|
||||
|
||||
.loi-cic-file-name {
|
||||
font-family: monospace;
|
||||
font-size: 0.82rem;
|
||||
color: #2563eb;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.loi-cic-action-box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.loi-cic-analysis-btn {
|
||||
border-radius: 20px;
|
||||
padding: 8px 18px;
|
||||
font-weight: 700;
|
||||
box-shadow: 0 4px 12px rgb(37 99 235 / 20%);
|
||||
}
|
||||
}
|
||||
|
||||
.loi-cic-action-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
margin-top: 14px;
|
||||
|
||||
.loi-cic-upload-btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
cursor: pointer;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user