| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <?php
- namespace App\Module\Article\AdminControllers;
- use App\Module\Article\AdminControllers\Helper\FilterHelper;
- use App\Module\Article\AdminControllers\Helper\FormHelper;
- use App\Module\Article\AdminControllers\Helper\GridHelper;
- use App\Module\Article\AdminControllers\Helper\ShowHelper;
- use App\Module\Article\Enums\STATUS;
- use App\Module\Article\Models\Article;
- use App\Module\Article\Models\ArticleCate;
- use App\Module\Article\Repositories\ArticleRepositories;
- use Dcat\Admin\Admin;
- use Dcat\Admin\Form;
- use Dcat\Admin\Grid;
- use Dcat\Admin\Show;
- use Dcat\Admin\Http\Controllers\AdminController;
- use Spatie\RouteAttributes\Attributes\Resource;
- /**
- * 文章管理控制器
- */
- #[Resource('article')]
- class ArticleController extends AdminController
- {
- /**
- * 页面标题
- *
- * @var string
- */
- protected $title = '文章管理';
- /**
- * 创建 Repository 实例
- *
- * @return ArticleRepositories
- */
- protected function repository()
- {
- return new ArticleRepositories();
- }
- /**
- * 列表页
- *
- * @return Grid
- */
- protected function grid()
- {
- return Grid::make($this->repository(), function (Grid $grid) {
- $helper = new GridHelper($grid, $this);
- $helper->columnId();
- $helper->columnTitle();
- $helper->columnCategory();
- $helper->columnStatus();
- $helper->columnViewsCount();
- $helper->columnIsTop();
- $helper->columnIsRecommend();
- $helper->columnSortOrder();
- $helper->columnCreatedAt();
- $helper->columnUpdatedAt();
- // 筛选
- $grid->filter(function (Grid\Filter $filter) {
- $helper = new FilterHelper($filter, $this);
- $helper->equalId();
- $helper->likeTitle();
- $helper->equalCategory();
- $helper->equalStatus();
- $helper->equalIsTop();
- $helper->equalIsRecommend();
- $helper->betweenCreatedAt();
- });
- // 行操作
- $grid->actions(function (Grid\Displayers\Actions $actions) {
- $actions->disableView();
- });
- });
- }
- /**
- * 详情页
- *
- * @param mixed $id
- * @return Show
- */
- protected function detail($id)
- {
- return Show::make($id, new Article(), function (Show $show) {
- $helper = new ShowHelper($show, $this);
- $helper->fieldId();
- $helper->fieldTitle();
- $helper->fieldDescription();
- $helper->fieldCategory();
- $helper->fieldStatus();
- $helper->fieldViewsCount();
- $helper->fieldIsTop();
- $helper->fieldIsRecommend();
- $helper->fieldSortOrder();
- $helper->fieldContent();
- $helper->fieldCreatedBy();
- $helper->fieldCreatedAt();
- $helper->fieldUpdatedAt();
- });
- }
- /**
- * 表单
- *
- * @return Form
- */
- protected function form()
- {
- return Form::make(Article::class, function (Form $form) {
- $helper = new FormHelper($form, $this);
- $helper->textTitle();
- $helper->textareaDescription();
- $helper->selectCategory();
- $helper->selectStatus();
- $helper->numberSortOrder();
- $helper->switchIsTop();
- $helper->switchIsRecommend();
- $helper->editorContent();
- $helper->hiddenCreatedBy();
- });
- }
- }
|