''] public function grid(){ return Grid::make(Article::with(['category', 'adminUser']), function ($grid) { $grid->disableRowSelector(); $grid->column('category.name')->label(); $grid->column('title')->display(function ($v) { if (mb_strlen($v) > 20) { return mb_substr($v, 0, 17) . '...'; } else { return $v; } }); $grid->column('cover')->image(100, 100); $grid->column('author_name')->display(function (){ return $this->author_name; }); $grid->column('like_nums'); $grid->column('read_nums'); $grid->column('sort')->editable(['mask' => '{alias:\'numeric\',min:0,max:999}']); $grid->column('published_at'); $grid->column('is_enable')->if(function(){ return !config('admin.permission.enable') || Admin::user()->can('dcat.admin.articles.edit'); })->then(function (GridColumn $column) { $column->switch(); })->else(function (GridColumn $column) { $column->bool(); }); $grid->column('is_recommend')->if(function(){ return !config('admin.permission.enable') || Admin::user()->can('dcat.admin.articles.edit'); })->then(function (GridColumn $column) { $column->switch(); })->else(function (GridColumn $column) { $column->bool(); }); // $grid->column('remarks'); $grid->model()->orderBy('sort', 'desc'); $grid->model()->orderBy('created_at', 'desc'); $grid->setDialogFormDimensions('50%', '70%'); $grid->disableCreateButton(!(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.articles.create'))); $grid->enableDialogCreate(); $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->disableView(); $actions->disableEdit(); $actions->quickEdit(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.articles.edit')); $actions->delete(!config('admin.permission.enable') || Admin::user()->can('dcat.admin.articles.destroy')); }); $grid->filter(function (Grid\Filter $filter) { $filter->panel(); $filter->expand(); $filter->equal('category_id', '分类')->select(ArticleCategory::selectOptions())->width(3); $filter->like('title')->width(3); $filter->between('published_at')->datetime()->width(7); }); }); } public function form() { return Form::make(new Article(), function($form){ $form->select('category_id')->options(ArticleCategory::selectOptions(false)); $form->text('title')->required(); $form->text('sub_title'); $form->image('cover') ->uniqueName() ->move('articles/'.Carbon::now()->toDateString()) ->saveFullUrl() ->autoSave(false) ->autoUpload() ->removable(false)//禁止用户从页面点击删除服务器上的文件,可以实现图片覆盖上传效果 ->retainable(); $form->text('author'); $form->file('media_path')->chunked() ->accept('mp4,mp3', 'mp4/*,mp3/*') ->move('articles-media/'.Carbon::now()->toDateString()) ->maxSize(204800)//默认最大200M ->saveFullUrl() ->removable(false) ->autoUpload()->autoSave(false); $form->datetime('published_at'); $form->switch('is_enable')->default(0); $form->switch('is_recommend')->default(0); $form->number('sort')->min(0)->default(0); $form->text('remarks'); $form->keyValue('ext', '扩展字段')->default($this->extDefaults)->setKeyLabel('键名')->setValueLabel('键值') ->saving(function($v){ return json_encode($v ?? []); }); $form->editor('content')->options([ 'plugins' => [ 'image', 'lists', 'preview', 'fullscreen', 'table', ], 'toolbar' => [ 'undo redo | preview fullscreen | styleselect | fontsizeselect bold italic underline strikethrough forecolor backcolor | image blockquote removeformat codesample', 'alignleft aligncenter alignright alignjustify| indent outdent bullist numlist table subscript superscript | code', ] ])->height('800'); Admin::style(<<