DistDistributorTable.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace App\Admin\Renderable;
  3. use App\Admin\Repositories\DistAdminDistributor;
  4. use Dcat\Admin\Grid;
  5. use Dcat\Admin\Grid\LazyRenderable;
  6. class DistDistributorTable extends LazyRenderable
  7. {
  8. public function grid(): Grid
  9. {
  10. return Grid::make(DistAdminDistributor::with(['appearance']), function (Grid $grid) {
  11. $grid->view('admin.grid.table');
  12. $grid->column('id')->width('5%');
  13. $grid->column('company_name', 'Company Name')->width('25%');
  14. $grid->column('appearance.title' ,admin_trans_field('appearance'))->width('15%');
  15. // $grid->column('country', 'Country');
  16. $grid->column('site_name');
  17. $grid->column('domain_type',admin_trans_label('domain'))->display(function ($domainType) {
  18. $title = "";
  19. if ($domainType == 0) {
  20. $title = $this->secondary_domain;
  21. } else {
  22. $title = $this->custom_domain;
  23. }
  24. return "<span style='color:#586cb1'>$title</span>";
  25. });
  26. $grid->actions(function (Grid\Displayers\Actions $actions) {
  27. $actions->disableDelete();
  28. $actions->disableEdit();
  29. $actions->disableQuickEdit();
  30. $actions->disableView();
  31. $url = $actions->row->domain_type == 0 ? $actions->row->secondary_domain : $actions->row->custom_domain;
  32. $url = 'http://'.$url.':'.env('DIST_SITE_PORT');
  33. $actions->prepend('<a href="'.$url.'" target="_blank"><i class="fa fa-paper-plane"></i> 浏览</a>');
  34. });
  35. $grid->rowSelector()->titleColumn('company_name');
  36. $grid->quickSearch(['company_name']);
  37. $grid->paginate(10);
  38. $grid->filter(function (Grid\Filter $filter) {
  39. $filter->like('company_name')->width(4);
  40. $filter->like('site_name')->width(4);
  41. });
  42. $grid->model()->where('enabled', 1);
  43. });
  44. }
  45. }