ajax()) { $permissions = Permission::query()->where(['type' => 1])->select(['title as name', 'id', 'parent_id']) ->orderByDesc('sort')->get()->toArray(); $trees = list_to_tree($permissions, 'id', 'parent_id', 'children'); return view('admin/system/permission', ['trees' => $trees]); } $filter = [['type', '=', 2]]; if ($request->input('parentId')) { $filter[] = ['parent_id', '=', $request->input('parentId')]; } $records = Permission::query()->where($filter)->orderByDesc('sort') ->paginate($request->input('pageSize') ?? TABLE_PAGE_SIZE); return response()->json([ 'rows' => $records->items(), 'total' => $records->total() ]); } public function save(PermissionSaveRequest $request, $id) { if (!$request->ajax()) { $record = Permission::query()->find($id); return view('admin/system/permission_save', [ 'data' => $record, 'type' => $request->input('type') ]); } $record = Permission::query()->updateOrCreate(['id' => $id], $request->validated()); return response()->json(['message' => '操作成功', 'data' => $record]); } public function store(PermissionSaveRequest $request) { $validated = $request->validated(); Permission::query()->create($validated); return response()->json(['message' => '操作成功']); } public function update(PermissionSaveRequest $request, $id) { $permission = Permission::query()->find($id); if (!$permission) return response()->json(['message' => '数据不存在']); $permission->update($request->validated()); return response()->json(['message' => '操作成功']); } public function destroy($id) { $record = Permission::query()->where(['id' => $id])->first(); if ($record) { if (Permission::query()->where(['parent_id' => $record->id])->exists()) { return response()->json(['message' => '请先删除子菜单'], 400); } $record->delete(); } return response()->json(['message' => '操作成功']); } public function BatchDestroy(Request $request) { $ids = $request->input('ids'); Permission::query()->whereIn('id', $ids)->where(['type' => 2])->delete(); return response()->json(['message' => '操作成功']); } }