disableCreateButton(); $grid->setResource('product-skus'); $grid->showRowSelector(); $grid->batchActions(function ($batch) { //批量下架 if (Admin::user()->can('dcat.admin.product_skus.batch_release_down')) { $batch->add(new BatchReleaseDown()); } //批量上架 if (Admin::user()->can('dcat.admin.product_skus.batch_release_up')) { $batch->add(new BatchReleaseUp()); } //批量取消审核 if (Admin::user()->can('dcat.admin.product_skus.batch_release_cancel')) { $batch->add(new BatchReleaseCancel()); } }); $grid->column('id')->sortable(); // $grid->column('spu_id'); $grid->column('name'); $grid->column('subtitle'); $grid->column('category.name'); $grid->column('specs')->label(); $grid->column('sell_price')->display(function ($value) { return bcdiv($value, 100, 2); })->prepend('¥'); $grid->column('market_price')->display(function ($value) { return bcdiv($value, 100, 2); })->prepend('¥'); $grid->column('cost_price')->display(function ($value) { return bcdiv($value, 100, 2); })->prepend('¥'); $grid->column('vip_price')->display(function ($value) { if (is_null($value)) { return '未设置'; } return '¥'.bcdiv($value, 100, 2); }); $grid->column('weight'); $grid->column('sales_value'); $grid->column('stock'); $grid->column('sales'); $grid->column('verify_state') ->using([0=>'正常', 1=>'审核中', 2=>'审核失败']) ->dot([ 0 => 'success', 1 => 'primary', 2 => 'danger', ]); $grid->column('release_at'); $grid->column('is_pre_sale', '预售')->switch(); $grid->model()->orderBy('created_at', 'desc'); $grid->model()->orderBy('release_at', 'desc'); $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->disableView(); if (is_null($actions->row->release_at) || $actions->row->verify_state == 1) {//未上架或者审核未通过 $actions->disableEdit(Admin::user()->cannot('dcat.admin.product_skus.edit')); $actions->disableDelete(Admin::user()->cannot('dcat.admin.product_skus.destroy')); if ($actions->row->verify_state == 0) { if (Admin::user()->can('dcat.admin.product_skus.release_up')) { $actions->append(new ReleaseUp()); } if (Admin::user()->can('dcat.admin.product_skus.sku_sync_spu')) { $actions->append(new SkuSyncSpu()); } // if (Admin::user()->can('dcat.admin.product_skus.sku_gift')) { // $actions->append(new SkuGift()); // } } if ($actions->row->verify_state == 1) { if (Admin::user()->can('dcat.admin.product_skus.release_cancel')) { $actions->append(new ReleaseCancel()); } } } if ($actions->row->release_at) {//已上架 if (Admin::user()->can('dcat.admin.product_skus.release_down')) { $actions->append(new ReleaseDown()); } } }); $grid->filter(function (Grid\Filter $filter) { $filter->panel(); $filter->expand(); $filter->like('name')->width(3); }); }); if ($spuId) { $grid->model()->where('spu_id', $spuId); $spu = ProductSpu::findOrFail($spuId); $grid->batchActions(function ($batch) { //批量同步主商品 if (Admin::user()->can('dcat.admin.product_skus.batch_sku_sync_spu')) { $batch->add(new BatchSkuSyncSpu()); } }); $grid->tools(function (Grid\Tools $tools) use ($spu) { //设置规格 if (Admin::user()->can('dcat.admin.product_spus.setting_specs')) { $tools->append(new SettingSpecs($spu->id)); } if ($spu->hasSku()) { //下面有sku,手动创建sku if (Admin::user()->can('dcat.admin.product_spus.add_sku')) { $tools->append(new AddSku($spu->id)); } } else {//下面无sku,根据规格自动生成sku if (Admin::user()->can('dcat.admin.product_spus.init_sku_by_specs')) { $tools->append(new InitSkuBySpecs($spu->id)); } } }); } return $grid; } }