|
@@ -2,6 +2,8 @@
|
|
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
|
|
+use App\Admin\Renderable\DistDistributorTable;
|
|
|
+use App\Admin\Repositories\DistAppearance;
|
|
|
use App\Admin\Repositories\DistAppearanceVariable;
|
|
|
use Dcat\Admin\Form;
|
|
|
use Dcat\Admin\Grid;
|
|
@@ -9,19 +11,15 @@ use Dcat\Admin\Show;
|
|
|
use Dcat\Admin\Http\Controllers\AdminController;
|
|
|
use Dcat\Admin\Layout\Content;
|
|
|
use Dcat\Admin\Admin;
|
|
|
+use Dcat\Admin\Widgets\Dropdown;
|
|
|
+
|
|
|
|
|
|
class DistAppearanceVariableController extends AdminController
|
|
|
{
|
|
|
- /**
|
|
|
- * page index
|
|
|
- */
|
|
|
+
|
|
|
public function index(Content $content)
|
|
|
{
|
|
|
- return $content
|
|
|
- ->header('列表')
|
|
|
- ->description('全部')
|
|
|
- ->breadcrumb(['text'=>'列表','url'=>''])
|
|
|
- ->body($this->grid());
|
|
|
+ return $content->full()->body($this->grid());
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -31,20 +29,62 @@ class DistAppearanceVariableController extends AdminController
|
|
|
*/
|
|
|
protected function grid()
|
|
|
{
|
|
|
- return Grid::make(new DistAppearanceVariable(), function (Grid $grid) {
|
|
|
+ $templateId = isset($_GET['templateId']) ? intval($_GET['templateId']) : 0;
|
|
|
+ $appearanceId = isset($_GET['appearanceId']) ? intval($_GET['appearanceId']) : 0;
|
|
|
+ $distId = isset($_GET['distId']) ? intval($_GET['distId']) : 0;
|
|
|
+ if (empty($templateId) || empty($appearanceId)) {
|
|
|
+ die(' templateId or appearanceId is empty');
|
|
|
+ }
|
|
|
+ return Grid::make(DistAppearanceVariable::with(['distributor','appearance']), function (Grid $grid) use ($templateId, $appearanceId, $distId) {
|
|
|
$grid->column('id')->sortable();
|
|
|
- $grid->column('dist_id');
|
|
|
- $grid->column('appearance_id');
|
|
|
- $grid->column('variable_name');
|
|
|
- $grid->column('variable_value');
|
|
|
- $grid->column('variable_type');
|
|
|
- $grid->column('created_at');
|
|
|
- $grid->column('updated_at')->sortable();
|
|
|
-
|
|
|
- $grid->filter(function (Grid\Filter $filter) {
|
|
|
- $filter->equal('id');
|
|
|
-
|
|
|
+ $grid->column('distributor.company_name','Distributor Name')->display(function ($company_name) {
|
|
|
+ if (empty($company_name)) {
|
|
|
+ return 'Raw Template Variables';
|
|
|
+ }
|
|
|
+ return $company_name;
|
|
|
+ })->help('If the distributor is empty, then use the Raw Template Variables.');
|
|
|
+ $grid->column('appearance.title','Appearance Title');
|
|
|
+ $grid->column('template_ids','site variable')->display(function ($templateIds) {
|
|
|
+ if ($templateIds == 0) {
|
|
|
+ return 'Yes';
|
|
|
+ } else {
|
|
|
+ return 'No';
|
|
|
+ }
|
|
|
});
|
|
|
+ $grid->column('variable_name');
|
|
|
+ $grid->column('variable_type')->using(['1' => 'text', '2' => 'textarea', '3' => 'json']);
|
|
|
+ //搜索
|
|
|
+ $grid->quickSearch(['variable_name']);
|
|
|
+ //工具栏
|
|
|
+ $grid->disableViewButton();
|
|
|
+ $grid->showQuickEditButton();
|
|
|
+ $grid->enableDialogCreate();
|
|
|
+ $grid->disableEditButton();
|
|
|
+ $addUrl = '?templateId='. $templateId . '&appearanceId='. $appearanceId . '&distId='. $distId;
|
|
|
+ //排序
|
|
|
+ $grid->model()->where('appearance_id', $appearanceId)->where('dist_id', $distId)->whereIn('template_ids', [0, $templateId])->orderBy("id",'asc');
|
|
|
+ //增加js 向新增按钮添加参数还有编辑按钮添加参数
|
|
|
+ Admin::script(
|
|
|
+<<<JS
|
|
|
+var button = $('.dialog-create');
|
|
|
+var currentUrl = button.attr('data-url');
|
|
|
+if (currentUrl.indexOf('?') === -1) {
|
|
|
+ button.attr('data-url', currentUrl + '{$addUrl}');
|
|
|
+} else {
|
|
|
+ button.attr('data-url', currentUrl + '{$addUrl}');
|
|
|
+}
|
|
|
+
|
|
|
+$('.quick-edit').each(function() {
|
|
|
+ var currentUrl = $(this).attr('data-url');
|
|
|
+ if (currentUrl.indexOf('?') === -1) {
|
|
|
+ $(this).attr('data-url', currentUrl + '{$addUrl}');
|
|
|
+ } else {
|
|
|
+ // 如果已经有查询参数,添加 &id=123
|
|
|
+ $(this).attr('data-url', currentUrl + '{$addUrl}');
|
|
|
+ }
|
|
|
+});
|
|
|
+JS
|
|
|
+ );
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -55,19 +95,25 @@ class DistAppearanceVariableController extends AdminController
|
|
|
*
|
|
|
* @return Show
|
|
|
*/
|
|
|
- protected function detail($id)
|
|
|
- {
|
|
|
- return Show::make($id, new DistAppearanceVariable(), function (Show $show) {
|
|
|
- $show->field('id');
|
|
|
- $show->field('dist_id');
|
|
|
- $show->field('appearance_id');
|
|
|
- $show->field('variable_name');
|
|
|
- $show->field('variable_value');
|
|
|
- $show->field('variable_type');
|
|
|
- $show->field('created_at');
|
|
|
- $show->field('updated_at');
|
|
|
- });
|
|
|
- }
|
|
|
+// protected function detail($id)
|
|
|
+// {
|
|
|
+// return Show::make($id, DistAppearanceVariable::with(['distributor','appearance']), function (Show $show) {
|
|
|
+// $show->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.
|
|
@@ -76,16 +122,38 @@ class DistAppearanceVariableController extends AdminController
|
|
|
*/
|
|
|
protected function form()
|
|
|
{
|
|
|
- return Form::make(new DistAppearanceVariable(), function (Form $form) {
|
|
|
+ $templateId = isset($_GET['templateId']) ? intval($_GET['templateId']) : 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 ($templateId, $appearanceId, $distId) {
|
|
|
$form->display('id');
|
|
|
- $form->text('dist_id');
|
|
|
- $form->text('appearance_id');
|
|
|
+ $form->hidden('appearance_id')->value($appearanceId);
|
|
|
+ $form->hidden('dist_id')->value($distId);
|
|
|
+ $form->hidden('template_ids')->value($templateId);
|
|
|
+ //编辑时当template_ids为0时,site_variable为默认值1,否则为0
|
|
|
+ $variableDefaul = 0;
|
|
|
+ if (!$form->isCreating()) {
|
|
|
+ if ($form->model()->template_ids == 0) {
|
|
|
+ $variableDefaul = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $form->switch('site_variable')->value($variableDefaul);
|
|
|
+ $form->radio('variable_type')->options([
|
|
|
+ '1'=>'text',
|
|
|
+ '2'=>'textarea',
|
|
|
+ '3'=>'json'
|
|
|
+ ])->default(1);
|
|
|
$form->text('variable_name');
|
|
|
- $form->text('variable_value');
|
|
|
- $form->text('variable_type');
|
|
|
-
|
|
|
- $form->display('created_at');
|
|
|
- $form->display('updated_at');
|
|
|
+ $form->textarea('variable_value');
|
|
|
+
|
|
|
+ $form->ignore(['site_variable']);
|
|
|
+
|
|
|
+ $form->submitted(function (Form $form) {
|
|
|
+ if ($form->site_variable == 1) {
|
|
|
+ $form->template_ids = 0;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
});
|
|
|
}
|
|
|
}
|