添加发货单的后台菜单和状态查询
parent
bca72afc6e
commit
2bdebe006c
|
|
@ -9,6 +9,7 @@ use App\Admin\Actions\Show\OrderCreatePackage;
|
|||
use App\Admin\Actions\Show\OrderPay;
|
||||
use App\Admin\Actions\Show\OrderReduce;
|
||||
use App\Admin\Actions\Show\OrderRemark;
|
||||
use App\Admin\Renderable\Grid\Filter\OrderStatusIn;
|
||||
use App\Admin\Renderable\PackageProductSimpleTable;
|
||||
use App\Admin\Repositories\Order;
|
||||
use App\Models\Order as OrderModel;
|
||||
|
|
@ -35,6 +36,7 @@ class OrderController extends AdminController
|
|||
protected function grid()
|
||||
{
|
||||
$builder = Order::with(['user', 'tags']);
|
||||
|
||||
return Grid::make($builder, function (Grid $grid) {
|
||||
$grid->column('id')->sortable();
|
||||
$grid->column('sn');
|
||||
|
|
@ -65,7 +67,16 @@ class OrderController extends AdminController
|
|||
3=>'success',
|
||||
9=>'success',
|
||||
10=>'#b3b9bf',
|
||||
]);
|
||||
])->filter(
|
||||
OrderStatusIn::make([
|
||||
0=>'待付款',
|
||||
1=>'待发货',
|
||||
2=>'发货中',
|
||||
3=>'已发货',
|
||||
9=>'已完成',
|
||||
10=>'已取消',
|
||||
])
|
||||
);
|
||||
$grid->column('pay_way')->using([
|
||||
'wxpay'=>'微信支付',
|
||||
'alipay'=>'支付宝',
|
||||
|
|
@ -83,33 +94,6 @@ class OrderController extends AdminController
|
|||
// $grid->column('consignee_zone');
|
||||
// $grid->column('consignee_address');
|
||||
|
||||
// $grid->column('status')->using([
|
||||
// 0=>'待支付',
|
||||
// 1=>'待收货',
|
||||
// 9=>'已完成',
|
||||
// 10=>'已取消',
|
||||
// ])->dot([
|
||||
// 0=>'primary',
|
||||
// 1=>'danger',
|
||||
// 9=>'success',
|
||||
// 10=>'#b3b9bf',
|
||||
// ]);
|
||||
// $grid->column('shipping_state')->display(function ($v) {
|
||||
// if ($this->status <1) {
|
||||
// return -1;
|
||||
// }
|
||||
// return $v;
|
||||
// })->using([
|
||||
// -1=> '-',
|
||||
// 0 => '待发货',
|
||||
// 1 => '发货中',
|
||||
// 2 => '已完成',
|
||||
// ])->dot([
|
||||
// 0 => 'primary',
|
||||
// 1 => 'danger',
|
||||
// 2 => 'success',
|
||||
// ]);
|
||||
// $grid->column('completed_at');
|
||||
$grid->column('created_at')->sortable();
|
||||
|
||||
$grid->model()->orderBy('created_at', 'desc');
|
||||
|
|
|
|||
|
|
@ -0,0 +1,109 @@
|
|||
<?php
|
||||
|
||||
namespace App\Admin\Renderable\Grid\Filter;
|
||||
|
||||
use App\Constants\OrderStatus;
|
||||
use App\Models\Order;
|
||||
use Dcat\Admin\Grid\Column\Filter;
|
||||
use Dcat\Admin\Grid\Column\Filter\Checkbox;
|
||||
use Dcat\Admin\Grid\Model;
|
||||
|
||||
class OrderStatusIn extends Filter
|
||||
{
|
||||
use Checkbox;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $options = [];
|
||||
|
||||
/**
|
||||
* CheckFilter constructor.
|
||||
*
|
||||
* @param array $options
|
||||
*/
|
||||
public function __construct(array $options)
|
||||
{
|
||||
$this->options = $options;
|
||||
|
||||
$this->class = [
|
||||
'all' => uniqid('column-filter-all-'),
|
||||
'item' => uniqid('column-filter-item-'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a binding to the query.
|
||||
*
|
||||
* @param array $value
|
||||
* @param Model $model
|
||||
*/
|
||||
public function addBinding($value, Model $model)
|
||||
{
|
||||
if (empty($value)) {
|
||||
return;
|
||||
}
|
||||
$all = [
|
||||
OrderStatus::UNKNOWN, // 未知
|
||||
OrderStatus::PENDING, // 待付款
|
||||
OrderStatus::WAIT_SHIPPING, // 待发货
|
||||
OrderStatus::SHIPPING, // 发货中
|
||||
OrderStatus::SHIPPED, // 已发货/待收货
|
||||
OrderStatus::COMPLETED, // 已完成
|
||||
OrderStatus::CANCELLED, // 已取消
|
||||
];
|
||||
|
||||
if (array_diff($all, $value)) {//无差别则直接跳过
|
||||
//判断查询的状态有哪些;
|
||||
$model->where(function ($query) use ($value) {
|
||||
foreach ($value as $status) {
|
||||
switch ($status) {
|
||||
case OrderStatus::PENDING:
|
||||
$query->orWhere('status', Order::STATUS_PENDING);
|
||||
break;
|
||||
case OrderStatus::WAIT_SHIPPING:
|
||||
$query->orWhere(function ($q) {
|
||||
$q->where([
|
||||
'status'=> Order::STATUS_PAID,
|
||||
'shipping_state' => Order::SHIPPING_STATE_PENDING,
|
||||
]);
|
||||
});
|
||||
break;
|
||||
case OrderStatus::SHIPPING:
|
||||
$query->orWhere(function ($q) {
|
||||
$q->where([
|
||||
'status'=> Order::STATUS_PAID,
|
||||
'shipping_state' => Order::SHIPPING_STATE_PROCESSING,
|
||||
]);
|
||||
});
|
||||
break;
|
||||
case OrderStatus::SHIPPED:
|
||||
$query->orWhere(function ($q) {
|
||||
$q->where([
|
||||
'status'=> Order::STATUS_PAID,
|
||||
'shipping_state' => Order::SHIPPING_STATE_PROCESSED,
|
||||
]);
|
||||
});
|
||||
break;
|
||||
case OrderStatus::COMPLETED:
|
||||
$query->orWhere('status', Order::STATUS_COMPLETED);
|
||||
break;
|
||||
case OrderStatus::CANCELLED:
|
||||
$query->orWhere('status', Order::STATUS_CANCELLED);
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Render this filter.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return $this->renderCheckbox();
|
||||
}
|
||||
}
|
||||
|
|
@ -57,7 +57,7 @@ class CreateAdminTables extends Migration
|
|||
$table->integer('order')->default(0);
|
||||
$table->string('title', 50);
|
||||
$table->string('icon', 50)->nullable();
|
||||
$table->string('uri', 50)->nullable();
|
||||
$table->string('uri', 150)->nullable();
|
||||
|
||||
$table->timestamps();
|
||||
});
|
||||
|
|
|
|||
|
|
@ -75,16 +75,6 @@ class AdminMenuSeeder extends Seeder
|
|||
'icon' => '',
|
||||
'uri' => 'shipping-templates',
|
||||
],
|
||||
[
|
||||
'title' => 'App版本管理',
|
||||
'icon' => '',
|
||||
'uri' => 'app-versions',
|
||||
],
|
||||
[
|
||||
'title' => '分享管理',
|
||||
'icon' => '',
|
||||
'uri' => 'share-bgs',
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
|
|
@ -154,6 +144,16 @@ class AdminMenuSeeder extends Seeder
|
|||
'icon' => '',
|
||||
'uri' => 'messages',
|
||||
],
|
||||
[
|
||||
'title' => '分享管理',
|
||||
'icon' => '',
|
||||
'uri' => 'share-bgs',
|
||||
],
|
||||
[
|
||||
'title' => 'App版本管理',
|
||||
'icon' => '',
|
||||
'uri' => 'app-versions',
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
|
|
@ -166,6 +166,11 @@ class AdminMenuSeeder extends Seeder
|
|||
'icon' => '',
|
||||
'uri' => 'orders',
|
||||
],
|
||||
[
|
||||
'title' => '待发货单',
|
||||
'icon' => '',
|
||||
'uri' => 'orders?filter-order_status[]=1&filter-order_status[]=2',
|
||||
],
|
||||
[
|
||||
'title' =>'订单标签',
|
||||
'icon' => '',
|
||||
|
|
@ -242,6 +247,7 @@ class AdminMenuSeeder extends Seeder
|
|||
DB::commit();
|
||||
} catch (Throwable $th) {
|
||||
DB::rollBack();
|
||||
dd($th->getMessage());
|
||||
report($th);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue