ajax()) { return view('admin/school/asset_type'); } if ($keyword = $request->input('keyword')) { $filter[] = ['title', 'like', '%' . $keyword . '%']; } $records = AssetType::query()->where($filter ?? [])->orderByDesc('id') ->paginate($request->input('pageSize') ?? TABLE_PAGE_SIZE); $items = $records->items(); return response()->json([ 'rows' => $items, 'total' => $records->total() ]); } //资源类型 保存 public function assetTypesSave(AssetTypeSaveRequest $request, $id) { if (!$request->ajax()) { if ($id > 0) { $record = AssetType::query()->find($id); } return view('admin/school/asset_type_save', [ 'data' => $record ?? null ]); } $validated = $request->validated(); AssetType::query()->updateOrCreate(['id' => $id], $validated); return response()->json(['message' => '操作成功']); } //资源类型删除 public function assetTypeDelete($id) { if (Asset::query()->where(['type_id' => $id])->exists()) { return response()->json(['message' => '请先删除此类型下的资源'], 400); } AssetType::query()->where(['id' => $id])->delete(); return response()->json(['message' => '操作成功']); } //资源列表 public function assets(Request $request) { if (!$request->ajax()) { $assetTypes = AssetType::query()->get(); return view('admin/school/asset', [ 'assetTypes' => $assetTypes ]); } if ($typeId = $request->input('type_id')) { $filter[] = ['type_id', '=', $typeId]; } $records = Asset::query()->with(['assetType'])->where($filter ?? [])->orderByDesc('id') ->paginate($request->input('pageSize') ?? TABLE_PAGE_SIZE); $items = $records->items(); array_walk($items, function ($item) { $item->type_title = $item->assetType->title ?? ''; }); return response()->json([ 'rows' => $items, 'total' => $records->total() ]); } //资源保存 public function assetsSave(AssetSaveRequest $request, $id) { if (!$request->ajax()) { $assetTypes = AssetType::query()->get(); if ($id > 0) { $record = Asset::query()->find($id); } return view('admin/school/asset_save', [ 'data' => $record ?? null, 'assetTypes' => $assetTypes ]); } $validated = $request->validated(); Asset::query()->updateOrCreate(['id' => $id], $validated); return response()->json(['message' => '操作成功']); } //资源保存 public function assetsDelete(Request $request) { $ids = $request->input('ids'); Asset::query()->whereIn('id', $ids)->delete(); return response()->json(['message' => '操作成功']); } }