海工商新版后台
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.
 
 

136 lines
4.2 KiB

<?php
namespace App\Admin\Controllers;
use App\Models\SecondaryCollege;
use App\Models\Speciality;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
class SpecialityController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new Speciality(), function (Grid $grid) {
//开启边框模式
$grid->withBorder();
// 开启字段选择器功能
$grid->showColumnSelector();
$grid->column('id')->sortable();
$grid->column('secondary_college_id')->display(function () {
$secondary_college_id = $this->secondary_college_id;
if (!empty($secondary_college_id)) {
$name = SecondaryCollege::query()->where("id", $secondary_college_id)->first("name");
if (!empty($name)) {
return $name->name;
}
}
})->help("二级学院显示为空时则对应的二级学院信息可能已被删除");
$grid->column('speciality_name');
$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->column('update_time')->display(function (){
if(!empty($this->update_time)){
return date("Y-m-d H:i:s", $this->update_time);
}
});
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('secondary_college_id')->select(function (){
return SecondaryCollege::query()->pluck("name as value", "id");
});
$filter->equal('status')->select([1 => "正常", 2 => "禁用"]);
});
// 禁用删除按钮
$grid->disableDeleteButton();
//禁用批量操作按钮
$grid->disableBatchDelete();
// 禁用详情按钮
$grid->disableViewButton();
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new Speciality(), function (Show $show) {
$show->field('id');
$show->field('speciality_name');
$show->field('status');
$show->field('create_time');
$show->field('update_time');
$show->field('secondary_college_id');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new Speciality(), function (Form $form) {
$form->display('id');
$form->select('secondary_college_id')->options(function(){
return SecondaryCollege::query()->pluck("name as value", "id");
})->required();
$form->text('speciality_name')->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();
}
});
});
}
}