service = new FileService();
}
/**
* 列表页面
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new FileFile(), 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->columnFilePreview();
$helper->columnCreatedAt();
$helper->columnUpdatedAt();
// 添加下载按钮
$grid->column('download', '操作')->display(function () {
$url = $this->service->getFileUrl($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 FileFile(), 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->fieldFilePreview();
$helper->fieldCreatedAt();
$helper->fieldUpdatedAt();
// 添加下载按钮
$show->html(function () use ($show) {
$url = $this->service->getFileUrl($this->id);
return "下载文件";
});
});
}
/**
* 表单页面
*
* @return Form
*/
protected function form()
{
return Form::make(new FileFile(), function (Form $form) {
$helper = new FormHelper($form, $this);
$form->display('id');
// 文件上传
$helper->fileUpload();
// 文件属性
$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()) {
$file = $form->file;
if ($file) {
$userId = $form->user_id ?: 0;
$reType = $form->re_type ?: '';
$reId = $form->re_id ?: 0;
// 使用文件服务上传文件
$fileModel = $this->service->uploadFile($file, $userId, $reType, $reId);
// 将文件模型的属性赋值给表单
$form->path = $fileModel->path;
$form->o_name = $fileModel->o_name;
$form->fsize = $fileModel->fsize;
$form->type1 = $fileModel->type1;
}
}
});
});
}
}