Browse Source

表格列过滤器等优化

jqh 4 years ago
parent
commit
65b06c89c0

+ 1 - 1
resources/assets/dcat/sass/components/_card.scss

@@ -1,6 +1,6 @@
 .card {
   box-shadow: $shadow;
-  margin-bottom: 2rem;
+  margin-bottom: 1.5rem;
   border-radius: $card-border-radius;
 }
 

+ 39 - 0
resources/assets/dcat/sass/components/_grid.scss

@@ -51,3 +51,42 @@
     color: #777;
   }
 }
+
+
+.grid-modal {
+  .modal-body {
+    //background:$body-bg;
+    padding:1.5rem
+  }
+
+  .filter-box {
+    background: transparent;
+    box-shadow: none!important;
+    padding: 0!important;
+    margin: 1rem 0 -1rem!important;
+    padding-bottom: 0!important;
+
+    .form-group {
+      margin-bottom: 1rem;
+    }
+  }
+
+  .custom-data-table-header .table-responsive .top .dataTables_filter .form-control {
+    border-radius: .4rem;
+    border: 1px solid $input-border-color;
+    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05);
+  }
+}
+
+body:not(.dark-mode) .grid-modal {
+  .table-collapse .table.custom-data-table {
+    padding: 5px 0 0;
+  }
+  .table-collapse table.custom-data-table.dataTable thead th {
+    height: 20px;
+  }
+
+  .table-collapse .custom-data-table.dataTable tbody td {
+    height: 35px;
+  }
+}

+ 1 - 1
resources/views/filter/container.blade.php

@@ -1,4 +1,4 @@
-<div class="card p-2 {{ $expand ? '' : 'd-none' }} {{$containerClass}}" style="padding-bottom: .5rem!important;margin-top: 10px;margin-bottom: 8px;box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.04);">
+<div class="filter-box card p-2 {{ $expand ? '' : 'd-none' }} {{$containerClass}}" style="padding-bottom: .5rem!important;margin-top: 10px;margin-bottom: 8px;box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.04);">
     <div class="card-body" style="{!! $style !!}"  id="{{ $filterID }}">
         <form action="{!! $action !!}" class="form-horizontal" pjax-container method="get">
             <div class="btn-group">

+ 1 - 1
resources/views/filter/right-side-container.blade.php

@@ -1,5 +1,5 @@
 <div class="hidden">
-    <div class="right-side-filter-container" style="{!! $style !!}"  id="{{ $filterID }}">
+    <div class="filter-box right-side-filter-container" style="{!! $style !!}"  id="{{ $filterID }}">
         <form action="{!! $action !!}" class="form-horizontal" pjax-container method="get">
             <div class="mb-1" style="height: 55px">
                 <div class="p-1 position-fixed d-flex justify-content-between header">

+ 27 - 0
resources/views/filter/tile-container.blade.php

@@ -0,0 +1,27 @@
+<div class="filter-box card p-2 {{ $expand ? '' : 'd-none' }} {{$containerClass}}" style="padding-bottom: .5rem!important;margin-top: 10px;margin-bottom: 8px;box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.04);">
+    <div class="card-body" style="{!! $style !!}"  id="{{ $filterID }}">
+        <form action="{!! $action !!}" class="form-horizontal" pjax-container method="get">
+            <div class="row mt-1 mb-0">
+                @foreach($layout->columns() as $column)
+                    @foreach($column->filters() as $filter)
+                        {!! $filter->render() !!}
+                    @endforeach
+                @endforeach
+
+                <div class="btn-group ml-1 mb-1" style="height: fit-content;margin-right: 10px">
+                    <button class="btn btn-primary btn-sm btn-mini submit">
+                        <i class="feather icon-search"></i><span class="d-none d-sm-inline">&nbsp;&nbsp;{{ trans('admin.search') }}</span>
+                    </button>
+                </div>
+                <div class="btn-group btn-group-sm default btn-mini" style="height: fit-content"  >
+                    @if(!$disableResetButton)
+                        <a  href="{!! $action !!}" class="reset btn btn-white btn-sm ">
+                            <i class="feather icon-rotate-ccw"></i><span class="d-none d-sm-inline">&nbsp;&nbsp;{{ trans('admin.reset') }}</span>
+                        </a>
+                    @endif
+                </div>
+            </div>
+
+        </form>
+    </div>
+</div>

+ 4 - 4
resources/views/grid/pagination.blade.php

@@ -1,9 +1,9 @@
 <ul class="pagination pagination-sm no-margin pull-right shadow-100" style="border-radius: 1.5rem">
     <!-- Previous Page Link -->
     @if ($paginator->onFirstPage())
-    <li class="page-item previous disabled"><span class="page-link">{{ __('admin.prev_page') }}</span></li>
+    <li class="page-item previous disabled"><span class="page-link"></span></li>
     @else
-    <li class="page-item previous"><a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev">{{ __('admin.prev_page') }}</a></li>
+    <li class="page-item previous"><a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev"></a></li>
     @endif
 
     <!-- Pagination Elements -->
@@ -27,8 +27,8 @@
 
     <!-- Next Page Link -->
     @if ($paginator->hasMorePages())
-    <li class="page-item next"><a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next">{{ __('admin.next_page') }}</a></li>
+    <li class="page-item next"><a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next"></a></li>
     @else
-    <li class="page-item next disabled"><span class="page-link">{{ __('admin.next_page') }}</span></li>
+    <li class="page-item next disabled"><span class="page-link"></span></li>
     @endif
 </ul>

+ 0 - 18
src/Grid.php

@@ -801,24 +801,6 @@ HTML;
         return new static(...$params);
     }
 
-    /**
-     * @return $this
-     */
-    public function inIframe()
-    {
-        $this->setName('_dialog_');
-        $this->disableCreateButton();
-        $this->disableActions();
-        $this->disablePerPages();
-        $this->disableBatchActions();
-
-        $this->rowSelector()->click();
-
-        Admin::style('#app{padding: 1.4rem 1rem 1rem}');
-
-        return $this;
-    }
-
     /**
      * Enable responsive tables.
      *

+ 15 - 0
src/Grid/Column/Filter.php

@@ -155,6 +155,21 @@ abstract class Filter implements Renderable
         );
     }
 
+    /**
+     * @return string
+     */
+    protected function renderFormButtons()
+    {
+        return <<<HMLT
+<li class="dropdown-divider"></li>
+<li>
+    <button class="btn btn-sm btn-primary column-filter-submit "><i class="feather icon-search"></i></button>&nbsp;
+    <a href="{$this->urlWithoutFilter()}" class="btn btn-sm btn-default"><i class="feather icon-rotate-ccw"></i></a>
+</li>
+HMLT;
+
+    }
+
     /**
      * Get form action url.
      *

+ 1 - 5
src/Grid/Column/Filter/Between.php

@@ -191,11 +191,7 @@ JS;
                 value="{$value['end']}" 
                 autocomplete="off"/>
         </li>
-        <li class="dropdown-divider"></li>
-        <li class="dropdown-item">
-            <button class="btn btn-sm btn-primary column-filter-submit "><i class="feather icon-search"></i></button>
-            <span onclick="Dcat.reload('{$this->urlWithoutFilter()}')" class="btn btn-sm btn-default"><i class="feather icon-rotate-ccw"></i></span>
-        </li>
+        {$this->renderFormButtons()}
     </ul>
     </form>
 </span>

+ 1 - 5
src/Grid/Column/Filter/Checkbox.php

@@ -62,11 +62,7 @@ JS;
                 {$this->renderOptions($value)}
             </ul>
         </li>
-        <li class="dropdown-divider"></li>
-       <li class="dropdown-item">
-            <button class="btn btn-sm btn-primary column-filter-submit "><i class="feather icon-search"></i></button>
-            <span onclick="Dcat.reload('{$this->urlWithoutFilter()}')" class="btn btn-sm btn-default"><i class="feather icon-rotate-ccw"></i></span>
-        </li>
+        {$this->renderFormButtons()}
     </ul>
 </form>
 </span>

+ 1 - 1
src/Grid/Column/Sorter.php

@@ -94,6 +94,6 @@ class Sorter implements Renderable
             ]);
         }
 
-        return "&nbsp;<a href='{$url}' class='feather icon-arrow-{$icon} {$active}'></a>";
+        return "&nbsp;<a href='{$url}' class='grid-sort feather icon-arrow-{$icon} {$active}'></a>";
     }
 }