Browse Source

增加订单列表

dev
李可松 4 years ago
parent
commit
292fc56d99
  1. 139
      app/Admin/Controllers/OrderController.php
  2. 16
      app/Admin/Repositories/Order.php
  3. 30
      resources/lang/zh_CN/order.php

139
app/Admin/Controllers/OrderController.php

@ -0,0 +1,139 @@
<?php
namespace App\Admin\Controllers;
use App\Admin\Repositories\Order;
use App\Models\Agent;
use App\Models\Supplier;
use App\Service\OrderStatus;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Widgets\Table;
class OrderController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new Order([
'agent:id,agent_name',
'agentProduct.product:id,title,price,pictures',
'product.supplier:id,supplier_name'
]), function (Grid $grid) {
$grid->disableCreateButton();
$grid->disableDeleteButton();
$grid->column('id')->sortable();
$grid->column('order_no');
$grid->column('agent.agent_name');
$grid->column('mobile');
$grid->column('name');
$grid->column('product', '产品信息')
->display('查看')
->modal('购买产品信息', function ($modal) {
return Table::make([
'产品名称',
'产品图片',
'购买数量',
'所属代理商',
'所属供应商',
], [[
$this->title,
'<img data-action="preview-img" src="'.$this->picture.'" style="max-width:120px;max-height:200px;cursor:pointer" class="img img-thumbnail">',
$this->num,
$this->agent->agent_name,
$this->product->supplier->supplier_name,
]]);
})->xl();
$grid->column('paid_money');
$grid->column('price');
// $grid->column('refund_info');
$grid->column('pay_type')
->using([0 => '在线支付', 1 => '定金支付', 2 => '首款支付', 3 => '线下支付']);
$grid->column('status', '订单状态')
->select(OrderStatus::array());
$grid->column('paid_at')->display(fn($v) => date('Y-m-d H:i:s', $v));
$grid->column('created_at')->display(fn($v) => $v);
$grid->column('updated_at')->display(fn($v) => $v);
$grid->filter(function (Grid\Filter $filter) {
$filter->panel();
$filter->equal('id')->width(2);
$filter->equal('mobile')->width(2);
$filter->equal('order_no')->width(3);
$filter->equal('status')->select(OrderStatus::array())->width(2);
$option = Agent::query()->pluck('agent_name', 'id');
$filter->equal('agent_id', '代理商')->select($option)->width(3);
$option = Supplier::query()->pluck('supplier_name', 'id');
$filter->equal('product.supplier_id', '供应商')->select($option)->width(3);
$filter->between('created_at')->width(4);
});
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new Order(), function (Show $show) {
$show->disableDeleteButton();
$show->disableQuickEdit();
$show->field('id');
$show->field('agent.agent_name');
$show->field('mobile');
$show->field('name');
$show->field('num');
$show->field('order_no');
$show->field('paid_at')->as(fn ($v) => date('Y-m-d H:i:s', $v));
$show->field('paid_money');
$show->field('pay_type');
$show->field('title');
$show->field('picture')->image();
$show->field('price');
$show->field('product_id');
$show->field('status')->using(OrderStatus::array());
$show->field('title');
$show->field('user_id');
$show->field('created_at')->as(fn ($v) => date('Y-m-d H:i:s', $v));
$show->field('updated_at')->as(fn ($v) => date('Y-m-d H:i:s', $v));
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new Order(), function (Form $form) {
$form->disableDeleteButton();
$form->display('id')->width(2);
$form->mobile('mobile');
$form->text('name')->width(2);
$form->select('status')->options(OrderStatus::array())->width(2);
});
}
public function destroy($id)
{
return false;
}
}

16
app/Admin/Repositories/Order.php

@ -0,0 +1,16 @@
<?php
namespace App\Admin\Repositories;
use App\Models\Order as Model;
use Dcat\Admin\Repositories\EloquentRepository;
class Order extends EloquentRepository
{
/**
* Model.
*
* @var string
*/
protected $eloquentClass = Model::class;
}

30
resources/lang/zh_CN/order.php

@ -0,0 +1,30 @@
<?php
return [
'labels' => [
'Order' => '订单',
'order' => '订单',
],
'fields' => [
'agent_id' => '代理商ID',
'agent' => ['agent_name' => '代理商名称'],
'agent_product_id' => '代理商产品',
'coupon_id' => '优惠券',
'mobile' => '手机号',
'name' => '客户姓名',
'num' => '购买数量',
'order_no' => '订单号',
'paid_at' => '付款时间',
'paid_money' => '已付款金额',
'pay_type' => '支付方式',
'picture' => '产品图片',
'price' => '订单总价格',
'product_id' => '供应商产品ID',
'refund_info' => '退款信息',
'status' => '订单状态',
'title' => '产品名称',
'user_id' => '用户ID',
'created_at' => '下单时间',
],
'options' => [
],
];
Loading…
Cancel
Save