baseCRUD() ->tableLayout('fixed') ->headerToolbar([ $this->createButton()->visible(Admin::user()->can('admin.train.questions.create')), ...$this->baseHeaderToolBar(), ]) ->bulkActions([]) ->filter($this->baseFilter()->body([ amis()->GroupControl()->mode('horizontal')->body([ amisMake()->TextControl()->name('search')->label(__('train_question.title'))->columnRatio(3)->clearable(), amisMake()->SelectControl()->options(QuestionCate::options())->name('cate')->label(__('train_question.cate'))->columnRatio(3)->clearable(), ]), ])) ->filterDefaultVisible() ->columns([ amisMake()->TableColumn()->name('id')->label(__('train_question.id')), amisMake()->TableColumn()->name('title')->label(__('train_question.title')), amisMake()->TableColumn()->name('cate')->label(__('train_question.cate'))->set('type', 'mapping')->set('map', QuestionCate::options()), // amisMake()->TableColumn()->name('options')->label(__('train_question.options'))->set('type', 'list')->source('${options}')->listItem([ // 'titleClassName' => 'text-${IF(is_true, "success", "danger")}', // 'title' => '${text}', // ]), amisMake()->TableColumn()->name('created_at')->label(__('train_book.created_at')), $this->rowActions([ $this->rowShowButton()->visible(Admin::user()->can('admin.train.questions.view')), $this->rowEditButton()->visible(Admin::user()->can('admin.train.questions.update')), $this->rowDeleteButton()->visible(Admin::user()->can('admin.train.questions.delete')), ]), ]); return $this->baseList($crud); } public function form($edit): Form { return $this->baseForm()->data(['cate' => QuestionCate::Radio->value])->title('')->body([ amisMake()->TextControl()->name('title')->label(__('train_book.title'))->required(), amisMake()->RadiosControl()->options(QuestionCate::options())->name('cate')->label(__('train_question.cate')), amisMake()->TableControl() ->addable() ->editable() ->removable() ->minLength(1) ->maxLength(4) ->needConfirm(false) ->columns([ amisMake()->TextControl()->name('text')->label(__('train_question.text'))->required(), amisMake()->CheckboxControl()->name('is_true')->label(__('train_question.is_true')), ]) ->name('options') ->label(__('train_question.options')), ]); } public function detail(): Form { return $this->baseDetail()->title('')->body(amisMake()->Property()->items([ ['label' => __('train_question.title'), 'content' => '${title}'], ['label' => __('train_question.cate'), 'content' => amisMake()->Mapping()->map(QuestionCate::options())->name('cate')], ['label' => __('train_question.created_at'), 'content' => '${created_at}'], ['label' => __('train_question.options'), 'content' => amisMake()->ListRenderer()->source('${options}')->listItem([ 'titleClassName' => 'text-${IF(is_true, "success", "danger")}', 'title' => '${text}', ]), 'span' => 3], ])); } public function shareList() { return $this->response()->success($this->service->list()); } }