'like', 'status' => '=', ]; protected array $quickSearchField = ['name', 'contact', 'phone']; /** 供应商列表 */ #[GetRoute(authorize: 'query')] public function query(Request $request): JsonResponse { $params = $request->all(); $pageSize = $params['pageSize'] ?? 10; $data = $this->buildSearch($params, SupplierModel::query()) ->orderBy('id', 'desc') ->paginate($pageSize) ->toArray(); return $this->success($data); } /** 创建供应商 */ #[PostRoute(authorize: 'create')] public function create(SupplierFormRequest $request): JsonResponse { SupplierModel::create($request->validated()); return $this->success(); } /** 编辑供应商 */ #[PutRoute(route: '/{id}', authorize: 'update', where: ['id' => '[0-9]+'])] public function update(int $id, SupplierFormRequest $request): JsonResponse { $model = SupplierModel::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 = SupplierModel::find($id); if (empty($model)) { throw new RepositoryException('供应商不存在'); } $model->delete(); return $this->success(); } /** 供应商下拉选项 */ #[GetRoute('/options', 'query')] public function options(): JsonResponse { $data = SupplierModel::query() ->where('status', SupplierModel::STATUS_NORMAL) ->orderBy('id') ->get(['id', 'name']) ->toArray(); return $this->success($data); } }