分区商品spu
parent
91eccc1761
commit
1b44673f05
|
|
@ -3,11 +3,11 @@
|
|||
namespace App\Admin\Controllers;
|
||||
|
||||
use App\Admin\Actions\Grid\PartCoupon;
|
||||
use App\Admin\Renderable\ProductPartSkuTable;
|
||||
use App\Admin\Renderable\ProductSkuSimpleTable;
|
||||
use App\Admin\Renderable\ProductPartSpuTable;
|
||||
use App\Admin\Renderable\ProductSpuSimpleTable;
|
||||
use App\Admin\Repositories\ProductPart;
|
||||
use App\Models\ProductPart as ProductPartModel;
|
||||
use App\Models\ProductSku;
|
||||
use App\Models\ProductSpu;
|
||||
use Dcat\Admin\Admin;
|
||||
use Dcat\Admin\Form;
|
||||
use Dcat\Admin\Grid;
|
||||
|
|
@ -29,9 +29,9 @@ class ProductPartController extends AdminController
|
|||
$grid->column('id')->sortable();
|
||||
$grid->column('key');
|
||||
$grid->column('name');
|
||||
$grid->column('skus')->display('分区商品')->modal(function ($modal) {
|
||||
$grid->column('spus')->display('分区商品')->modal(function ($modal) {
|
||||
$modal->title('商品');
|
||||
return ProductPartSkuTable::make(['id'=>$this->id]);
|
||||
return ProductPartSpuTable::make(['id'=>$this->id]);
|
||||
});
|
||||
|
||||
$grid->column('is_show')
|
||||
|
|
@ -102,7 +102,7 @@ class ProductPartController extends AdminController
|
|||
*/
|
||||
protected function form()
|
||||
{
|
||||
$builder = ProductPart::with(['skus']);
|
||||
$builder = ProductPart::with(['spus']);
|
||||
return Form::make($builder, function (Form $form) {
|
||||
$form->display('id');
|
||||
if ($form->isCreating()) {
|
||||
|
|
@ -113,9 +113,9 @@ class ProductPartController extends AdminController
|
|||
|
||||
$form->text('name');
|
||||
// if ($form->isCreating()) {
|
||||
$form->multipleSelectTable('skus')
|
||||
->from(ProductSkuSimpleTable::make())
|
||||
->model(ProductSku::class, 'id', 'name')
|
||||
$form->multipleSelectTable('spus')
|
||||
->from(ProductSpuSimpleTable::make())
|
||||
->model(ProductSpu::class, 'id', 'name')
|
||||
->customFormat(function ($v) {
|
||||
if (!$v) {
|
||||
return [];
|
||||
|
|
@ -126,7 +126,7 @@ class ProductPartController extends AdminController
|
|||
// } else {
|
||||
// $form->hasMany('partSkus', function (Form\NestedForm $form) {
|
||||
// $form->select('sku_id')->options(function ($id) {
|
||||
// $sku = ProductSku::find($id);
|
||||
// $sku = ProductSpu::find($id);
|
||||
// if ($sku) {
|
||||
// return [$sku->id => $sku->name];
|
||||
// }
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
namespace App\Admin\Renderable;
|
||||
|
||||
use App\Models\ProductPartSku;
|
||||
use Dcat\Admin\Grid;
|
||||
use Dcat\Admin\Grid\LazyRenderable;
|
||||
|
||||
class ProductPartSpuTable extends LazyRenderable
|
||||
{
|
||||
public function grid(): Grid
|
||||
{
|
||||
$partId = $this->payload['id'];
|
||||
// dd($partId);
|
||||
$builder = ProductPartSku::query();
|
||||
$builder->with('spu')->where('part_id', $partId);
|
||||
return Grid::make($builder, function (Grid $grid) {
|
||||
$grid->column('spu.name', __('product-sku.fields.name'));
|
||||
$grid->column('sort');
|
||||
$grid->quickSearch(['spu.name']);
|
||||
$grid->model()->orderBy('sort', 'desc');
|
||||
$grid->disableActions();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
namespace App\Admin\Renderable;
|
||||
|
||||
use App\Models\ProductSpu;
|
||||
use Dcat\Admin\Grid;
|
||||
use Dcat\Admin\Grid\LazyRenderable;
|
||||
|
||||
class ProductSpuSimpleTable extends LazyRenderable
|
||||
{
|
||||
public function grid(): Grid
|
||||
{
|
||||
$builder = ProductSpu::query();
|
||||
return Grid::make($builder, function (Grid $grid) {
|
||||
$grid->disableRowSelector(false);
|
||||
$grid->column('name');
|
||||
$grid->quickSearch(['name']);
|
||||
$grid->disableActions();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@ namespace App\Endpoint\Api\Http\Controllers\Product;
|
|||
|
||||
use App\Endpoint\Api\Http\Controllers\Controller;
|
||||
use App\Endpoint\Api\Http\Resources\ProductSkuTinyResource;
|
||||
use App\Models\ProductSku;
|
||||
use App\Models\ProductSpu;
|
||||
|
||||
class HotController extends Controller
|
||||
{
|
||||
|
|
@ -15,10 +15,12 @@ class HotController extends Controller
|
|||
*/
|
||||
public function __invoke()
|
||||
{
|
||||
$skus = ProductSku::online()
|
||||
->latest('sales')
|
||||
->limit(20)
|
||||
->get();
|
||||
$skus = ProductSpu::whereHas('skus', function ($q) {
|
||||
$q->online();
|
||||
})
|
||||
->latest('sales')
|
||||
->limit(20)
|
||||
->get();
|
||||
|
||||
return ProductSkuTinyResource::collection($skus);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,6 +53,11 @@ class ProductPart extends Model
|
|||
return $this->belongsToMany(ProductSku::class, ProductPartSku::class, 'part_id', 'sku_id')->withTimestamps();
|
||||
}
|
||||
|
||||
public function spus()
|
||||
{
|
||||
return $this->belongsToMany(ProductSpu::class, ProductPartSku::class, 'part_id', 'sku_id')->withTimestamps();
|
||||
}
|
||||
|
||||
/**
|
||||
* 此分区购买赠送的券关系
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -40,6 +40,11 @@ class ProductPartSku extends Model
|
|||
return $this->belongsTo(ProductSku::class, 'sku_id');
|
||||
}
|
||||
|
||||
public function spu()
|
||||
{
|
||||
return $this->belongsTo(ProductSpu::class, 'sku_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 此分区商品所属的分区
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ return [
|
|||
'is_show' => '显示',
|
||||
'partSkus' => '分区商品',
|
||||
'skus'=> '分区商品',
|
||||
'spus'=> '分区商品',
|
||||
'sku_id' => '商品名称',
|
||||
'sort' => '排序',
|
||||
'coupons'=>'赠券配置',
|
||||
|
|
|
|||
Loading…
Reference in New Issue