diff --git a/fe-admin/src/components/pe/PeDetailTabs.tsx b/fe-admin/src/components/pe/PeDetailTabs.tsx index c603211..34b627f 100644 --- a/fe-admin/src/components/pe/PeDetailTabs.tsx +++ b/fe-admin/src/components/pe/PeDetailTabs.tsx @@ -1010,7 +1010,7 @@ function VndInlineEdit({ // 1 dòng bảng — label trái | value phải (right-align) | cột 3 (% hoặc ghi chú). // tone: 'brand' = nền brand đậm chữ trắng (dòng tổng) · 'brand-soft' = nền brand-50. function BudgetRow({ - label, sub, value, third, tone, danger, mono = true, + label, sub, value, third, tone, danger, mono = true, indent = false, }: { label: React.ReactNode sub?: React.ReactNode @@ -1019,6 +1019,8 @@ function BudgetRow({ tone?: 'brand' | 'brand-soft' | 'blue-soft' danger?: boolean mono?: boolean + /** [S77 Tra Sol] mục con (không có số) → thụt dòng + gạch đầu dòng phân biệt với mục cha có số. */ + indent?: boolean }) { const toneCls = tone === 'brand' ? 'bg-[#1F7DC1] text-white font-semibold' @@ -1027,8 +1029,10 @@ function BudgetRow({ : '' return (
-
-
{label}
+
+
+ {indent && }{label} +
{sub &&
{sub}
}
{/* Ban hành lần đầu */} - Ngân sách Ban hành lần đầu + – Ngân sách Ban hành lần đầu — {/* V0 / hiệu chỉnh tăng giảm (cho phép ÂM) */} - Ngân sách V0 / hiệu chỉnh tăng giảm + – Ngân sách V0 / hiệu chỉnh tăng giảm — {fmtVnd(row4)} @@ -1414,6 +1419,7 @@ function PeBudgetSummaryTable({ ev, readOnly }: { ev: PeDetailBundle; readOnly: {fmtVndSigned(cmpPeriod)}} third={fmtPct(cmpPeriod, row3) ?? undefined} @@ -1435,6 +1441,7 @@ function PeBudgetSummaryTable({ ev, readOnly }: { ev: PeDetailBundle; readOnly: /> {fmtVndSigned(cmp56)}} third={fmtPct(cmp56, row5) ?? undefined} @@ -1486,6 +1493,7 @@ function PeBudgetSummaryTable({ ev, readOnly }: { ev: PeDetailBundle; readOnly: {fmtVndSigned(cmpFull)}} third={fmtPct(cmpFull, full) ?? undefined} diff --git a/fe-user/src/components/pe/PeDetailTabs.tsx b/fe-user/src/components/pe/PeDetailTabs.tsx index c603211..34b627f 100644 --- a/fe-user/src/components/pe/PeDetailTabs.tsx +++ b/fe-user/src/components/pe/PeDetailTabs.tsx @@ -1010,7 +1010,7 @@ function VndInlineEdit({ // 1 dòng bảng — label trái | value phải (right-align) | cột 3 (% hoặc ghi chú). // tone: 'brand' = nền brand đậm chữ trắng (dòng tổng) · 'brand-soft' = nền brand-50. function BudgetRow({ - label, sub, value, third, tone, danger, mono = true, + label, sub, value, third, tone, danger, mono = true, indent = false, }: { label: React.ReactNode sub?: React.ReactNode @@ -1019,6 +1019,8 @@ function BudgetRow({ tone?: 'brand' | 'brand-soft' | 'blue-soft' danger?: boolean mono?: boolean + /** [S77 Tra Sol] mục con (không có số) → thụt dòng + gạch đầu dòng phân biệt với mục cha có số. */ + indent?: boolean }) { const toneCls = tone === 'brand' ? 'bg-[#1F7DC1] text-white font-semibold' @@ -1027,8 +1029,10 @@ function BudgetRow({ : '' return (
-
-
{label}
+
+
+ {indent && }{label} +
{sub &&
{sub}
}
{/* Ban hành lần đầu */} - Ngân sách Ban hành lần đầu + – Ngân sách Ban hành lần đầu — {/* V0 / hiệu chỉnh tăng giảm (cho phép ÂM) */} - Ngân sách V0 / hiệu chỉnh tăng giảm + – Ngân sách V0 / hiệu chỉnh tăng giảm — {fmtVnd(row4)} @@ -1414,6 +1419,7 @@ function PeBudgetSummaryTable({ ev, readOnly }: { ev: PeDetailBundle; readOnly: {fmtVndSigned(cmpPeriod)}} third={fmtPct(cmpPeriod, row3) ?? undefined} @@ -1435,6 +1441,7 @@ function PeBudgetSummaryTable({ ev, readOnly }: { ev: PeDetailBundle; readOnly: /> {fmtVndSigned(cmp56)}} third={fmtPct(cmp56, row5) ?? undefined} @@ -1486,6 +1493,7 @@ function PeBudgetSummaryTable({ ev, readOnly }: { ev: PeDetailBundle; readOnly: {fmtVndSigned(cmpFull)}} third={fmtPct(cmpFull, full) ?? undefined}