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
28 lines
853 B
<?php
|
|
|
|
namespace App\AdminSupplier\Extensions;
|
|
use App\Exports\ProductExport;
|
|
use App\Jobs\ExportProductToExcel;
|
|
use Dcat\Admin\Admin;
|
|
use Dcat\Admin\Grid\Exporters\AbstractExporter;
|
|
use Maatwebsite\Excel\Facades\Excel;
|
|
|
|
/**
|
|
* Excel导出功能
|
|
*/
|
|
class ProductToExcelExporter extends AbstractExporter
|
|
{
|
|
public function export()
|
|
{
|
|
$export_type = request('_export_');
|
|
if ($export_type == 'all') {
|
|
ExportProductToExcel::dispatch(\Admin::user()->id);
|
|
return redirect(admin_url('product/export'))->send();
|
|
} else if (str_starts_with($export_type, 'selected:')) {
|
|
$ids = explode(',', substr($export_type, strlen('selected:')));
|
|
$ids = array_filter($ids, fn($v) => preg_match('/^\d+$/', $v));
|
|
|
|
return Excel::download(new ProductExport(Admin::user()->id, $ids), '导出选择产品-' . date('Y-m-d H:i:s') . '.xlsx')->send();
|
|
}
|
|
}
|
|
}
|