baseCRUD()->tableLayout('fixed') ->headerToolbar([ $this->createTypeButton('drawer', 'xl'), ...$this->baseHeaderToolBar(), ]) ->filter($this->baseFilter()->body([ amis()->GroupControl()->mode('horizontal')->body([ amis()->TextControl('id', __('admin.articles.id')) ->placeholder(__('admin.id')), amis()->TextControl('title', __('admin.articles.title')) ->placeholder(__('admin.articles.title')), Components::make()->parentControl(admin_url('api/keywords/tree-list?parent_name=article_category&has_owner=0'), 'category', __('admin.articles.category'), 'name', 'key'), // Components::make()->keywordsTagControl('t_ids', __('admin.articles.tags'), 'article_tag'), ]), amis()->GroupControl()->mode('horizontal')->body([ amis()->SelectControl('enable', __('admin.articles.is_enable')) ->columnRatio(3) ->options([ 1=>'开启',0=>'关闭' ]), amis()->SelectControl('recommend', __('admin.articles.is_recommend')) ->columnRatio(3) ->options([ 1=>'开启',0=>'关闭' ]), amis()->InputDatetimeRange()->label(__('admin.articles.published_at'))->name('published_at'), ]), amis()->GroupControl()->mode('horizontal')->body([ amis()->InputDatetimeRange()->label(__('admin.created_at'))->name('created_at')->columnRatio(6), ]), ])) ->itemBadge([//行角标 'text' => __('admin.articles.is_recommend'), 'mode' => 'ribbon', 'position' => 'top-left', 'badgeLevel' => 'danger', 'visibleOn' => '${is_recommend > 0}', 'size' => 15 ]) ->columns([ amis()->TableColumn('id', __('admin.id'))->sortable(true), amis()->TableColumn('title', __('admin.articles.title'))->width('300px'), amis()->TableColumn('category', __('admin.articles.category'))->type('mapping') ->map(Keyword::allChildrenOfKey('article_category')->pluck('name', 'key')->toArray()) ->itemSchema(amis()->Tag()->label('${item}')->color(Admin::setting()->get('system_theme_setting')['theme_color'] ?? '#1677ff')), // amis()->TableColumn('tags', __('admin.articles.tags'))->type('mapping')->map(Keyword::tagsMap('article_tag')), // amis()->TableColumn('cover', __('admin.articles.cover'))->type('image')->height('50px')->width('50px')->enlargeAble(true), amis()->TableColumn('published_at', __('admin.articles.published_at'))->remark(__('admin.articles.published_at_remark')), amis()->TableColumn('is_enable', __('admin.articles.is_enable'))->type('switch'), amis()->TableColumn('is_recommend', __('admin.articles.is_recommend'))->type('switch'), amis()->TableColumn('created_at', __('admin.created_at'))->type('datetime')->sortable(true), amis()->Operation()->label(__('admin.actions'))->buttons([ $this->rowEditTypeButton('drawer', 'xl'), $this->rowDeleteButton(), ]) ]); return $this->baseList($crud); } public function form(): Form { return $this->baseForm()->panelClassName('px-0')->body([ amis()->Grid()->columns([ amis()->Wrapper()->body([ amis()->TextControl('title', __('admin.articles.title'))->required(true), Components::make()->parentControl(admin_url('api/keywords/tree-list?parent_name=article_category&has_owner=0'), 'category', __('admin.articles.category'), 'name', 'key'), Components::make()->keywordsTagControl('t_ids', __('admin.articles.tags'), 'article_tag'), Components::make()->cropImageControl('cover', __('admin.articles.cover')), amis()->TextControl('source', __('admin.articles.source')), Components::make()->sortControl('sort', __('admin.articles.sort')), amis()->DateTimeControl('published_at', __('admin.articles.published_at'))->format('YYYY-MM-DD HH:mm:ss')->description(__('admin.articles.published_at_remark')), amis()->SwitchControl('is_enable', __('admin.articles.is_enable'))->value(false), amis()->SwitchControl('is_recommend', __('admin.articles.is_recommend'))->value(false), // Components::make()->fileControl('appendixes', __('admin.articles.appendixes'), '.xsl,.xlsx,.txt,.doc,.docx,.pdf,.pptx'), ])->md(4), amis()->Wrapper()->body([ Components::make()->fuEditorControl('content', __('admin.articles.content')), ])->md(8) ]), ]); } public function detail(): Form { return $this->baseDetail()->body([]); } }