From c39c3c3f3c382f7b6c7e8097ed8851078ed77297 Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Tue, 9 Apr 2024 11:44:44 +0800 Subject: [PATCH] agreement --- app/Admin/Controllers/AgreementController.php | 6 +++--- app/Admin/Services/AgreementService.php | 20 ++++++++++++++++--- app/Traits/HasCheckable.php | 7 +++++++ 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/app/Admin/Controllers/AgreementController.php b/app/Admin/Controllers/AgreementController.php index 3e80c8d..ed976ed 100644 --- a/app/Admin/Controllers/AgreementController.php +++ b/app/Admin/Controllers/AgreementController.php @@ -84,7 +84,7 @@ class AgreementController extends AdminController ['label' => __('agreement.employee_id'), 'content' => '${employee.name}'], ['label' => __('agreement.created_at'), 'content' => '${created_at}'], ['label' => __('agreement.remarks'), 'content' => '${remarks}', 'span' => 3], - ['label' => __('agreement.images'), 'content' => amisMake()->Images()->name('images')->enlargeAble(), 'span' => 3], + ['label' => __('agreement.images'), 'content' => amisMake()->Images()->name('images')->src('${preview}')->enlargeAble(), 'span' => 3], ['label' => __('workflow_log.check_status'), 'content' => amisMake()->Mapping()->name('workflow.check_status')->map(CheckStatus::options())], ['label' => __('workflow_log.checked_at'), 'content' => '${workflow.checked_at}'], ['label' => __('workflow_log.remarks'), 'content' => '${workflow.check_remarks}'], @@ -111,10 +111,10 @@ class AgreementController extends AdminController } $baseUrl = Storage::url(''); $zip = new \ZipArchive(); - $filename = time().'.zip'; + $filename = Storage::path(time().'.zip'); $zip->open($filename, \ZipArchive::CREATE | \ZipArchive::OVERWRITE); foreach($model->images as $item) { - $path = str_replace($baseUrl, '', $item); + $path = data_get($item, 'value'); $info = pathinfo($path); $zip->addFile(Storage::path($path), data_get($info, 'basename')); } diff --git a/app/Admin/Services/AgreementService.php b/app/Admin/Services/AgreementService.php index aeddd6c..b511aa7 100644 --- a/app/Admin/Services/AgreementService.php +++ b/app/Admin/Services/AgreementService.php @@ -3,7 +3,7 @@ namespace App\Admin\Services; use App\Admin\Filters\AgreementFilter; -use App\Models\Agreement; +use App\Models\{Agreement, WorkflowCheck}; use Illuminate\Support\Facades\{Validator, Storage}; use Illuminate\Support\Str; @@ -20,9 +20,12 @@ class AgreementService extends BaseService if (isset($data['images']) && $data['images']) { $images = []; foreach ($data['images'] as $value) { - $image = is_array($value) ? data_get($value, 'value') : $value; + $image = data_get($value, 'value'); $url = Str::startsWith($image, ['http://', 'https://']) ? $image : Storage::url($image); - array_push($images, $url); + array_push($images, [ + 'value' => $image, + 'preview' => $url, + ]); } $data['images'] = $images; } @@ -43,4 +46,15 @@ class AgreementService extends BaseService return true; } + + public function delete(string $ids): mixed + { + $id = explode(',', $ids); + + foreach (Agreement::whereIn('id', $id)->get() as $item) { + $item->delete(); + } + + return true; + } } diff --git a/app/Traits/HasCheckable.php b/app/Traits/HasCheckable.php index 7bbed6c..d57743f 100644 --- a/app/Traits/HasCheckable.php +++ b/app/Traits/HasCheckable.php @@ -15,6 +15,13 @@ trait HasCheckable 'key' => $model->getCheckKey(), ]); }); + + static::deleting(function ($model) { + // 删除审核流水记录 + $model->workflow->logs()->delete(); + // 删除审核流程 + $model->workflow->delete(); + }); } public function getCheckKey(): string