generated from liutk/owl-admin-base
106 lines
4.3 KiB
PHP
106 lines
4.3 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use Slowlyo\OwlAdmin\Renderers\Page;
|
|
use Slowlyo\OwlAdmin\Renderers\Form;
|
|
use Slowlyo\OwlAdmin\Renderers\TableColumn;
|
|
use Slowlyo\OwlAdmin\Renderers\TextControl;
|
|
use Slowlyo\OwlAdmin\Controllers\AdminController;
|
|
use App\Services\Admin\KeywordService;
|
|
use App\Models\Keyword;
|
|
use App\Admin\Components;
|
|
use Illuminate\Http\Request;
|
|
|
|
class KeywordController extends AdminController
|
|
{
|
|
protected string $serviceName = KeywordService::class;
|
|
|
|
public function list(): Page
|
|
{
|
|
//区分特殊管理和通用管理
|
|
$columnsArr = [];
|
|
$parentName = request()->get('parent_name', '');
|
|
if(!empty($parentName)){
|
|
$parentId = Keyword::where('key', $parentName)->value('id');
|
|
}
|
|
if($parentId > 0 && in_array($parentName, ['financial_cate', 'file_cate', 'department', 'area_cate', 'organized_body', 'housing_estate'])){
|
|
$columnsArr [] = TableColumn::make()->name('name')->label('名称');
|
|
if($parentName == 'department'){
|
|
$columnsArr [] = TableColumn::make()->name('value')->label('类型')->type('mapping')->map([
|
|
'1'=> '发文部门', '2'=>'收文部门',
|
|
]);
|
|
}
|
|
}else{
|
|
$columnsArr [] = TableColumn::make()->name('name')->label('名称');
|
|
$columnsArr [] = TableColumn::make()->name('key')->label('KEY')->copyable(true);
|
|
$columnsArr [] = TableColumn::make()->name('value')->label('值');
|
|
}
|
|
$crud = $this->baseCRUD()
|
|
//去掉分页-start
|
|
->loadDataOnce(true)
|
|
->footerToolbar([])
|
|
//去掉分页-end
|
|
->headerToolbar([
|
|
$this->createButton(true),
|
|
amis('reload')->align('right'),
|
|
amis('filter-toggler')->align('right'),
|
|
])
|
|
->filter($this->baseFilter()->body([
|
|
amis()->TextControl('name', __('admin.keyword'))
|
|
->size('md')
|
|
->placeholder(__('admin.keywords.search_name')),
|
|
// amis()->TextControl('parent_name', __('admin.keywords.parent_keyword'))
|
|
// ->size('md')
|
|
// ->placeholder(__('admin.keywords.search_name'))
|
|
]
|
|
))
|
|
->columns(array_merge($columnsArr, [
|
|
// TableColumn::make()->name('id')->label('ID')->sortable(true),
|
|
TableColumn::make()->name('sort')->label('排序'),
|
|
TableColumn::make()->name('created_at')->label('创建时间')->type('datetime')->sortable(true),
|
|
amisMake()->Operation()->label(__('admin.actions'))->buttons([
|
|
$this->rowEditButton(true),
|
|
$this->rowDeleteButton(),
|
|
]),
|
|
]));
|
|
|
|
return $this->baseList($crud);
|
|
}
|
|
|
|
public function form(): Form
|
|
{
|
|
//区分特殊管理和通用管理
|
|
$parentName = request()->get('parent_name', '');
|
|
$parentId = 0;
|
|
if(!empty($parentName)){
|
|
$parentId = Keyword::where('key', $parentName)->value('id');
|
|
}
|
|
$formBody = [
|
|
TextControl::make()->name('name')->label('名称')->required(true),
|
|
];
|
|
if($parentId > 0 && in_array($parentName, ['financial_cate', 'file_cate', 'department', 'area_cate', 'organized_body', 'housing_estate'])){
|
|
$formBody[] = Components::make()->sortControl('parent_id')->value($parentId)->hidden(true)->readOnly(true);
|
|
if($parentName == 'department'){
|
|
$formBody[] = amisMake()->RadiosControl('value', '类型')->options([
|
|
'1'=> '发文部门', '2'=>'收文部门',
|
|
])->required(true);
|
|
}
|
|
}else{
|
|
$formBody[] = Components::make()->parentControl(admin_url('api/keywords/tree-list'));
|
|
$formBody[] = TextControl::make()->name('key')->label('KEY')->required(true);
|
|
$formBody[] = TextControl::make()->name('value')->label('值');
|
|
}
|
|
|
|
$form = $this->baseForm()->body(array_merge($formBody, [
|
|
amisMake()->NumberControl()->name('sort')->value(0)->min()->label('排序'),
|
|
]));
|
|
|
|
return $form;
|
|
}
|
|
|
|
public function getTreeList(Request $request){
|
|
return $this->service->getTree();
|
|
}
|
|
}
|