add cms banners
This commit is contained in:
parent
4b30123aa4
commit
af8e6c3f5d
@ -13,8 +13,12 @@
|
|||||||
|
|
||||||
namespace catchAdmin\cms\model;
|
namespace catchAdmin\cms\model;
|
||||||
|
|
||||||
|
use catchAdmin\cms\model\events\BannersEvent;
|
||||||
|
|
||||||
class Banners extends BaseModel
|
class Banners extends BaseModel
|
||||||
{
|
{
|
||||||
|
use BannersEvent;
|
||||||
|
|
||||||
// 表名
|
// 表名
|
||||||
public $name = 'cms_banners';
|
public $name = 'cms_banners';
|
||||||
// 数据库字段映射
|
// 数据库字段映射
|
||||||
@ -37,4 +41,14 @@ class Banners extends BaseModel
|
|||||||
// 软删除
|
// 软删除
|
||||||
'deleted_at',
|
'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