6
0
Fork 0

添加发货单的后台菜单和状态查询

release
vine_liutk 2021-12-24 11:22:59 +08:00
parent bca72afc6e
commit 2bdebe006c
4 changed files with 138 additions and 39 deletions

View File

@ -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');

View File

@ -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();
}
}

View File

@ -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();
});

View File

@ -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);
}
}