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;
}
}
});
});
}
}