瀏覽代碼

增加filter panel布局

jqh 5 年之前
父節點
當前提交
11f6ac553b
共有 3 個文件被更改,包括 41 次插入22 次删除
  1. 22 20
      resources/views/filter/container.blade.php
  2. 18 1
      src/Grid/Filter.php
  3. 1 1
      src/Grid/Tools/FilterButton.php

+ 22 - 20
resources/views/filter/container.blade.php

@@ -1,27 +1,29 @@
-<div class=" panel-collapse collapse {{ $expand?'in':'' }} {{$containerClass}}" style="{{$border}}padding:0;">
-    <div style="{!! $style !!}"  id="{{ $filterID }}">
+<div class="card mb-0 {{ $expand ? '' : 'd-none' }} {{$containerClass}}" style="{{$border}};margin-top: 10px;">
+    <div class="card-header">
+        Search
+    </div>
+    <div class="card-body" style="{!! $style !!}"  id="{{ $filterID }}">
         <form action="{!! $action !!}" class="form-horizontal" pjax-container method="get">
-            @foreach($layout->columns() as $column)
-                @foreach($column->filters() as $filter)
-                    {!! $filter->render() !!}
+            <div class="row">
+                @foreach($layout->columns() as $column)
+                    @foreach($column->filters() as $filter)
+                        {!! $filter->render() !!}
+                    @endforeach
                 @endforeach
-            @endforeach
-            <div class="pull-left" style="margin-bottom:10px">
-                <div class="btn-group btn-group-sm" style="margin-left:5px;">
-                    <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="margin-left:5px"  >
-                    @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 class="btn-group">
+                <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="margin-left:5px"  >
+                @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>
-            <div style="clear:both"></div>
         </form>
     </div>
 </div>

+ 18 - 1
src/Grid/Filter.php

@@ -64,6 +64,7 @@ class Filter implements Renderable
     use HasBuilderEvents;
 
     const MODE_RIGHT_SIDE = 'right-side';
+    const MODE_PANEL = 'panel';
 
     /**
      * @var array
@@ -325,6 +326,22 @@ class Filter implements Renderable
         return $this;
     }
 
+    /**
+     * @return $this
+     */
+    public function panel()
+    {
+        return $this->mode(static::MODE_PANEL);
+    }
+
+    /**
+     * @return $this
+     */
+    public function rightSide()
+    {
+        return $this->mode(static::MODE_RIGHT_SIDE);
+    }
+
     /**
      * @param string|null $mode
      *
@@ -677,7 +694,7 @@ class Filter implements Renderable
 
         $this->callComposing();
 
-        $this->view = 'admin::filter.right-side-container';
+        $this->view = $this->mode === static::MODE_RIGHT_SIDE ? 'admin::filter.right-side-container' : 'admin::filter.container';
 
         return view($this->view)->with([
             'action'             => $this->action ?: $this->urlWithoutFilters(),

+ 1 - 1
src/Grid/Tools/FilterButton.php

@@ -88,7 +88,7 @@ JS;
         } else {
             $script = <<<JS
 $('.{$this->getElementClassName()}').on('click', function(){
-    $('#{$id}').parent().collapse('toggle');
+    $('#{$id}').parent().toggleClass('d-none');
 }); 
 JS;
         }