From 48c99e07b57bf46a98c5bfd7ec9a2552f45be635 Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Sat, 27 Apr 2024 11:36:17 +0800 Subject: [PATCH] api worlflow --- app/Admin/Controllers/Store/EmployeeController.php | 2 +- app/Admin/Controllers/System/WorkflowController.php | 2 +- app/Admin/Services/EmployeePromotionService.php | 2 +- app/Admin/Services/EmployeeService.php | 4 ++++ app/Models/WorkflowLog.php | 8 ++++---- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/Admin/Controllers/Store/EmployeeController.php b/app/Admin/Controllers/Store/EmployeeController.php index 157b4e0..d4fe3ba 100644 --- a/app/Admin/Controllers/Store/EmployeeController.php +++ b/app/Admin/Controllers/Store/EmployeeController.php @@ -44,7 +44,7 @@ class EmployeeController extends AdminController amisMake()->TableColumn()->name('avatar')->label(__('employee.avatar'))->type('avatar')->src('${avatar}'), amisMake()->TableColumn()->name('jobs')->label(__('employee.jobs'))->type('each')->items(amisMake()->Tag()->label('${name}')), // amisMake()->TableColumn()->name('store.master_id')->label(__('store.master_id'))->set('type', 'tpl')->tpl('${store.master_id == id ? "店长" : "--"}'), - amisMake()->TableColumn()->name('phone')->label(__('employee.phone')), + amisMake()->TableColumn()->name('phone')->label(__('employee.phone'))->copyable(), $this->rowActions([ $this->rowDeleteButton()->hiddenOn('${store.master_id == id}')->visible($user->can('admin.store.employees.delete')), ]), diff --git a/app/Admin/Controllers/System/WorkflowController.php b/app/Admin/Controllers/System/WorkflowController.php index c4e271a..11363cd 100644 --- a/app/Admin/Controllers/System/WorkflowController.php +++ b/app/Admin/Controllers/System/WorkflowController.php @@ -252,7 +252,7 @@ class WorkflowController extends AdminController public function getJobOptions() { if (! $this->jobOptions) { - $this->jobOptions = Keyword::where('parent_key', 'job')->select(['key as value', 'name as label'])->get(); + $this->jobOptions = Keyword::where('parent_key', 'job')->sort(orkf)->select(['key as value', 'name as label'])->get(); } return $this->jobOptions; diff --git a/app/Admin/Services/EmployeePromotionService.php b/app/Admin/Services/EmployeePromotionService.php index e581907..0b8dca1 100644 --- a/app/Admin/Services/EmployeePromotionService.php +++ b/app/Admin/Services/EmployeePromotionService.php @@ -54,7 +54,7 @@ class EmployeePromotionService extends BaseService if ($user->can('admin.hr.promotion.update') && in_array($model->promotion_status, [PromotionStatus::Processing])) { array_push($actions, 'edit'); } - if ($user->can('admin.hr.promotion.delete') ) { + if ($user->can('admin.hr.promotion.delete') && in_array($model->promotion_status, [PromotionStatus::Processing, PromotionStatus::Fail])) { array_push($actions, 'delete'); } if (in_array($model->promotion_status, [PromotionStatus::Processing])) { diff --git a/app/Admin/Services/EmployeeService.php b/app/Admin/Services/EmployeeService.php index 8ccad56..ed115ba 100644 --- a/app/Admin/Services/EmployeeService.php +++ b/app/Admin/Services/EmployeeService.php @@ -95,6 +95,10 @@ class EmployeeService extends BaseService */ public function leave(Employee $user, $options = []) { + // 店长不能离职 + if ($user->isStoreMaster()) { + return $this->setError('请先设置新店长'); + } if ($user->employee_status == EmployeeStatus::Online) { $user->update([ 'leave_at' => data_get($options, 'leave_at', now()), diff --git a/app/Models/WorkflowLog.php b/app/Models/WorkflowLog.php index e5bcd00..c5a83ef 100644 --- a/app/Models/WorkflowLog.php +++ b/app/Models/WorkflowLog.php @@ -38,11 +38,11 @@ class WorkflowLog extends Model public function scopeOwn($builder, $user) { $checkValue = [$user->id]; - $jobs = $user->jobs; - if ($jobs && $jobs->count() > 0) { - $max = $jobs->max('sort'); + $userJobs = $user->jobs; + if ($userJobs && $userJobs->count() > 0) { + $max = $userJobs->max('sort'); $jobs = Keyword::where('parent_key', 'job')->where('sort', '<', $max)->get(); - foreach($jobs->merge($jobs) as $item) { + foreach($userJobs->merge($jobs) as $item) { array_push($checkValue, $user->store_id . '-' . $item->key); } }