canAdmin(); $query = StoreProductSku::with(['productSku']); if ($canAdmin) { $query->where('store_id', request('q')); } else { $stores = $user->stores->pluck('id'); $query->whereIn('store_id', $stores); } $list = $query->get(); $data = []; foreach($list as $item) { array_push($data, ['id' => $item->productSku->id, 'text' => $item->productSku->name]); } return $data; } protected function grid() { $grid = new Grid(StoreProductSku::with(['store', 'productSku'])); $user = Admin::user(); $canAdmin = $this->canAdmin(); if (!$canAdmin) { $stores = $user->stores->pluck('id'); $grid->model()->whereIn('store_id', $stores); } $grid->model()->orderBy('id', 'desc'); $grid->column('productSku.id', 'ID'); $grid->column('store.title', '店铺'); $grid->column('productSku.name', '名称'); $grid->column('productSku.specs', '规格')->label(); $grid->column('productSku.cost_price', '成本价')->display(function ($value) { return bcdiv($value, 100, 2); }); $grid->column('productSku.sell_price', '销售价')->display(function ($value) { return bcdiv($value, 100, 2);; }); $grid->column('amount', '库存')->sortable(); $grid->column('status', '状态')->switch(); $grid->paginate(10); $grid->showCreateButton($user->can('dcat.admin.store.product.create')); $grid->enableDialogCreate(); $grid->showDeleteButton($user->can('dcat.admin.store.product.destroy')); $grid->filter(function (Grid\Filter $filter) { $filter->panel(); $filter->equal('store_id')->select('api/store')->width(3); $filter->like('productSku.name', '名称')->width(3); }); return $grid; } protected function form() { $form = Form::make(StoreProductSku::with(['productSku'])); $form->select('store_id')->options(Store::pluck('title', 'id')); $form->select('product_sku_id')->options(ProductSku::class)->ajax('api/product-skus'); $form->switch('status', '状态')->default(1); $form->saving(function (Form $form) { if ($form->isCreating()) { $store_id = $form->input('store_id'); $product_sku_id = $form->input('product_sku_id'); if (StoreProductSku::where(compact('store_id', 'product_sku_id'))->exists()) { return $form->response()->error('该商品已经存在'); } } }); return $form; } protected function canAdmin() { return Admin::user()->isRole('administrator'); } }