| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 | <?phpnamespace App\Admin\Controllers\Jobfairout;use App\Http\Controllers\Controller;use Encore\Admin\Controllers\HasResourceActions;use Encore\Admin\Facades\Admin;use Encore\Admin\Form;use Encore\Admin\Grid;use Encore\Admin\Layout\Content;use Encore\Admin\Show;use App\Models\Jobfairout\JobfairoutSchool;use App\Admin\Exports\Jobfairout\SchoolExport;use App\Admin\Extensions\Form\ValidateForm;class JobfairoutSchoolController extends Controller{    use HasResourceActions;    /**     * Index interface.     *     * @param Content $content     * @return Content     */    public function index(Content $content)    {        $grid = $this->grid()->render();        return $content            ->header('学校列表')            ->description('')            ->body(view('admin.jobfairout.school')->with(['grid'=>$grid]));    }    /**     * Show interface.     *     * @param mixed $id     * @param Content $content     * @return Content     */    public function show($id, Content $content)    {        return $content            ->header('招聘会详情')            ->description('')            ->body($this->detail($id));    }    /**     * Edit interface.     *     * @param mixed $id     * @param Content $content     * @return Content     */    public function edit($id, Content $content)    {        return $content            ->header('学校编辑')            ->description('')            ->body($this->form()->edit($id));    }    /**     * Create interface.     *     * @param Content $content     * @return Content     */    public function create(Content $content)    {        return $content            ->header('学校创建')            ->description('带*号必填项')            ->body($this->form());    }    /**     * Make a grid builder.     *     * @return Grid     */    protected function grid()    {        $grid = new Grid(new JobfairoutSchool);        $grid->model()->orderBy('sort', 'desc');        $grid->id('ID');        $grid->name('校名')->width(200);        $grid->url('官网')->display(function ($url){            return "<a target='_blank' href='$url'>".$url."</a>";        })->width(200);        $grid->logo('校徽')->display(function($logo){            return '<span class="vtip" title="<img src=\''.upload_asset($logo).'\' height=120>">                            <img class="avatar small" src="'.upload_asset($logo).'" align="absmiddle" style="width: 22px;height: 22px;">                        </span>';        });        $grid->major('专业优势')->width(400);        $grid->created_at('创建时间');        $grid->filter(function ($filter) {            $filter->like('name', '校名');        });        if (Admin::user()->can('jobfairout_schools_create')) {            $grid->disableCreateButton(false);        }        //批量删除        if (Admin::user()->can('jobfairout_schools_delete')) {            $grid->tools(function ($tools) {                $tools->batch(function ($batch) {                    $batch->disableDelete(false);                });            });        } else {            $grid->disableRowSelector();        }        if (Admin::user()->can('jobfairout_schools_export')) {            $grid->disableExport(false); //显示导出按钮            $grid->exporter(new SchoolExport()); //传入自己在第1步创建的导出类        }        $grid->actions(function ($actions) {            if (Admin::user()->can('jobfairout_schools_edit')) {                $actions->disableEdit(false);            }            if (Admin::user()->can('jobfairout_schools_delete')) {                $actions->disableDelete(false);            }        });        return $grid;    }    /**     * Make a show builder.     *     * @param mixed $id     * @return Show     */    protected function detail($id)    {        $show = new Show(JobfairoutSchool::findOrFail($id));        $show->id('ID');        $show->name('校名')->width(200);        $show->url('官网');        $show->logo('校徽')->image();        $show->major('专业优势');        $show->remarks('备注');        $show->introduce('简介')->setEscape(false);        $show->created_at('创建时间');        $show->updated_at('更新时间');        return $show;    }    /**     * Make a form builder.     *     * @return Form     */    protected function form()    {        $form = new ValidateForm(new JobfairoutSchool);        $form->text('name', '校名')->rules('required|max:50', array('required'=>'校名不能为空。', 'max'=>'校名长度不能大于50个字符。'))->setWidth(4)->setMustMark();        $form->url('url', '官网')->help('(请输入包含http://或https://的完整链接)')->setMustMark();        $form->image('logo', '校徽')->uniqueName()->rules('image|mimes:jpeg,bmp,png', array('image'=>'校徽请选择图片文件。','mimes'=>'请选择jpeg,bmp,png格式的校徽上传。'))->setMustMark()->setWidth(3);        $form->textarea('major', '优势专业')->rules('max:255', array('max'=>'优势专业不能大于255个字符。'))->setMustMark();        $form->textarea('remarks', '备注')->rules('max:255', array('max'=>'备注不能大于255个字符。'));        $form->editor('introduce', '简介')->rules('required', array('required'=>'简介不能为空。'))->setMustMark();        $form->number('sort', '排序')->min(1)->max(255)->default(1)->help('(数字越大越靠前)')->setMustMark();        return $form;    }    public function destroy($id)    {        if ($this->form()->destroy($id)) {            $data = [                'status'  => true,                'message' => trans('admin.delete_succeeded'),            ];        } else {            $data = [                'status'  => false,                'message' => trans('admin.delete_failed'),            ];        }        return response()->json($data);    }}
 |