Ver código fonte

优化行操作Selector生成功能

jqh 4 anos atrás
pai
commit
290a98967f

+ 17 - 3
src/Actions/Action.php

@@ -6,6 +6,7 @@ use Dcat\Admin\Admin;
 use Dcat\Admin\Support\Helper;
 use Dcat\Admin\Traits\HasHtmlAttributes;
 use Illuminate\Contracts\Support\Renderable;
+use Illuminate\Support\Str;
 
 /**
  * Class Action.
@@ -156,6 +157,8 @@ abstract class Action implements Renderable
     }
 
     /**
+     * 选择器.
+     *
      * @param string $prefix
      * @param string $class
      *
@@ -163,15 +166,26 @@ abstract class Action implements Renderable
      */
     public function makeSelector($prefix, $class = null)
     {
-        $class = $prefix.'-'.($class ?: static::class);
+        $key = $this->getSelectorKey($prefix, $class);
 
-        if (! isset(static::$selectors[$class])) {
-            static::$selectors[$class] = uniqid($prefix);
+        if (! isset(static::$selectors[$key])) {
+            static::$selectors[$key] = $prefix.Str::random(8);
         }
 
         return static::$selectors[$class];
     }
 
+    /**
+     * @param string $prefix
+     * @param string $class
+     *
+     * @return string
+     */
+    public function getSelectorKey($prefix, $class)
+    {
+        return $prefix.'-'.($class ?: static::class);
+    }
+
     /**
      * @param string|array $class
      *

+ 2 - 8
src/Grid/Actions/QuickEdit.php

@@ -46,14 +46,8 @@ class QuickEdit extends RowAction
      *
      * @return string
      */
-    public function makeSelector($prefix, $class = null)
+    public function getSelectorKey($prefix, $class = null)
     {
-        $class = $class ?: static::class;
-
-        if (! isset(static::$selectors[$class])) {
-            static::$selectors[$class] = uniqid($prefix);
-        }
-
-        return static::$selectors[$class];
+        return $class ?: static::class;
     }
 }

+ 3 - 10
src/Grid/RowAction.php

@@ -3,7 +3,6 @@
 namespace Dcat\Admin\Grid;
 
 use Illuminate\Support\Fluent;
-use Illuminate\Support\Str;
 
 abstract class RowAction extends GridAction
 {
@@ -84,7 +83,7 @@ abstract class RowAction extends GridAction
     }
 
     /**
-     * 生成选择器.
+     * 生成选择器键名.
      * 需要保证每个行操作的选择器都不同.
      *
      * @param string $prefix
@@ -92,16 +91,10 @@ abstract class RowAction extends GridAction
      *
      * @return string
      */
-    public function makeSelector($prefix, $class = null)
+    public function getSelectorKey($prefix, $class = null)
     {
         $class = $class ?: static::class;
 
-        $key = $prefix.'-'.$class.'-'.$this->getKey();
-
-        if (! isset(static::$selectors[$key])) {
-            static::$selectors[$key] = $prefix.Str::random(8);
-        }
-
-        return static::$selectors[$key];
+        return $prefix.'-'.$class.'-'.$this->getKey();
     }
 }

+ 3 - 10
src/Tree/RowAction.php

@@ -3,7 +3,6 @@
 namespace Dcat\Admin\Tree;
 
 use Dcat\Admin\Actions\Action;
-use Illuminate\Support\Str;
 
 class RowAction extends Action
 {
@@ -69,7 +68,7 @@ class RowAction extends Action
     }
 
     /**
-     * 生成选择器.
+     * 生成选择器键名.
      * 需要保证每个行操作的选择器都不同.
      *
      * @param string $prefix
@@ -77,16 +76,10 @@ class RowAction extends Action
      *
      * @return string
      */
-    public function makeSelector($prefix, $class = null)
+    public function getSelectorKey($prefix, $class = null)
     {
         $class = $class ?: static::class;
 
-        $key = $prefix.'-'.$class.'-'.$this->getKey();
-
-        if (! isset(static::$selectors[$key])) {
-            static::$selectors[$key] = $prefix.Str::random(8);
-        }
-
-        return static::$selectors[$key];
+        return $prefix.'-'.$class.'-'.$this->getKey();
     }
 }