add cms banners
This commit is contained in:
parent
4b30123aa4
commit
af8e6c3f5d
@ -13,8 +13,12 @@
|
||||
|
||||
namespace catchAdmin\cms\model;
|
||||
|
||||
use catchAdmin\cms\model\events\BannersEvent;
|
||||
|
||||
class Banners extends BaseModel
|
||||
{
|
||||
use BannersEvent;
|
||||
|
||||
// 表名
|
||||
public $name = 'cms_banners';
|
||||
// 数据库字段映射
|
||||
@ -37,4 +41,14 @@ class Banners extends BaseModel
|
||||
// 软删除
|
||||
'deleted_at',
|
||||
);
|
||||
|
||||
public function getList()
|
||||
{
|
||||
return $this->catchSearch()
|
||||
->field($this->aliasField('*'))
|
||||
->catchJoin(Category::class, 'id', 'category_id', ['name as category'])
|
||||
->catchOrder()
|
||||
->creator()
|
||||
->paginate();
|
||||
}
|
||||
}
|
49
catch/cms/model/events/BannersEvent.php
Normal file
49
catch/cms/model/events/BannersEvent.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?php
|
||||
namespace catchAdmin\cms\model\events;
|
||||
|
||||
use catchAdmin\cms\model\Banners;
|
||||
|
||||
trait BannersEvent
|
||||
{
|
||||
/**
|
||||
* 插入前
|
||||
*
|
||||
* @time 2021年05月21日
|
||||
* @param Banners $model
|
||||
* @return void
|
||||
*/
|
||||
public static function onBeforeInsert(Banners $model)
|
||||
{
|
||||
self::beforeChangeData($model);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @auth CatchAdmin
|
||||
* @time 2021年05月22日
|
||||
* @param Banners $model
|
||||
* @return void
|
||||
*/
|
||||
public static function onBeforeUpdate(Banners $model)
|
||||
{
|
||||
self::beforeChangeData($model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入前
|
||||
*
|
||||
* @auth CatchAdmin
|
||||
* @time 2021年05月22日
|
||||
* @param $model
|
||||
* @return void
|
||||
*/
|
||||
protected static function beforeChangeData($model)
|
||||
{
|
||||
$data = $model->getData();
|
||||
|
||||
if (isset($data['category_id'])) {
|
||||
$model->category_id = $model->category_id[count($model->category_id) - 1];
|
||||
}
|
||||
}
|
||||
}
|
49
catch/cms/tables/Banners.php
Normal file
49
catch/cms/tables/Banners.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?php
|
||||
namespace catchAdmin\cms\tables;
|
||||
|
||||
use catcher\CatchTable;
|
||||
use catchAdmin\cms\tables\forms\Factory;
|
||||
use catcher\library\table\Actions;
|
||||
use catcher\library\table\HeaderItem;
|
||||
|
||||
class Banners extends CatchTable
|
||||
{
|
||||
public function table()
|
||||
{
|
||||
// TODO: Implement table() method.
|
||||
return $this->getTable('banners')
|
||||
->header([
|
||||
HeaderItem::label('编号')->prop('id')->width(50),
|
||||
|
||||
HeaderItem::label('分类')->prop('category'),
|
||||
|
||||
HeaderItem::label('标题')->prop('title'),
|
||||
|
||||
HeaderItem::label('图片')->prop('banner_img')->withPreviewComponent(),
|
||||
|
||||
HeaderItem::label('外链')->prop('link_to')->withUrlComponent(),
|
||||
|
||||
HeaderItem::label('创建者')->prop('creator'),
|
||||
|
||||
HeaderItem::label('创建时间')->prop('created_at'),
|
||||
|
||||
HeaderItem::label('操作')->actions([
|
||||
Actions::update(),
|
||||
Actions::delete()
|
||||
])
|
||||
])
|
||||
->withActions([
|
||||
Actions::create()
|
||||
])
|
||||
->withBind()
|
||||
->withApiRoute('cms/banners')
|
||||
->render();
|
||||
}
|
||||
|
||||
protected function form()
|
||||
{
|
||||
// TODO: Implement form() method.
|
||||
return Factory::create('banners');
|
||||
}
|
||||
|
||||
}
|
38
catch/cms/tables/forms/Banners.php
Normal file
38
catch/cms/tables/forms/Banners.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
namespace catchAdmin\cms\tables\forms;
|
||||
|
||||
use catchAdmin\cms\model\Category;
|
||||
use catcher\library\form\Form;
|
||||
|
||||
class Banners extends Form
|
||||
{
|
||||
public function fields(): array
|
||||
{
|
||||
$categories = Category::field(['id', 'name', 'parent_id'])->select()->toTree();
|
||||
|
||||
// TODO: Implement fields() method.
|
||||
return [
|
||||
self::cascader('category_id', '选择分类', [])
|
||||
->options($categories)
|
||||
->clearable(true)
|
||||
->filterable(true)
|
||||
->showAllLevels(false)
|
||||
->props([
|
||||
'props' => [
|
||||
'value' => 'id',
|
||||
'label' => 'name',
|
||||
'checkStrictly' => true
|
||||
],
|
||||
])->style(['width' => '100%'])
|
||||
->required(),
|
||||
|
||||
self::input('title', '标题')->placeholder('请输入标题')->required(),
|
||||
|
||||
self::image('图片', 'banner_img'),
|
||||
|
||||
self::input('link_to', '外链')->appendValidate([
|
||||
self::validateUrl()
|
||||
])
|
||||
];
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user