添加发货单的后台菜单和状态查询
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\OrderPay;
|
||||||
use App\Admin\Actions\Show\OrderReduce;
|
use App\Admin\Actions\Show\OrderReduce;
|
||||||
use App\Admin\Actions\Show\OrderRemark;
|
use App\Admin\Actions\Show\OrderRemark;
|
||||||
|
use App\Admin\Renderable\Grid\Filter\OrderStatusIn;
|
||||||
use App\Admin\Renderable\PackageProductSimpleTable;
|
use App\Admin\Renderable\PackageProductSimpleTable;
|
||||||
use App\Admin\Repositories\Order;
|
use App\Admin\Repositories\Order;
|
||||||
use App\Models\Order as OrderModel;
|
use App\Models\Order as OrderModel;
|
||||||
|
|
@ -35,6 +36,7 @@ class OrderController extends AdminController
|
||||||
protected function grid()
|
protected function grid()
|
||||||
{
|
{
|
||||||
$builder = Order::with(['user', 'tags']);
|
$builder = Order::with(['user', 'tags']);
|
||||||
|
|
||||||
return Grid::make($builder, function (Grid $grid) {
|
return Grid::make($builder, function (Grid $grid) {
|
||||||
$grid->column('id')->sortable();
|
$grid->column('id')->sortable();
|
||||||
$grid->column('sn');
|
$grid->column('sn');
|
||||||
|
|
@ -65,7 +67,16 @@ class OrderController extends AdminController
|
||||||
3=>'success',
|
3=>'success',
|
||||||
9=>'success',
|
9=>'success',
|
||||||
10=>'#b3b9bf',
|
10=>'#b3b9bf',
|
||||||
]);
|
])->filter(
|
||||||
|
OrderStatusIn::make([
|
||||||
|
0=>'待付款',
|
||||||
|
1=>'待发货',
|
||||||
|
2=>'发货中',
|
||||||
|
3=>'已发货',
|
||||||
|
9=>'已完成',
|
||||||
|
10=>'已取消',
|
||||||
|
])
|
||||||
|
);
|
||||||
$grid->column('pay_way')->using([
|
$grid->column('pay_way')->using([
|
||||||
'wxpay'=>'微信支付',
|
'wxpay'=>'微信支付',
|
||||||
'alipay'=>'支付宝',
|
'alipay'=>'支付宝',
|
||||||
|
|
@ -83,33 +94,6 @@ class OrderController extends AdminController
|
||||||
// $grid->column('consignee_zone');
|
// $grid->column('consignee_zone');
|
||||||
// $grid->column('consignee_address');
|
// $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->column('created_at')->sortable();
|
||||||
|
|
||||||
$grid->model()->orderBy('created_at', 'desc');
|
$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->integer('order')->default(0);
|
||||||
$table->string('title', 50);
|
$table->string('title', 50);
|
||||||
$table->string('icon', 50)->nullable();
|
$table->string('icon', 50)->nullable();
|
||||||
$table->string('uri', 50)->nullable();
|
$table->string('uri', 150)->nullable();
|
||||||
|
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -75,16 +75,6 @@ class AdminMenuSeeder extends Seeder
|
||||||
'icon' => '',
|
'icon' => '',
|
||||||
'uri' => 'shipping-templates',
|
'uri' => 'shipping-templates',
|
||||||
],
|
],
|
||||||
[
|
|
||||||
'title' => 'App版本管理',
|
|
||||||
'icon' => '',
|
|
||||||
'uri' => 'app-versions',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'title' => '分享管理',
|
|
||||||
'icon' => '',
|
|
||||||
'uri' => 'share-bgs',
|
|
||||||
],
|
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
|
@ -154,6 +144,16 @@ class AdminMenuSeeder extends Seeder
|
||||||
'icon' => '',
|
'icon' => '',
|
||||||
'uri' => 'messages',
|
'uri' => 'messages',
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'title' => '分享管理',
|
||||||
|
'icon' => '',
|
||||||
|
'uri' => 'share-bgs',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'title' => 'App版本管理',
|
||||||
|
'icon' => '',
|
||||||
|
'uri' => 'app-versions',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
|
@ -166,6 +166,11 @@ class AdminMenuSeeder extends Seeder
|
||||||
'icon' => '',
|
'icon' => '',
|
||||||
'uri' => 'orders',
|
'uri' => 'orders',
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'title' => '待发货单',
|
||||||
|
'icon' => '',
|
||||||
|
'uri' => 'orders?filter-order_status[]=1&filter-order_status[]=2',
|
||||||
|
],
|
||||||
[
|
[
|
||||||
'title' =>'订单标签',
|
'title' =>'订单标签',
|
||||||
'icon' => '',
|
'icon' => '',
|
||||||
|
|
@ -242,6 +247,7 @@ class AdminMenuSeeder extends Seeder
|
||||||
DB::commit();
|
DB::commit();
|
||||||
} catch (Throwable $th) {
|
} catch (Throwable $th) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
|
dd($th->getMessage());
|
||||||
report($th);
|
report($th);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue