diff --git a/app/AdminAgent/Controllers/OrderController.php b/app/AdminAgent/Controllers/OrderController.php index ec0e50a..55ec2a0 100644 --- a/app/AdminAgent/Controllers/OrderController.php +++ b/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); }); diff --git a/app/AdminAgent/Controllers/WorkorderController.php b/app/AdminAgent/Controllers/WorkorderController.php index 7167cba..9ed9703 100755 --- a/app/AdminAgent/Controllers/WorkorderController.php +++ b/app/AdminAgent/Controllers/WorkorderController.php @@ -22,6 +22,7 @@ use Dcat\Admin\Http\Controllers\AdminController; use Illuminate\Http\Request; use App\Traits\ResponseHelper; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; @@ -48,9 +49,8 @@ class WorkorderController extends AdminController }) ->orderByDesc('updated_at') ->get(); - // 先这么处理吧 - if ($workorderId == 0 && !empty($workorder)) { + if ($workorderId == 0 && !empty($workorder->toArray())) { return redirect('/admin-agent/workorder_item?workorder_id='.$workorder[0]->id); } @@ -208,7 +208,7 @@ class WorkorderController extends AdminController ]) ->default(1)->required(); } else { - $form->select('point_type') + $form->hidden('point_type') ->options([ 1 => '供应商', ]) diff --git a/app/AdminGuide/Controllers/WorkorderController.php b/app/AdminGuide/Controllers/WorkorderController.php index 1fb897e..b36cd0b 100755 --- a/app/AdminGuide/Controllers/WorkorderController.php +++ b/app/AdminGuide/Controllers/WorkorderController.php @@ -50,7 +50,7 @@ class WorkorderController extends AdminController ->get(); // 先这么处理吧 - if ($workorderId == 0 && !empty($workorder)) { + if ($workorderId == 0 && !empty($workorder->toArray())) { return redirect('/admin-guide/workorder_item?workorder_id='.$workorder[0]->id); } @@ -181,7 +181,7 @@ class WorkorderController extends AdminController $form->display('id'); //$form->text('title')->required(); $form->textarea('content')->required(); - $form->select('point_type') + $form->hidden('point_type') ->options([ 0 => '代理商', ]) diff --git a/app/AdminSupplier/Controllers/WorkorderController.php b/app/AdminSupplier/Controllers/WorkorderController.php index 1ed4a43..2bca5a5 100755 --- a/app/AdminSupplier/Controllers/WorkorderController.php +++ b/app/AdminSupplier/Controllers/WorkorderController.php @@ -49,7 +49,7 @@ class WorkorderController extends AdminController ->get(); // 先这么处理吧 - if ($workorderId == 0 && !empty($workorder)) { + if ($workorderId == 0 && !empty($workorder->toArray())) { return redirect('/admin-supplier/workorder_item?workorder_id='.$workorder[0]->id); } @@ -180,7 +180,7 @@ class WorkorderController extends AdminController $form->display('id'); //$form->text('title')->required(); $form->textarea('content')->required(); - $form->select('point_type') + $form->hidden('point_type') ->options([ 0 => '代理商', ]) diff --git a/resources/views/admin/filter/select.blade.php b/resources/views/admin/filter/select.blade.php new file mode 100644 index 0000000..cd4b359 --- /dev/null +++ b/resources/views/admin/filter/select.blade.php @@ -0,0 +1,30 @@ +
+
+ {!! $label !!} +
+ + +
+ +@include('admin::scripts.select') + +