can('dcat.admin.dealer_products.manage_rules'); } /** * Handle the form request. * * @param array $input * * @return mixed */ public function handle(array $input) { $productId = $this->payload['id'] ?? 0; $product = DealerProduct::findOrFail($productId); $manageRules = []; $delRules = []; foreach ($input['manageRules'] as $rule) { if ($rule['_remove_'] == 1) { $delRules[] = $rule['id']; } else { if (is_null($rule['id'])) { $manageRules[] = new DealerProductManageRuleModel($rule); } else { $_rule = DealerProductManageRuleModel::find($rule['id']); $_rule['lvl'] = $rule['lvl']; $_rule['price_1st'] = $rule['price_1st']; $_rule['price_2st'] = $rule['price_2st']; $_rule['price_3st'] = $rule['price_3st']; $manageRules[] = $_rule; } } } try { DB::beginTransaction(); $product->lvlRules()->saveMany($manageRules); DealerProductManageRuleModel::whereIn('id', $delRules)->delete(); DB::commit(); } catch (Throwable $th) { DB::rollBack(); report($th); return $this->response()->error('操作失败:'.$th->getMessage())->refresh(); } return $this->response() ->success(__('admin.update_succeeded')) ->refresh(); } /** * Build a form here. */ public function form() { $this->hasMany('manageRules', '管理规则', function (NestedForm $form) { $form->select('lvl')->options([ 5 => '二级经销商', 6 => '一级经销商', ]); $form->currency('price_1st', '价格1')->symbol('¥')->required(); $form->currency('price_2st', '价格2')->symbol('¥')->required(); $form->currency('price_3st', '价格3')->symbol('¥')->required(); }); } /** * The data of the form. * * @return array */ public function default() { $productId = $this->payload['id'] ?? 0; $product = DealerProduct::findOrFail($productId); return [ 'manageRules' => $product->manageRules, // 'email' => 'John.Doe@gmail.com', ]; } }