jxg/jinxiangguo-master/app/Admin/Controllers/ClueController.php

121 lines
4.6 KiB
PHP
Executable File

<?php
namespace App\Admin\Controllers;
use App\Admin\Repositories\CoinClue;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
class ClueController extends AdminController
{
public function index(Content $content)
{
return $content
->translation($this->translation())
->title('线索')
->description($this->description()['index'] ?? trans('admin.list'))
->body($this->grid(request('coin_id', 0)));
}
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid($coin_id)
{
return Grid::make(new CoinClue(), function (Grid $grid) use ($coin_id) {
$grid->model()->where('coin_id', $coin_id);
$grid->column('id')->sortable();
$grid->column('name');
$grid->column('content', '内容')->if(function () {
return $this->type == \App\Models\CoinClue::TYPE_IMAGE;
})->image(50, 50)->else()->display(function () {
return $this->content;
});
$grid->column('is_circle', '圆圈形式')->display(function ($is_circle) {
return \App\Models\CoinClue::IS_CIRCLE[$is_circle];
});
$grid->column('updated_at')->sortable();
$grid->model()->orderBy('updated_at', 'desc');
$grid->model()->setConstraints([
'coin_id' => $coin_id,
]);
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new CoinClue(), function (Show $show) {
$show->field('id');
$show->field('name');
$show->field('type')->using(\App\Models\CoinClue::TYPE);
$show->field('content', '内容')->as(function ($content) {
return $this->type == \App\Models\CoinClue::TYPE_IMAGE ? '<img src="' . $content . '" style="width: 100px;height: 100px;">' : $content;
})->unescape();
$show->field('amount', '橡果数');
$show->field('is_circle', '圆圈形式')->using(\App\Models\CoinClue::IS_CIRCLE);
$show->disableDeleteButton();
$show->disableListButton();
$show->disableEditButton();
$show->tools('<div class="btn-group pull-right" style="margin-right: 5px"><a href="/admin/clues?coin_id=' . request('coin_id', 0) . '" class="btn btn-sm btn-primary "><i class="feather icon-list"></i><span class="d-none d-sm-inline"> 列表</span></a></div>');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new CoinClue(), function (Form $form) {
$coin_id = request('coin_id', 0);
$form->text('name');
$form->radio('type')
->options(\App\Models\CoinClue::TYPE)
->default(\App\Models\CoinClue::TYPE_TEXT)
->when(\App\Models\CoinClue::TYPE_TEXT, function (Form $form) {
$form->text('content', '内容');
})->when(\App\Models\CoinClue::TYPE_IMAGE, function (Form $form) {
$form->image('image', '内容');
if ($form->model()->content) {
$form->html('<img src="' . $form->model()->content . '" height="200px" width="200px"/>');
}
});
$form->number('amount', '橡果数');
$form->radio('is_circle', '圆圈形式')
->options(\App\Models\CoinClue::IS_CIRCLE)
->default(\App\Models\CoinClue::IS_CIRCLE_YES);
$form->hidden('coin_id')->value($coin_id);
$form->saving(function (Form $form) {
if ($form->type == \App\Models\CoinClue::TYPE_IMAGE) {
$form->content = $form->image;
}
$form->deleteInput('image');
});
$form->disableListButton();
$form->disableViewButton();
$form->disableViewCheck();
$form->disableDeleteButton();
$form->disableCreatingCheck();
$form->disableEditingCheck();
$form->tools('<div class="btn-group pull-right" style="margin-right: 5px"><a href="/admin/clues?coin_id=' . request('coin_id', 0) . '" class="btn btn-sm btn-primary "><i class="feather icon-list"></i><span class="d-none d-sm-inline"> 列表</span></a></div>');
});
}
}