generated from liutk/owl-admin-base
75 lines
3.1 KiB
PHP
75 lines
3.1 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use Slowlyo\OwlAdmin\Renderers\Page;
|
|
use Slowlyo\OwlAdmin\Renderers\Form;
|
|
use Slowlyo\OwlAdmin\Controllers\AdminController;
|
|
use App\Services\Admin\FriendLinkService;
|
|
use App\Traits\CustomActionTrait;
|
|
use App\Admin\Components;
|
|
|
|
/**
|
|
* 合作伙伴
|
|
*
|
|
* @property FriendLinkService $service
|
|
*/
|
|
class FriendLinkController extends AdminController
|
|
{
|
|
use CustomActionTrait;
|
|
protected string $serviceName = FriendLinkService::class;
|
|
|
|
public function list(): Page
|
|
{
|
|
$crud = $this->baseCRUD()->tableLayout('fixed')
|
|
->headerToolbar([
|
|
$this->createTypeButton('drawer', 'md'),
|
|
...$this->baseHeaderToolBar(),
|
|
])
|
|
->filter($this->baseFilter()->body([
|
|
amis()->GroupControl()->mode('horizontal')->body([
|
|
// amis()->TextControl('id', __('admin.friend_links.id'))->columnRatio(3)
|
|
// ->placeholder(__('admin.id')),
|
|
amis()->TextControl('title', __('admin.friend_links.title'))->columnRatio(3)
|
|
->placeholder(__('admin.friend_links.title')),
|
|
]),
|
|
]))
|
|
->columns([
|
|
amis()->TableColumn('id', 'ID')->sortable()->width('50px'),
|
|
amis()->TableColumn('title', __('admin.friend_links.title')),
|
|
amis()->TableColumn('link', __('admin.friend_links.link')),
|
|
amis()->TableColumn('cover_url', __('admin.friend_links.cover'))->type('image')->height('50px')->width('250px')->enlargeAble(true),
|
|
// amis()->TableColumn('description', __('admin.project_cates.description')),
|
|
amis()->TableColumn('is_enable', __('admin.friend_links.is_enable'))->type('switch'),
|
|
amis()->TableColumn('created_at', __('admin.created_at'))->set('type', 'datetime')->sortable()->width('150px'),
|
|
amis()->Operation()->label(__('admin.actions'))->buttons([
|
|
$this->rowEditTypeButton('drawer', 'md'),
|
|
$this->rowDeleteButton(),
|
|
])
|
|
]);
|
|
|
|
return $this->baseList($crud);
|
|
}
|
|
|
|
public function form($isEdit = false): Form
|
|
{
|
|
return $this->baseForm()->panelClassName('px-0')->body([
|
|
amis()->Grid()->columns([
|
|
amis()->Wrapper()->body([
|
|
amis()->TextControl('title', __('admin.friend_links.title'))->required(true),
|
|
amis()->TextControl('link', __('admin.friend_links.link'))->required(true),
|
|
Components::make()->cropImageControl('cover', __('admin.friend_links.cover'), 3.719512)->required(true),
|
|
amis()->TextareaControl('description', __('admin.friend_links.description')),
|
|
Components::make()->sortControl('sort', __('admin.friend_links.sort')),
|
|
amis()->SwitchControl('is_enable', __('admin.friend_links.is_enable'))->value(false),
|
|
])
|
|
]),
|
|
]);
|
|
}
|
|
|
|
public function detail(): Form
|
|
{
|
|
return $this->baseDetail()->body([]);
|
|
}
|
|
}
|