增加导入平安结算订单
This commit is contained in:
115
app/Admin/Actions/Coupon/SettleCoupon.php
Normal file
115
app/Admin/Actions/Coupon/SettleCoupon.php
Normal file
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
|
||||
namespace App\Admin\Actions\Coupon;
|
||||
|
||||
use App\Admin\Imports\SettleCouponImport;
|
||||
use Encore\Admin\Actions\Action;
|
||||
use Encore\Admin\Admin;
|
||||
use Illuminate\Http\Request;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
|
||||
class SettleCoupon extends Action
|
||||
{
|
||||
public $name = '结算数据';
|
||||
|
||||
protected $selector = '.check-coupon';
|
||||
|
||||
public function handle(Request $request): \Encore\Admin\Actions\Response
|
||||
{
|
||||
try {
|
||||
Excel::import(new SettleCouponImport(), request()->file('file'));
|
||||
} catch (\Exception $exception) {
|
||||
return $this->response()->swal()->error($exception->getMessage());
|
||||
}
|
||||
|
||||
return $this->response()->swal()->success('上传成功')->refresh();
|
||||
}
|
||||
|
||||
public function form()
|
||||
{
|
||||
$this->file('file', '请选择文件')
|
||||
->options([
|
||||
'showPreview' => false,
|
||||
'allowedFileExtensions' => ['xlsx', 'xls', 'csv'],
|
||||
'showUpload' => true,
|
||||
])
|
||||
->required();
|
||||
|
||||
}
|
||||
|
||||
public function html(): string
|
||||
{
|
||||
return <<<HTML
|
||||
<a class="btn btn-sm btn-default import-action check-coupon">导入已结算数据</a>
|
||||
HTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传等待
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function handleActionPromise(): string
|
||||
{
|
||||
$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: red;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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user