service = new ImgService(); } /** * 列表页面 * * @return Grid */ protected function grid() { return Grid::make(new FileImg(), function (Grid $grid) { $helper = new GridHelper($grid, $this); $helper->columnId(); $helper->columnFilePath(); $helper->columnFileOriginalName(); $helper->columnFileSize(); $helper->columnFileType(); $helper->columnFileStatus(); $helper->columnFileVisibility(); $helper->columnRelationType(); $helper->columnRelationId(); $helper->columnImagePreview(); $helper->columnCreatedAt(); $helper->columnUpdatedAt(); // 添加查看按钮 $grid->column('view', '操作')->display(function () { $url = $this->service->getPicUrl4Id($this->id); return "查看"; })->unescape(); // 筛选器 $grid->filter(function (Grid\Filter $filter) { $helper = new FilterHelper($filter, $this); $helper->equalFileId(); $helper->likeFilePath(); $helper->likeFileOriginalName(); $helper->equalFileType(); $helper->equalFileStatus(); $helper->equalFileVisibility(); $helper->equalRelationType(); $helper->equalRelationId(); $helper->equalUserId(); $helper->betweenCreatedAt(); }); }); } /** * 详情页面 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new FileImg(), function (Show $show) { $helper = new ShowHelper($show, $this); $helper->fieldId(); $helper->fieldFilePath(); $helper->fieldFileOriginalName(); $helper->fieldFileSize(); $helper->fieldFileType(); $helper->fieldFileStatus(); $helper->fieldFileVisibility(); $helper->fieldRelationType(); $helper->fieldRelationId(); $helper->fieldImagePreview(); $helper->fieldCreatedAt(); $helper->fieldUpdatedAt(); // 添加查看按钮 $show->html(function () use ($show) { $url = $this->service->getPicUrl4Id($this->id); return "查看原图"; }); }); } /** * 表单页面 * * @return Form */ protected function form() { return Form::make(new FileImg(), function (Form $form) { $helper = new FormHelper($form, $this); $form->display('id'); // 图片上传 $helper->imageUpload(); // 图片属性 $helper->radioFileVisibility(); $helper->radioFileStatus(); $helper->textRelationType(); $helper->numberRelationId(); $helper->numberUserId(); $form->display('created_at'); $form->display('updated_at'); // 保存前回调 $form->saving(function (Form $form) { // 如果是新建图片,则使用图片服务上传 if ($form->isCreating()) { $image = $form->image; if ($image) { $userId = $form->user_id ?: 0; $private = (bool)$form->private; $reType = $form->re_type ?: ''; $reId = $form->re_id ?: 0; // 使用图片服务上传图片 $imageModel = $this->service->uploadImg($image, $userId, $private, $reType, $reId); // 将图片模型的属性赋值给表单 $form->path = $imageModel->path; $form->o_name = $imageModel->o_name; $form->fsize = $imageModel->fsize; $form->type1 = $imageModel->type1; $form->storage_disk = $imageModel->storage_disk; } } }); }); } }