'=', ]; protected array $quickSearchField = ['name']; /** 导航列表(默认按排序升序) */ #[GetRoute(authorize: 'query')] public function query(Request $request): JsonResponse { $params = $request->all(); $pageSize = $params['pageSize'] ?? 10; $data = $this->buildSearch($params, HomeNavModel::query()) ->orderBy('sort') ->orderBy('id') ->paginate($pageSize) ->toArray(); return $this->success($data); } /** 上传导航图标(文件分组:客户端配置) */ #[PostRoute('/upload', 'create')] public function uploadImage(Request $request, SysFileService $service): JsonResponse { $data = $request->validate(['file' => 'required|file']); $result = $service->upload( $data['file'], 12, 20, Auth::id() ); return $this->success($result); } /** 新增导航 */ #[PostRoute(authorize: 'create')] public function create(NavFormRequest $request): JsonResponse { HomeNavModel::create($request->validated()); return $this->success(); } /** 编辑导航 */ #[PutRoute(route: '/{id}', authorize: 'update', where: ['id' => '[0-9]+'])] public function update(int $id, NavFormRequest $request): JsonResponse { $model = HomeNavModel::find($id); if (empty($model)) { throw new RepositoryException('导航不存在'); } $model->update($request->validated()); return $this->success(); } /** 删除导航 */ #[DeleteRoute(route: '/{id}', authorize: 'delete', where: ['id' => '[0-9]+'])] public function delete(int $id): JsonResponse { $model = HomeNavModel::find($id); if (empty($model)) { throw new RepositoryException('导航不存在'); } $model->delete(); return $this->success(); } }