瀏覽代碼

:hammer: 列显示隐藏兼容固定列功能

jqh 5 年之前
父節點
當前提交
f9de464d8d

+ 11 - 1
resources/assets/dcat/sass/components/_table.scss

@@ -257,6 +257,12 @@ body:not(.dark-mode) {
       background: #f7f7f9 !important;
       border-radius: 0;
     }
+
+    .table-wrap {
+      table.custom-data-table thead th {
+        height: 21px;
+      }
+    }
   }
 }
 
@@ -291,7 +297,11 @@ body.dark-mode {
 }
 
 .column-selector {
-  margin: 0 8px;
+  margin: 0 5px;
+  
+  .dropdown-menu {
+    z-index: 100;
+  }
 
   .selectors {
     padding: 0 1rem;

+ 6 - 6
resources/views/grid/fixed-table.blade.php

@@ -10,7 +10,7 @@
             <div class="table-wrap table-main" data-height="{{ $tableHeight }}">
                 <table class="custom-data-table dataTable {{ $grid->formatTableClass() }}" id="{{ $tableId }}">
                     <thead>
-                    @if ($headers = $grid->getComplexHeaders())
+                    @if ($headers = $grid->getVisibleComplexHeaders())
                         <tr>
                             @foreach($headers as $header)
                                 {!! $header->render() !!}
@@ -18,7 +18,7 @@
                         </tr>
                     @endif
                     <tr>
-                        @foreach($grid->columns() as $column)
+                        @foreach($grid->getVisibleColumns() as $column)
                             <th {!! $column->formatTitleAttributes() !!}>{!! $column->getLabel() !!}{!! $column->renderHeader() !!}</th>
                         @endforeach
                     </tr>
@@ -31,7 +31,7 @@
                     <tbody>
                     @foreach($grid->rows() as $row)
                         <tr {!! $row->rowAttributes() !!}>
-                            @foreach($grid->getColumnNames() as $name)
+                            @foreach($grid->getVisibleColumnNames() as $name)
                                 <td {!! $row->columnAttributes($name) !!}>
                                     {!! $row->column($name) !!}
                                 </td>
@@ -40,7 +40,7 @@
                     @endforeach
                     @if ($grid->rows()->isEmpty())
                         <tr>
-                            <td colspan="{!! count($grid->getColumnNames()) !!}">
+                            <td colspan="{!! count($grid->getVisibleColumnNames()) !!}">
                                 <div style="margin:5px 0 0 10px;"><span class="help-block" style="margin-bottom:0"><i class="feather icon-alert-circle"></i>&nbsp;{{ trans('admin.no_data') }}</span></div>
                             </td>
                         </tr>
@@ -54,7 +54,7 @@
                     <table class="custom-data-table dataTable {{ $grid->formatTableClass() }} ">
                         <thead>
 
-                        @if ($grid->getComplexHeaders())
+                        @if ($grid->getVisibleComplexHeaders())
                             <tr>
                                 @foreach($grid->leftVisibleComplexColumns() as $header)
                                     {!! $header->render() !!}
@@ -97,7 +97,7 @@
                 <div class="table-wrap table-fixed table-fixed-right" data-height="{{ $tableHeight }}">
                     <table class="custom-data-table dataTable {{ $grid->formatTableClass() }} ">
                         <thead>
-                        @if ($grid->getComplexHeaders())
+                        @if ($grid->getVisibleComplexHeaders())
                             <tr>
                                 @foreach($grid->rightVisibleComplexColumns() as $header)
                                     {!! $header->render() !!}

+ 1 - 1
src/Grid/Concerns/CanHidesColumns.php

@@ -134,7 +134,7 @@ trait CanHidesColumns
 
         array_push($visible, Grid\Column::SELECT_COLUMN_NAME, Grid\Column::ACTION_COLUMN_NAME);
 
-        return $this->getComplexHeaders()->filter(function ($column) use ($visible) {
+        return optional($this->getComplexHeaders())->filter(function ($column) use ($visible) {
             return in_array($column->getName(), $visible);
         });
     }

+ 3 - 3
src/Grid/FixColumns.php

@@ -124,14 +124,14 @@ class FixColumns
         $this->grid->view($this->view);
         $this->grid->with(['tableHeight' => $this->height]);
 
-        $complexHeaders = $this->grid->getComplexHeaders();
+        $complexHeaders = $this->grid->getVisibleComplexHeaders();
 
         if ($this->head > 0) {
             if ($complexHeaders) {
                 $this->complexLeft = $complexHeaders->slice(0, $this->head);
                 $this->left = $this->formatColumns($this->complexLeft);
             } else {
-                $this->left = $this->grid->columns()->slice(0, $this->head);
+                $this->left = $this->grid->getVisibleColumns()->slice(0, $this->head);
             }
         }
 
@@ -140,7 +140,7 @@ class FixColumns
                 $this->complexRight = $complexHeaders->slice($this->tail);
                 $this->right = $this->formatColumns($this->complexRight);
             } else {
-                $this->right = $this->grid->columns()->slice($this->tail);
+                $this->right = $this->grid->getVisibleColumns()->slice($this->tail);
             }
         }
 

+ 2 - 5
src/Http/Controllers/ExtensionController.php

@@ -36,11 +36,8 @@ class ExtensionController extends Controller
     {
         return new Grid(new Extension(), function (Grid $grid) {
             $grid->number();
-            $grid->column('type')->display(function ($v) {
-                return $v === ServiceProvider::TYPE_THEME ? trans('admin.theme') : trans('admin.application');
-            });
             $grid->column('name')->displayUsing(Extensions\Name::class);
-            $grid->column('description')->displayUsing(Extensions\Description::class)->width('55%');
+            $grid->column('description')->displayUsing(Extensions\Description::class)->width('58%');
 
             $grid->column('authors')->display(function ($v) {
                 if (! $v) {
@@ -136,7 +133,7 @@ class ExtensionController extends Controller
 
         Artisan::call('admin:ext-make', [
             'name'        => $package,
-            '--namespace' => $namespace ?: 'defualt',
+            '--namespace' => $namespace ?: 'default',
             '--theme'     => $type == 2,
         ], $output);