<?php
namespace App\Admin\Controllers;

use App\Http\Controllers\Controller;
use App\Model\Category;
use App\Model\Illness;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Layout\Content;
use Encore\Admin\Controllers\ModelForm;
use function Clue\StreamFilter\fun;

class IllnessController extends Controller
{
    use ModelForm;
    public function index()
    {
        return Admin::content(function (Content $content) {
            $content->header('疾病');
            $content->description('列表');
            $content->body($this->grid());
        });
    }

    public function create()
    {
        return Admin::content(function (Content $content) {
            $content->header('疾病');
            $content->description('新增');
            $content->body($this->form());
        });
    }

    public function edit($id)
    {
        return Admin::content(function (Content $content) use ($id) {
            $content->header('疾病');
            $content->description();
            $content->body($this->form($id)->edit($id));
        });
    }


    protected function form($id='')
    {
        return Admin::form(Illness::class, function (Form $form) {
            $form->display('id' , '编号');
            $form->text('illness_name' , '疾病名称');
            $form->text('illness_as_name' , '疾病别名');
            $form->text('icd_number' , 'ICD号');
            $form->select('category' ,  '选择分类')->options(Category::getCategory());
            $form->text('medicinal' , '相关药品');
            $form->editor('illness_desc' , '疾病概述')->rows(10);
            $form->text('epidemiology' , '流行病学');
            $form->text('clinical_manifestation' , '临床表现');
            $form->text('pathogeny' , '病因');
            $form->text('complication' , '并发症');
            $form->text('auxiliary' , '辅助检查');
            $form->text('diagnose' , '诊断');
            $form->text('cure' , '治疗');
        });
    }


    // Grid
    protected function grid()
    {
        return Admin::grid(Illness::class, function (Grid $grid) {
            $grid->id('编号')->sortable();
            $grid->model()->orderBy('id','desc');
            $grid->illness_name('疾病名称');
            $grid->illness_as_name('疾病别名');
            $grid->icd_number('ICD号');
            $grid->category('类别')->display(function ($category){
                return Category::getCategoryName($category) ?? '--';
            });
            $grid->medicinal('相关药品');
            $grid->illness_desc('疾病概述');
            $grid->epidemiology('流行病学');
            $grid->clinical_manifestation('临床表现');
            $grid->pathogeny('病因');
            $grid->complication('并发症');
            $grid->auxiliary('辅助检查');
            $grid->diagnose('诊断');
            $grid->cure('治疗');

            $grid->paginate(20);

            // 禁用导出数据按钮
            $grid->actions(function ($actions) {
                $actions->disableView();
                //$actions->disableEdit();
                $actions->disableDelete();
            });

            //$grid->disableCreateButton();
            $grid->disableExport();

            $grid->filter(function ($filter) {
                $filter->disableIdFilter();
                //$filter->equal('phone'     ,'输入手机号查询');
            });
        });
    }
}