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;
|
|
use Illuminate\Support\Facades\Request;
|
|
|
|
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);
|
|
// $start = now()->subDays(30)->toDateString();
|
|
// $end = now()->toDateString();
|
|
// $timeZone = Request::get('app-admin-renderable-usersalesvaluelogsimpletable_created_at', []);
|
|
// if (empty($timeZone)) {
|
|
// $grid->model()->whereBetween('created_at', [$start, $end]);
|
|
// }
|
|
$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');
|
|
// 自定义组件
|
|
return "<div style='padding: 10px;'>个人消费值:".$salesValue1.'</div>';
|
|
});
|
|
$grid->filter(function (Grid\Filter $filter) {
|
|
$filter->expand(false);
|
|
$filter->between('created_at', '时间')->date();
|
|
});
|
|
});
|
|
}
|
|
}
|