From 45dade3c261f1bbe66a8b2f44e785e7da9dcfbf0 Mon Sep 17 00:00:00 2001
From: shanshi <3316401569@qq.com>
Date: Fri, 13 Nov 2026 10:12:52 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B4=A6=E6=88=B7=E5=9F=BA=E6=9C=AC?=
=?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=B1=BB=E5=9E=8B=E5=8D=A1=E7=89=87=E6=94=B9?=
=?UTF-8?q?=E4=B8=BA=E7=8B=AC=E7=AB=8B=E9=A1=B5=E9=9D=A2=20(#1146)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
将五类账户基本信息的详情入口改为独立页面,复用现有账户筛选和编辑能力。
---
.../Controllers/Business/FinanceLedger.php | 21 ++++
.../View/FinanceLedgerPageData.php | 61 +++++-----
.../account-basic-page.blade.php | 7 ++
.../pages/financial-ledger/ledger.blade.php | 106 ++++++++++++------
.../partials/account-type-cards.blade.php | 2 +-
routes/admin.php | 5 +
.../Business/FinanceLedgerNavigationTest.php | 32 ++++++
7 files changed, 169 insertions(+), 65 deletions(-)
create mode 100644 resources/views/business/pages/financial-ledger/account-basic-page.blade.php
diff --git a/app/Http/Controllers/Business/FinanceLedger.php b/app/Http/Controllers/Business/FinanceLedger.php
index b0665aba..e73b7109 100644
--- a/app/Http/Controllers/Business/FinanceLedger.php
+++ b/app/Http/Controllers/Business/FinanceLedger.php
@@ -16,6 +16,7 @@ use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
use Illuminate\Validation\Rule;
use Illuminate\Validation\ValidationException;
+use Illuminate\View\View;
use Modules\EcommerceFinance\Services\FinanceLedgerAccountCreator;
use Modules\EcommerceFinance\Services\FinanceLedgerAccountEditor;
use Modules\EcommerceFinance\Services\FinanceLedgerAccountTemplate;
@@ -45,6 +46,26 @@ class FinanceLedger extends Controller
return $template->download();
}
+ public function accountBasicPage(FinanceLedgerPageData $pageData, string $view): View
+ {
+ $definition = FinanceLedgerPageData::ACCOUNT_TYPE_VIEWS[$view] ?? null;
+ abort_if($definition === null, 404);
+
+ $ledgerData = $pageData->page('accounts', $view);
+ $ledgerData['ledgerStandaloneAccountView'] = $view;
+ $ledgerData['ledgerStandaloneAccountTitle'] = (string) $definition['title'];
+ $ledgerData['ledgerStandaloneAccountDescription'] = (string) $definition['description'];
+ $ledgerData['ledgerStandaloneAccountBackUrl'] = route('business.pages.show', [
+ 'section' => 'financial-operations',
+ 'page' => 'ledger',
+ ]) . '?tab=flows&flows_view=basic';
+
+ return view('business.pages.financial-ledger.account-basic-page', [
+ 'ledgerData' => $ledgerData,
+ 'pageTitle' => (string) $definition['title'],
+ ]);
+ }
+
public function storeAccount(Request $request, FinanceLedgerAccountCreator $creator): JsonResponse
{
abort_unless(
diff --git a/modules/EcommerceFinance/View/FinanceLedgerPageData.php b/modules/EcommerceFinance/View/FinanceLedgerPageData.php
index 3b099582..01edce73 100644
--- a/modules/EcommerceFinance/View/FinanceLedgerPageData.php
+++ b/modules/EcommerceFinance/View/FinanceLedgerPageData.php
@@ -37,6 +37,34 @@ class FinanceLedgerPageData
'sources' => ['title' => '数据来源', 'icon' => 'database'],
];
+ public const ACCOUNT_TYPE_VIEWS = [
+ 'bank' => [
+ 'title' => '银行账户',
+ 'description' => '银行开户、网点和限额等基本资料',
+ 'icon' => 'account_balance',
+ ],
+ 'non_store' => [
+ 'title' => '支付宝',
+ 'description' => '支付宝账号、商户和实名主体资料',
+ 'icon' => 'account_balance_wallet',
+ ],
+ 'wangshang' => [
+ 'title' => '网商银行',
+ 'description' => '网商银行账户及企业资料',
+ 'icon' => 'business_center',
+ ],
+ 'wallet' => [
+ 'title' => '网银钱包',
+ 'description' => '网银钱包账户及关联资料',
+ 'icon' => 'wallet',
+ ],
+ 'other' => [
+ 'title' => '其他账户',
+ 'description' => '尚未归入固定类型的账户资料',
+ 'icon' => 'category',
+ ],
+ ];
+
private const HIDDEN_TABS = [
'accounts' => true,
];
@@ -85,7 +113,7 @@ class FinanceLedgerPageData
) {
}
- public function page(?string $tab = null): array
+ public function page(?string $tab = null, ?string $accountView = null): array
{
$tab = (string) (request('tab') ?: $tab);
$tab = array_key_exists($tab, self::TABS) ? $tab : 'flows';
@@ -95,7 +123,7 @@ class FinanceLedgerPageData
$flowView = in_array($requestedFlowView, ['summary', 'bank', 'non_store', 'wangshang', 'wallet', 'daily', 'basic'], true)
? $requestedFlowView
: 'summary';
- $requestedAccountView = trim((string) request('accounts_view', 'all'));
+ $requestedAccountView = trim((string) ($accountView ?? request('accounts_view', 'all')));
$accountView = in_array($requestedAccountView, ['all', 'bank', 'non_store', 'wangshang', 'wallet', 'other'], true)
? $requestedAccountView
: 'all';
@@ -307,36 +335,9 @@ class FinanceLedgerPageData
*/
private function accountTypeCards(): array
{
- $definitions = [
- 'bank' => [
- 'title' => '银行账户',
- 'description' => '银行开户、网点和限额等基本资料',
- 'icon' => 'account_balance',
- ],
- 'non_store' => [
- 'title' => '支付宝',
- 'description' => '支付宝账号、商户和实名主体资料',
- 'icon' => 'account_balance_wallet',
- ],
- 'wangshang' => [
- 'title' => '网商银行',
- 'description' => '网商银行账户及企业资料',
- 'icon' => 'business_center',
- ],
- 'wallet' => [
- 'title' => '网银钱包',
- 'description' => '网银钱包账户及关联资料',
- 'icon' => 'wallet',
- ],
- 'other' => [
- 'title' => '其他账户',
- 'description' => '尚未归入固定类型的账户资料',
- 'icon' => 'category',
- ],
- ];
$cards = [];
- foreach ($definitions as $view => $definition) {
+ foreach (self::ACCOUNT_TYPE_VIEWS as $view => $definition) {
$query = FinanceLedgerIndependentAccounts::exclude(
$this->db()->table('fin_accounts as a'),
'a.account_short',
diff --git a/resources/views/business/pages/financial-ledger/account-basic-page.blade.php b/resources/views/business/pages/financial-ledger/account-basic-page.blade.php
new file mode 100644
index 00000000..851d9aa6
--- /dev/null
+++ b/resources/views/business/pages/financial-ledger/account-basic-page.blade.php
@@ -0,0 +1,7 @@
+
账户、店铺、期初与动账明细统一归集;数据页默认本月 1 日至月底,可调整日期查看历史,流水口径:期末 = 期初 + 入账 − 出账。账户总表与店铺台账展示当前状态。
+ @if ($standaloneAccountView !== null) +{{ $standaloneAccountDescription }}。当前为独立页面,筛选、列设置和账户编辑均只在本页进行。
+账户、店铺、期初与动账明细统一归集;数据页默认本月 1 日至月底,可调整日期查看历史,流水口径:期末 = 期初 + 入账 − 出账。账户总表与店铺台账展示当前状态。
+