海南旅游SAAS
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.

51 lines
1.4 KiB

4 years ago
4 years ago
4 years ago
  1. <?php
  2. namespace App\AdminSupplier\Renderable;
  3. use App\Common\ProductStatus;
  4. use App\AdminAgent\Repositories\Product;
  5. use App\Models\DemandProduct;
  6. use Dcat\Admin\Admin;
  7. use Dcat\Admin\Grid;
  8. use Dcat\Admin\Grid\LazyRenderable;
  9. /**
  10. * 选择产品
  11. * Class SelectProduct
  12. * @package App\AdminAgent\Renderable
  13. */
  14. class SelectProduct extends LazyRenderable
  15. {
  16. public function grid(): Grid
  17. {
  18. // 获取外部传递的参数
  19. // $id = $this->id;
  20. Admin::translation('product');
  21. return Grid::make(new DemandProduct(['supplier:id,name']), function (Grid $grid) {
  22. $grid->disableActions();
  23. $grid->disableBatchDelete();
  24. $grid->disableBatchActions();
  25. //$grid->model()->where('status', ProductStatus::ON_SALE);
  26. $grid->model()->where([
  27. 'supplier_id' => Admin::user()->id,
  28. 'status' => ProductStatus::ON_SALE
  29. ]);
  30. $grid->quickSearch(['title', 'supplier.name'])->placeholder('搜索产品名称、供应商');
  31. $grid->column('id');
  32. $grid->column('supplier.name', '供应商')->display(fn($v) => $v);
  33. $grid->column('title');
  34. $grid->column('picture')->image('',60, 60);
  35. $grid->column('sale');
  36. $grid->column('updated_at');
  37. $grid->paginate(15);
  38. $grid->filter(function (Grid\Filter $filter) {
  39. $filter->equal('id')->width(2);
  40. $filter->like('title')->width(4);
  41. $filter->like('supplier.name', '供应商名称')->width(4);
  42. });
  43. });
  44. }
  45. }