| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- <?php
- namespace App\Module\Dev\AdminControllers\Helper;
- use App\Module\Dev\Enums\DEV_LOG_TYPE;
- use App\Module\Dev\Enums\DEV_STATUS;
- use Dcat\Admin\Grid;
- use Dcat\Admin\Grid\Column;
- /**
- * 列表页辅助特性
- *
- * 提供开发工具模块后台控制器的列表页构建功能的具体实现
- */
- trait GridHelperTrait
- {
- /**
- * 添加开发工具状态列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnDevStatus(string $field = 'status', string $label = '状态'): Column
- {
- return $this->grid->column($field, $label)
- ->using(DEV_STATUS::getAll())
- ->label([
- DEV_STATUS::DISABLED->value => 'danger',
- DEV_STATUS::ENABLED->value => 'success',
- ]);
- }
- /**
- * 添加开发日志类型列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnDevLogType(string $field = 'type', string $label = '日志类型'): Column
- {
- return $this->grid->column($field, $label)
- ->using(DEV_LOG_TYPE::getAll())
- ->label([
- DEV_LOG_TYPE::INFO->value => 'info',
- DEV_LOG_TYPE::WARNING->value => 'warning',
- DEV_LOG_TYPE::ERROR->value => 'danger',
- DEV_LOG_TYPE::DEBUG->value => 'primary',
- ]);
- }
- /**
- * 添加开发日志内容列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @param int $limit 限制长度
- * @return Column
- */
- public function columnDevLogContent(string $field = 'content', string $label = '日志内容', int $limit = 50): Column
- {
- return $this->grid->column($field, $label)->limit($limit);
- }
- /**
- * 添加开发日志额外数据列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnDevLogExtraData(string $field = 'extra_data', string $label = '额外数据'): Column
- {
- return $this->grid->column($field, $label)->display(function ($value) {
- if (empty($value)) {
- return '';
- }
- if (is_string($value)) {
- $value = json_decode($value, true);
- }
- return '<span class="badge badge-primary">查看详情</span>';
- })->modal('额外数据', function ($modal) {
- $value = $this->extra_data;
- if (is_string($value)) {
- $value = json_decode($value, true);
- }
- return json_encode($value, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
- });
- }
- /**
- * 添加开发配置键列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnDevConfigKey(string $field = 'key', string $label = '配置键'): Column
- {
- return $this->grid->column($field, $label);
- }
- /**
- * 添加开发配置值列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @param int $limit 限制长度
- * @return Column
- */
- public function columnDevConfigValue(string $field = 'value', string $label = '配置值', int $limit = 50): Column
- {
- return $this->grid->column($field, $label)->limit($limit);
- }
- /**
- * 添加日志文件名列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnLogFileName(string $field = 'name', string $label = '文件名'): Column
- {
- return $this->grid->column($field, $label);
- }
- /**
- * 添加日志文件大小列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnLogFileSize(string $field = 'size', string $label = '文件大小'): Column
- {
- return $this->grid->column($field, $label);
- }
- /**
- * 添加日志文件修改时间列
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Column
- */
- public function columnLogFileModified(string $field = 'modified', string $label = '修改时间'): Column
- {
- return $this->grid->column($field, $label);
- }
- }
|