DiseasePropertiesController.php 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Http\Controllers\Controller;
  4. use App\Model\DiseaseProperties;
  5. use App\Model\DiseaseCategoryProperties;
  6. use Encore\Admin\Form;
  7. use Encore\Admin\Grid;
  8. use Encore\Admin\Facades\Admin;
  9. use Encore\Admin\Layout\Content;
  10. use Encore\Admin\Controllers\ModelForm;
  11. class DiseasePropertiesController extends Controller
  12. {
  13. use ModelForm;
  14. public function index()
  15. {
  16. return Admin::content(function (Content $content) {
  17. $content->header('疾病属性');
  18. $content->description('列表');
  19. $content->body($this->grid());
  20. });
  21. }
  22. public function create()
  23. {
  24. return Admin::content(function (Content $content) {
  25. $content->header('疾病属性');
  26. $content->description('新增');
  27. $content->body($this->form());
  28. });
  29. }
  30. public function edit($id)
  31. {
  32. return Admin::content(function (Content $content) use ($id) {
  33. $content->header('疾病属性');
  34. $content->description('列表');
  35. $content->body($this->form($id)->edit($id));
  36. });
  37. }
  38. protected function form($id = '')
  39. {
  40. return Admin::form(DiseaseProperties::class , function (Form $form) {
  41. $form->display('id' , '序号');
  42. $form->text( 'property_zh_name' , '属性中文名称')->required();
  43. $form->text( 'property_ch_name' , '属性英文名称')->required();
  44. $form->select( 'tag' , '中西医分类')->options([1 => '西医' , 2 => '中医'])->required();
  45. $form->select( 'label' , '所属标签')->options(DiseaseProperties::getLables())->required();
  46. $form->select( 'category_id' , '属性分类名称')->options((new DiseaseCategoryProperties)->getPropertiesCategory())->required();
  47. $form->text( 'order' , '属性排序值');
  48. });
  49. }
  50. // Grid
  51. protected function grid()
  52. {
  53. return Admin::grid(DiseaseProperties::class, function (Grid $grid) {
  54. $grid->id('编号')->sortable();
  55. $grid->property_ch_name('属性英文名称');
  56. $grid->property_zh_name('属性中文名称');
  57. $grid->diseaseCategoryProperties()->name('属性分类');
  58. $grid->label('所属标签')->display(function($label) {
  59. return DiseaseProperties::getLables($label) ?? '---';
  60. });
  61. $grid->tag('分类')->display(function($tag) {
  62. return 1 == $tag ? '西医' : '中医';
  63. });
  64. $grid->order('排序值');
  65. $grid->created_at('创建时间');
  66. $grid->updated_at('更新时间');
  67. // 禁用导出数据按钮
  68. $grid->actions(function ($actions) {
  69. $actions->disableView();
  70. //$actions->disableEdit();
  71. });
  72. $grid->filter(function($filter){
  73. // 去掉默认的id过滤器
  74. $filter->disableIdFilter();
  75. // 在这里添加字段过滤器
  76. $filter->equal('tag' , '选择分类')->select([1 => '西医' , 2 => '中医']);
  77. $filter->equal('label' , '选择标签分类')->select(DiseaseProperties::getLables());
  78. });
  79. });
  80. }
  81. }