From 8ff344e84298db9c39401ce193c83c7456bad1af Mon Sep 17 00:00:00 2001 From: lemon <15040771@qq.com> Date: Mon, 30 Aug 2021 10:47:15 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/DemandProductController.php | 73 +++++++++++++++++++ .../Extensions/Grid/AuditDemandProduct.php | 57 +++++++++++++++ app/Admin/routes.php | 1 + resources/lang/zh_CN/demand-product.php | 12 +-- 4 files changed, 138 insertions(+), 5 deletions(-) create mode 100644 app/Admin/Controllers/DemandProductController.php create mode 100644 app/Admin/Extensions/Grid/AuditDemandProduct.php diff --git a/app/Admin/Controllers/DemandProductController.php b/app/Admin/Controllers/DemandProductController.php new file mode 100644 index 0000000..da95a56 --- /dev/null +++ b/app/Admin/Controllers/DemandProductController.php @@ -0,0 +1,73 @@ +disableCreateButton(); + //如果是审核页面,多加where条件判断 + if (strpos(Route::current()->uri, 'audit')) { + $grid->model()->where('status', ProductStatus::UNAUDITED); + } + + $grid->column('id')->sortable(); + $grid->column('category.name', '分类'); + $grid->column('picture')->image('', 60, 60); + $grid->column('title'); + $grid->column('original_price'); + $grid->column('price'); + $grid->column('sale'); + $grid->column('stock'); + $grid->column('supplier.name', '供应商'); + $grid->column('status') + ->if(fn() => $this->status == ProductStatus::UNAUDITED) + ->display('') + ->then(function ($column) { + $column->append((new AuditDemandProduct(null, 1))->setKey($this->id))->append(' '); + $column->append((new AuditDemandProduct(null, 2))->setKey($this->id)); + }) + ->else() + ->using(ProductStatus::array()) + ->dot([ + ProductStatus::ON_SALE => 'success', + ProductStatus::UNAUDITED => '', + ProductStatus::REFUSE => 'danger', + ProductStatus::SOLD_OUT => 'warning', + ], 'primary'); + $grid->column('created_at'); + $grid->column('updated_at'); + $grid->disableDeleteButton(); + $grid->disableEditButton(); + $grid->disableQuickEditButton(); + $grid->disableViewButton(); + $grid->filter(function (Grid\Filter $filter) { + $filter->panel(); + + $filter->equal('id')->width(2); + $filter->like('title')->width(3); + $filter->equal('status')->select(ProductStatus::array())->width(2); + }); + }); + } +} diff --git a/app/Admin/Extensions/Grid/AuditDemandProduct.php b/app/Admin/Extensions/Grid/AuditDemandProduct.php new file mode 100644 index 0000000..cdbfa3f --- /dev/null +++ b/app/Admin/Extensions/Grid/AuditDemandProduct.php @@ -0,0 +1,57 @@ +action = $action; //$action:1=通过;2=拒绝 + $this->title = $action == 1 ? '通过' : '拒绝'; + } + + protected function html() + { + $class = $this->action == 1 ? 'btn btn-sm btn-success' : 'btn btn-sm btn-danger'; + $this->appendHtmlAttribute('class', $class); + $this->defaultHtmlAttribute('href', 'javascript:;'); + + return "formatHtmlAttributes()}>{$this->title}"; + } + + public function handle(Request $request) + { + try { + $product = DemandProduct::find($this->getKey()); + $product->status = $request->action == 1 ? ProductStatus::ON_SALE : ProductStatus::REFUSE; + $product->save(); + + return $this->response()->success("审核成功")->refresh(); + } catch (\Exception $e) { + return $this->response()->error($e->getMessage()); + } + } + + public function confirm() + { + return ['确定要'.$this->title.'该产品吗?', '']; + } + + public function parameters() + { + return ['action' => $this->action]; + } +} diff --git a/app/Admin/routes.php b/app/Admin/routes.php index 1330535..2895ebd 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -26,4 +26,5 @@ Route::group([ $router->resource('category/list', 'CategoryController'); $router->resource('product/list', 'ProductController'); $router->resource('product/audit', 'ProductController'); + $router->resource('demand/product', 'DemandProductController'); }); diff --git a/resources/lang/zh_CN/demand-product.php b/resources/lang/zh_CN/demand-product.php index 45487b2..ac923a0 100755 --- a/resources/lang/zh_CN/demand-product.php +++ b/resources/lang/zh_CN/demand-product.php @@ -1,8 +1,10 @@ - [ - 'DemandProduct' => 'DemandProduct', - 'demand-product' => 'DemandProduct', + 'DemandProduct' => '需求市场产品', + 'demand-product' => '需求市场产品', + 'demand' => '需求市场', + 'product' => '产品', ], 'fields' => [ 'agent_id' => '代理商id 竞标特供', @@ -10,10 +12,10 @@ return [ 'content' => '产品详情', 'know' => '旅客须知', 'original_price' => '原价', - 'pictures' => '产品图片,可能有多张,JSON格式', + 'picture' => '产品图片', 'price' => '价格', 'sale' => '销量', - 'status' => '0:下架,1:在售', + 'status' => '状态', 'stock' => '库存量', 'supplier_id' => '供应商ID', 'title' => '标题', From 750d7d058d8b013fc39a11e727a692f92b3ee750 Mon Sep 17 00:00:00 2001 From: lemon <15040771@qq.com> Date: Mon, 30 Aug 2021 10:53:48 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/DemandProductController.php | 1 + app/AdminAgent/Controllers/DemandController.php | 2 +- app/AdminSupplier/Controllers/DemandController.php | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/Admin/Controllers/DemandProductController.php b/app/Admin/Controllers/DemandProductController.php index da95a56..88af1a9 100644 --- a/app/Admin/Controllers/DemandProductController.php +++ b/app/Admin/Controllers/DemandProductController.php @@ -61,6 +61,7 @@ class DemandProductController extends AdminController $grid->disableEditButton(); $grid->disableQuickEditButton(); $grid->disableViewButton(); + $grid->disableActions(); $grid->filter(function (Grid\Filter $filter) { $filter->panel(); diff --git a/app/AdminAgent/Controllers/DemandController.php b/app/AdminAgent/Controllers/DemandController.php index 6154df2..e062f21 100755 --- a/app/AdminAgent/Controllers/DemandController.php +++ b/app/AdminAgent/Controllers/DemandController.php @@ -150,7 +150,7 @@ class DemandController extends AdminController $form->select('bidding_user_type','竞标用户类型') ->when([2],function (Form $form){ $form->select('agent_product_id','产品')->options(function (){ - return AgentProduct::query()->where('agent_id',Admin::user()->id)->pluck('title','id'); + return AgentProduct::query()->where('agent_id',Admin::user()->id)->where('status',1)->pluck('title','id'); }); }) ->options([ diff --git a/app/AdminSupplier/Controllers/DemandController.php b/app/AdminSupplier/Controllers/DemandController.php index bc6339b..87f9861 100755 --- a/app/AdminSupplier/Controllers/DemandController.php +++ b/app/AdminSupplier/Controllers/DemandController.php @@ -144,7 +144,7 @@ class DemandController extends AdminController $form->select('bidding_user_type','竞标用户类型') ->when([0],function (Form $form){ $form->select('demand_product_id','产品')->options(function (){ - return DemandProduct::query()->where('supplier_id',Admin::user()->id)->where('agent_id',0)->pluck('title','id'); + return DemandProduct::query()->where('supplier_id',Admin::user()->id)->where('status',1)->pluck('title','id'); }); }) ->options([