model = new Standard(); } /** * 岗位标准列表 */ public function index(Request $request): Response { if ($request->isAjax()) { $param = $request->get(); if ($param['subResource'] ?? false) { $keyword = trim($param['keyword'] ?? ''); $subResource = []; switch ($param['subResource']) { case 'role': $subResource = $this->option(AdminRole::where('name', 'like', '%' . $keyword . '%')->limit(20)->get()); break; case 'rule': $subResource = $this->option(Rule::where('name', 'like', '%' . $keyword . '%')->get()); break; default: return sparkSuccess(dataReturn(-1, '未知子资源')); } return sparkSuccess(dataReturn(0, '获取子资源成功', $subResource)); } $param['pagination'] ??= ['page' => 1, 'limit' => 10]; $query = $this->model::with(['role', 'rules']); return sparkSuccess(dataReturn(0, '获取成功', $query->paginate($param['pagination']['limit'], ['*'], 'page', $param['pagination']['page']))); } return view('safebasic/perfstandard/posStandard/index'); } /** * 查岗位标准 */ public function show(Request $request, $id): Response { $show = $this->model::with([])->find($id); return view('template/index', ['show' => $show]); } /** * 增岗位标准 */ public function store(Request $request): Response { $data = $request->post(); $ruleIds = $data['ruleIds'] ?? []; // 过滤黑名单 $blacklist = ['role', 'ruleIds']; $data = Arr::except($data, $blacklist); try { Db::beginTransaction(); $this->model = $this->model::create($data); $this->model->rules()->sync($ruleIds); Db::commit(); return sparkSuccess(dataReturn(0, '添加成功')); } catch (\Exception $e) { Db::rollBack(); throw $e; } } /** * 改岗位标准 */ public function update(Request $request, int $id): Response { $data = $request->post(); $ruleIds = $data['ruleIds'] ?? []; // 过滤黑名单 $blacklist = ['role', 'ruleIds', 'rules']; $data = Arr::except($data, $blacklist); try { Db::beginTransaction(); $this->model = $this->model::find($id); $this->model->rules()->sync($ruleIds); $this->model->update($data); Db::commit(); return sparkSuccess(dataReturn(0, '修改成功')); } catch (\Exception $e) { Db::rollBack(); throw $e; } } /** * 删岗位标准 */ public function destroy(Request $request, int $id): Response { try { Db::beginTransaction(); $this->model::destroy($id); Db::commit(); return sparkSuccess(dataReturn(0, '删除成功')); } catch (\Exception $e) { Db::rollBack(); throw $e; } } }