From bedb93a3c6b2412a67674ffff84077a5ae7242a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E6=9C=A8?= <594326199@qq.com> Date: Sat, 17 Oct 2026 10:04:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E5=AF=B9=E8=B4=A6?= =?UTF-8?q?=EF=BC=9A=E9=80=80=E8=B4=A7=E6=89=A3=E5=87=8F=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E5=85=A8=E9=83=A8=E9=80=80=E8=B4=A7=E8=A1=8C?= =?UTF-8?q?=EF=BC=88=E6=AF=8F=E9=A1=B5=2015=20=E8=A1=8C=20+=20=E9=A1=B5?= =?UTF-8?q?=E7=A0=81=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 之前退货区只展示金额最高的 15 行,看不到其余行。现在全部退货行按扣减金额从高到低分页展示,每页 15 行并带页码翻页,翻页保留所选厂家与上传数据页码。 --- .../View/SupplierReconciliationPageData.php | 10 ++++- .../supplier-data.blade.php | 44 +++++++++++++++++-- .../Business/SupplierReconciliationTest.php | 34 ++++++++++++++ 3 files changed, 84 insertions(+), 4 deletions(-) diff --git a/modules/EcommerceFinance/View/SupplierReconciliationPageData.php b/modules/EcommerceFinance/View/SupplierReconciliationPageData.php index a66abff4..1ff7f2fa 100644 --- a/modules/EcommerceFinance/View/SupplierReconciliationPageData.php +++ b/modules/EcommerceFinance/View/SupplierReconciliationPageData.php @@ -207,9 +207,17 @@ class SupplierReconciliationPageData usort($rows, static fn (array $a, array $b): int => $b['deduction'] <=> $a['deduction']); + // 全部退货行按金额从高到低分页展示(每页 15 行)。 + $perPage = self::PER_PAGE; + $pages = max((int) ceil(count($rows) / $perPage), 1); + $page = min(max((int) request()->query('return_page', 1), 1), $pages); + return [ 'supplier' => $supplier, - 'rows' => array_slice($rows, 0, 15), + 'rows' => array_slice($rows, ($page - 1) * $perPage, $perPage), + 'page' => $page, + 'pages' => $pages, + 'per_page' => $perPage, 'total_rows' => count($returnRows), 'total_amount' => round($total, 2), 'confirmed_count' => $confirmedCount, diff --git a/resources/views/business/pages/supplier-reconciliation/supplier-data.blade.php b/resources/views/business/pages/supplier-reconciliation/supplier-data.blade.php index a1a84d47..39798417 100644 --- a/resources/views/business/pages/supplier-reconciliation/supplier-data.blade.php +++ b/resources/views/business/pages/supplier-reconciliation/supplier-data.blade.php @@ -136,10 +136,11 @@ $pageCount = max((int) ceil($statementTotal / $perPage), 1); $pageStart = max(1, min($rowsPage - 4, $pageCount - 8)); $pageEnd = min($pageCount, $pageStart + 8); - $pageUrl = fn (int $number): string => route('business.pages.show', [ + $pageUrl = fn (int $number): string => route('business.pages.show', array_filter([ 'section' => $section['slug'], 'page' => $page['slug'], 'supplier' => $selectedSupplier, 'rows_page' => $number, - ]); + 'return_page' => $returnPanel['page'] > 1 ? $returnPanel['page'] : null, + ], static fn (mixed $value): bool => $value !== null && $value !== '')); @endphp
列名取自《退货明细》原始表头(标记多标签、创建人、对账人、退货单备注等内部字段不展示),左右滑动查看全部。 - 退货共 {{ number_format($returnPanel['total_rows']) }} 行,上表展示金额最高的 {{ count($returnPanel['rows']) }} 行。 + 退货共 {{ number_format($returnPanel['total_rows']) }} 行,按扣减金额从高到低排列,每页 {{ $returnPanel['per_page'] }} 行(第 {{ $returnPanel['page'] }} / {{ $returnPanel['pages'] }} 页)。 金额列为空的行以预估金额参与扣减,与采购方记账口径一致。
+ @if ($returnPanel['pages'] > 1) + @php + $returnPageCount = $returnPanel['pages']; + $returnPageCurrent = $returnPanel['page']; + $returnPageStart = max(1, min($returnPageCurrent - 4, $returnPageCount - 8)); + $returnPageEnd = min($returnPageCount, $returnPageStart + 8); + $returnPageUrl = fn (int $number): string => route('business.pages.show', array_filter([ + 'section' => $section['slug'], + 'page' => $page['slug'], + 'supplier' => $selectedSupplier, + 'rows_page' => $rowsPage > 1 ? $rowsPage : null, + 'return_page' => $number, + ], static fn (mixed $value): bool => $value !== null && $value !== '')); + @endphp +