ExampleExporter.php 1.8 KB
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
 * 导出类
+-----------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Admin\Extensions\Exporter
 * @package   App\Admin\Extensions\Exporter
 * @author    Richer <yangzi1028@163.com>
 * @date      2020年11月13日 01:26:09
 * @copyright 2021-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
namespace App\Admin\Extensions\Exporter;

use Encore\Admin\Grid\Exporters\ExcelExporter;
use Maatwebsite\Excel\Concerns\WithMapping;

class ExampleExporter extends ExcelExporter implements WithMapping
{

    protected $fileName = '列表';

    protected $columns = [
        'name'              => '标题',
        'created_at'        => '创建时间',
        'audited_status'    => '审核状态',
        'audited_at'        => '审核时间',
    ];

    /**
     * OrderExporter constructor.
     *
     * @param string $fileName
     * @param array $columns
     */
    public function __construct($fileName = '', $columns = [])
    {
        if ($fileName) {
            $this->fileName    = $fileName;
        }
        $this->fileName .= '.xls';

        if ($columns) {
            $this->columns    = $columns;
        }
        $this->columns['id'] = '';
    }


    /**
     * 字段映射
     *
     * @param $example
     * @return array
     */
    public function map($example) : array
    {
        // 返回的映射数组
        $arr = [
            $example->name,
            $example->created_at,
            \Arr::get(config('constants.audit_options'), $example->audited_status),
            $example->audited_at ?: '-',
        ];

        return $arr;
    }
}