| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- <?php
- namespace App\Module\Fund\AdminControllers\Helper;
- use App\Module\Fund\Enums\FUND_STATUS;
- use App\Module\Fund\Enums\FUND_TYPE;
- use App\Module\Fund\Enums\LOG_TYPE;
- use App\Module\Fund\Enums\OPERATE_TYPE;
- use App\Module\Fund\Services\AccountService;
- use Dcat\Admin\Show;
- /**
- * 详情页辅助特性
- *
- * 提供资金模块后台控制器的详情页构建功能的具体实现
- * 只保留具有复用价值的方法
- */
- trait ShowHelperTrait
- {
- /**
- * 显示资金账户
- *
- * 复用价值:高 - 统一处理资金账户的显示,使用AccountService获取账户描述
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Show\Field
- */
- public function fieldFundId(string $field = 'fund_id', string $label = '资金账户'): Show\Field
- {
- return $this->show->field($field, $label)->as(function ($value) {
- $fundsDesc = AccountService::getFundsDesc();
- return $fundsDesc[$value] ?? $value;
- });
- }
- /**
- * 显示资金余额
- *
- * 复用价值:高 - 统一处理余额的格式化显示,包括单位转换
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Show\Field
- */
- public function fieldBalance(string $field = 'balance', string $label = '余额'): Show\Field
- {
- return $this->show->field($field, $label)->as(function ($value) {
- return number_format($value / 1000, 3);
- });
- }
- /**
- * 显示资金状态
- *
- * 复用价值:高 - 统一处理资金状态的显示,使用枚举类型
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Show\Field
- */
- public function fieldStatus(string $field = 'status', string $label = '状态'): Show\Field
- {
- return $this->show->field($field, $label)->as(function ($value) {
- return FUND_STATUS::getName($value);
- });
- }
- /**
- * 显示操作金额
- *
- * 复用价值:高 - 统一处理操作金额的格式化显示,包括正负值的颜色区分
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Show\Field
- */
- public function fieldAmount(string $field = 'amount', string $label = '操作金额'): Show\Field
- {
- return $this->show->field($field, $label)->as(function ($value) {
- $formattedValue = number_format($value / 1000, 3);
- if ($value > 0) {
- return "<span class='text-success'>+{$formattedValue}</span>";
- } elseif ($value < 0) {
- return "<span class='text-danger'>{$formattedValue}</span>";
- } else {
- return "<span>{$formattedValue}</span>";
- }
- });
- }
- /**
- * 显示操作类型
- *
- * 复用价值:高 - 统一处理操作类型的显示,使用枚举类型
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Show\Field
- */
- public function fieldOperateType(string $field = 'operate_type', string $label = '操作类型'): Show\Field
- {
- return $this->show->field($field, $label)->as(function ($value) {
- return LOG_TYPE::getName($value);
- });
- }
- /**
- * 显示时间戳
- *
- * 复用价值:高 - 统一处理时间戳的格式化显示
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @param string $format 日期格式
- * @return Show\Field
- */
- public function fieldTimestamp(string $field, string $label, string $format = 'Y-m-d H:i:s'): Show\Field
- {
- return $this->show->field($field, $label)->as(function ($value) use ($format) {
- return $value ? date($format, $value) : '';
- });
- }
- /**
- * 显示金额(毫转元)
- *
- * 复用价值:高 - 统一处理金额的格式化显示,包括单位转换
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @param int $decimals 小数位数
- * @return Show\Field
- */
- public function fieldMoney(string $field, string $label, int $decimals = 3): Show\Field
- {
- return $this->show->field($field, $label)->as(function ($value) use ($decimals) {
- return number_format($value / 1000, $decimals);
- });
- }
- }
|