<?php
namespace App\Admin\Controllers;
use App\Combo;
use App\Http\Controllers\Controller;
use App\ServiceType;
use Encore\Admin\Controllers\HasResourceActions;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Layout\Content;
use Encore\Admin\Show;
use Encore\Admin\Widgets\Table;
class ManageComboController extends Controller
{
use HasResourceActions;
public function index(Content $content)
{
return $content
->header('套餐')
->description('列表')
->body($this->grid());
}
public function show($id, Content $content)
{
return $content
->header('套餐')
->description('详情')
->body($this->detail($id));
}
public function edit($id, Content $content)
{
return $content
->header('编辑')
->description('套餐')
->body($this->form()->edit($id));
}
public function create(Content $content)
{
return $content
->header('创建')
->description('套餐')
->body($this->form());
}
protected function grid()
{
$grid = new Grid(new Combo);
$grid->id('Id');
$grid->name('名称');
$grid->level('等级');
$grid->price('价格');
$grid->content('内容')->display(function($content){
return '查看';
})->modal('内容', function ($model) {
$values = [];
foreach ($model->content as $item){
$name = ServiceType::find($item['id'])->name;
$value = [
$name,
$item['is_own'] ? '是' : '否',
empty($item['times']) ? '不限次': $item['times'],
empty($item['hour_price']) ?'无': $item['hour_price']
];
array_push($values,$value);
} return new Table(['服务', '是否拥有', '次数','价格'], $values);
});
$grid->created_at('创建日期');
$grid->updated_at('更新日期');
return $grid;
}
protected function detail($id)
{
$show = new Show(Combo::findOrFail($id));
$show->id('Id');
$show->name('名称');
$show->level('等级');
$show->price('价格(元/年)');
$show->content('内容');
$show->created_at('创建日期');
$show->updated_at('更新日期');
return $show;
}
protected function form()
{
$form = new Form(new Combo);
$form->text('name', '名称');
$form->text('level', '等级'); $form->decimal('price', '价格'); $options = ServiceType::all()->pluck('name', 'id');
$form->table('content', '内容', function ($table) use ($options){
$table->select('id', 'id')->options($options)->rules('required');
$table->switch('is_own', '享受该服务')->rules('required');
$table->number('times', '次数');
$table->decimal('hour_price', '价格(元/时)');
});
return $form;
}
}