海工商新版后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

121 lines
3.8 KiB

<?php
namespace App\Admin\Controllers;
use App\Admin\Repositories\MultipleWorld;
use App\Models\DormitoryType;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
class MultipleWorldController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new MultipleWorld(), function (Grid $grid) {
//开启边框模式
$grid->withBorder();
// 开启字段选择器功能
$grid->showColumnSelector();
$grid->column('id')->sortable();
$grid->column('people');
$grid->column('price');
$grid->column('dormitory_type_id')->display(function (){
$info = DormitoryType::query()->where("id",$this->dormitory_type_id)->first();
if(!empty($info)){
return $info->dormitory;
}
})->help("未显示时则代表未找到对应宿舍类型或该宿舍类型已被删除");
$grid->column('status')->select([1=>"正常", 2=>"禁用"]);
$grid->column('create_time')->display(function (){
if(!empty($this->create_time)){
return date("Y-m-d H:i:s", $this->create_time);
}
})->sortable();
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
$filter->equal('dormitory_type_id', "宿舍类型")->select(DormitoryType::query()->pluck("dormitory as value", "id"));
$filter->equal('status')->select([1 => "正常", 2 => "禁用"]);
});
// 禁用详情按钮
$grid->disableViewButton();
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new MultipleWorld(), function (Show $show) {
$show->field('id');
$show->field('people');
$show->field('price');
$show->field('dormitory_type_id');
$show->field('status');
$show->field('create_time');
$show->field('update_time');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new MultipleWorld(), function (Form $form) {
$form->display('id');
$form->select('dormitory_type_id', '宿舍类型')->options(DormitoryType::query()->where("status",1)->pluck("dormitory as value", "id"))->required();
$form->text('people')->required();
$form->number('price')->required();
$form->select('status', '状态')->options([1 => '正常', 2 => '禁用'])->required();
$form->hidden("create_time");
$form->hidden("update_time");
// 去除删除按钮
$form->disableDeleteButton();
// 去除跳转详情按钮
$form->disableViewButton();
$form->footer(function ($footer) {
// 去掉`查看`checkbox
$footer->disableViewCheck();
// 去掉`继续编辑`checkbox
$footer->disableEditingCheck();
// 去掉`继续创建`checkbox
$footer->disableCreatingCheck();
});
$form->saving(function (Form $form) {
if ($form->isCreating()) {
$form->create_time =time();
// 删除用户提交的数据
$form->deleteInput('update_time');
}else{
$form->update_time =time();
}
});
});
}
}