Browse Source

Merge remote-tracking branch 'origin/develop' into develop

develop
李可松 4 years ago
parent
commit
9926507431
  1. 74
      app/Admin/Controllers/DemandProductController.php
  2. 57
      app/Admin/Extensions/Grid/AuditDemandProduct.php
  3. 1
      app/Admin/routes.php
  4. 2
      app/AdminAgent/Controllers/DemandController.php
  5. 2
      app/AdminSupplier/Controllers/DemandController.php
  6. 12
      resources/lang/zh_CN/demand-product.php

74
app/Admin/Controllers/DemandProductController.php

@ -0,0 +1,74 @@
<?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->disableActions();
$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');
});

2
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([

2
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([

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