From 91a35330fcb781ef22b03e1f09bb749957d9c64f Mon Sep 17 00:00:00 2001 From: yueyang <2495544247@qq.com> Date: Fri, 6 Nov 2026 19:06:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DOA=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E8=AF=AF=E5=88=A4=E6=9C=AA=E5=B0=B1=E7=BB=AA?= =?UTF-8?q?=20(#969)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 导出不再依赖会与页面状态不一致的镜像就绪判断;保留筛选条件导出并展示失败提示。 --- .../Http/Controllers/ProcessDetails.php | 12 +----------- .../process-details-content.blade.php | 7 +++++++ tests/Feature/Business/ProcessDetailsPageTest.php | 12 +++++++++++- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/modules/EcommerceFinance/Http/Controllers/ProcessDetails.php b/modules/EcommerceFinance/Http/Controllers/ProcessDetails.php index d05bdecd..59b16788 100644 --- a/modules/EcommerceFinance/Http/Controllers/ProcessDetails.php +++ b/modules/EcommerceFinance/Http/Controllers/ProcessDetails.php @@ -3,7 +3,6 @@ namespace Modules\EcommerceFinance\Http\Controllers; use Illuminate\Http\JsonResponse; -use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Routing\Controller; @@ -103,17 +102,8 @@ class ProcessDetails extends Controller } } - public function export(Request $request): StreamedResponse|RedirectResponse + public function export(Request $request): StreamedResponse { - if (! $this->repository->ready()) { - return redirect() - ->route('business.pages.show', [ - 'section' => 'process-data', - 'page' => 'oa-process', - ]) - ->withErrors(['export' => 'OA流程镜像尚未完成导入,暂时不能导出。']); - } - $filters = ProcessDetailsPageData::normalizeFilters($request); return response()->streamDownload(function () use ($filters): void { diff --git a/resources/views/business/pages/financial-operations/process-details-content.blade.php b/resources/views/business/pages/financial-operations/process-details-content.blade.php index 06dea1f2..d9c31f92 100644 --- a/resources/views/business/pages/financial-operations/process-details-content.blade.php +++ b/resources/views/business/pages/financial-operations/process-details-content.blade.php @@ -995,6 +995,13 @@ @endif + @if ($errors->has('export')) + + @endif + @if ($mirrorStale)
diff --git a/tests/Feature/Business/ProcessDetailsPageTest.php b/tests/Feature/Business/ProcessDetailsPageTest.php index 1ccb3c44..0b44eb3b 100644 --- a/tests/Feature/Business/ProcessDetailsPageTest.php +++ b/tests/Feature/Business/ProcessDetailsPageTest.php @@ -159,6 +159,16 @@ class ProcessDetailsPageTest extends FeatureTestCase ->assertSee('value="50"', false) ->assertSee('value="100" selected', false) ->assertSee('value="200"', false) + ->assertSee( + 'href="' + . e(route('business.process-details.export', [ + 'payment_state' => '待付款', + 'current_approver_name' => '王五', + 'waiting_bucket' => '1_2d', + ])) + . '"', + false, + ) ->assertSee('导出'); } @@ -308,7 +318,7 @@ class ProcessDetailsPageTest extends FeatureTestCase $this->user->attachPermission(Permission::where('name', 'read-admin-panel')->firstOrFail()); $repository = Mockery::mock(DingProcessDetailMirrorRepository::class); - $repository->shouldReceive('ready')->once()->andReturn(true); + $repository->shouldNotReceive('ready'); $repository->shouldReceive('exportRows')->once()->andReturnUsing(function (): \Generator { yield [ 'business_id' => '202601011200000000001',