coinwind/app/Admin/Controllers/SwapController.php

117 lines
3.1 KiB
PHP

<?php
namespace App\Admin\Controllers;
use App\Admin\Actions\Swap\Replicate;
use App\Admin\Actions\Swap\Success;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Show;
use App\Swap;
use Encore\Admin\Widgets\Table;
class SwapController extends AdminController
{
/**
* Title for current resource.
*
* @var string
*/
protected $title = '兑换记录';
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
$grid = new Grid(new Swap);
$grid->model()->orderBy('id', 'desc');
$grid->filter(function ($filter) {
// 去掉默认的id过滤器
$filter->disableIdFilter();
// 在这里添加字段过滤器
$filter->like('address', '钱包地址');
$filter->between('created_at', '创建时间')->datetime();
$filter->between('updated_at', '最近时间')->datetime();
$filter->like('hash', '哈希值');
$filter->in('status', '状态')->multipleSelect([0 => '未审核', 1 => '通过', 2 => '拒绝']);
});
$grid->column('id', __('ID'))->sortable();
$grid->column('address', __('钱包地址'))->expand(function ($model) {
return new Table(['哈希'], [
[$model['hash']]
]);
});
$grid->column('remark', __('备注'));
$grid->column('balance', __('兑换金额'))->sortable();
$grid->column('true_balance', __('真实金额'));
$grid->column('status', '状态')->using([0 => '未审核', 1 => '通过', 2 => '拒绝'])->label([
0 => 'default',
2 => 'warning',
1 => 'success',
]);
$grid->column('hash', __('查链'))->display(function ($title) {
if ($title) {
return "<a target='_blank' href='https://eth.tokenview.com/cn/tx/" . $title . "'>查询</a>";
}
});
$grid->column('created_at', __('创建时间'))->sortable();
$grid->column('updated_at', __('更新时间'))->sortable();
$grid->actions(function ($actions) {
// 去掉查看
$actions->disableView();
$actions->disableEdit();
$actions->disableDelete();
$actions->add(new Replicate());
$actions->add(new Success());
});
$grid->disableCreateButton();
return $grid;
}
/**
* Make a show builder.
*
* @param mixed $id
* @return Show
*/
protected function detail($id)
{
$show = new Show(Single::findOrFail($id));
$show->field('id', __('ID'));
$show->field('created_at', __('Created at'));
$show->field('updated_at', __('Updated at'));
return $show;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$form = new Form(new Single);
$form->display('id', __('ID'));
$form->display('created_at', __('Created At'));
$form->display('updated_at', __('Updated At'));
return $form;
}
}