123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- <?php
- namespace 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);
- }
- }
|