57 lines
2.3 KiB
PHP
57 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Renderable;
|
|
|
|
use App\Models\SalesValueLog;
|
|
use Dcat\Admin\Grid;
|
|
use Dcat\Admin\Grid\LazyRenderable;
|
|
|
|
class UserSalesValueLogSimpleTable extends LazyRenderable
|
|
{
|
|
public function grid(): Grid
|
|
{
|
|
$userId = $this->payload['id'] ?? 0;
|
|
$builder = SalesValueLog::query();
|
|
return Grid::make($builder, function (Grid $grid) use ($userId) {
|
|
$grid->model()->where('user_id', $userId);
|
|
$grid->column('type')->using([
|
|
1=>'个人',
|
|
2=>'团队',
|
|
]);
|
|
$grid->column('change_sales_value', '变动');
|
|
$grid->column('remarks', '备注');
|
|
$grid->column('created_at', '创建时间')->sortable();
|
|
// $grid->column('updated_at')
|
|
// $grid->withBorder();
|
|
$grid->model()->orderBy('created_at', 'desc');
|
|
// $grid->disableRefreshButton();
|
|
$grid->disableActions();
|
|
$grid->disableCreateButton();
|
|
$grid->header(function ($collection) use ($grid) {
|
|
$query = SalesValueLog::query();
|
|
|
|
// 拿到表格筛选 where 条件数组进行遍历
|
|
$grid->model()->getQueries()->unique()->each(function ($value) use (&$query) {
|
|
// dd($value);
|
|
if (in_array($value['method'], ['paginate', 'get', 'orderBy', 'orderByDesc'], true)) {
|
|
return;
|
|
}
|
|
|
|
$query = call_user_func_array([$query, $value['method']], $value['arguments'] ?? []);
|
|
});
|
|
// 查出统计数据
|
|
$salesValue1 = (clone $query)->where('type', '1')->sum('change_sales_value');
|
|
$salesValue2 = (clone $query)->where('type', '2')->sum('change_sales_value');
|
|
// 自定义组件
|
|
return "<div style='padding: 10px;'>个人消费值:".$salesValue1.' <br> 团队消费值:'.$salesValue2.'</div>';
|
|
});
|
|
$grid->filter(function (Grid\Filter $filter) {
|
|
$filter->between('created_at', '时间')->date()->default([
|
|
'start'=>now()->subDays(30)->toDateString(),
|
|
'end'=>now()->toDateString(),
|
|
]);
|
|
});
|
|
});
|
|
}
|
|
}
|