6
0
Fork 0
jiqu-library-server/app/Admin/Renderable/UserSalesValueLogSimpleTabl...

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();
});
});
}
}