full()->body($this->grid()); } /** * Make a grid builder. * * @return Grid */ protected function grid() { $templateCode = isset($_GET['templateCode']) ? $_GET['templateCode'] : 0; $appearanceId = isset($_GET['appearanceId']) ? intval($_GET['appearanceId']) : 0; $distId = isset($_GET['distId']) ? intval($_GET['distId']) : 0; if (empty($appearanceId)) { die('

Please select the theme.

'); } return Grid::make(DistAppearanceVariable::with(['distributor','appearance']), function (Grid $grid) use ($templateCode, $appearanceId, $distId) { $grid->column('id')->sortable(); $grid->column('distributor.company_name','Distributor Name')->display(function ($company_name) { if (empty($company_name)) { return '-'; } return $company_name; }); $grid->column('appearance.title','Appearance'); //变量名 $grid->column('variable_name'); //变量类型 $grid->column('variable_type')->using(['1' => 'text', '2' => 'textarea', '3' => 'json']); //是否是站点变量 $grid->column('templateCode','site variable')->display(function ($templateIds) { if ($templateIds == 0) { return 'Yes'; } else { return 'No'; } })->label([ '0' => 'success', '1' => 'default', ]);; //搜索 $grid->quickSearch(['variable_name']); //工具栏 $grid->disableViewButton(); $grid->showQuickEditButton(); $grid->enableDialogCreate(); $grid->disableEditButton(); $addUrl = 'templateCode='. $templateCode . '&appearanceId='. $appearanceId . '&distId='. $distId; //排序 $grid->model()->where('appearance_id', $appearanceId)->where('dist_id', $distId)->whereIn('template_code', [0, $templateCode])->orderBy("id",'asc'); //增加js 向新增按钮添加参数还有编辑按钮添加参数 CommonHelper::replaceAddEditerUrl('.dialog-create', '.quick-edit', $addUrl); /* Admin::script( <<field('id'); // $show->field('distributor.company_name','Distributor Name')->as(function ($company_name) { // if (empty($company_name)) { // return 'Site Variable'; // } // return $company_name; // }); // $show->field('appearance.title','Appearance Title'); // $show->field('variable_type')->using(['1' => 'text', '2' => 'textarea', '3' => 'json']); // $show->field('variable_name'); // $show->field('variable_value'); // // $show->field('created_at'); // $show->field('updated_at'); // }); // } /** * Make a form builder. * * @return Form */ protected function form() { $templateCode = isset($_GET['templateCode']) ? $_GET['templateCode'] : 0; $appearanceId = isset($_GET['appearanceId']) ? intval($_GET['appearanceId']) : 0; $distId = isset($_GET['distId']) ? intval($_GET['distId']) : 0; return Form::make(new DistAppearanceVariable(), function (Form $form) use ($templateCode, $appearanceId, $distId) { $form->hidden('appearance_id')->value($appearanceId); $form->hidden('dist_id')->value($distId); $form->hidden('template_code')->value($templateCode); $form->hidden('variable_code'); //编辑时当template_id为0时,site_variable为默认值1,否则为0 $variableDefaul = 0; if (!$form->isCreating()) { if ($form->model()->template_id == 0) { $variableDefaul = 1; } } $form->switch('site_variable')->value($variableDefaul)->width(9,3); $form->radio('variable_type')->options([ '1'=>'text', '2'=>'textarea', '3'=>'json' ])->width(9,3)->default(1); $form->text('variable_name')->width(9,3); $form->textarea('variable_value')->rows(12)->width(9,3); $form->ignore(['site_variable']); $form->submitted(function (Form $form) { if ($form->input('site_variable') == 1) { $form->template_code = 0; } if ($form->isCreating()) { $form->variable_code = uniqueCode(); } //检查json格式是否正确 if ($form->input('variable_type') == 3) { if (!isValidJson($form->input('variable_value'))) { return $form->response()->error('The JSON format is incorrect'); } } }); }); } }