Browse Source

修复action确认弹窗取消第二次点击无效bug

jqh 5 years ago
parent
commit
0aa8db4fd1

+ 2 - 3
resources/assets/dcat/extra/action.js

@@ -9,6 +9,7 @@
                 key: null, // 行主键
                 url: null,
                 data: {}, // 发送到接口的附加参数
+                confirm: null,
                 calledClass: null,
                 before: function (data, target) {}, // 发起请求之前回调,返回false可以中断请求
                 html: function (target, html, data) { // 处理返回的HTML代码
@@ -44,9 +45,7 @@
                     _this._buildActionPromise(target, data).then(_this._resolver()).catch(_this._reject());
                 }
 
-                var conform = data['confirm'];
-
-                delete data['confirm'];
+                var conform = options.confirm;
 
                 if (conform) {
                     Dcat.confirm(conform[0], conform[1], request);

File diff suppressed because it is too large
+ 0 - 0
resources/dist/adminlte/adminlte.js.map


File diff suppressed because it is too large
+ 0 - 0
resources/dist/dcat/extra/action.js


File diff suppressed because it is too large
+ 0 - 0
resources/dist/dcat/extra/action.js.map


File diff suppressed because it is too large
+ 0 - 0
resources/dist/dcat/extra/resource-selector.js.map


File diff suppressed because it is too large
+ 0 - 0
resources/dist/dcat/js/dcat-app.js.map


+ 0 - 4
src/Actions/Action.php

@@ -214,10 +214,6 @@ HTML;
             return;
         }
 
-        if ($confirm = $this->confirm()) {
-            $this->setHtmlAttribute('data-confirm', json_encode((array) $confirm));
-        }
-
         $this->addHandlerScript();
     }
 

+ 3 - 0
src/Actions/HasActionHandler.php

@@ -75,6 +75,8 @@ trait HasActionHandler
     protected function addHandlerScript()
     {
         $data = json_encode($this->parameters());
+        $confirm = $this->confirm();
+        $confirm = $confirm ? json_encode($confirm) : null;
 
         $script = <<<JS
 Dcat.Action({
@@ -84,6 +86,7 @@ Dcat.Action({
     key: '{$this->getKey()}',
     url: '{$this->handlerRoute()}',
     data: {$data},
+    confirm: {$confirm},
     calledClass: '{$this->makeCalledClass()}',
     before: {$this->actionScript()},
     html: {$this->handleHtmlResponse()},

Some files were not shown because too many files changed in this diff