Ver código fonte

优化字段选择器

jqh 4 anos atrás
pai
commit
32deadd39f

+ 0 - 16
src/Grid/Concerns/CanHidesColumns.php

@@ -205,22 +205,6 @@ trait CanHidesColumns
         })->toArray();
     }
 
-    /**
-     * Get default visible column names.
-     *
-     * @return array
-     */
-    public function getDefaultVisibleColumnNames()
-    {
-        return array_values(
-            array_diff(
-                $this->columnNames,
-                $this->hiddenColumns,
-                [Grid\Column::SELECT_COLUMN_NAME, Grid\Column::ACTION_COLUMN_NAME]
-            )
-        );
-    }
-
     protected function hasColumnSelectorRequestInput()
     {
         return $this->request->has($this->getColumnSelectorQueryName());

+ 4 - 12
src/Grid/Tools/ColumnSelector.php

@@ -44,20 +44,12 @@ class ColumnSelector extends AbstractTool
         $show = $this->getVisibleColumnNames();
         $all = $this->getGridColumns();
 
+        $visibleColumnNames = $this->grid->getVisibleColumnsFromQuery();
+
         $list = Checkbox::make()
             ->class('column-select-item')
             ->options($all)
-            ->check(
-                $this->getGridColumns()->filter(function ($label, $key) use ($show) {
-                    if (empty($show)) {
-                        return true;
-                    }
-
-                    return in_array($key, $show) ? true : false;
-                }
-            )
-            ->keys()
-        );
+            ->check($visibleColumnNames);
 
         $selectAll = Checkbox::make('_all_', [1 => trans('admin.all')])->check(
             $all->count() === count($show) ? 1 : null
@@ -65,7 +57,7 @@ class ColumnSelector extends AbstractTool
 
         return Admin::view('admin::grid.column-selector', [
             'checkbox'   => $list,
-            'defaults'   => $this->grid->getDefaultVisibleColumnNames(),
+            'defaults'   => $visibleColumnNames,
             'selectAll'  => $selectAll,
             'columnName' => $this->grid->getColumnSelectorQueryName(),
         ]);