123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <?php
- namespace App\Admin\Actions\Vaccines;
- use Encore\Admin\Actions\Action;
- use Illuminate\Http\Request;
- use App\Imports\Vaccines\ImportMember;
- use Encore\Admin\Admin;
- use Maatwebsite\Excel\Facades\Excel;
- class ImportAction extends Action
- {
- protected $selector = '.import-action';
- public function handle(Request $request)
- {
- try{
- // $request ...
- $file = $request-> file('file');
- Excel::import(new ImportMember(),$file);
- return $this->response()->success('数据导入成功')->refresh();
- }catch (\Exception $e){
- return $this->response()->error($e -> getMessage());
- }
- }
- public function html()
- {
- return <<<HTML
- <a class="btn btn-sm btn-default import-action">导入</a>
- HTML;
- }
- //表单
- public function form()
- {
- $this
- ->file('file', '请选择文件')
- ->options(['showPreview' => false,
- 'allowedFileExtensions'=>['xlsx','xls','csv'],
- 'showUpload'=>true
- ]);
- }
- //上传等待
- public function handleActionPromise()
- {
- $resolve = <<<SCRIPT
- var actionResolverss = function (data) {
- $('.modal-footer').show()
- $('.tips').remove()
- var response = data[0];
- var target = data[1];
- if (typeof response !== 'object') {
- return $.admin.swal({type: 'error', title: 'Oops!'});
- }
- var then = function (then) {
- if (then.action == 'refresh') {
- $.admin.reload();
- }
- if (then.action == 'download') {
- window.open(then.value, '_blank');
- }
- if (then.action == 'redirect') {
- $.admin.redirect(then.value);
- }
- };
- if (typeof response.html === 'string') {
- target.html(response.html);
- }
- if (typeof response.swal === 'object') {
- $.admin.swal(response.swal);
- }
- if (typeof response.toastr === 'object') {
- $.admin.toastr[response.toastr.type](response.toastr.content, '', response.toastr.options);
- }
- if (response.then) {
- then(response.then);
- }
- };
- var actionCatcherss = function (request) {
- $('.modal-footer').show()
- $('.tips').remove()
- if (request && typeof request.responseJSON === 'object') {
- $.admin.toastr.error(request.responseJSON.message, '', {positionClass:"toast-bottom-center", timeOut: 10000}).css("width","500px")
- }
- };
- SCRIPT;
- Admin::script($resolve);
- return <<<SCRIPT
- $('.modal-footer').hide()
- let html = `<div class='tips' style='color: #ff3249;font-size: 18px;'>导入时间取决于数据量,请耐心等待结果不要关闭窗口!<img src="data:image/gif;base64,R0lGODlhEAAQAPQAAP///1VVVfr6+np6eqysrFhYWG5ubuPj48TExGNjY6Ojo5iYmOzs7Lq6utjY2ISEhI6OjgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAAFUCAgjmRpnqUwFGwhKoRgqq2YFMaRGjWA8AbZiIBbjQQ8AmmFUJEQhQGJhaKOrCksgEla+KIkYvC6SJKQOISoNSYdeIk1ayA8ExTyeR3F749CACH5BAkKAAAALAAAAAAQABAAAAVoICCKR9KMaCoaxeCoqEAkRX3AwMHWxQIIjJSAZWgUEgzBwCBAEQpMwIDwY1FHgwJCtOW2UDWYIDyqNVVkUbYr6CK+o2eUMKgWrqKhj0FrEM8jQQALPFA3MAc8CQSAMA5ZBjgqDQmHIyEAIfkECQoAAAAsAAAAABAAEAAABWAgII4j85Ao2hRIKgrEUBQJLaSHMe8zgQo6Q8sxS7RIhILhBkgumCTZsXkACBC+0cwF2GoLLoFXREDcDlkAojBICRaFLDCOQtQKjmsQSubtDFU/NXcDBHwkaw1cKQ8MiyEAIfkECQoAAAAsAAAAABAAEAAABVIgII5kaZ6AIJQCMRTFQKiDQx4GrBfGa4uCnAEhQuRgPwCBtwK+kCNFgjh6QlFYgGO7baJ2CxIioSDpwqNggWCGDVVGphly3BkOpXDrKfNm/4AhACH5BAkKAAAALAAAAAAQABAAAAVgICCOZGmeqEAMRTEQwskYbV0Yx7kYSIzQhtgoBxCKBDQCIOcoLBimRiFhSABYU5gIgW01pLUBYkRItAYAqrlhYiwKjiWAcDMWY8QjsCf4DewiBzQ2N1AmKlgvgCiMjSQhACH5BAkKAAAALAAAAAAQABAAAAVfICCOZGmeqEgUxUAIpkA0AMKyxkEiSZEIsJqhYAg+boUFSTAkiBiNHks3sg1ILAfBiS10gyqCg0UaFBCkwy3RYKiIYMAC+RAxiQgYsJdAjw5DN2gILzEEZgVcKYuMJiEAOwAAAAAAAAAAAA=="><\/div>`
- $('.modal-header').append(html)
- process.then(actionResolverss).catch(actionCatcherss);
- SCRIPT;
- }
- }
|