WithdrawRecordGrid.php 3.4 KB
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
 * 管理端列表grid trait层:渲染生成 ChatRecord grid 列表
+-----------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Admin\Grids
 * @package   App\Admin\Grids
 * @author    Richer <yangzi1028@163.com>
 * @date      2023年4月24日13:45:56
 * @copyright 2020-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
namespace App\Admin\Grids;

use App\Admin\Extensions\Actions\Audit;
use App\Admin\Extensions\CustomActions;
use App\Models\User\WithdrawRecord;
use function Clue\StreamFilter\fun;

/**
 * Class WithdrawRecordGrid.
 *
 * @package App\Admin\Grids
 */
trait WithdrawRecordGrid
{
    /**
     * 设置默认排序规则
     */
    public function setGridOrder()
    {
        if (!request('_sort')) {
            $this->grid->model()->latest();
        } else {
            $this->setGridOrderSpecial();
        }
    }

    /**
     * 设置默认查询条件
     * 增加数据权限的判断
     */
    public function setGridQuery()
    {
        // 执行父类方法,设置默认的查询条件
        parent::setGridQuery();

        $this->grid->model()->with(['user'])->latest();
    }

    /**
     * 为grid增加筛选条件
     *
     * @return mixed
     */
    public function renderGridFilter()
    {
        $this->grid->filter(
            function ($filter) {
                // 筛选条件默认展开
                $filter->expand();
                $this->filterText($filter, 'user.nickname', __('nickname'));
                $this->filterText($filter, 'user.mobile', __('mobile'));
                //去掉默认的搜索
                $filter->disableIdFilter();
            }
        );

        return $this->grid;
    }

    /**
     * 自定义每行的操作
     * 根据每个模块设置的权限来判断当前的操作
     *
     * @param $actions
     * @return void $grid grid
     */
    public function setRowCustomActions($actions)
    {
        // 当前数据的主键
        $id = $actions->getKey();
        // 当前的url
        $url = $actions->getResource();

        // 可审核
        if ($actions->row->status == WithdrawRecord::UNAUDITED) {
            $actions->append(CustomActions::renderAudit($id, $url));
        }
    }

    /**
     * 渲染grid字段
     *
     * @return void
     */
    public function renderGridFields()
    {
        $this->gridRowNo();
        $this->gridUser('user');
        $this->gridTextField('type_show', '提现方式');
        $this->gridTextField('account');
        $this->gridTextField('bank_name');
        $this->gridTextField('cardholder');
        $this->gridSingleImageField('receipt_code');
        $this->gridTextField('account');
        $this->gridCurrencyField('amount', '提现金额');
        $this->gridCurrencyField('actual_amount', '实际到账金额');
        $this->gridTextField('ratio', '费率')->display(function ($value) {
            return $value . '%';
        });
        $this->gridSingleSelect('status', '提现状态', WithdrawRecord::STATUS_OPTIONS, WithdrawRecord::STATUS_COLOR_OPTIONS);
        $this->gridDateField('created_at', '提现时间');
        $this->gridDateField('audited_at', '审核时间');
    }
}