column('user.phone', '手机号'); $grid->column('amount', '分红金额')->display(function ($value) { return bcdiv($value, 100, 2); })->prepend('¥'); $grid->column('status', '状态')->using(QuotaV1SendLog::$statusText)->dot([ 0=>'warning', 1=>'success', ]); $grid->column('created_at', '发放时间')->sortable(); $grid->model()->orderBy('created_at', 'desc'); $grid->filter(function (Grid\Filter $filter) { $filter->panel(); $filter->equal('user.phone', '手机号')->width(3); }); $grid->disableActions(); $grid->disableCreateButton(); }); if ($jobId) { $grid->model()->where('job_id', $jobId); } $grid->header(function ($collection) use ($grid) { $query = QuotaV1SendLog::query(); // 拿到表格筛选 where 条件数组进行遍历 $grid->model()->getQueries()->unique()->each(function ($value) use (&$query) { if (in_array($value['method'], ['paginate', 'get', 'orderBy', 'orderByDesc'], true)) { return; } $query = call_user_func_array([$query, $value['method']], $value['arguments'] ?? []); }); // 查出统计数据 $receivedAmount = (clone $query)->where('status', QuotaV1SendLog::STATUS_SUCCESS)->sum('amount'); $failedAmount = (clone $query)->where('status', QuotaV1SendLog::STATUS_FAILED)->sum('amount'); $totalAmount = (clone $query)->sum('amount'); // 自定义组件 return "