69 lines
3.0 KiB
PHP
69 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Renderable;
|
|
|
|
use App\Models\DealerChannelSubsidyLog;
|
|
use App\Models\DealerEarning;
|
|
use App\Models\DealerManagerSubsidy;
|
|
use App\Models\DealerManageSubsidy;
|
|
use App\Models\DealerPurchaseSubsidy;
|
|
use Dcat\Admin\Grid;
|
|
use Dcat\Admin\Grid\LazyRenderable;
|
|
use Dcat\Admin\Widgets\Card;
|
|
|
|
class DealerEarningSimpleTable extends LazyRenderable
|
|
{
|
|
public function grid(): Grid
|
|
{
|
|
$userId = $this->payload['id'] ?? 0;
|
|
$builder = DealerEarning::query();
|
|
// dd($userId);
|
|
$builder->with(['user', 'payer'])->where(function ($q) use ($userId) {
|
|
return $q->where('user_id', $userId)->orWhere('payer_id', $userId);
|
|
});
|
|
return Grid::make($builder, function (Grid $grid) {
|
|
$grid->column('user.phone', '收款人');
|
|
$grid->column('payer_id', '付款人')->display(function () {
|
|
return $this->payer_id ? $this->payer?->phone : '公司';
|
|
});
|
|
$grid->column('earningable_type', '资金类型')->display(function () {
|
|
return $this->earningable_type_text;
|
|
})->label([
|
|
(new DealerManageSubsidy())->getMorphClass() => 'primary',
|
|
(new DealerManagerSubsidy())->getMorphClass() => 'success',
|
|
(new DealerPurchaseSubsidy())->getMorphClass() => 'danger',
|
|
(new DealerChannelSubsidyLog())->getMorphClass() => 'warning',
|
|
]);
|
|
$grid->column('remark', '备注')->display('详情') // 设置按钮名称
|
|
->expand(function () {
|
|
// 这里返回 content 字段内容,并用 Card 包裹起来
|
|
$card = new Card(null, $this->remark);
|
|
|
|
return "<div style='padding:10px 10px 0;text-align: center'>$card</div>";
|
|
});
|
|
$grid->column('lvl')->display(function () {
|
|
return $this->lvl->text();
|
|
});
|
|
// $grid->column('total_amount', '总金额')->prepend('¥');
|
|
// $grid->column('fee_rate', '手续费率')->append('%');
|
|
// $grid->column('fee', '手续费')->prepend('¥');
|
|
$grid->column('total_earnings', '实际金额')->prepend('¥');
|
|
$grid->column('status', '状态')->display(function ($v) {
|
|
if (! $this->isSettled()) {
|
|
return "<i class='fa fa-circle' style='font-size: 13px;color: #b9c3cd'></i> 待结算";
|
|
}
|
|
|
|
return "<i class='fa fa-circle' style='font-size: 13px;color: {$v->color()}'></i> {$v->text()}";
|
|
});
|
|
$grid->column('created_at', '创建时间');
|
|
$grid->column('id', '操作')->display('查看')->link(function ($value) {
|
|
return admin_route('dealer_earnings.show', ['dealer_earning' => $this->id]);
|
|
});
|
|
// $grid->withBorder();
|
|
$grid->model()->orderBy('created_at', 'desc');
|
|
$grid->disableRefreshButton();
|
|
$grid->disableActions();
|
|
});
|
|
}
|
|
}
|