From 6136eb3b5e4c37cbab35d5c007e38046fc88af3f Mon Sep 17 00:00:00 2001 From: limeng <1131177064@qq.com> Date: Fri, 14 Aug 2026 14:27:00 +0800 Subject: [PATCH 1/4] feat: register courier agreement signing page --- config/business_navigation.php | 1 + 1 file changed, 1 insertion(+) diff --git a/config/business_navigation.php b/config/business_navigation.php index 6ad65233..a3310bf7 100644 --- a/config/business_navigation.php +++ b/config/business_navigation.php @@ -203,6 +203,7 @@ return [ 'icon' => 'local_shipping', 'pages' => [ ['slug' => 'quote-management', 'title' => '报价管理'], + ['slug' => 'agreement-signing', 'title' => '协议签署'], ['slug' => 'freight-reconciliation', 'title' => '运费对账'], ['slug' => 'bookkeeping-details', 'title' => '记账明细'], ['slug' => 'compensation-details', 'title' => '赔偿明细'], -- 2.47.2 From 68ae97842ea43a9fb1563e6e0615f0e6618f1879 Mon Sep 17 00:00:00 2001 From: limeng <1131177064@qq.com> Date: Fri, 14 Aug 2026 14:51:41 +0800 Subject: [PATCH 2/4] feat: add courier agreement signing workspace --- .../agreement-signing.blade.php | 1414 +++++++++++++++++ .../Business/AgreementSigningPageTest.php | 82 + 2 files changed, 1496 insertions(+) create mode 100644 resources/views/business/pages/courier-payables/agreement-signing.blade.php create mode 100644 tests/Feature/Business/AgreementSigningPageTest.php diff --git a/resources/views/business/pages/courier-payables/agreement-signing.blade.php b/resources/views/business/pages/courier-payables/agreement-signing.blade.php new file mode 100644 index 00000000..b62ca4d6 --- /dev/null +++ b/resources/views/business/pages/courier-payables/agreement-signing.blade.php @@ -0,0 +1,1414 @@ +
+ + +
+
+ + + +
+ + + E签宝未连接 + +
+ +
+ +
+ 当前仅开放签署流程界面 +

E签宝应用、模板编号和回调地址尚未配置,任务可以预览但不能发送。

+
+ 未配置 +
+ +
+
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + +
任务编号快递物流商业务类型签署状态发起人更新时间操作
+
+ + + + 还没有协议签署任务 +

完成E签宝接入后,发起、签署、拒签和归档记录会在这里统一追踪。

+ +
+
+
+ +
+ + 签署完成只生成可核验的电子协议,不会自动启用新收款账户;账户变更仍需独立财务复核和原档案电话核验。 +
+
+ + + + + +

+ + +
diff --git a/tests/Feature/Business/AgreementSigningPageTest.php b/tests/Feature/Business/AgreementSigningPageTest.php new file mode 100644 index 00000000..364daf92 --- /dev/null +++ b/tests/Feature/Business/AgreementSigningPageTest.php @@ -0,0 +1,82 @@ +user->attachPermission( + Permission::where('name', 'read-admin-panel')->firstOrFail() + ); + } + + public function testAgreementSigningPageRendersTheSigningWorkspace(): void + { + $this->grantWorkspaceAccess(); + + $this->loginAs() + ->get(route('business.pages.show', [ + 'section' => 'courier-payables', + 'page' => 'agreement-signing', + ])) + ->assertOk() + ->assertSeeText('协议签署') + ->assertSeeText('签署任务') + ->assertSeeText('新建发起') + ->assertSeeText('模板管理') + ->assertSeeText('E签宝未连接') + ->assertSeeText('还没有协议签署任务') + ->assertSeeText('收款账户变更证明.doc') + ->assertSeeText('收款账户证明文件.doc') + ->assertSeeText('公司主体变更证明.docx') + ->assertSeeText('共用合同证明.docx') + ->assertSeeText('授权委托书(快递).docx'); + } + + public function testAgreementSigningPageIncludesTheFourStepLocalFlow(): void + { + $this->grantWorkspaceAccess(); + + $this->loginAs() + ->get(route('business.pages.show', [ + 'section' => 'courier-payables', + 'page' => 'agreement-signing', + ])) + ->assertOk() + ->assertSee('data-agreement-step-panel="1"', false) + ->assertSee('data-agreement-step-panel="2"', false) + ->assertSee('data-agreement-step-panel="3"', false) + ->assertSee('data-agreement-step-panel="4"', false) + ->assertSee('data-step-send', false) + ->assertSeeText('E签宝尚未配置') + ->assertSeeText('账户变更必须执行双人复核') + ->assertSeeText('签署完成只生成可核验的电子协议'); + } + + public function testAgreementSigningPageRejectsUsersWithoutItsSidebarPermission(): void + { + $subject = 'user_' . $this->user->id; + + setting()->set('system.sidebar_permissions', json_encode([ + 'configured' => [$subject], + 'subjects' => [ + $subject => ['courier-payables/freight-reconciliation'], + ], + ], JSON_UNESCAPED_UNICODE)); + + try { + $this->loginAs()->get(route('business.pages.show', [ + 'section' => 'courier-payables', + 'page' => 'agreement-signing', + ])); + $this->fail('没有协议签署页面权限的用户不应访问该页面。'); + } catch (HttpException $exception) { + $this->assertSame(404, $exception->getStatusCode()); + } + } +} -- 2.47.2 From 900a6b902767713e79a94d5c35f2ac5c8a128d83 Mon Sep 17 00:00:00 2001 From: limeng <1131177064@qq.com> Date: Fri, 14 Aug 2026 15:21:40 +0800 Subject: [PATCH 3/4] refactor: redesign agreement signing request --- .../agreement-signing.blade.php | 1014 +++++++---------- .../Business/AgreementSigningPageTest.php | 32 +- 2 files changed, 427 insertions(+), 619 deletions(-) diff --git a/resources/views/business/pages/courier-payables/agreement-signing.blade.php b/resources/views/business/pages/courier-payables/agreement-signing.blade.php index b62ca4d6..e96befdc 100644 --- a/resources/views/business/pages/courier-payables/agreement-signing.blade.php +++ b/resources/views/business/pages/courier-payables/agreement-signing.blade.php @@ -1,3 +1,5 @@ +@php($agreementCompanyName = company()?->name ?: '当前公司') +