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\Services\WorkFlowService;
use App\Enums\CheckType;
use App\Enums\{CheckType, CheckStatus};
use App\Models\Employee;
use App\Models\Keyword;
use App\Models\WorkflowCheck;
@ -231,6 +231,13 @@ class WorkflowController extends AdminController
public function logs(Request $request)
{
$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);
}

View File

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

View File

@ -4,7 +4,7 @@ namespace App\Http\Controllers\Api;
use Illuminate\Http\{Request, Response};
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\Models\{WorkflowLog, WorkflowCheck};
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('remarks')->label(__('workflow_log.remarks')),
])->itemActions([
$this->succesAction()->reload($reload),
$this->failAction()->reload($reload),
$this->succesAction()->visibleOn('${checkable}')->reload($reload),
$this->failAction()->visibleOn('${checkable}')->reload($reload),
])
);
}