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' => '标题',