column('id')->sortable(); $grid->column('title'); $grid->column('name')->label(); $grid->column('v'); $grid->column('cate')->using([ 1=>'苹果', 2=>'安卓', 3=>'商户端', ])->label([ 1=>'warning', 2=>'success', 3=>'primary', ]); $grid->column('is_force')->bool(); $grid->column('apk_link'); $grid->column('wgt_link'); $grid->column('created_at')->sortable(); //排序 $grid->model()->orderBy('created_at', 'desc'); /** 操作 **/ //新增 if (Admin::user()->can('dcat.admin.app_versions.create')) { $grid->disableCreateButton(false); $grid->enableDialogCreate(); } //修改 $grid->showQuickEditButton(Admin::user()->can('dcat.admin.app_versions.edit')); //删除以及自定义操作 $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->disableDelete(Admin::user()->cannot('dcat.admin.app_versions.destroy')); }); /** 查询 **/ $grid->filter(function (Grid\Filter $filter) { $filter->panel(); $filter->equal('cate')->select([ 1=>'苹果', 2=>'安卓', 3=>'商户端', ])->width(3); $filter->equal('name')->width(3); $filter->equal('title')->width(3); }); }); } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { return Show::make($id, new AppVersion(), function (Show $show) { $show->field('id'); $show->field('name'); $show->field('v'); $show->field('cate'); $show->field('is_force'); $show->field('link'); $show->field('created_at'); $show->field('updated_at'); }); } /** * Make a form builder. * * @return Form */ protected function form() { return Form::make(new AppVersion(), function (Form $form) { $form->display('id'); $form->text('title')->required(); $form->textarea('context')->required(); $form->text('name')->required(); $form->number('v')->min(0); $form->radio('cate') ->when(1, function (Form $form) { $form->text('apk_link1')->rules('required_if:cate,1', ['required_if'=>'苹果平台需要填写苹果商店地址'])->customFormat(function ($v) { if ($this->model()->cate == 1) { $v = $this->model()->apk_link; } return $v; }); }) ->when([2, 3], function (Form $form) { $form->text('apk_link_text', '链接地址')->customFormat(function ($v) { if (in_array($this->model()->cate, [2, 3])) { $v = $this->model()->apk_link; } return $v; }); $form->file('apk_link2')->chunked() ->accept('apk', 'apk/*') ->move('app-vesrion/apk/'.Carbon::now()->toDateString()) ->maxSize(204800)//默认最大200M ->saveFullUrl() ->removable(false) ->autoSave(false) ->autoUpload(); }) ->options([ 1=>'苹果', 2=>'安卓', 3=>'商户端', ]); $form->switch('is_force'); $form->file('wgt_link')->chunked() ->accept('wgt', 'wgt/*') ->move('app-vesrion/wgt/'.Carbon::now()->toDateString()) ->maxSize(204800)//默认最大200M ->saveFullUrl() ->removable(false) ->autoSave(false) ->autoUpload(); $form->hidden('apk_link'); $form->saving(function (Form $form) { if (in_array($form->cate, [2, 3])) { $form->apk_link = $form->apk_link_text; } $apk_link = 'apk_link'.($form->cate != 3 ? $form->cate : 2); if ($form->$apk_link) { $form->apk_link = $form->$apk_link; } $form->deleteInput('apk_link_text'); $form->deleteInput('apk_link1'); $form->deleteInput('apk_link2'); }); $form->display('created_at'); $form->display('updated_at'); }); } }