Browse Source

审核

develop
lemon 4 years ago
parent
commit
8ff344e842
  1. 73
      app/Admin/Controllers/DemandProductController.php
  2. 57
      app/Admin/Extensions/Grid/AuditDemandProduct.php
  3. 1
      app/Admin/routes.php
  4. 12
      resources/lang/zh_CN/demand-product.php

73
app/Admin/Controllers/DemandProductController.php

@ -0,0 +1,73 @@
<?php
namespace App\Admin\Controllers;
use App\Admin\Extensions\Grid\AuditDemandProduct;
use App\Admin\Repositories\Product;
use App\Common\ProductStatus;
use App\Common\UserStatus;
use App\Models\Category;
use App\Models\DemandProduct;
use App\Models\Supplier;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
use Illuminate\Support\Facades\Route;
class DemandProductController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new DemandProduct(['supplier:id,name', 'category:id,name']), function (Grid $grid) {
$grid->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('&nbsp;');
$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);
});
});
}
}

57
app/Admin/Extensions/Grid/AuditDemandProduct.php

@ -0,0 +1,57 @@
<?php
namespace App\Admin\Extensions\Grid;
use App\Common\ProductStatus;
use App\Models\DemandProduct;
use App\Models\Product;
use Dcat\Admin\Grid\RowAction;
use Illuminate\Http\Request;
/**
* 供应商审核
* Class AuditSupplier
* @package App\Admin\Extensions\Grid
*/
class AuditDemandProduct extends RowAction
{
private $action;
public function __construct($title = null, $action = 1)
{
parent::__construct($title);
$this->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 "<a {$this->formatHtmlAttributes()}>{$this->title}</a>";
}
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];
}
}

1
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');
});

12
resources/lang/zh_CN/demand-product.php

@ -1,8 +1,10 @@
<?php
<?php
return [
'labels' => [
'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' => '标题',

Loading…
Cancel
Save