diff --git a/resources/views/business/pages/financial-ledger/ledger.blade.php b/resources/views/business/pages/financial-ledger/ledger.blade.php index f85c14e6..df2880b3 100644 --- a/resources/views/business/pages/financial-ledger/ledger.blade.php +++ b/resources/views/business/pages/financial-ledger/ledger.blade.php @@ -5,6 +5,7 @@ $canEdit = (bool) ($ledgerCanEditMapping ?? false); $canEditAccountStatus = (bool) ($ledgerCanEditAccountStatus ?? false); $canEditAccountType = (bool) ($ledgerCanEditAccountType ?? false); + $canEditAccounts = $canEditAccountStatus || $canEditAccountType; $accountStatusOptions = $ledgerAccountStatusOptions ?? \App\Utilities\FinanceLedgerAccountStatus::OPTIONS; $accountFilterOptions = $ledgerAccountFilterOptions ?? ['regions' => [], 'types' => []]; $accountTypeOptions = $accountFilterOptions['types'] ?? []; @@ -45,6 +46,18 @@ .ledger-field input, .ledger-field select { height:2.15rem; padding:0 .6rem; border:1px solid var(--vip-border, #D8D2C7); border-radius:.45rem; background:#fff; color:var(--vip-content-ink, #171717); font:inherit; } .ledger-field input:focus, .ledger-field select:focus { border-color:var(--vip-content-accent-dark, #856632); outline:none; box-shadow:0 0 0 3px rgba(133,102,50,.16); } .ledger-actions { display:flex; gap:.45rem; padding-bottom:.05rem; } + .ledger-edit-switch { position:relative; display:inline-flex; align-items:center; align-self:flex-end; gap:.45rem; height:2.15rem; padding:0 .65rem; border:1px solid var(--vip-border, #D8D2C7); border-radius:.45rem; background:#fff; color:var(--vip-content-muted, #595959); font-size:.72rem; font-weight:600; cursor:pointer; user-select:none; white-space:nowrap; } + .ledger-edit-switch input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; } + .ledger-edit-switch__track { position:relative; width:2.15rem; height:1.2rem; border-radius:999px; background:#d6d0c5; transition:background .16s ease; } + .ledger-edit-switch__thumb { position:absolute; top:.15rem; left:.15rem; width:.9rem; height:.9rem; border-radius:50%; background:#fff; box-shadow:0 1px 2px rgba(23,23,23,.2); transition:transform .16s ease; } + .ledger-edit-switch input:checked + .ledger-edit-switch__track { background:var(--vip-content-accent-dark, #856632); } + .ledger-edit-switch input:checked + .ledger-edit-switch__track .ledger-edit-switch__thumb { transform:translateX(.95rem); } + .ledger-edit-switch input:focus-visible + .ledger-edit-switch__track { outline:2px solid var(--vip-content-accent-dark, #856632); outline-offset:2px; } + .ledger-edit-switch:has(input:checked) { border-color:var(--vip-content-accent-dark, #856632); background:var(--vip-content-accent-soft, #F7F0DE); color:var(--vip-content-accent-dark, #856632); } + .ledger-edit-switch.is-disabled { cursor:not-allowed; opacity:.55; } + #ledger-panel-accounts .ledger-account-editor { display:none; } + #ledger-panel-accounts.is-account-edit-mode .ledger-account-readonly { display:none; } + #ledger-panel-accounts.is-account-edit-mode .ledger-account-editor { display:block; } .ledger-btn { display:inline-flex; align-items:center; justify-content:center; gap:.35rem; height:2.15rem; padding:0 .8rem; border:1px solid var(--vip-border, #D8D2C7); border-radius:.45rem; background:#fff; color:var(--vip-content-ink, #171717); font:inherit; font-weight:600; text-decoration:none; cursor:pointer; white-space:nowrap; } .ledger-btn:hover { border-color:var(--vip-content-accent-dark, #856632); color:var(--vip-content-accent-dark, #856632); } .ledger-btn.primary { border-color:var(--vip-content-accent-dark, #856632); background:var(--vip-content-accent-dark, #856632); color:#fff; } @@ -178,6 +191,11 @@ @if ($activeAccountFilterCount > 0) 筛选中{{ $activeAccountFilterCount }} @endif +