@@ -48,15 +48,32 @@ public function performExcel()
4848 return $ this ->perform ('xlsx ' , 'excel ' );
4949 }
5050
51- private function perform ( $ ext , $ view )
51+ public function performCsv ( )
5252 {
53+ return $ this ->perform ('xlsx ' , 'csv ' );
54+ }
55+
56+ public function performCommon ($ param = [])
57+ {
58+ return $ this ->perform (null , 'common ' , $ param );
59+ }
60+
61+ private function perform ($ ext , $ view , $ param = [])
62+ {
63+ if (null === $ ext ) {
64+ $ ext = 'xlsx ' ;
65+ }
66+ if (!isset ($ param ['formats ' ])) {
67+ $ param ['formats ' ] = ['xlsx ' , 'csv ' ];
68+ }
5369 $ pageTitle = $ this ->data ['pageTitle ' ];
5470 $ defaultExportName = $ this ->data ['defaultExportName ' ];
5571 $ input = InputPackage::buildFromInput ();
5672 $ page = $ input ->getPage ();
5773 $ pageSize = $ input ->getPageSize (null , null , null , 100 );
5874 $ search = $ input ->getJsonAsInput ('_param ' )->getArray ('search ' );
5975 $ exportName = $ input ->getTrimString ('exportName ' , $ defaultExportName );
76+ $ format = $ input ->getTrimString ('format ' , $ ext );
6077
6178 if (Request::isPost ()) {
6279 BizException::throwsIfEmpty ('导出文件名为空 ' , $ exportName );
@@ -66,7 +83,7 @@ private function perform($ext, $view)
6683 $ data ['list ' ] = $ paginateData ['list ' ];
6784 $ data ['total ' ] = $ paginateData ['total ' ];
6885 $ data ['finished ' ] = count ($ paginateData ['list ' ]) != $ pageSize ;
69- $ data ['exportName ' ] = $ exportName . '. ' . $ ext ;
86+ $ data ['exportName ' ] = $ exportName . '. ' . $ format ;
7087 $ data ['exportHeadTitles ' ] = $ this ->data ['headTitles ' ];
7188 return Response::generateSuccessData ($ data );
7289 }
@@ -76,6 +93,7 @@ private function perform($ext, $view)
7693 'pageTitle ' => $ pageTitle ,
7794 'exportName ' => $ exportName ,
7895 'total ' => $ paginateData ['total ' ],
96+ 'formats ' => $ param ['formats ' ],
7997 ]);
8098 }
8199}
0 commit comments