From c6052f7aa78d57672f3a47969f0613cf896f712f Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Mon, 20 Dec 2021 21:12:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=A2=E5=8D=95=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E7=8A=B6=E6=80=81=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/OrderController.php | 24 +++++++++- app/Admin/Extensions/Show/Label.php | 55 +++++++++++++++++++++++ app/Admin/Services/OrderService.php | 2 +- app/Admin/bootstrap.php | 4 ++ 4 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 app/Admin/Extensions/Show/Label.php diff --git a/app/Admin/Controllers/OrderController.php b/app/Admin/Controllers/OrderController.php index 6b46da32..eeaab135 100644 --- a/app/Admin/Controllers/OrderController.php +++ b/app/Admin/Controllers/OrderController.php @@ -57,7 +57,17 @@ class OrderController extends AdminController 9=>'success', 10=>'#b3b9bf', ]); - $grid->column('pay_way'); + $grid->column('pay_way')->using([ + 'wxpay'=>'微信支付', + 'alipay'=>'支付宝', + 'offline'=>'线下支付', + 'none'=>'无', + ])->label([ + 'wxpay'=>'success', + 'alipay'=>'primary', + 'offline'=>'warning', + 'none'=>'#b3b9bf', + ]); $grid->column('pay_at'); // $grid->column('consignee_name'); // $grid->column('consignee_telephone'); @@ -143,7 +153,17 @@ class OrderController extends AdminController return bcdiv($v, 100, 2); })->prepend('¥'); $show->field('created_at'); - $show->field('pay_way'); + $show->field('pay_way')->using([ + 'wxpay'=>'微信支付', + 'alipay'=>'支付宝', + 'offline'=>'线下支付', + 'none'=>'无', + ])->showLabel([ + '微信支付'=>'success', + '支付宝'=>'primary', + '线下支付'=>'warning', + '无'=>'#b3b9bf', + ]); $show->field('pay_at'); $show->divider(); diff --git a/app/Admin/Extensions/Show/Label.php b/app/Admin/Extensions/Show/Label.php new file mode 100644 index 00000000..b3c74185 --- /dev/null +++ b/app/Admin/Extensions/Show/Label.php @@ -0,0 +1,55 @@ +value($max)) { + return; + } + + return collect($value)->map(function ($name) use ($style) { + $background = $this->formatStyle(Arr::get($style, $name, 'default')); + return "$name"; + })->implode(' '); + + // return collect($value)->map(function ($name) use ($class, $background) { + // return "$name"; + // })->implode(' '); + } + + protected function formatStyle($style) + { + $background = 'style="background:#d2d6de;color: #555"'; + + if ($style !== 'default') { + $style = Admin::color()->get($style); + + $background = "style='background:{$style}'"; + } + + return $background; + } + + protected function value($max) + { + $values = Helper::array($this->value); + + if ($max && count($values) > $max) { + $values = array_slice($values, 0, $max); + $values[] = '...'; + } + + return $values; + } +} diff --git a/app/Admin/Services/OrderService.php b/app/Admin/Services/OrderService.php index b4adbc90..62de8cab 100644 --- a/app/Admin/Services/OrderService.php +++ b/app/Admin/Services/OrderService.php @@ -42,7 +42,7 @@ class OrderService if ($order->isPending()) { //操作订单状态-需要调整为统一支付方法 $orderService = new EndpointOrderService(); - $orderService->paySuccess($order, [ + $orderService->paySuccess($order->sn, [ 'pay_sn' => date('YmdHis').sprintf('%02d', mt_rand(1, 99)), 'pay_way' => Order::PAY_WAY_OFFLINE, 'pay_at' => now(), diff --git a/app/Admin/bootstrap.php b/app/Admin/bootstrap.php index c1956b68..d20185d5 100644 --- a/app/Admin/bootstrap.php +++ b/app/Admin/bootstrap.php @@ -3,11 +3,13 @@ use App\Admin\Extensions\Column\Modal; use App\Admin\Extensions\Form\Product\SelectAttr; use App\Admin\Extensions\Form\Product\SelectSpec; +use App\Admin\Extensions\Show\Label; use Dcat\Admin\Admin; use Dcat\Admin\Form; use Dcat\Admin\Form\Field\Editor; use Dcat\Admin\Grid; use Dcat\Admin\Grid\Column; +use Dcat\Admin\Show\Field as ShowField; /** * Dcat-admin - admin builder based on Laravel. @@ -53,3 +55,5 @@ Editor::resolving(function (Editor $editor) { 'branding'=> false, ]); }); + +ShowField::extend('showLabel', Label::class);