<?php namespace App\Admin\Controllers; use App\Models\MerchantStore; use App\Models\Merchant; use App\Models\Good; use App\Models\MerchantGoodSku; use Dcat\Admin\Form; use Dcat\Admin\Grid; use Dcat\Admin\Show; use App\Models\City; use App\Models\Store; use Illuminate\Support\Facades\DB; use Dcat\Admin\Http\Controllers\AdminController; use App\Admin\Actions\MerchantStore as MerchantAddStore; use App\Admin\Actions\MerchantSubStore; use Dcat\Admin\Admin; use Dcat\Admin\Layout\Content; use Illuminate\Http\Request; use App\Admin\Renderable\MerchantStoreSkuList; class MerchantGoodsStoreController extends AdminController { // public function index(Content $content) // { // echo 11; // die; // } /** * Make a grid builder. * * @return Grid */ protected function grid() { return Grid::make(MerchantStore::with(['goods', 'merchant']), function (Grid $grid) { $grid->column('id')->sortable(); $grid->column('goods_sn', '商品编号'); $grid->column('goods.goods_name', '商品名称'); $grid->column('goods.cover_img', '商品图片')->image('', 100, 100); $grid->column('attr', '商品规格')->expand(function (Grid\Displayers\Expand $expand) { $expand->button('查看'); return MerchantStoreSkuList::make(['mgs_id' => $this->id]); })->width(100); $grid->column('store', '库存')->display(function ($val) { return MerchantGoodSku::where(['mgs_id' => $this->id])->sum('stock'); }); $grid->column('merchant.name', '商家名称'); $grid->column('merchant.contacts', '联系人'); //$grid->column('created_at'); //$grid->column('updated_at')->sortable(); $grid->disableViewButton(); $grid->disableCreateButton(); $grid->filter(function (Grid\Filter $filter) { // 更改为 panel 布局 $filter->panel(); $filter->like('goods.goods_name', '商品名称')->width(3); $filter->like('merchant.name', '商家名称')->width(3); $filter->like('merchant.contacts', '联系人')->width(3); }); $grid->actions(function (Grid\Displayers\Actions $actions) { //当前status //$status = $actions->row->status; //if ($status == 0) { $actions->append(new MerchantAddStore('增加库存', $actions->row->goods_id)); $actions->append(new MerchantSubStore('减少库存', $actions->row->goods_id)); //} }); }); } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { return Show::make($id, new MerchantStore(), function (Show $show) { $show->field('id'); $show->field('name'); $show->field('contacter'); $show->field('phone'); $show->field('created_at'); $show->field('updated_at'); }); } /** * Make a form builder. * * @return Form */ protected function form() { $form = Form::make(new MerchantStore(), function (Form $form) { $form->display('id'); $form->select('merchant_id', '商家名称')->options(Merchant::whereNull('deleted_at')->get()->pluck('name', 'id'))->rules('required'); //->load('merchat_id', '/get-merchat-list'); $form->select('goods_id', '添加商品')->options((new Good())->limit(100)->get()->pluck('goods_name', 'id'))->rules('required'); //->load('merchat_id', '/get-merchat-list'); // // 城市 // $form->select('city_id', '城市'); // $form->hasMany('store_desc', '添加门店', function (\Dcat\Admin\Widgets\Form $forms) { // $forms->text('title', '门店名称')->required(); // $forms->text('lat_lng', '经纬度')->help('<a href="https://lbs.amap.com/tools/picker" target="_blank">点击获取高德地图坐标</a>'); // $forms->text('address', '详细地址'); // $forms->text('distance', '配送范围(Km)'); // $forms->image('business_license', '营业执照') // ->accept('jpg,jpeg,png') // ->maxSize(4096) // ->url('upload/merchant') // ->help('仅支持jpg、jpeg、png格式图片上传') // ->autoUpload(); // }); $form->disableCreatingCheck(); $form->disableEditingCheck(); $form->disableViewCheck(); $form->disableDeleteButton(); $form->disableViewButton(); }); $form->saved( function (Form $form, $result) { $merchant_gid = $form->getKey(); $msObj = MerchantStore::find($merchant_gid); if ($msObj) { $goods_id = $msObj->goods_id; $merchant_id = $msObj->merchant_id; $goodsObj = Good::where("id", $goods_id)->first(); $merchatObj = Merchant::where("id", $merchant_id)->first(); $params = [ 'goods_sn' => $goodsObj->goods_sn, 'goods_name' => $goodsObj->goods_name, 'merchant_name' => $merchatObj->name, 'contacts' => $merchatObj->contacts, ]; DB::table('merchat_goods_store')->where("id", $merchant_gid)->update($params); } } ); return $form; } public function getList(Request $request) { $mId = $request->get('q'); return Store::where('merchant_id', $mId)->get(['id', 'title as text']); } }