Selaa lähdekoodia

更新表格排序相关功能

jqh 5 vuotta sitten
vanhempi
commit
93d673806c

+ 2 - 1
composer.json

@@ -15,7 +15,8 @@
         "php": ">=7.1.0",
         "symfony/dom-crawler": "~3.1|~4.0",
         "laravel/framework": "~5.5|~6.0",
-        "doctrine/dbal": "2.*"
+        "doctrine/dbal": "2.*",
+        "spatie/eloquent-sortable": "3.*"
     },
     "require-dev": {
         "laravel/browser-kit-testing": "~5.1"

+ 0 - 9
src/Grid/Displayers/Orderable.php

@@ -8,15 +8,6 @@ use Dcat\Admin\Grid\Column;
 
 class Orderable extends AbstractDisplayer
 {
-    public function __construct($value, Grid $grid, Column $column, $row)
-    {
-        parent::__construct($value, $grid, $column, $row);
-
-        if (! trait_exists('\Spatie\EloquentSortable\SortableTrait')) {
-            throw new \Exception('To use orderable grid, please install package [spatie/eloquent-sortable] first.');
-        }
-    }
-
     public function display()
     {
         Admin::script($this->script());

+ 4 - 3
src/Grid/Displayers/Tree.php

@@ -118,9 +118,10 @@ EOT;
                     
                     if ({$showNextPage} && _tbody.find('tr').length == '{$perPage}' && lastPage >= page) {
                         // 加载更多
-                        html += "<tr data-page='"+nextPage+"' class='{$tableId}-load-next-"+key+" "
-                            +trClass+"'><td colspan='"+(row.find('td').length)
-                            +"' align='center' style='cursor: pointer'> <a>"+icon+"</a> </td></tr>";
+                        html += "<tr data-level='" + (level + 1) + "' data-page='" + nextPage 
+                            + "' class='{$tableId}-load-next-" + key + " "
+                            + trClass + "'><td colspan='"+(row.find('td').length)
+                            + "' align='center' style='cursor: pointer'> <a>" + icon + "</a> </td></tr>";
                     }
                     
                     // 附加子节点

+ 21 - 9
src/Repositories/EloquentRepository.php

@@ -303,13 +303,19 @@ class EloquentRepository extends Repository implements TreeRepository
     public function moveOrderUp()
     {
         $model = $this->eloquent();
-        if ($model instanceof Sortable) {
-            $model->moveOrderUp();
 
-            return true;
+        if (! $model instanceof Sortable) {
+            throw new \RuntimeException(
+                sprintf(
+                    'The model "%s" must be a type of %s.',
+                    get_class($model),
+                    Sortable::class
+                )
+            );
         }
+        $model->moveOrderUp();
 
-        return false;
+        return true;
     }
 
     /**
@@ -321,13 +327,19 @@ class EloquentRepository extends Repository implements TreeRepository
     {
         $model = $this->eloquent();
 
-        if ($model instanceof Sortable) {
-            $model->moveOrderDown();
-
-            return true;
+        if (! $model instanceof Sortable) {
+            throw new \RuntimeException(
+                sprintf(
+                    'The model "%s" must be a type of %s.',
+                    get_class($model),
+                    Sortable::class
+                )
+            );
         }
 
-        return false;
+        $model->moveOrderDown();
+
+        return true;
     }
 
     /**