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

28 lines
853 B

  1. <?php
  2. namespace App\AdminSupplier\Extensions;
  3. use App\Exports\ProductExport;
  4. use App\Jobs\ExportProductToExcel;
  5. use Dcat\Admin\Admin;
  6. use Dcat\Admin\Grid\Exporters\AbstractExporter;
  7. use Maatwebsite\Excel\Facades\Excel;
  8. /**
  9. * Excel导出功能
  10. */
  11. class ProductToExcelExporter extends AbstractExporter
  12. {
  13. public function export()
  14. {
  15. $export_type = request('_export_');
  16. if ($export_type == 'all') {
  17. ExportProductToExcel::dispatch(\Admin::user()->id);
  18. return redirect(admin_url('product/export'))->send();
  19. } else if (str_starts_with($export_type, 'selected:')) {
  20. $ids = explode(',', substr($export_type, strlen('selected:')));
  21. $ids = array_filter($ids, fn($v) => preg_match('/^\d+$/', $v));
  22. return Excel::download(new ProductExport(Admin::user()->id, $ids), '导出选择产品-' . date('Y-m-d H:i:s') . '.xlsx')->send();
  23. }
  24. }
  25. }