Browse Source

订单筛选

develop
李可松 4 years ago
parent
commit
63cad20363
  1. 42
      app/AdminAgent/Controllers/OrderController.php
  2. 30
      resources/views/admin/filter/select.blade.php

42
app/AdminAgent/Controllers/OrderController.php

@ -12,9 +12,12 @@ use App\Models\Supplier;
use Dcat\Admin\Admin;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Grid\Filter\AbstractFilter;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Widgets\Dropdown;
use Dcat\Admin\Widgets\Table;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Storage;
class OrderController extends AdminController
@ -26,15 +29,15 @@ class OrderController extends AdminController
*/
protected function grid()
{
return Grid::make(new Order(['product']), function (Grid $grid) {
return Grid::make(new Order(['product.supplier:id,name']), function (Grid $grid) {
$grid->disableDeleteButton();
$grid->disableBatchDelete();
$grid->disableCreateButton();
$grid->disableRowSelector();
$grid->disableEditButton();
$grid->disableQuickEditButton(false);
$grid->quickSearch(['mobile', 'order_no', 'title'])
->placeholder('搜索手机号、订单号、产品名称')->width(20);
$grid->quickSearch(['id', 'mobile', 'order_no', 'title'])
->placeholder('搜索ID、手机号、订单号、产品名称')->width(25);
$grid->model()->where('agent_id', Admin::user()->id);
@ -112,15 +115,32 @@ class OrderController extends AdminController
$grid->filter(function (Grid\Filter $filter) {
$filter->panel();
$filter->expand();
//自定义过滤器
$filter->extend('statusIn', new class ($column = null, $label = '') extends AbstractFilter {
protected $query = 'whereIn';
protected $width = 2;
public function condition($inputs)
{
$value = Arr::get($inputs, $this->column);
if ($value === null) {
return;
}
$this->value = is_array($value) ? $value : explode(',', $value);
return $this->buildCondition($this->column, $this->value);
}
});
$filter->equal('id')->width(2);
$filter->like('mobile')->width(2);
$filter->like('order_no')->width(3);
$filter->like('title')->width(3);
$filter->equal('status')->select(OrderStatus::array())->width(2);
$option = Supplier::query()->pluck('name', 'id');
$filter->equal('product.supplier_id', '供应商')->select($option)->width(3);
$filter->statusIn('status')->select([
join(',', [OrderStatus::UNPAID, OrderStatus::PAY_EARNEST]) => '待付款',
join(',', [OrderStatus::PAID, OrderStatus::OFFLINE_PAID, OrderStatus::PAID_RETAINAGE]) => '已付款',
OrderStatus::CANCEL => '已取消',
OrderStatus::SUCCESS => '已完成',
OrderStatus::REFUNDING => '退款中',
OrderStatus::REFUNDED => '已退款',
OrderStatus::REFUSED_REFUND => '已拒绝',
])->width(2);
$filter->between('created_at')->datetime()->width(4);
});

30
resources/views/admin/filter/select.blade.php

@ -0,0 +1,30 @@
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text bg-white text-capitalize"><b>{!! $label !!}</b></span>
</div>
<select class="form-control {{ $class }}" name="{{$name}}" data-value="{{ join(',', $value) }}" style="width: 100%;">
<option value=""></option>
@foreach($options as $select => $option)
<option value="{{$select}}" {{ Dcat\Admin\Support\Helper::equal($select, join(',', $value)) ?'selected':'' }}>{{$option}}</option>
@endforeach
</select>
</div>
@include('admin::scripts.select')
<script require="@select2?lang={{ config('app.locale') === 'en' ? '' : str_replace('_', '-', config('app.locale')) }}">
var configs = {!! admin_javascript_json($configs) !!};
@yield('admin.select-ajax')
@if(isset($remote))
$.ajax({!! admin_javascript_json($remote['ajaxOptions']) !!}).done(function(data) {
$("{{ $selector }}").select2($.extend({!! admin_javascript_json($configs) !!}, {
data: data,
})).val({!! json_encode($remote['values']) !!}).trigger("change");
});
@else
$("{!! $selector !!}").select2(configs);
@endif
</script>
Loading…
Cancel
Save