| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- <?php
- namespace App\Module\Article\AdminControllers\Helper;
- use App\Module\Article\Enums\STATUS;
- use App\Module\Article\Models\ArticleCate;
- use Dcat\Admin\Grid;
- use Dcat\Admin\Grid\Column;
- /**
- * 列表页辅助特性
- *
- * 提供文章模块后台控制器的列表页构建功能的具体实现
- */
- trait GridHelperTrait
- {
- /**
- * 添加文章标题列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @param int $limit 限制长度
- * @return Column
- */
- public function columnTitle(string $field = 'title', string $label = '标题', int $limit = 30): Column
- {
- return $this->grid->column($field, $label)->limit($limit);
- }
- /**
- * 添加文章描述列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @param int $limit 限制长度
- * @return Column
- */
- public function columnDescription(string $field = 'description', string $label = '简述', int $limit = 50): Column
- {
- return $this->grid->column($field, $label)->limit($limit);
- }
- /**
- * 添加文章分类列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnCategory(string $field = 'category_id', string $label = '分类'): Column
- {
- return $this->grid->column($field, $label)->using(ArticleCate::getCate());
- }
- /**
- * 添加文章状态列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnStatus(string $field = 'status', string $label = '状态'): Column
- {
- return $this->grid->column($field, $label)
- ->using(STATUS::getValueDescription())
- ->label([
- STATUS::DISABLE->value => 'danger',
- STATUS::SHOW->value => 'success',
- ]);
- }
- /**
- * 添加文章排序列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnSortOrder(string $field = 'sort_order', string $label = '排序'): Column
- {
- return $this->grid->column($field, $label)->sortable();
- }
- /**
- * 添加文章是否置顶列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnIsTop(string $field = 'is_top', string $label = '置顶'): Column
- {
- return $this->grid->column($field, $label)->switch();
- }
- /**
- * 添加文章是否推荐列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnIsRecommend(string $field = 'is_recommend', string $label = '推荐'): Column
- {
- return $this->grid->column($field, $label)->switch();
- }
- /**
- * 添加文章浏览量列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnViewsCount(string $field = 'views_count', string $label = '浏览量'): Column
- {
- return $this->grid->column($field, $label)->sortable();
- }
- /**
- * 添加文章创建者列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnCreatedBy(string $field = 'created_by', string $label = '创建者'): Column
- {
- return $this->grid->column($field, $label);
- }
- /**
- * 添加文章创建时间列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnCreatedAt(string $field = 'created_at', string $label = '创建时间'): Column
- {
- return $this->grid->column($field, $label)->sortable();
- }
- /**
- * 添加文章更新时间列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnUpdatedAt(string $field = 'updated_at', string $label = '更新时间'): Column
- {
- return $this->grid->column($field, $label)->sortable();
- }
- }
|