baseCRUD() ->filterTogglable(false) ->columnsTogglable(false) ->loadDataOnce(true) ->footerToolbar([]) ->headerToolbar([ $this->createButton()->permission('admin.keywords.create'), $this->exportAction()->permission('admin.keywords.export'), ...$this->baseHeaderToolBar(), ]) ->bulkActions([ $this->bulkDeleteButton()->permission('admin.keywords.delete') ]) ->filter($this->baseFilter()->body([ amis()->GroupControl()->mode('horizontal')->body([ Components::make()->keywordTreeSelectControl()->name('path')->label(__('keywords.parent_id'))->columnRatio(3)->clearable(), ]) ])) ->columns([ amis()->TableColumn()->name('id')->label(__('keywords.id')), amis()->TableColumn()->name('name')->label(__('keywords.name')), amis()->TableColumn()->name('key')->label(__('keywords.key')), amis()->TableColumn()->name('value')->label(__('keywords.value'))->quickEdit([ 'saveImmediately' => true, ]), $this->rowActions([ $this->rowShowButton()->permission('admin.keywords.show'), $this->rowEditButton()->permission('admin.keywords.edit'), $this->rowDeleteButton()->permission('admin.keywords.delete'), ]), ]); return $this->baseList($crud); } public function form() { return $this->baseForm()->mode('horizontal')->body([ Components::make()->keywordTreeSelectControl()->name('parent_id')->label(__('keywords.parent_id')), amis()->TextControl()->name('name')->label(__('keywords.name'))->required(true), amis()->TextControl()->name('key')->label(__('keywords.key'))->required(true), amis()->TextControl()->name('value')->label(__('keywords.value')), amis()->ImageControl()->name('image')->label(__('keywords.image'))->autoUpload(true), amis()->ImageControl()->name('images')->label(__('keywords.images'))->multiple()->autoUpload(true)->joinValues(false)->extractValue(true), amis()->NumberControl()->min(0)->precision(0)->name('sort')->label(__('keywords.sort')), amis()->TextareaControl()->name('description')->label(__('keywords.description')), amis()->inputKV()->name('options')->label(__('keywords.options')), amis()->WangEditor()->height('auto')->name('content')->label(__('keywords.content')), ]); } public function detail() { return $this->baseDetail()->body(amis()->Property()->items([ ['label' => __('keywords.parent_id'), 'content' => '${parent.name}', 'span' => 3], ['label' => __('keywords.name'), 'content' => '${name}'], ['label' => __('keywords.key'), 'content' => '${key}'], ['label' => __('keywords.value'), 'content' => '${value}'], ['label' => __('keywords.image'), 'content' => amis()->Image()->name('image'), 'span' => 3], ['label' => __('keywords.images'), 'content' => amis()->Images()->name('images'), 'span' => 3], ['label' => __('keywords.sort'), 'content' => '${sort}', 'span' => 3], ['label' => __('keywords.description'), 'content' => amis()->TextareaControl()->name('description')->static()->label(false), 'span' => 3], ['label' => __('keywords.options'), 'content' => amis()->Json()->name('options'), 'span' => 3], ['label' => __('keywords.content'), 'content' => amis()->WangEditor()->height('auto')->name('content')->label(false)->static(), 'span' => 3], ])); } public function update(Request $request) { $result = $this->service->update($request->route()->parameter('keyword'), $request->all()); return $this->autoResponse($result, __('admin.save')); } public function getTreeList(Request $request) { return $this->service->getTree($request->all()); } public function getList(Request $request) { $list = Keyword::filter($request->all())->select(['id as value', 'name as label'])->get(); return $this->response()->success($list); } // protected function exportFileName() // { // return '此处为导出文件名'; // } // protected function exportMap($row) // { // return [ // 'id' => __('keywords.id') // ]; // } }