From de7b4f79a2518bd3b2e19dac5c4aa7351515457b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BE=8E=E6=9C=AF=E5=B8=88?= Date: Wed, 2 Sep 2026 18:16:54 +0800 Subject: [PATCH] HEL-413: restore single-row compact repayment plan layout Keep each installment on one desktop row with content-based column widths so 1080P/1440 do not need inner scrolling or two-column cards. Co-authored-by: Cursor Co-authored-by: multica-agent --- app/views/pages/archive_form.php | 97 ++++++++++++++++---------------- public/assets/fusion.css | 67 +++++++++++++++++++--- 2 files changed, 109 insertions(+), 55 deletions(-) diff --git a/app/views/pages/archive_form.php b/app/views/pages/archive_form.php index 0bb2afd..b94f04d 100644 --- a/app/views/pages/archive_form.php +++ b/app/views/pages/archive_form.php @@ -150,7 +150,8 @@
-
到期日前可选“提前还款”;到期日后可选“按期还款/延期/逾期”。逾期未归还计划本金按上浮利率计息,剩余额度按已还款计划与手动归还本金自动计算。
+ +
> @@ -159,31 +160,29 @@
-
-
- - -
-
- - -
-
- - -
-
- - > -
+
+ + +
+
+ + +
+
+ + +
+
+ + >
- +
@@ -193,31 +192,29 @@ @@ -614,12 +611,18 @@ } syncDelayInput(sel); } + function syncPlanStatusTitle(sel){ + if(!sel){return;} + var opt=sel.options[sel.selectedIndex]; + sel.title=opt&&opt.text?opt.text:'状态操作'; + } function syncDelayInput(el){ var tr=el.closest('.plan-edit-row'); if(!tr){return;} var d=tr.querySelector('input[name="plan_delay_date[]"]'); if(!d){return;} d.disabled=(el.value!=='delayed'); if(d.disabled){d.value='';} + syncPlanStatusTitle(el); } function addPlanRow(){ var tb=document.getElementById('plan_table'); diff --git a/public/assets/fusion.css b/public/assets/fusion.css index cd9a102..50c3b09 100644 --- a/public/assets/fusion.css +++ b/public/assets/fusion.css @@ -576,25 +576,63 @@ img { display: block; } flex: 0 0 auto; } .v-fusion .editor-card { background: var(--surface); border: 1px solid var(--hairline); border-radius: 14px; padding: 20px 22px; } -/* HEL-404:分期行改为两列表单网格,去掉模块内滚动(overflow-x:auto 会把 overflow-y 也变成滚动容器) */ +/* HEL-413:分期恢复“每期一整行”。列宽按内容价值分配,overflow:visible 避免模块内滚动。 */ +.v-fusion .editor-page [data-form-block="plan"] .plan-lead-hint { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; +} .v-fusion .editor-page .plan-editor { overflow: visible; margin-top: 12px; min-width: 0; } .v-fusion .editor-page .plan-editor[hidden] { display: none; } -.v-fusion .editor-page .plan-list { display: flex; flex-direction: column; gap: 8px; min-width: 0; } +.v-fusion .editor-page .plan-list { display: flex; flex-direction: column; gap: 6px; min-width: 0; } .v-fusion .editor-page .plan-edit-row { - display: flex; - flex-direction: column; - align-items: stretch; - gap: 8px; + display: grid; + grid-template-columns: + minmax(0, 1.2fr) + minmax(0, 1fr) + minmax(0, 0.86fr) + minmax(0, 1.2fr) + max-content; + align-items: start; + column-gap: 6px; + row-gap: 0; + padding: 8px; margin-bottom: 0; min-width: 0; } -.v-fusion .editor-page .plan-edit-row .form-grid { padding-top: 0; gap: 8px 12px; width: 100%; min-width: 0; } +.v-fusion .editor-page .plan-edit-row .form-field { + min-width: 0; + gap: 4px; +} +.v-fusion .editor-page .plan-edit-row .form-field label { + font-size: 11.5px; + letter-spacing: 0.03em; + color: var(--text-3); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} .v-fusion .editor-page .plan-edit-row .form-field input, .v-fusion .editor-page .plan-edit-row .form-field select { width: 100%; min-width: 0; + padding: 0 8px; + font-size: 13.5px; + font-variant-numeric: tabular-nums; } -.v-fusion .editor-page .plan-edit-act { display: flex; justify-content: flex-end; } +.v-fusion .editor-page .plan-edit-row .form-field select { padding-right: 22px; } +.v-fusion .editor-page .plan-edit-act { + display: grid; + grid-template-rows: 11.5px 34px; + align-items: center; + justify-items: end; + gap: 4px; + padding-bottom: 0; + flex: 0 0 auto; +} +.v-fusion .editor-page .plan-edit-act::before { content: ""; } +.v-fusion .editor-page .plan-edit-act .btn { grid-row: 2; } .v-fusion .editor-page .plan-edit-add { margin: 12px 0 0; } .v-fusion .summary-card { position: sticky; top: 34px; @@ -958,6 +996,19 @@ img { display: block; } .v-fusion .table-card { overflow-x: auto; } .v-fusion .search { min-width: 0; flex: 1; } .v-fusion .field-grid, .v-fusion .form-grid { grid-template-columns: 1fr; } + .v-fusion .editor-page .plan-edit-row { + grid-template-columns: 1fr; + align-items: stretch; + row-gap: 8px; + } + .v-fusion .editor-page .plan-edit-act { + display: flex; + justify-content: flex-start; + padding-bottom: 0; + grid-template-rows: none; + } + .v-fusion .editor-page .plan-edit-act::before { content: none; } + .v-fusion .editor-page .plan-edit-act .btn { grid-row: auto; } .v-fusion .summary-banner { grid-template-columns: 1fr; } .v-fusion .hero-amount { flex-direction: column; align-items: flex-start; gap: 8px; } .v-fusion .hero-amount .ha-side { text-align: left; }