fastadmin  默认是没有 export_url的  需要在js 文件里加入  export的配置     自定义的筛选条件 也都能直接自动带入了

在extend 加入 export_url

在 config 配置中加入  exportbtn:‘btn-export’

 

 

 if ($(".export .exporttips").length === 0) {
     $(".export .dropdown-menu").prepend("<li class='exporttips alert alert-warning-light mb-0 no-border p-2'></li>")
}
 $(".export .exporttips").html("导出记录:" + (selectedIds.length > 0 ? "选中" : "全部"));

 

 

 

//导出按钮事件
                toolbar.on('click',Table.config.exportbtn, function(){
                        var search = options.queryParams({});
                        var filter = search.filter;
                        var op = search.op;
                        var _url = options.extend.export_url;

                        var urlA = _url.indexOf('?');
                        if(urlA === -1){// 没有
                            var url = _url+'?filter='+ filter +'&op='+ op;
                        }else {
                            var url = _url + '&filter=' + filter + '&op=' + op;
                        }

                        window.location.href = url;

                });

 

 

 

index.html 加入按钮

   <a href="javascript:;" class="btn btn-success btn-export {:$auth->check('order/order/export')?'':'hide'}" title="{:__('Export')}" ><i class="fa fa-download"></i> {:__('Export')}</a>

 

 js文件加入export_url

 

 

下面是 php 导出方法

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;  //图片导出

/**
     * 导出
     */
    public function export(){

        $filter = $this->request->param("filter");

        list($where, $sort, $order, $offset, $limit) = $this->buildparams();
        $filter = json_decode($filter,true);

        $map = [];
        if(isset($filter['information_id']))
        {
            $map['order.information_id'] = $filter['information_id'];
        }

        if(isset($filter['create_time']))
        {
            $start = substr($filter['create_time'],0,19);
            $end = substr($filter['create_time'],22);
            $map['order.create_time'] = ['between',[$start,$end]];
        }

        $map['is_accept'] = 1;

        // 设置数据
        $lists = $this->model->with(["information","user"])
            ->field('order.content,order.create_time,order.remark,order.pay_time,user.username,information.title')
            ->where($where)
            ->where($map)
            ->where(function($query) {
                $query->where(["information.is_upload" => 0])->whereOr(function($query1) {
                    $query1->where(["information.is_upload" => 1,"order.shenqingbiao"=>["neq",""]]);
                });
            })
            ->select();

        $list = [];
        $check_status = ['-1'=>'审核未通过','0'=>'待审核','1'=>'已审核'];
        $status = ['-2'=>'未通过','-1'=>'已过期','0'=>'待审批','1'=>'已审批'];
        $pay_status = ['-1'=>'缴费驳回','0'=>'待缴费','1'=>'支付待审核','2'=>'已缴费'];
        
        foreach($lists as $key=>$item) {
            $content = json_decode($item['content'], true);

$list[$key]['gongzuodanwei'] = $content['gongzuodanwei']??''; $list[$key]['username'] = $item['username']??''; $list[$key]['title'] = $item['title']??''; $list[$key]['name'] = $content['name']??''; $list[$key]['idcard'] = $content['idcard']??''; $list[$key]['mobile'] = $content['mobile']??''; $list[$key]['create_time'] = $item['create_time']??''; $list[$key]['pay_time'] = $item['pay_time']??''; $list[$key]['remark'] = $item['remark']??''; $list[$key]['voucher'] = $item['voucher']??''; //check_status status pay_status $list[$key]['check_status'] = $check_status[$item['check_status']]??''; $list[$key]['status'] = $status[$item['status']]??''; $list[$key]['pay_status'] = $pay_status[$item['pay_status']]??''; if ($content["shenbaokemu"]) { $list[$key]["shenbaokemu"] = Subject::where("id","in",$content["shenbaokemu"])->column("title"); $list[$key]["shenbaokemu"] = implode(",",$list[$key]["shenbaokemu"]); } else { $list[$key]["shenbaokemu"] = ""; } $list[$key]['dianzizhaopian'] = $content['dianzizhaopian']??''; $list[$key]['idcard_front'] = $content['idcard_front']??''; $list[$key]['idcard_back'] = $content['idcard_back']??''; $list[$key]['biyezheng'] = $content['biyezheng']??''; $list[$key]['gongzuonianxian'] = $content['gongzuonianxian']??''; $list[$key]['shenqingbiao'] = $item['shenqingbiao']??''; $list[$key]['dianzizhengshu'] = $content['dianzizhengshu']??''; } $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->getStyle('A:S')->getAlignment() ->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER) //设置垂直居中 ->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER) //设置水平居中 ->setWrapText(true); //设置自动换行 //设置表头 $sheet->setCellValue('A1', '单位'); $sheet->setCellValue('B1', '用户'); $sheet->setCellValue('C1', '项目'); $sheet->setCellValue('D1', '真实姓名'); $sheet->setCellValue('E1', '身份证号'); $sheet->setCellValue('F1', '联系电话'); $sheet->setCellValue('G1', 'xxx'); $sheet->setCellValue('H1', '报名和交费时间'); $sheet->setCellValue('I1', '审核状态'); $sheet->setCellValue('J1', '订单状态'); $sheet->setCellValue('K1', '缴费状态'); $sheet->setCellValue('L1', '备注'); $sheet->setCellValue('M1', 'xxxx'); $sheet->setCellValue('N1', 'xxx'); $sheet->setCellValue('O1', 'xxxx'); $sheet->setCellValue('P1', 'xxxx'); $sheet->setCellValue('Q1', 'xxxxx'); $sheet->setCellValue('R1', 'xxxx'); $sheet->setCellValue('S1', 'xxxx'); $sheet->getColumnDimension('A')->setWidth(20); $sheet->getColumnDimension('B')->setWidth(20); $sheet->getColumnDimension('C')->setWidth(30); $sheet->getColumnDimension('D')->setWidth(20); $sheet->getColumnDimension('E')->setWidth(30); $sheet->getColumnDimension('F')->setWidth(30); $sheet->getColumnDimension('G')->setWidth(60); $sheet->getColumnDimension('H')->setWidth(30); $sheet->getColumnDimension('I')->setWidth(30); $sheet->getColumnDimension('J')->setWidth(30); $sheet->getColumnDimension('K')->setWidth(30); $sheet->getColumnDimension('L')->setWidth(30); $sheet->getColumnDimension('M')->setWidth(30); $sheet->getColumnDimension('N')->setWidth(30); $sheet->getColumnDimension('O')->setWidth(30); $sheet->getColumnDimension('P')->setWidth(30); $sheet->getColumnDimension('Q')->setWidth(30); $sheet->getColumnDimension('R')->setWidth(30); $sheet->getColumnDimension('S')->setWidth(120); $sheet->getDefaultRowDimension()->setRowHeight(60); //输出表格 foreach($list as $keys => $value) { $keys = $keys + 2; $sheet->setCellValue('A'.$keys,$value['gongzuodanwei']??''); $sheet->setCellValue('B'.$keys,$value['username']??''); $sheet->setCellValue('C'.$keys,$value['title']??''); $sheet->setCellValue('D'.$keys,$value['name']??''); $sheet->setCellValue('E'.$keys,' '.($value['idcard']??'')); $sheet->setCellValue('F'.$keys,$value['mobile']??''); $sheet->setCellValue('G'.$keys,$value['shenbaokemu']??''); $sheet->setCellValue('H'.$keys,'xx:'.($value['create_time']??'')."\r\n".'交费:'.(!empty($value['pay_time'])?date('Y-m-d H:i:s',$value['pay_time']):'')); $sheet->setCellValue('I'.$keys,$value['check_status']??''); $sheet->setCellValue('J'.$keys,$value['status']??''); $sheet->setCellValue('K'.$keys,$value['pay_status']??''); $sheet->setCellValue('L'.$keys,$value['remark']??''); if($value['idcard_front']) { $objDrawing = new Drawing(); $objDrawing->setPath(ROOT_PATH.'public'.$value['idcard_front']);// 本地图片文件路径 $objDrawing->setHeight(40);// 图片高 $objDrawing->setCoordinates('N'.$keys);// 单元格 $objDrawing->setOffsetX(20);// 水平偏移 $objDrawing->setOffsetY(20);// 垂直偏移 $objDrawing->getShadow()->setVisible(true); $objDrawing->setWorksheet($sheet); } if($value['idcard_back']) { $objDrawing = new Drawing(); $objDrawing->setPath(ROOT_PATH.'public'.$value['idcard_back']);// 本地图片文件路径 $objDrawing->setHeight(40);// 图片高 $objDrawing->setCoordinates('O'.$keys);// 单元格 $objDrawing->setOffsetX(20);// 水平偏移 $objDrawing->setOffsetY(20);// 垂直偏移 $objDrawing->getShadow()->setVisible(true); $objDrawing->setWorksheet($sheet); } if($value['dianzizhengshu']) { $aa = explode(',',$value['dianzizhengshu']); $b = []; foreach ($aa as $it){ $b[] = ROOT_PATH.'public'.$it;// 本地图片文件路径 } $h = 20; foreach ($b as $p){ $objDrawing = new Drawing(); $objDrawing->setPath($p);// 本地图片文件路径 $objDrawing->setHeight(40);// 图片高 $objDrawing->setCoordinates('S'.$keys);// 单元格 $objDrawing->setOffsetX($h);// 水平偏移 $objDrawing->setOffsetY(20);// 垂直偏移 $objDrawing->getShadow()->setVisible(true); $objDrawing->setWorksheet($sheet); $h += 50; } } } $filename = '导出'.date('ymdhis',time()).'.xlsx'; header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="'.$filename.'"'); header('Cache-Control: max-age=0'); $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx'); $writer->save('php://output'); exit; }

 

 

 
posted on 2024-09-09 00:27  cx小橙  阅读(64)  评论(0编辑  收藏  举报