diff --git a/app/Admin/Actions/Grid/GoodsCopy.php b/app/Admin/Actions/Grid/GoodsCopy.php new file mode 100644 index 0000000..77bb780 --- /dev/null +++ b/app/Admin/Actions/Grid/GoodsCopy.php @@ -0,0 +1,32 @@ +getKey(); + + $modal = Modal::make() + ->xl() + ->title($this->title) + ->body(GoodsCopyForm::make()->setKey($id)) + ->button($this->title); + + return $modal; + } + +} diff --git a/app/Admin/Controllers/v3/GoodsController.php b/app/Admin/Controllers/v3/GoodsController.php index d61306c..7dc6ad2 100644 --- a/app/Admin/Controllers/v3/GoodsController.php +++ b/app/Admin/Controllers/v3/GoodsController.php @@ -2,6 +2,7 @@ namespace App\Admin\Controllers\v3; +use App\Admin\Actions\Grid\GoodsCopy; use App\Admin\Repositories\v3\Goods; use Dcat\Admin\Form; use Dcat\Admin\Grid; @@ -12,6 +13,8 @@ use App\Models\v3\Store as StoreModel; use Dcat\Admin\Form\NestedForm; use App\Models\v3\Goods as GoodsModel; use App\Models\v3\Market as MarketModel; +use Dcat\Admin\Grid\Displayers\Actions; +use Dcat\Admin\Layout\Content; class GoodsController extends AdminController { @@ -40,8 +43,9 @@ class GoodsController extends AdminController $grid->sort->sortable(); $grid->on_sale->switch(); + $grid->actions([new GoodsCopy()]); $grid->filter(function (Grid\Filter $filter) { - $filter->equal('id'); + $filter->like('name'); }); $grid->model()->orderBy('id', 'desc'); @@ -138,12 +142,14 @@ class GoodsController extends AdminController // 店铺 $storeList = StoreModel::getStoreArray(); //市场 - $marketList = MarketModel::getMarket(); + // $marketList = MarketModel::getMarketArray(); - $form->column(6, function (Form $form) use($marketList,$storeList,$categoryList ){ - $form->select('market_id')->required()->options($marketList); + $form->column(6, function (Form $form) use($storeList,$categoryList ){ + // $form->select('market_id')->required()->options($marketList); $form->select('category_id')->required()->options($categoryList); $form->select('store_id')->required()->options($storeList); + /* 多选店铺 */ + $form->multipleSelect('store_ids','多选店铺')->options($storeList)->help('选择店铺后商品会同时添加到选择的店铺,注意重复店铺'); $form->text('name')->required()->maxLength(20); $form->image('cover_img')->required(); $form->number('sort'); @@ -194,6 +200,31 @@ class GoodsController extends AdminController $form->disableEditingCheck(); $form->disableCreatingCheck(); }); + + $form->saving(function (Form $form){ + $storeId = $form->input('store_id'); + // 商品所属市场,根据店铺查询市场 + $info = StoreModel::getStoreInfo($storeId,'market_id'); + $form->market_id = $info->market_id; + $storeIds = $form->input('store_ids'); + $form->deleteFiles('store_ids'); + + dd($storeIds); + }); + $form->saved(function (Form $form){ + + if($form->isCreating()) { + + // 添加到多店铺 + // $storeIds = $form->input('store_ids'); + // $form->deleteFiles('store_ids'); + $goodsModel = new GoodsModel(); + // 获取最终保存的数组 + // $updates = $form->updates(); + // dd($updates); + } + }); }); } + } diff --git a/app/Admin/Controllers/v3/StoreController.php b/app/Admin/Controllers/v3/StoreController.php index ecee662..7640afb 100644 --- a/app/Admin/Controllers/v3/StoreController.php +++ b/app/Admin/Controllers/v3/StoreController.php @@ -128,6 +128,7 @@ class StoreController extends AdminController */ protected function form() { + // dd(StoreModel::pluck('admin_id')); return Form::make(new Store(), function (Form $form) { // 查询市场经理 $mmList = MminfoModel::getMmInfoArray(); @@ -137,6 +138,14 @@ class StoreController extends AdminController $categoryList = CategoryModel::getCategoryArray([['parent_id','=',0]]); // 用户 $userList = UserModel::getUserArray(); + // 绑定了店铺的用户 + $userHas = StoreModel::pluck('admin_id')->toArray(); + + foreach($userList as $ku => $uv){ + if($ku != 0 && in_array($ku,$userHas)){ + unset($userList[$ku]); + } + } $form->column(6, function (Form $form) use($mmList,$marketList,$categoryList){ $form->hidden('id'); @@ -171,10 +180,12 @@ class StoreController extends AdminController $form->image('fm_img')->required(); $form->select('admin_id')->options($userList)->required();/*需要优化 一个用户只能绑定一家店铺*/ $form->select('user_id')->options($userList)->required();/*需要优化 一个用户只能绑定一家店铺*/ - $form->time('time1')->format('HH:mm'); - $form->timeRange('time1','time2','营业时间段一')->required(); - $form->timeRange('time3','time4','营业时间段二')->format('HH:mm') - ->rules('after:time2',['after'=>'选择的时间必须比时间段一结束时间大']); + $form->time('time1','时间段一开始')->format('HH:mm'); + $form->time('time2','时间段一结束')->format('HH:mm')->rules('after:time1',['after'=>'选择的时间必须比时间段一开始时间晚']); + $form->time('time3','时间段二开始')->format('HH:mm')->rules('after:time2',['after'=>'选择的时间必须比时间段一结束时间晚']); + $form->time('time4','时间段二结束')->format('HH:mm')->rules('after:time3',['after'=>'选择的时间必须比时间段二开始时间晚']); + // $form->timeRange('time1','time2','营业时间段一')->required(); + // $form->timeRange('time3','time4','营业时间段二')->rules('after:time2',['after'=>'选择的时间必须比时间段一结束时间大']); }); $form->column(12, function (Form $form) { $form->map('lat','lng','地址'); diff --git a/app/Admin/Forms/GoodsCopyForm.php b/app/Admin/Forms/GoodsCopyForm.php new file mode 100644 index 0000000..717f5a1 --- /dev/null +++ b/app/Admin/Forms/GoodsCopyForm.php @@ -0,0 +1,61 @@ +get(); + foreach($storeIds as $key =>$value){ + $model = new GoodsModel(); + $model = $goods; + dd($model->toArray()); + $model->store_id = $value; + $model->name = $goods->name; + } + + return $this->success('修改成功', '/goods'); + } + + /** + * Build a form here. + */ + public function form() + { + $id = $this->getKey(); + $this->text('goods_id')->value($id); + $stores = StoreModel::getStoreArray(); + $this->multipleSelect('store_ids','选择店铺')->required()->options($stores); + } + + /** + * The data of the form. + * + * @return array + */ + public function default() + { + return []; + } + +}