admin workflow 审核按钮权限

main
panliang 2024-04-21 10:55:56 +08:00
parent c9bccd7123
commit c70868c91d
4 changed files with 16 additions and 14 deletions

View File

@ -4,7 +4,7 @@ namespace App\Admin\Controllers\System;
use App\Admin\Controllers\AdminController; use App\Admin\Controllers\AdminController;
use App\Admin\Services\WorkFlowService; use App\Admin\Services\WorkFlowService;
use App\Enums\CheckType; use App\Enums\{CheckType, CheckStatus};
use App\Models\Employee; use App\Models\Employee;
use App\Models\Keyword; use App\Models\Keyword;
use App\Models\WorkflowCheck; use App\Models\WorkflowCheck;
@ -231,6 +231,13 @@ class WorkflowController extends AdminController
public function logs(Request $request) public function logs(Request $request)
{ {
$list = WorkflowLog::with(['checkUser'])->where('check_id', $request->input('id'))->sort()->get(); $list = WorkflowLog::with(['checkUser'])->where('check_id', $request->input('id'))->sort()->get();
// 判断当前用户是否有权限审核
$user = Employee::with(['jobs'])->where('admin_user_id', Admin::user()->id)->first();
if ($user) {
foreach($list as &$item) {
$item->checkable = $item->check_status == CheckStatus::Processing && $this->service->authCheck($user, $item);
}
}
return $this->response()->success($list); return $this->response()->success($list);
} }

View File

@ -196,19 +196,14 @@ class WorkFlowService extends BaseService
// if ($user->adminUser?->isAdministrator()) { // if ($user->adminUser?->isAdministrator()) {
// return true; // return true;
// } // }
if ($log->check_type == CheckType::User && $log->check_value == $user->id) { $checkValue = [$user->id];
return true; if ($user->jobs) {
} elseif ($log->check_type == CheckType::Job) { foreach($user->jobs as $item) {
$jobs = $user->jobs; array_push($checkValue, $user->store_id . '-' . $item->key);
foreach ($jobs as $job) {
if ($log->check_value == $user->store_id.'-'.$job->key) {
return true;
}
} }
} }
return false; return in_array($log->check_value, $checkValue);
} }
public function resloveData($data, $model = null) public function resloveData($data, $model = null)

View File

@ -4,7 +4,7 @@ namespace App\Http\Controllers\Api;
use Illuminate\Http\{Request, Response}; use Illuminate\Http\{Request, Response};
use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Database\Eloquent\Relations\Relation;
use App\Http\Resources\{ReimbursementResource, WorkflowLogResource, EmployeeSignRepairResource, HolidayApplyResource, OvertimeApplyResource, AgreementResource, EmployeePromotionResource}; use App\Http\Resources\{ReimbursementResource, WorkflowLogResource, OfficalBusinessResource, EmployeeSignRepairResource, HolidayApplyResource, OvertimeApplyResource, AgreementResource, EmployeePromotionResource};
use App\Enums\CheckStatus; use App\Enums\CheckStatus;
use App\Models\{WorkflowLog, WorkflowCheck}; use App\Models\{WorkflowLog, WorkflowCheck};
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;

View File

@ -74,8 +74,8 @@ trait HasCheckActions
amis()->TableColumn()->name('checked_at')->label(__('workflow_log.checked_at')), amis()->TableColumn()->name('checked_at')->label(__('workflow_log.checked_at')),
amis()->TableColumn()->name('remarks')->label(__('workflow_log.remarks')), amis()->TableColumn()->name('remarks')->label(__('workflow_log.remarks')),
])->itemActions([ ])->itemActions([
$this->succesAction()->reload($reload), $this->succesAction()->visibleOn('${checkable}')->reload($reload),
$this->failAction()->reload($reload), $this->failAction()->visibleOn('${checkable}')->reload($reload),
]) ])
); );
} }