Browse Source

Merge remote-tracking branch 'origin/master'

zmw 1 tháng trước cách đây
mục cha
commit
33585e2f24

+ 147 - 75
app/Admin/Controllers/Health/IndexController.php

@@ -46,7 +46,7 @@ class IndexController extends Controller
         $grid->time('时间');
         $grid->address('地址');
         $grid->contact_info('联系方式');
-        $grid->column('status','状态')->display(function ($status) {
+        $grid->column('status', '状态')->display(function ($status) {
             return $status ? '显示' : '隐藏';
         });
         $grid->created_at('创建时间');
@@ -76,13 +76,14 @@ class IndexController extends Controller
             ->body($this->editForm($id)->edit($id));
     }
 
-    protected function editForm($id){
+    protected function editForm($id)
+    {
         $info = Presentation::find($id);
         $form = new ValidateForm(new Presentation);
-        $form->text('name', '宣讲会标题')->rules('required|max:100', array('required'=>'标题不能为空。','max'=>'标题长度不能大于100。'))->setMustMark();
-        $form->text('time', '宣讲时间段')->rules('required', array('required'=>'时间段不能为空。'))->setMustMark();
-        $form->text('address', '宣讲会地址')->rules('required', array('required'=>'宣讲会地址不能为空。'))->setMustMark();
-        $form->text('contact_info', '联系方式')->rules('required', array('required'=>'联系方式不能为空。'))->setMustMark();
+        $form->text('name', '宣讲会标题')->rules('required|max:100', ['required' => '标题不能为空。', 'max' => '标题长度不能大于100。'])->setMustMark();
+        $form->text('time', '宣讲时间段')->rules('required', ['required' => '时间段不能为空。'])->setMustMark();
+        $form->text('address', '宣讲会地址')->rules('required', ['required' => '宣讲会地址不能为空。'])->setMustMark();
+        $form->text('contact_info', '联系方式')->rules('required', ['required' => '联系方式不能为空。'])->setMustMark();
         $display_option = [
             'on'  => ['value' => 1, 'text' => '是', 'color' => 'success'],
             'off' => ['value' => 0, 'text' => '否', 'color' => 'danger'],
@@ -95,10 +96,10 @@ class IndexController extends Controller
     protected function form()
     {
         $form = new ValidateForm(new Presentation);
-        $form->text('name', '宣讲会标题')->rules('required|max:100', array('required'=>'标题不能为空。','max'=>'标题长度不能大于100。'))->setMustMark();
-        $form->text('time', '宣讲时间段')->rules('required', array('required'=>'时间段不能为空。'))->setMustMark();
-        $form->text('address', '宣讲会地址')->rules('required', array('required'=>'宣讲会地址不能为空。'))->setMustMark();
-        $form->text('contact_info', '联系方式')->rules('required', array('required'=>'联系方式不能为空。'))->setMustMark();
+        $form->text('name', '宣讲会标题')->rules('required|max:100', ['required' => '标题不能为空。', 'max' => '标题长度不能大于100。'])->setMustMark();
+        $form->text('time', '宣讲时间段')->rules('required', ['required' => '时间段不能为空。'])->setMustMark();
+        $form->text('address', '宣讲会地址')->rules('required', ['required' => '宣讲会地址不能为空。'])->setMustMark();
+        $form->text('contact_info', '联系方式')->rules('required', ['required' => '联系方式不能为空。'])->setMustMark();
         $display_option = [
             'on'  => ['value' => 1, 'text' => '是', 'color' => 'success'],
             'off' => ['value' => 0, 'text' => '否', 'color' => 'danger'],
@@ -108,22 +109,23 @@ class IndexController extends Controller
         return $form;
     }
 
-    public function store(Request $request){
+    public function store(Request $request)
+    {
         $verify = $this->form()->getValidateInput();
 
         $data = [
-            'name' => $verify['name'],
-            'time'  => $verify['time'],
-            'address' => $verify['address'],
+            'name'         => $verify['name'],
+            'time'         => $verify['time'],
+            'address'      => $verify['address'],
             'contact_info' => $verify['contact_info'],
-            'status' => $verify['status']
+            'status'       => $verify['status'],
         ];
 
 
         try {
             Presentation::create($data);
             DB::commit();
-        }catch (\Exception $e) {
+        } catch (\Exception $e) {
             DB::rollback();
             return admin_toastr($e->getMessage(), 'error');
         }
@@ -154,7 +156,7 @@ class IndexController extends Controller
     public function appointList(Content $content, Request $request)
     {
         Permission::check('health_appoint_list');
-        $id = $request->id;
+        $id           = $request->id;
         $presentation = Presentation::find($id);
         if (empty($presentation)) {
             return back();
@@ -162,8 +164,8 @@ class IndexController extends Controller
 
         $search_data = $request->all();
 
-        $where = [];
-        $where[] = ['pid','=',$presentation->id];
+        $where   = [];
+        $where[] = ['pid', '=', $presentation->id];
         if (isset($search_data['id'])) {
 
             foreach ($search_data as $k => $v) {
@@ -175,25 +177,25 @@ class IndexController extends Controller
             }
         }
         $perpage = 20;
-        $list = PresentationAppoint::where($where)
+        $list    = PresentationAppoint::where($where)
             ->select('*')
-            ->orderBy('updated_at','desc')
+            ->orderBy('updated_at', 'desc')
             ->paginate($perpage);
 
-        foreach ($list as $k => $v){
-            if($v->sex == 1){
+        foreach ($list as $k => $v) {
+            if ($v->sex == 1) {
                 $list[$k]['sex'] = '男';
-            }else{
+            } else {
                 $list[$k]['sex'] = '女';
             }
-            if($v->fresh == 0){
+            if ($v->fresh == 0) {
                 $list[$k]['fresh'] = '否';
-            }else{
+            } else {
                 $list[$k]['fresh'] = '是';
             }
-            if($v->status == 0){
+            if ($v->status == 0) {
                 $list[$k]['status'] = '未下载';
-            }else{
+            } else {
                 $list[$k]['status'] = '已下载';
             }
         }
@@ -202,14 +204,15 @@ class IndexController extends Controller
             ->header('报名管理')
             ->description('人员信息列表')
             ->body(view('admin.health.appoint_list')->with([
-                'list' => $list,
+                'list'        => $list,
                 'search_data' => $search_data,
-                'recruit' => $presentation
+                'recruit'     => $presentation,
             ]));
 
     }
 
-    public function qjwjInfoList(Content $content, Request $request){
+    public function qjwjInfoList(Content $content, Request $request)
+    {
         Permission::check('qjwjInfoList');
 
         $search_data = $request->all();
@@ -218,28 +221,28 @@ class IndexController extends Controller
         foreach ($search_data as $k => $v) {
             if ($k == 'realname') {
                 $where[] = [$k, 'like', "%$v%"];
-            } elseif (in_array($k,['sex','education'])) {
+            } elseif (in_array($k, ['sex', 'education'])) {
                 $where[] = [$k, '=', $v];
             }
         }
         $perpage = 20;
-        $list = QjwjAppoint::where($where)
+        $list    = QjwjAppoint::where($where)
             ->select('*')
-            ->orderBy('updated_at','desc')
+            ->orderBy('updated_at', 'desc')
             ->paginate($perpage);
 
-        foreach ($list as $k => $v){
+        foreach ($list as $k => $v) {
             $v->native_place_cn = get_district_cn($v->native_place);
-            $v->education = get_category($v->education);
-            $v->pro_type = get_category_major($v->pro_type);
-            if($v->sex == 1){
+            $v->education       = get_category($v->education);
+            $v->pro_type        = get_category_major($v->pro_type);
+            if ($v->sex == 1) {
                 $list[$k]['sex'] = '男';
-            }else{
+            } else {
                 $list[$k]['sex'] = '女';
             }
-            if($v->status == 0){
+            if ($v->status == 0) {
                 $list[$k]['status'] = '未下载';
-            }else{
+            } else {
                 $list[$k]['status'] = '已下载';
             }
         }
@@ -248,25 +251,27 @@ class IndexController extends Controller
             ->header('信息管理')
             ->description('泉籍卫技人员信息列表')
             ->body(view('admin.health.qjwj_appoint_list')->with([
-                'list' => $list,
-                'search_data' => $search_data
+                'list'        => $list,
+                'search_data' => $search_data,
             ]));
     }
 
-    public function qjwjStatus(Request $request){
+    public function qjwjStatus(Request $request)
+    {
 
         $info = QjwjAppoint::where(['id' => $request->id])->first();
-        if($info){
+        if ($info) {
             $info->status = 1;
             $info->save();
             return response()->json(['status' => 1, 'msg' => '跳转下载中!', 'data' => 'ok', 'url' => $info->attachment]);
-        }else{
+        } else {
             return response()->json(['status' => 0, 'msg' => '找不到记录!', 'data' => 'fail']);
         }
         //return "/storage/recruit/word/" . $recruit->name_en . '/' .$appoint->audit .$word_url;
     }
 
-    public function jyyxInfoList(Content $content, Request $request){
+    public function jyyxInfoList(Content $content, Request $request)
+    {
         Permission::check('jyyxInfoList');
 
         $search_data = $request->all();
@@ -278,16 +283,16 @@ class IndexController extends Controller
             }
         }
         $perpage = 20;
-        $list = JyyxAppoint::where($where)
+        $list    = JyyxAppoint::where($where)
             ->select('*')
-            ->orderBy('updated_at','desc')
+            ->orderBy('updated_at', 'desc')
             ->paginate($perpage);
 
-        foreach ($list as $k => $v){
+        foreach ($list as $k => $v) {
 
-            if($v->status == 0){
+            if ($v->status == 0) {
                 $list[$k]['status'] = '未下载';
-            }else{
+            } else {
                 $list[$k]['status'] = '已下载';
             }
         }
@@ -296,25 +301,27 @@ class IndexController extends Controller
             ->header('信息管理')
             ->description('就业意向人员信息列表')
             ->body(view('admin.health.jyyx_appoint_list')->with([
-                'list' => $list,
-                'search_data' => $search_data
+                'list'        => $list,
+                'search_data' => $search_data,
             ]));
     }
 
-    public function jyyxStatus(Request $request){
+    public function jyyxStatus(Request $request)
+    {
 
         $info = JyyxAppoint::where(['id' => $request->id])->first();
-        if($info){
+        if ($info) {
             $info->status = 1;
             $info->save();
             return response()->json(['status' => 1, 'msg' => '跳转下载中!', 'data' => 'ok', 'url' => $info->attachment]);
-        }else{
+        } else {
             return response()->json(['status' => 0, 'msg' => '找不到记录!', 'data' => 'fail']);
         }
         //return "/storage/recruit/word/" . $recruit->name_en . '/' .$appoint->audit .$word_url;
     }
 
-    public function postInfoList(Content $content, Request $request){
+    public function postInfoList(Content $content, Request $request)
+    {
         Permission::check('postInfoList');
 
         $search_data = $request->all();
@@ -323,28 +330,28 @@ class IndexController extends Controller
         foreach ($search_data as $k => $v) {
             if ($k == 'realname') {
                 $where[] = [$k, 'like', "%$v%"];
-            } elseif (in_array($k,['sex','education'])) {
-                $where[] = ['post_appoint.'.$k, '=', $v];
+            } elseif (in_array($k, ['sex', 'education'])) {
+                $where[] = ['post_appoint.' . $k, '=', $v];
             }
         }
         $perpage = 20;
-        $list = PostAppoint::where($where)
-            ->leftJoin("jobs","jobs.id",'=','post_appoint.job_id')
-            ->select('post_appoint.*','jobs.jobs_name','jobs.company_name')
-            ->orderBy('updated_at','desc')
+        $list    = PostAppoint::where($where)
+            ->leftJoin("jobs", "jobs.id", '=', 'post_appoint.job_id')
+            ->select('post_appoint.*', 'jobs.jobs_name', 'jobs.company_name')
+            ->orderBy('updated_at', 'desc')
             ->paginate($perpage);
 
-        foreach ($list as $k => $v){
+        foreach ($list as $k => $v) {
             $v->native_place_cn = get_district_cn($v->native_place);
-            $v->education = get_category($v->education);
-            if($v->sex == 1){
+            $v->education       = get_category($v->education);
+            if ($v->sex == 1) {
                 $list[$k]['sex'] = '男';
-            }else{
+            } else {
                 $list[$k]['sex'] = '女';
             }
-            if($v->status == 0){
+            if ($v->status == 0) {
                 $list[$k]['status'] = '未下载';
-            }else{
+            } else {
                 $list[$k]['status'] = '已下载';
             }
         }
@@ -353,21 +360,86 @@ class IndexController extends Controller
             ->header('信息管理')
             ->description('投递岗位人员信息列表')
             ->body(view('admin.health.post_appoint_list')->with([
-                'list' => $list,
-                'search_data' => $search_data
+                'list'        => $list,
+                'search_data' => $search_data,
             ]));
     }
 
-    public function postStatus(Request $request){
+    public function postStatus(Request $request)
+    {
         Permission::check('postInfoList');
         $info = PostAppoint::where(['id' => $request->id])->first();
-        if($info){
+        if ($info) {
             $info->status = 1;
             $info->save();
             return response()->json(['status' => 1, 'msg' => '跳转下载中!', 'data' => 'ok', 'url' => $info->attachment]);
-        }else{
+        } else {
             return response()->json(['status' => 0, 'msg' => '找不到记录!', 'data' => 'fail']);
         }
         //return "/storage/recruit/word/" . $recruit->name_en . '/' .$appoint->audit .$word_url;
     }
+
+    public function presentationAppointList(Content $content,Request $request)
+    {
+        $search_data = $request->all();
+
+        $where = [
+            ['pid', '=', $search_data['id']],
+        ];
+        foreach ($search_data as $k => $v) {
+            if ($k == 'realname') {
+                $where[] = [$k, 'like', "%$v%"];
+            } elseif (in_array($k, ['sex', 'education'])) {
+                $where[] = [$k, '=', $v];
+            }
+        }
+        $perpage = 20;
+        $list    = PresentationAppoint::where($where)
+            ->orderBy('updated_at', 'desc')
+            ->paginate($perpage);
+
+        foreach ($list as $k => $v) {
+            if ($v->fresh == 1) {
+                $list[$k]['fresh'] = '是';
+            } else {
+                $list[$k]['fresh'] = '否';
+            }
+            if ($v->sex == 1) {
+                $list[$k]['sex'] = '男';
+            } else {
+                $list[$k]['sex'] = '女';
+            }
+            if ($v->status == 0) {
+                $list[$k]['status'] = '未下载';
+            } else {
+                $list[$k]['status'] = '已下载';
+            }
+            if (empty($v->attachment)) {
+                $list[$k]['is_attachment'] = '未上传';
+            } else {
+                $list[$k]['is_attachment'] = '已上传';
+            }
+        }
+
+        return $content
+            ->header('报名管理')
+            ->description('招聘会报名的人员信息管理')
+            ->body(view('admin.health.presentation_appoint_list')->with([
+                'list'        => $list,
+                'search_data' => $search_data,
+            ]));
+    }
+
+    public function presentationStatus(Request $request)
+    {
+        $info = PresentationAppoint::where(['id' => $request->id])->first();
+        if ($info && $info->attachment) {
+            $info->status = 1;
+            $info->save();
+            return response()->json(['status' => 1, 'msg' => '跳转下载中!', 'data' => 'ok', 'url' => $info->attachment]);
+        } else {
+            return response()->json(['status' => 0, 'msg' => '用户未上传简历!', 'data' => 'fail']);
+        }
+        //return "/storage/recruit/word/" . $recruit->name_en . '/' .$appoint->audit .$word_url;
+    }
 }

+ 271 - 18
app/Admin/Controllers/Ic/IndexController.php

@@ -2,15 +2,22 @@
 
 namespace App\Admin\Controllers\Ic;
 
+use App\Admin\Extensions\Form\ValidateForm;
 use App\Http\Controllers\Controller;
+use App\Models\Company;
+use App\Models\JobfairsIc;
+use App\Models\JobFairsIcAppoint;
 use App\Models\PostAppointIc;
 use Encore\Admin\Auth\Permission;
+use Encore\Admin\Grid;
 use Encore\Admin\Layout\Content;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
 
 class IndexController extends Controller
 {
-    public function postInfoList(Content $content, Request $request){
+    public function postInfoList(Content $content, Request $request)
+    {
         Permission::check('icPostInfoList');
 
         $search_data = $request->all();
@@ -19,28 +26,28 @@ class IndexController extends Controller
         foreach ($search_data as $k => $v) {
             if ($k == 'realname') {
                 $where[] = [$k, 'like', "%$v%"];
-            } elseif (in_array($k,['sex','education'])) {
-                $where[] = ['post_appoint_ic.'.$k, '=', $v];
+            } elseif (in_array($k, ['sex', 'education'])) {
+                $where[] = ['post_appoint_ic.' . $k, '=', $v];
             }
         }
         $perpage = 20;
-        $list = PostAppointIc::where($where)
-            ->leftJoin("jobs","jobs.id",'=','post_appoint_ic.job_id')
-            ->select('post_appoint_ic.*','jobs.jobs_name','jobs.company_name')
-            ->orderBy('updated_at','desc')
+        $list    = PostAppointIc::where($where)
+            ->leftJoin("jobs", "jobs.id", '=', 'post_appoint_ic.job_id')
+            ->select('post_appoint_ic.*', 'jobs.jobs_name', 'jobs.company_name')
+            ->orderBy('updated_at', 'desc')
             ->paginate($perpage);
 
-        foreach ($list as $k => $v){
+        foreach ($list as $k => $v) {
             $v->native_place_cn = get_district_cn($v->native_place);
-            $v->education = get_category($v->education);
-            if($v->sex == 1){
+            $v->education       = get_category($v->education);
+            if ($v->sex == 1) {
                 $list[$k]['sex'] = '男';
-            }else{
+            } else {
                 $list[$k]['sex'] = '女';
             }
-            if($v->status == 0){
+            if ($v->status == 0) {
                 $list[$k]['status'] = '未下载';
-            }else{
+            } else {
                 $list[$k]['status'] = '已下载';
             }
         }
@@ -49,21 +56,267 @@ class IndexController extends Controller
             ->header('信息管理')
             ->description('投递岗位人员信息列表')
             ->body(view('admin.ic.post_appoint_list')->with([
-                'list' => $list,
-                'search_data' => $search_data
+                'list'        => $list,
+                'search_data' => $search_data,
             ]));
     }
 
-    public function postStatus(Request $request){
+    public function postStatus(Request $request)
+    {
         Permission::check('icPostInfoList');
         $info = PostAppointIc::where(['id' => $request->id])->first();
-        if($info){
+        if ($info) {
             $info->status = 1;
             $info->save();
             return response()->json(['status' => 1, 'msg' => '跳转下载中!', 'data' => 'ok', 'url' => $info->attachment]);
-        }else{
+        } else {
             return response()->json(['status' => 0, 'msg' => '找不到记录!', 'data' => 'fail']);
         }
         //return "/storage/recruit/word/" . $recruit->name_en . '/' .$appoint->audit .$word_url;
     }
+
+    /**
+     * 宣讲会管理
+     * @param Content $content
+     * @return Content
+     */
+    public function index(Content $content)
+    {
+        Permission::check('icJobFairsListList');
+        return $content
+            ->header('招聘会管理')
+            ->description('')
+            ->body($this->grid());
+    }
+
+    protected function grid()
+    {
+        $grid = new Grid(new JobfairsIc);
+        $grid->model()->orderBy('ordid', 'DESC');
+        $grid->model()->paginate(20);
+        $grid->disableCreateButton(false);
+        $grid->perPages([10, 20, 30, 40, 50, 100]);
+        $grid->id('ID');
+        $grid->title('标题');
+        $grid->column('holddate_start', '开始时间');
+        $grid->column('holddate_end', '结束时间');
+        $grid->address('举办地址');
+        $grid->url('外部链接');
+        $grid->contact('联系人');
+        $grid->phone('联系电话');
+        $grid->column('display', '状态')->display(function ($display) {
+            return $display == 1 ? '正常' : '暂停';
+        });
+        $grid->created_at('创建时间');
+        $grid->filter(function ($filter) {
+            // 在这里添加字段过滤器
+            $filter->column(1 / 2, function ($filter) {
+                $filter->like('title', '标题');
+            });
+        });
+        $grid->actions(function ($actions) {
+            $actions->append('<a href="/ST3IXxKlOa4eGEv0eTw0CfORI9444Mgj/ic/jobfairs_appoint_list?id=' . $actions->row['id'] . '"  class="btn btn-primary btn-xs" >报名管理</a>');
+            $actions->disableEdit(false);
+            $actions->disableDelete(false);
+            $actions->disableView();
+        });
+
+        return $grid;
+    }
+
+
+    public function create(Content $content)
+    {
+        return $content
+            ->header('招聘会创建')
+            ->description('带*号必填项')
+            ->body(view('admin.ic.jobfairs')->with(['grid' => $this->form()->render()]));
+    }
+
+    public function edit($id, Content $content)
+    {
+        return $content
+            ->header('招聘会编辑')
+            ->description('带*号必填项')
+            ->body(view('admin.ic.jobfairs')->with(['grid' => $this->editForm($id)->edit($id)->render()]));
+    }
+
+    public function show($id, Content $content)
+    {
+        return redirect(route('ic.index'));
+    }
+
+    protected function editForm($id)
+    {
+        $info = JobfairsIc::find($id);
+        $form = new ValidateForm(new JobfairsIc);
+        $form->text('title', '标题')->rules('required|max:100', ['required' => '标题不能为空。', 'max' => '标题长度不能大于100。'])->setMustMark();
+        $form->datetime('holddate_start', '开始时间')->format('YYYY-MM-DD HH:mm:ss')->rules('required', ['required' => '开始时间不能为空。'])->setMustMark();
+        $form->datetime('holddate_end', '结束时间')->format('YYYY-MM-DD HH:mm:ss')->rules('required', ['required' => '结束时间不能为空。'])->setMustMark();
+        $form->text('contact', '联系人')->rules('required', ['required' => '联系人不能为空。'])->setMustMark();
+        $form->text('phone', '联系电话')->rules('required', ['required' => '联系电话不能为空。'])->setMustMark();
+        $form->text('url', '外部链接')->setMustMark();
+        $form->number('need_num', '需要人数')->min(0)->rules('required', ['required' => '请输入需要人数。'])->setMustMark();
+        $display_option = [
+            'on'  => ['value' => 1, 'text' => '正常', 'color' => 'success'],
+            'off' => ['value' => 2, 'text' => '暂停', 'color' => 'danger'],
+        ];
+        $form->switch('display', '状态')->states($display_option)->default('1')->setMustMark();
+        $form->text('ordid', '排序')->default(100)->rules('required', ['required' => '请输入排序。'])->help('(数字越大越靠前)')->setMustMark();
+        $form->textarea('jobfair_introduction', '招聘会简介')->rows(10)->attribute(['maxlength' => 2000])->setMustMark();
+        $form->listbox('companys', '参与企业列表')->rules('required', ['required' => '请选择参与企业'])->options(Company::icCompanys())->attribute('hight', '200px')->setMustMark();
+        $form->text('address', '举办地址')->rules('required', ['required' => '举办地址不能为空。'])->setMustMark();
+        $form->html('<div id="searchResultPanel" style="border:1px solid #C0C0C0;height:100px; display:none;"></div>');
+        $form->html(' <div class="fr">
+            <input name="map_x" type="hidden" id="x" value="'.$info['map_x'].'">
+            <input name="map_y" type="hidden" id="y" value="'.$info['map_y'].'">
+            <input name="map_zoom" type="hidden" id="zoom" value="'.$info['map_zoom'].'">
+            <div class="form-control" style=height:380px;border:1px solid  #CCCCCC; cursor: pointer;" id="container"></div></div>', '地图标注')->setMustMark();
+
+        return $form;
+
+    }
+
+    protected function form()
+    {
+        $form = new ValidateForm(new JobfairsIc);
+        $form->text('title', '标题')->rules('required|max:100', ['required' => '标题不能为空。', 'max' => '标题长度不能大于100。'])->setMustMark();
+        $form->datetime('holddate_start', '开始时间')->format('YYYY-MM-DD HH:mm:ss')->rules('required', ['required' => '开始时间不能为空。'])->setMustMark();
+        $form->datetime('holddate_end', '结束时间')->format('YYYY-MM-DD HH:mm:ss')->rules('required', ['required' => '结束时间不能为空。'])->setMustMark();
+        $form->text('contact', '联系人')->rules('required', ['required' => '联系人不能为空。'])->setMustMark();
+        $form->text('phone', '联系电话')->rules('required', ['required' => '联系电话不能为空。'])->setMustMark();
+        $form->text('url', '外部链接')->setMustMark();
+        $form->number('need_num', '需要人数')->min(0)->rules('required', ['required' => '请输入需要人数。'])->setMustMark();
+        $display_option = [
+            'on'  => ['value' => 1, 'text' => '正常', 'color' => 'success'],
+            'off' => ['value' => 2, 'text' => '暂停', 'color' => 'danger'],
+        ];
+        $form->switch('display', '状态')->states($display_option)->default('1')->setMustMark();
+        $form->text('ordid', '排序')->default(100)->rules('required', ['required' => '请输入排序。'])->help('(数字越大越靠前)')->setMustMark();
+        $form->textarea('jobfair_introduction', '招聘会简介')->rows(10)->attribute(['maxlength' => 2000])->setMustMark();
+        $form->listbox('companys', '参与企业列表')->rules('required', ['required' => '请选择参与企业'])->options(Company::icCompanys())->attribute('hight', '200px')->setMustMark();
+        $form->text('address', '举办地址')->rules('required', ['required' => '举办地址不能为空。'])->setMustMark();
+        $form->html('<div id="searchResultPanel" style="border:1px solid #C0C0C0;height:100px; display:none;"></div>');
+        $form->html(' <div class="fr">
+            <input name="map_x" type="hidden" id="x" value="'.subsite_config('aix.system.map.map.map_x').'">
+            <input name="map_y" type="hidden" id="y" value="'.subsite_config('aix.system.map.map.map_y').'">
+            <input name="map_zoom" type="hidden" id="zoom" value="'.subsite_config('aix.system.map.map.max_level').'">
+            <div class="form-control" style=height:380px;border:1px solid  #CCCCCC; cursor: pointer;" id="container"></div></div>', '地图标注')->setMustMark();
+
+        return $form;
+    }
+    public function store(Request $request){
+        $verify = $this->form()->getValidateInput();
+        $input = $request->post();
+        $verify['companys'] = implode(',',$verify['companys']);
+        $verify['map_x'] = $input['map_x'];
+        $verify['map_y'] = $input['map_y'];
+        $verify['map_zoom'] = $input['map_zoom'];
+
+        try {
+            JobfairsIc::create($verify);
+            DB::commit();
+        }catch (\Exception $e) {
+            DB::rollback();
+            return admin_toastr($e->getMessage(), 'error');
+        }
+    }
+
+    public function update($id,Request $request)
+    {
+        $verify = $this->form()->getValidateInput();
+        $input = $request->post();
+        $verify['companys'] = implode(',',$verify['companys']);
+        $verify['map_x'] = $input['map_x'];
+        $verify['map_y'] = $input['map_y'];
+        $verify['map_zoom'] = $input['map_zoom'];
+
+        try {
+            JobfairsIc::where('id',$id)->update($verify);
+            DB::commit();
+        }catch (\Exception $e) {
+            DB::rollback();
+            return admin_toastr($e->getMessage(), 'error');
+        }
+    }
+
+    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);
+    }
+
+    public function jobfairsAppointList(Content $content,Request $request)
+    {
+        $search_data = $request->all();
+
+        $where = [
+            ['pid', '=', $search_data['id']],
+        ];
+        foreach ($search_data as $k => $v) {
+            if ($k == 'realname') {
+                $where[] = [$k, 'like', "%$v%"];
+            } elseif (in_array($k, ['sex', 'education'])) {
+                $where[] = [$k, '=', $v];
+            }
+        }
+        $perpage = 20;
+        $list    = JobFairsIcAppoint::where($where)
+            ->orderBy('updated_at', 'desc')
+            ->paginate($perpage);
+
+        foreach ($list as $k => $v) {
+            if ($v->fresh == 1) {
+                $list[$k]['fresh'] = '是';
+            } else {
+                $list[$k]['fresh'] = '否';
+            }
+            if ($v->sex == 1) {
+                $list[$k]['sex'] = '男';
+            } else {
+                $list[$k]['sex'] = '女';
+            }
+            if ($v->status == 0) {
+                $list[$k]['status'] = '未下载';
+            } else {
+                $list[$k]['status'] = '已下载';
+            }
+            if (empty($v->attachment)) {
+                $list[$k]['is_attachment'] = '未上传';
+            } else {
+                $list[$k]['is_attachment'] = '已上传';
+            }
+        }
+
+        return $content
+            ->header('报名管理')
+            ->description('招聘会报名的人员信息管理')
+            ->body(view('admin.ic.jobfairs_appoint_list')->with([
+                'list'        => $list,
+                'search_data' => $search_data,
+            ]));
+    }
+
+    public function jobfairsAppointStatus(Request $request)
+    {
+        $info = JobFairsIcAppoint::where(['id' => $request->id])->first();
+        if ($info && $info->attachment) {
+            $info->status = 1;
+            $info->save();
+            return response()->json(['status' => 1, 'msg' => '跳转下载中!', 'data' => 'ok', 'url' => $info->attachment]);
+        } else {
+            return response()->json(['status' => 0, 'msg' => '用户未上传简历!', 'data' => 'fail']);
+        }
+        //return "/storage/recruit/word/" . $recruit->name_en . '/' .$appoint->audit .$word_url;
+    }
 }

+ 5 - 1
app/Admin/routes.php

@@ -523,6 +523,7 @@ Route::group([
         $router->post('qjwjStatus', 'IndexController@qjwjStatus')->name('Health.qjwjStatus');//下载简历
         $router->post('jyyxStatus', 'IndexController@jyyxStatus')->name('Health.jyyxStatus');//下载简历
         $router->post('postStatus', 'IndexController@postStatus')->name('Health.postStatus');//下载简历
+        $router->post('presentationStatus', 'IndexController@presentationStatus')->name('health.presentationStatus');//下载简历
     });
 
     $router->group([
@@ -530,6 +531,9 @@ Route::group([
         'namespace' =>  'Ic',
     ], function (Router $router){
         $router->get('post_appoint_list', 'IndexController@postInfoList')->name('ic.post_appoint_list');//就业意向人员信息列表
-        $router->post('postStatus', 'IndexController@postStatus')->name('Ic.postStatus');//下载简历
+        $router->post('postStatus', 'IndexController@postStatus')->name('ic.postStatus');//下载简历
+        $router->resource('jobfairs_list', IndexController::class)->names('ic');
+        $router->get('jobfairs_appoint_list', 'IndexController@jobfairsAppointList')->name('ic.jobfairs_appoint_list');//报名管理
+        $router->post('jobfairsAppointStatus', 'IndexController@jobfairsAppointStatus')->name('ic.jobfairsAppointStatus');//下载简历
     });
 });

+ 15 - 2
app/Http/Controllers/Mobile/Health/TeachController.php

@@ -52,8 +52,21 @@ class TeachController extends MobileBaseController
 
     public function save(PresentationAppointValidatorRequest $request)
     {
-        $field = ['pid', 'avatar', 'realname', 'sex', 'mobile', 'birthday', 'native_place', 'fresh', 'education', 'school', 'dep', 'pro_type', 'pro_text', 'attachment'];
-        $data  = $request->only($field);
+        $field = [
+            'pid'=>'招聘会场次',
+            'realname'=>'姓名',
+            'sex'=> '性别',
+            'mobile'=>'手机号',
+            'birthday'=>'出生年月',
+            'native_place'=>'籍贯',
+            'fresh'=>'是否应届',
+            'education'=>'学历',
+            'school'=>'学校',
+            'dep'=>'院系',
+            'pro_type'=>'专业',
+            'pro_text'=>'具体专业'
+        ];
+        $data  = $request->post();
         foreach ($field as $k => $v) {
             if (empty($data[$k])) {
                 return response()->json(['status' => 0, 'msg' => $v . '不能为空']);

+ 71 - 13
app/Http/Controllers/Mobile/Ic/TeachController.php

@@ -3,11 +3,15 @@
 namespace App\Http\Controllers\Mobile\Ic;
 
 use App\Http\Controllers\Mobile\MobileBaseController;
+use App\Models\Company;
+use App\Models\JobfairsIc;
+use App\Models\JobFairsIcAppoint;
 use App\Models\PresentationAppoint;
 use App\Repositories\CategoryMajorRepository;
 use App\Repositories\CategoryRepository;
 use App\Services\Common\CategoryService;
 use App\Validators\PresentationAppointValidatorRequest;
+use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Storage;
 use App\Repositories\CategoryDistrictRepository;
 
@@ -39,39 +43,93 @@ class TeachController extends MobileBaseController
         }
     }
 
-    public function list()
+    public function list(Request $request)
     {
+        $size = 5;
+        $list = JobfairsIc::where('display', 1)->orderBy('ordid', 'desc')->orderBy('id', 'desc')->paginate($size);
+
+        if ($list->total() > 0) {
+            foreach ($list as $v) {
+                $v['holddate_start_date'] = date('Y-m-d', strtotime($v['holddate_start']));
+                $v['holddate_start_time'] = date('H:i:s', strtotime($v['holddate_start']));
+                $v['holddate_end_date']   = date('Y-m-d', strtotime($v['holddate_end']));
+                $v['holddate_end_time']   = date('H:i:s', strtotime($v['holddate_end']));
+                $v['companys_arr']        = explode(',', $v['companys']);
+            }
+        }
+
+        $mobile_dropload = false;
+        if ($list->total() > $size) {
+            $mobile_dropload = true;
+        }
+        if ($request->ajax()) {
+            if ($list->lastPage() < $list->currentPage()) {
+                return response()->json(['status' => 0]);
+            }
+            return response()->json(['status' => 1, 'data' => view('mobile.app.ic.teach.ajax_list', ['list' => $list])->render()]);
+        }
+
         $return_data = [
-            'params'          => [],
-            'mobile_dropload' => true,
+            'list'            => $list,
+            'mobile_dropload' => $mobile_dropload,
             'current_url'     => \Illuminate\Support\Facades\Request::getRequestUri(),
         ];
-        return view('mobile.app.ic.teach.list',$return_data);
+        return view('mobile.app.ic.teach.list', $return_data);
     }
 
-    public function detail()
+    public function detail(Request $request)
     {
-        return view('mobile.app.ic.teach.detail');
+        $info = JobfairsIc::find($request->get('id'));
+        if (empty($info) || $info->display != 1) {
+            $back_url = \Illuminate\Support\Facades\URL::previous();
+            return $this->showMessage('招聘会不存在或已结束', $back_url, true, '上一页', '3');
+        }
+
+        $companys_arr = [];
+        if (!empty($info['companys'])) {
+            $companys = Company::whereIn('id', explode(',', $info['companys']))->get();
+            foreach ($companys as $company) {
+                $companys_arr[] = ['id' => $company->id, 'name' => $company->companyname];
+            }
+        }
+        $info['companys_arr'] = $companys_arr;
+
+        return view('mobile.app.ic.teach.detail', ['info' => $info]);
     }
 
-    public function index()
+    public function index(Request $request)
     {
-        $district          = $this->categoryService->getDefaultDistrict();
+        $district = $this->categoryService->getDefaultDistrict();
         return view('mobile.app.ic.teach.index', [
-            'defaultCity'       => $district->defaultCity,
+            'defaultCity' => $district->defaultCity,
+            'id' => $request->get('id'),
         ]);
     }
 
     public function save(PresentationAppointValidatorRequest $request)
     {
-        $field = ['pid', 'avatar', 'realname', 'sex', 'mobile', 'birthday', 'native_place', 'fresh', 'education', 'school', 'dep', 'pro_type', 'pro_text', 'attachment'];
-        $data  = $request->only($field);
+        $field = [
+            'pid'=>'招聘会场次',
+            'realname'=>'姓名',
+            'sex'=> '性别',
+            'mobile'=>'手机号',
+            'birthday'=>'出生年月',
+            'native_place'=>'籍贯',
+            'fresh'=>'是否应届',
+            'education'=>'学历',
+            'school'=>'学校',
+            'dep'=>'院系',
+            'pro_type'=>'专业',
+            'pro_text'=>'具体专业'
+        ];
+        $data  = $request->post();
         foreach ($field as $k => $v) {
             if (empty($data[$k])) {
+                dd($data,$k);
                 return response()->json(['status' => 0, 'msg' => $v . '不能为空']);
             }
         }
-        $check = PresentationAppoint::where('pid', $data['pid'])->where('mobile', $data['mobile'])->first();
+        $check = JobFairsIcAppoint::where('pid', $data['pid'])->where('mobile', $data['mobile'])->first();
         if (!empty($check)) {
             return response()->json(['status' => 0, 'msg' => '您已提交过,请勿重复提交']);
         }
@@ -97,7 +155,7 @@ class TeachController extends MobileBaseController
         $data['avatar']     = $data['avatar'] ?? '';
         $data['attachment'] = $data['attachment'] ?? '';
 
-        PresentationAppoint::create($data);
+        JobFairsIcAppoint::create($data);
         return response()->json(['status' => 1]);
     }
 }

+ 11 - 0
app/Models/Company.php

@@ -263,4 +263,15 @@ class Company extends User
         unset($arr['map_open']);
         return $arr;
     }
+
+    public static function icCompanys()
+    {
+
+        $fields = self::where(['is_ic' => 1])->orderBy('sort_index','asc')->select(['id', 'companyname'])->get();
+        $field = [];
+        foreach ($fields as $item) {
+            $field[$item->id] = $item->companyname;
+        }
+        return $field;
+    }
 }

+ 16 - 0
app/Models/JobFairsIcAppoint.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\SoftDeletes;
+
+
+class JobFairsIcAppoint extends Model
+{
+
+    use SoftDeletes;
+    protected $table = 'jobfairs_ic_appoint';
+    protected $guarded = [];
+
+}

+ 15 - 0
app/Models/JobfairsIc.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\SoftDeletes;
+
+
+class JobfairsIc extends Model
+{
+    use SoftDeletes;
+    protected $table = 'jobfairs_ic';
+    protected $guarded = [];
+
+}

+ 2 - 2
app/Services/Company/CompanyService.php

@@ -1253,8 +1253,8 @@ class CompanyService
             }
         }
         $company->hide = $hide;
-        $company->setmeal_id = $setmeal->setmeal_id;
-        $company->setmeal_name = $setmeal->setmeal_name;
+        $company->setmeal_id = $setmeal->setmeal_id ?? 0;
+        $company->setmeal_name = $setmeal->setmeal_name ?? '';
 
         //来源分站名称
         $subsites = Cache::get('subsites_list');

+ 8 - 8
public/themes/default/views/app/index.blade.php

@@ -217,15 +217,15 @@
 
 
                     @if(auth('web-member')->check())
-                        <a href="{{route('project')}}" class="link_item link5" target="_blank" rel="nofollow noopener noreferrer">
-                            <div class="link_bg"></div>
-                            <div class="link_txt">我要创业</div>
-                        </a>
+{{--                        <a href="{{route('project')}}" class="link_item link5" target="_blank" rel="nofollow noopener noreferrer">--}}
+{{--                            <div class="link_bg"></div>--}}
+{{--                            <div class="link_txt">我要创业</div>--}}
+{{--                        </a>--}}
                     @else
-                        <a href="javascript:;" class="link_item link5 apply_all">
-                            <div class="link_bg"></div>
-                            <div class="link_txt">我要创业</div>
-                        </a>
+{{--                        <a href="javascript:;" class="link_item link5 apply_all">--}}
+{{--                            <div class="link_bg"></div>--}}
+{{--                            <div class="link_txt">我要创业</div>--}}
+{{--                        </a>--}}
                     @endif
 
                     <a href="#talent_service" class="link_item link6">

+ 4 - 4
public/themes/default/views/mobile/app/health/teach/index.blade.php

@@ -26,7 +26,7 @@
                 <div class="n-tit-box">
                     宣讲会/招聘会
                 </div>
-                <div class="return js-back for-event" data-href="{{route('mobile.ic.index')}}"></div>
+                <div class="return js-back for-event" data-href="{{route('mobile.health.index')}}"></div>
             </div>
         </div>
     </div>
@@ -315,7 +315,7 @@
                 $.ajax({
                     headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
                     type: "POST",
-                    url: "{{ route('mobile.ic.teach.uploadHead') }}",
+                    url: "{{ route('mobile.health.teach.uploadHead') }}",
                     data: submitData,
                     dataType:"json",
                     success: function(result){
@@ -340,14 +340,14 @@
             var data = $(this).serialize();
             $.ajax({
                 headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
-                url: "{{ route('mobile.ic.teach.save') }}",
+                url: "{{ route('mobile.health.teach.save') }}",
                 type: 'POST',
                 dataType: 'json',
                 data: data,
                 success : function(result){
                     if (result.status == 1) {
                         alert('提交成功');
-                        location.href = "{{route('mobile.ic.index')}}";
+                        location.href = "{{route('mobile.health.index')}}";
                     } else {
                         qsToast({type:2,context: result.msg});
                     }

+ 96 - 49
public/themes/default/views/mobile/app/ic/index.blade.php

@@ -8,20 +8,52 @@
     <link href="{{ theme_asset('mobile/css/common.css') }}" rel="stylesheet">
     <link href="{{ theme_asset('mobile/css/jobs.css') }}" rel="stylesheet">
     <style>
-        .swiper-container,.swiper-container img{
+        .swiper-container, .swiper-container img {
             width: 100%;
         }
 
-        .nav-list {display:grid;grid-template-columns: 1fr 1fr;}
-        .nav-list .nav {width:85%;margin:10px auto; padding:20px 0;text-align: center;border-radius: 10px;color:white;text-decoration: none;}
-        .nav.purple {background: linear-gradient(135deg, #c850c0, #4158d0);}
-        .nav.blue {background: linear-gradient(135deg, #a1c4fd, #c2e9fb);}
-        .nav.red {background: linear-gradient(135deg, #ff9a9e, #fad0c4);}
-        .nav.yellow {background: linear-gradient(135deg, #f6d365, #fda085);}
-        .nav.green {background: linear-gradient(135deg, #a8e063, #56ab2f);}
-        .nav.black {background: linear-gradient(135deg, #292a3a, #536976);}
+        .nav-list {
+            display: grid;
+            grid-template-columns: 1fr 1fr;
+        }
+
+        .nav-list .nav {
+            width: 85%;
+            margin: 10px auto;
+            padding: 20px 0;
+            text-align: center;
+            border-radius: 10px;
+            color: white;
+            text-decoration: none;
+        }
+
+        .nav.purple {
+            background: linear-gradient(135deg, #c850c0, #4158d0);
+        }
+
+        .nav.blue {
+            background: linear-gradient(135deg, #a1c4fd, #c2e9fb);
+        }
+
+        .nav.red {
+            background: linear-gradient(135deg, #ff9a9e, #fad0c4);
+        }
+
+        .nav.yellow {
+            background: linear-gradient(135deg, #f6d365, #fda085);
+        }
+
+        .nav.green {
+            background: linear-gradient(135deg, #a8e063, #56ab2f);
+        }
 
-        /*.module-title .module-title-nav {width: 33%;}*/
+        .nav.black {
+            background: linear-gradient(135deg, #292a3a, #536976);
+        }
+
+        .module-title .module-title-nav {
+            width: 33%;
+        }
     </style>
     <link href="{{ theme_asset('app/css/swiper.min.css') }}" rel="stylesheet">
 @endpush
@@ -31,7 +63,7 @@
 @endpush
 
 @section('content')
-{{--    头部--}}
+    {{--    头部--}}
     <div class="headernavfixed">
         <div class="headernav font18">
             <div class="title">
@@ -41,7 +73,7 @@
             </div>
         </div>
     </div>
-{{--轮播图--}}
+    {{--轮播图--}}
     <div class="swiper-container">
         <div class="swiper-wrapper">
             <div class="swiper-slide">
@@ -49,25 +81,25 @@
             </div>
         </div>
     </div>
-{{--    导航按钮--}}
-{{--    <div class="nav-list">--}}
-{{--        <a href="{{route('mobile.ic.jinjiang')}}" class="nav blue">认识晋江</a>--}}
-{{--        <a href="{{route('mobile.ic.hospital.index')}}" class="nav red">园区概况</a>--}}
-{{--        <a href="{{route('mobile.ic.recruit.list')}}" class="nav yellow">招聘列表</a>--}}
-{{--        <a href="{{route('mobile.ic.teach.index')}}" class="nav purple">宣讲会/招聘会报名</a>--}}
-{{--        <a href="https://rcmap.jucai.gov.cn/mobile/pages/policy/search" class="nav green">人才服务</a>--}}
-{{--        <a href="https://lw_test.jinjianghc.com/mobile/jfm/policy1.html?type=3" class="nav black">人才政策</a>--}}
-{{--    </div>--}}
-
-<!--新闻-->
-<div class="module" style="margin-top:0;">
-    <div class="module-title font14">
-        <a href="javascript:;" class="module-title-nav font14 active f-left" data-id="recruit">招聘列表</a>
-        <a href="javascript:;" class="module-title-nav font14 f-left" data-id="emergency">引才资讯</a>
-{{--        <a href="javascript:;" class="module-title-nav font14 f-left" data-id="teach">招聘会</a>--}}
-        <div class="clear"></div>
-    </div>
-    <div class="module-box" id="recruit">
+    {{--    导航按钮--}}
+    {{--    <div class="nav-list">--}}
+    {{--        <a href="{{route('mobile.ic.jinjiang')}}" class="nav blue">认识晋江</a>--}}
+    {{--        <a href="{{route('mobile.ic.hospital.index')}}" class="nav red">园区概况</a>--}}
+    {{--        <a href="{{route('mobile.ic.recruit.list')}}" class="nav yellow">招聘列表</a>--}}
+    {{--        <a href="{{route('mobile.ic.teach.index')}}" class="nav purple">宣讲会/招聘会报名</a>--}}
+    {{--        <a href="https://rcmap.jucai.gov.cn/mobile/pages/policy/search" class="nav green">人才服务</a>--}}
+    {{--        <a href="https://lw_test.jinjianghc.com/mobile/jfm/policy1.html?type=3" class="nav black">人才政策</a>--}}
+    {{--    </div>--}}
+
+    <!--新闻-->
+    <div class="module" style="margin-top:0;">
+        <div class="module-title font14">
+            <a href="javascript:;" class="module-title-nav font14 active f-left" data-id="recruit">招聘列表</a>
+            <a href="javascript:;" class="module-title-nav font14 f-left" data-id="emergency">人才政策</a>
+            <a href="javascript:;" class="module-title-nav font14 f-left" data-id="teach">招聘会</a>
+            <div class="clear"></div>
+        </div>
+        <div class="module-box" id="recruit">
             @foreach($recruit_list as $key => $val)
                 <a href="{{route("mobile.ic.recruit.show", ["id"=>$val->id])}}">
                     <div class="job-list-item for-event">
@@ -117,38 +149,53 @@
                     <div class="list-split-block"></div>
                 </a>
             @endforeach
-            <div onclick="window.location='{{route("mobile.ic.recruit.list")}}';" style="text-align:center;height:.8rem;line-height:.8rem;background:#fff;">查看更多</div>
-    </div>
-    <div class="mobile_index_news module-box" id="emergency" style="display: none;">
-        <ul>
-            <li>
+            <div onclick="window.location='{{route("mobile.ic.recruit.list")}}';"
+                 style="text-align:center;height:.8rem;line-height:.8rem;background:#fff;">查看更多
+            </div>
+        </div>
+        <div class="mobile_index_news module-box" id="emergency" style="display: none;">
+            <ul>
+                <li>
+                    <div onclick="window.location='https://rcmap.jucai.gov.cn/mobile/pages/policy/index';"
+                         style="text-align:center;height:.8rem;line-height:.8rem;background:#fff;">人才政策计算器
+                    </div>
+                </li>
                 @foreach($attract_list as $v)
-                    @if(empty($v['is_url']))
-                        <a href="{{route("mobile.ic.attract.show")}}?id={{$v['id']}}" rel="nofollow noopener noreferrer"><b>&gt;</b>{{cut_str($v['title'], 15, 0, '...')}}<span class="jc_rt">{{date('Y-m-d',strtotime($v['created_at']))}}</span></a>
-                    @else
-                        <a href="{{$v['is_url']}}" rel="nofollow noopener noreferrer"><b>&gt;</b>{{cut_str($v['title'], 15, 0, '...')}}<span class="jc_rt">{{date('Y-m-d',strtotime($v['created_at']))}}</span></a>
-                    @endif
+                    <li>
+                        @if(empty($v['is_url']))
+                            <a href="{{route("mobile.ic.attract.show")}}?id={{$v['id']}}"
+                               rel="nofollow noopener noreferrer"><b>&gt;</b>{{cut_str($v['title'], 15, 0, '...')}}<span
+                                        class="jc_rt">{{date('Y-m-d',strtotime($v['created_at']))}}</span></a>
+                        @else
+                            <a href="{{$v['is_url']}}"
+                               rel="nofollow noopener noreferrer"><b>&gt;</b>{{cut_str($v['title'], 15, 0, '...')}}<span
+                                        class="jc_rt">{{date('Y-m-d',strtotime($v['created_at']))}}</span></a>
+                        @endif
+                    </li>
                 @endforeach
-            </li>
-        <div onclick="window.location='{{route("mobile.ic.attract.index")}}';" style="text-align:center;height:.8rem;line-height:.8rem;background:#fff;">查看更多</div>
-        </ul>
+                <li>
+                    <div onclick="window.location='{{route("mobile.ic.attract.index")}}';"
+                         style="text-align:center;height:.8rem;line-height:.8rem;background:#fff;">查看更多人才政策
+                    </div>
+                </li>
+            </ul>
+        </div>
     </div>
-</div>
-<!--新闻 end-->
+    <!--新闻 end-->
 @endsection
 
 @section('script')
-{{--    <script type="text/javascript" src="{{theme_asset('app/js/swiper.min.js')}}"></script>--}}
+    {{--    <script type="text/javascript" src="{{theme_asset('app/js/swiper.min.js')}}"></script>--}}
     <script>
 
         //    初始化SWiper
         // var mySwiper = new Swiper('.swiper-container',{
         //     autoplay:3000,
         // });
-        $('.module-title-nav').click(function() {
+        $('.module-title-nav').click(function () {
             let id = $(this).data('id');
             if (id == "teach") {
-                location.href = "{{route("mobile.ic.teach.index")}}";
+                location.href = "{{route("mobile.ic.teach.list")}}";
             } else {
                 $('.module-title-nav').removeClass('active');
                 $(this).addClass('active');

+ 36 - 0
public/themes/default/views/mobile/app/ic/teach/ajax_list.blade.php

@@ -0,0 +1,36 @@
+@if($list)
+    @foreach($list as $key => $val)
+        @if($val->url)
+            <a href="{{$val->url}}">
+        @else
+            <a href="{{route("mobile.ic.teach.detail",["id"=>$val->id])}}">
+        @endif
+            <div class="jobfair-list-item">
+                <div class="title">{{$val->title}}</div>
+                <div class="tags">
+                    <div class="tag blue">企业{{count($val->companys_arr)}}家</div>
+                    @if($val->need_num > 0)
+                        <div class="tag orange">需{{$val->need_num}}人</div>
+                    @endif
+                </div>
+                <div class="time">
+                    <div class="time-box">
+                        <div class="time-date">{{$val->holddate_start_date}}</div>
+                        <div class="time-clock">{{$val->holddate_start_time}}</div>
+                    </div>
+                    <div class="time-line"></div>
+                    <div class="time-box">
+                        <div class="time-date">{{$val->holddate_end_date}}</div>
+                        <div class="time-clock">{{$val->holddate_end_time}}</div>
+                    </div>
+                </div>
+                <div class="address">
+                    {{$val->address}}
+                </div>
+            </div>
+        </a>
+    @endforeach
+@else
+    <div class="list-split-block"></div>
+    <div class="list-empty link_blue">抱歉,暂时没有招聘会!</div>
+@endif

+ 31 - 24
public/themes/default/views/mobile/app/ic/teach/detail.blade.php

@@ -27,13 +27,13 @@
     </div>
     <div class="jobsshowtop">
         <div class="jobsname">
-            <div class="td-j-name substring  font18">2025年集成电路人才峰会线下招聘会</div>
+            <div class="td-j-name substring  font18">{{$info->title}}</div>
             <div class="clear"></div>
         </div>
-        <div class="wage font14">需224人</div>
+        <div class="wage font14">需{{$info->need_num}}人</div>
         <div class="origin font10"></div>
         <div class="clear"></div>
-        <div class="city font12">2025-03-01 08:00:00 至 2025-03-15 18:00:00</div>
+        <div class="city font12">{{$info->holddate_start}} 至 {{$info->holddate_end}}</div>
     </div>
 
     <div class="split-block"></div>
@@ -43,10 +43,10 @@
             联系方式
         </div>
 
-        <div class="mob"> 133XXXXXXXX</div>
+        <div class="mob" data-mobile="{{$info->phone}}"> {{$info->phone}}</div>
 
-        <div class="map link_blue">
-            福建省泉州市晋江市福建省泉州市晋江市福建省泉州市晋江市福建省泉州市晋江市
+        <div class="map link_blue" data-x="{{$info->map_x}}" data-y="{{$info->map_y}}" data-name="{{$info->address}}">
+            {{$info->address}}
         </div>
     </div>
 
@@ -55,20 +55,18 @@
     <div class="jobsshowsdes">
         <div class="eattitle list_height">招聘会信息</div>
         <div class="txt">
-            这里是招聘会介绍的信息这里是招聘会介绍的信息这里是招聘会介绍的信息这里是招聘会介绍的信息这里是招聘会介绍的信息这里是招聘会介绍的信息这里是招聘会介绍的信息
+            {!! $info->jobfair_introduction !!}
         </div>
     </div>
 
     <div class="split-block"></div>
 
     <div class="jobsshowsdes">
-        <div class="eattitle list_height">参会企业(50家)</div>
+        <div class="eattitle list_height">参会企业({{count($info->companys_arr)}}家)</div>
         <div class="txt">
-            <p>1.福建省晋华集成电路有限公司</p>
-            <p>2.胜科纳米有限公司</p>
-            <p>3.福建省良颐科技有限公司</p>
-            <p>4.矽品封装测试有限公司</p>
-            <p>5.美国空气化工</p>
+            @foreach($info->companys_arr as $k => $v)
+                <p class="company" data-id="{{$v['id']}}">{{$k + 1}}.{{$v['name']}}</p>
+            @endforeach
         </div>
     </div>
 
@@ -89,16 +87,6 @@
     <div class="alw-layer"></div>
     <div class="alw-wx-layer"></div>
 
-    <script id="tpl-map" type="text/html">
-        <div class="com-map">
-            <div class="map" id="container"></div>
-        </div>
-        <div class="split-block"></div>
-        <div class="btn-spacing">
-            <div id="mapBtn" class="qs-btn qs-btn-blue font18" title="返回">返回</div>
-        </div>
-    </script>
-
     <script type="text/javascript" src="{{theme_asset('mobile/js/popWin.js')}}"></script>
     <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak={{subsite_config('aix.system.map.map.map_ak')}}&s=1"></script>
     <script type="text/javascript" charset="utf-8" src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
@@ -127,7 +115,26 @@
     }
 
     $('.apply_jobs').click(function(){
-        location.href = "{{route('mobile.ic.teach.index')}}"
+        location.href = "{{route('mobile.ic.teach.index')}}?id={{$info->id}}"
+    });
+
+    $('.mob').click(function() {
+        let mobile = $(this).data('mobile');
+        location.href = 'tel:' + mobile;
+    })
+
+    $('.map').click(function() {
+        let x = $(this).data('x');
+        let y = $(this).data('y');
+        let name = $(this).data('name');
+        if (x) {
+            location.href = `https://api.map.baidu.com/marker?location=${y},${x}&title=${name}&output=html`;
+        }
+    })
+
+    $('.company').click(function() {
+        let id = $(this).data('id');
+        location.href = "{{route('mobile.ic.hospital.show')}}?id=" + id;
     });
 </script>
 @endsection

+ 1 - 0
public/themes/default/views/mobile/app/ic/teach/index.blade.php

@@ -32,6 +32,7 @@
     </div>
 
     <form action="" id="form">
+        <input type="hidden" name="pid" value="{{$id}}">
         <div class="list_height plist-txt qs-relative">
             <div class="pic"></div>
             <div class="tit font14">照片<span class="font_red_light">*</span></div>

+ 4 - 57
public/themes/default/views/mobile/app/ic/teach/list.blade.php

@@ -44,50 +44,7 @@
     {{--列表--}}
     <div class="drop_content">
         <div class="add_data">
-            <a href="{{route("mobile.ic.teach.detail")}}">
-                <div class="jobfair-list-item">
-                    <div class="title">2025年集成电路人才峰会线下招聘会</div>
-                    <div class="tags">
-                        <div class="tag blue">企业50家</div>
-                        <div class="tag orange">需231人</div>
-                    </div>
-                    <div class="time">
-                        <div class="time-box">
-                            <div class="time-date">2025-03-01</div>
-                            <div class="time-clock">08:00:00</div>
-                        </div>
-                        <div class="time-line"></div>
-                        <div class="time-box">
-                            <div class="time-date">2025-03-15</div>
-                            <div class="time-clock">18:00:00</div>
-                        </div>
-                    </div>
-                    <div class="address">
-                        福建省泉州市晋江市福建省泉州市晋江市福建省泉州市晋江市福建省泉州市晋江市
-                    </div>
-                </div>
-                <div class="jobfair-list-item">
-                    <div class="title">2025年集成电路人才峰会线下招聘会</div>
-                    <div class="tags">
-                        <div class="tag blue">企业50家</div>
-                        <div class="tag orange">需231人</div>
-                    </div>
-                    <div class="time">
-                        <div class="time-box">
-                            <div class="time-date">2025-03-01</div>
-                            <div class="time-clock">08:00:00</div>
-                        </div>
-                        <div class="time-line"></div>
-                        <div class="time-box">
-                            <div class="time-date">2025-03-15</div>
-                            <div class="time-clock">18:00:00</div>
-                        </div>
-                    </div>
-                    <div class="address">
-                        福建省泉州市晋江市福建省泉州市晋江市福建省泉州市晋江市福建省泉州市晋江市
-                    </div>
-                </div>
-            </a>
+            @include('mobile.app.ic.teach.ajax_list')
         </div>
     </div>
 
@@ -98,7 +55,7 @@
 @section('script')
     <script>
 
-        /*$(function(){
+        $(function(){
             var page = 1;
             $('.drop_content').dropload({
                 scrollArea : window,
@@ -116,12 +73,7 @@
                 },
                 loadUpFn : function(me){
                     page = 1;
-                    @if($params)
-                        var mobile_url ='{{ url($current_url) }}&page='+page;
-                    @else
-                        var mobile_url ='{{ url($current_url) }}?page='+page;
-                    @endif
-                    mobile_url = mobile_url.replace(/&amp;/g,"&");
+                    var mobile_url ='{{ url($current_url) }}?page='+page;
                     $.ajax({
                         type: 'GET',
                         url: mobile_url,
@@ -143,12 +95,7 @@
                 @if($mobile_dropload)
                 loadDownFn : function(me){
                     page++;
-                    @if($params)
-                    var mobile_url ='{{ url($current_url) }}&page='+page;
-                    @else
                     var mobile_url ='{{ url($current_url) }}?page='+page;
-                    @endif
-                    mobile_url = mobile_url.replace(/&amp;/g,"&");
                     $.ajax({
                         type: 'GET',
                         url: mobile_url,
@@ -170,6 +117,6 @@
                 @endif
                 threshold : 50
             });
-        });*/
+        });
     </script>
 @endsection

+ 9 - 10
resources/views/admin/health/appoint_list.blade.php

@@ -39,16 +39,15 @@
                                 <div style="float: left;width: 150px;">
                                     <select class="form-control" name="education" id="education">
                                         <option value=''>不限</option>
-                                        <option value='小学' @if(array_key_exists('education',$search_data) && $search_data['education'] == '小学') selected @endif>小学</option>
-                                        <option value='初中' @if(array_key_exists('education',$search_data) && $search_data['education'] == '初中') selected @endif>初中</option>
-                                        <option value='技校' @if(array_key_exists('education',$search_data) && $search_data['education'] == '技校') selected @endif>技校</option>
-                                        <option value='职高' @if(array_key_exists('education',$search_data) && $search_data['education'] == '职高') selected @endif>职高</option>
-                                        <option value='高中' @if(array_key_exists('education',$search_data) && $search_data['education'] == '高中') selected @endif>高中</option>
-                                        <option value='中专' @if(array_key_exists('education',$search_data) && $search_data['education'] == '中专') selected @endif>中专</option>
-                                        <option value='专科' @if(array_key_exists('education',$search_data) && $search_data['education'] == '专科') selected @endif>专科</option>
-                                        <option value='本科' @if(array_key_exists('education',$search_data) && $search_data['education'] == '本科') selected @endif>本科</option>
-                                        <option value='硕士' @if(array_key_exists('education',$search_data) && $search_data['education'] == '硕士') selected @endif>硕士</option>
-                                        <option value='博士' @if(array_key_exists('education',$search_data) && $search_data['education'] == '博士') selected @endif>博士</option>
+                                        <option value='65' @if(array_key_exists('education',$search_data) && $search_data['education'] == 65) selected @endif>初中</option>
+                                        <option value='66' @if(array_key_exists('education',$search_data) && $search_data['education'] == 66) selected @endif>高中</option>
+                                        <option value='67' @if(array_key_exists('education',$search_data) && $search_data['education'] == 67) selected @endif>中技</option>
+                                        <option value='68' @if(array_key_exists('education',$search_data) && $search_data['education'] == 68) selected @endif>中专</option>
+                                        <option value='69' @if(array_key_exists('education',$search_data) && $search_data['education'] == 69) selected @endif>大专</option>
+                                        <option value='70' @if(array_key_exists('education',$search_data) && $search_data['education'] == 70) selected @endif>本科</option>
+                                        <option value='71' @if(array_key_exists('education',$search_data) && $search_data['education'] == 71) selected @endif>硕士</option>
+                                        <option value='72' @if(array_key_exists('education',$search_data) && $search_data['education'] == 72) selected @endif>博士</option>
+                                        <option value='73' @if(array_key_exists('education',$search_data) && $search_data['education'] == 73) selected @endif>博士后</option>
                                     </select>
                                 </div>
                             </div>

+ 416 - 0
resources/views/admin/health/presentation_appoint_list.blade.php

@@ -0,0 +1,416 @@
+<section class="content">
+    <div class="row">
+        <div class="col-md-12">
+            <div class="box">
+                {{ csrf_field() }}
+                <div class="box-body table-responsive">
+                    <div class="col-md-3 clearfix">
+                        <div class="box-body table-responsive" style="padding:5px;">
+                            <div class="form-group clearfix" style="margin-bottom:0;">
+                                <label for="prefix" class="control-label">性别:</label>
+                                <div style="float: left;width: 150px;">
+                                    <select class="form-control" name="sex" id="sex">
+                                        <option value=''>不限</option>
+                                        <option value='2' @if(array_key_exists('sex',$search_data) && $search_data['sex'] == '2') selected @endif>女</option>
+                                        <option value='1' @if(array_key_exists('sex',$search_data) && $search_data['sex'] == '1') selected @endif>男</option>
+                                    </select>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="col-md-3 clearfix">
+                        <div class="box-body table-responsive" style="padding:5px;">
+                            <div class="form-group clearfix" style="margin-bottom:0;">
+                                <label for="prefix" class="control-label">学历:</label>
+                                <div style="float: left;width: 150px;">
+                                    <select class="form-control" name="education" id="education">
+                                        <option value=''>不限</option>
+                                        <option value='初中' @if(array_key_exists('education',$search_data) && $search_data['education'] == 65) selected @endif>初中</option>
+                                        <option value='高中' @if(array_key_exists('education',$search_data) && $search_data['education'] == 66) selected @endif>高中</option>
+                                        <option value='中技' @if(array_key_exists('education',$search_data) && $search_data['education'] == 67) selected @endif>中技</option>
+                                        <option value='中专' @if(array_key_exists('education',$search_data) && $search_data['education'] == 68) selected @endif>中专</option>
+                                        <option value='大专' @if(array_key_exists('education',$search_data) && $search_data['education'] == 69) selected @endif>大专</option>
+                                        <option value='本科' @if(array_key_exists('education',$search_data) && $search_data['education'] == 70) selected @endif>本科</option>
+                                        <option value='硕士' @if(array_key_exists('education',$search_data) && $search_data['education'] == 71) selected @endif>硕士</option>
+                                        <option value='博士' @if(array_key_exists('education',$search_data) && $search_data['education'] == 72) selected @endif>博士</option>
+                                        <option value='博士后' @if(array_key_exists('education',$search_data) && $search_data['education'] == 73) selected @endif>博士后</option>
+                                    </select>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="col-md-3 clearfix">
+                        <div class="box-body table-responsive" style="padding:5px;">
+                            <div class="form-group clearfix" style="margin-bottom:0;">
+                                <label for="prefix" class="control-label">精确查询:</label>
+                                <div style="float: left;width: 150px;">
+                                    <input type="text" class="form-control" name="realname" id="realname" placeholder="请输入姓名" @if(array_key_exists('realname',$search_data)) value="{{$search_data['realname']}}" @endif>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="box-footer">
+                    <div class="btn-group" style="margin-left: 440px;">
+                        <button type="button" class="btn btn-info  btn-primary js-search" data-type="1"><i class="fa fa-search">搜索</i></button>
+                    </div>
+                </div>
+
+                <div class="box-body table-responsive">
+                    <div class="col-md-12">
+                        <div class="box-header with-border">
+                            <h3 class="box-title">查询结果</h3>
+                        </div>
+                        <div class="box-body table-responsive no-padding">
+                            <table class="table table-hover">
+                                <thead>
+                                <tr>
+                                    <th height="26" class="admin_list_tit">
+                                        <input type="checkbox" name=" " title="全选/反选" id="chk" />
+                                    </th>
+                                    <th>头像</th>
+                                    <th>基础资料</th>
+                                    <th>电话</th>
+                                    <th>是否上传简历</th>
+                                    <th>下载状态</th>
+                                    <th>操作</th>
+                                </tr>
+                                </thead>
+                                <tbody>
+                                @if(isset($list) && $list->total())
+                                    @foreach($list as $k=>$v)
+                                        <tr>
+                                            <td>
+                                                <input ls="{{$v->id}}" name="id[]" id="appointinfo_{{$v->id}}" type="checkbox" value="{{$v->id}}" />
+                                            </td>
+                                            <td>
+                                                <span class="vtip" title='<img  @if($v->avatar) src="{{$v->avatar}}" @else src="/data/upload/resource/no_photo_male.png" @endif>'  height=120>
+                                                <img style="width: 30px; height: 30px;" @if($v->avatar) src="{{$v->avatar}}" @else src="/data/upload/resource/no_photo_male.png" @endif></span>
+                                            </td>
+                                            <td>
+                                                <span style="color: #0A246A; margin-right: 3px;">{!! $v->realname !!}</span>
+                                                <span style="color: #0A246A; margin-right: 3px;">{{$v->sex}}</span>
+                                                <span style="color:#be7707; margin-right: 3px;">{{$v->birthday}}</span>
+                                                <span style="color:#0A7CF7; margin-right: 3px;">{{$v->education}}</span>
+                                                <span style="color:#0F73AC; margin-right: 3px;">{{$v->native_place}}</span>
+                                            </td>
+                                            <td>
+                                                {{ $v->mobile }}
+                                            </td>
+                                            <td>{!! $v->is_attachment !!}</td>
+                                            <td>{!! $v->status !!}</td>
+                                            <td>
+
+                                                <button class='btn btn-primary btn-xs fetch_word' data-aid="{{$v->id}}" style="margin-bottom: 10px">下载简历</button>
+
+                                            </td>
+                                        </tr>
+                                    @endforeach
+                                @else
+                                    <tr>
+                                        <td colspan="11">
+                                            <div class="list_empty_group">
+                                                <div class="list_empty">
+                                                    <div class="list_empty_left"></div>
+                                                    <div class="list_empty_right">
+                                                        <div class="sorry_box">对不起,暂无相关信息!</div>
+                                                    </div>
+                                                    <div class="clear"></div>
+                                                </div>
+                                            </div>
+                                        </td>
+                                    </tr>
+                                @endif
+                                </tbody>
+                            </table>
+                        </div>
+
+                        @if(isset($list))
+                            {{ $list->appends($search_data)->links('module.widgets.pagination') }}
+                        @endif
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </div>
+</section>
+<script type="text/javascript" src="{{ theme_asset('app/js/jquery.disappear.tooltip.js') }}"></script>
+<script type="text/javascript" src="{{ theme_asset('app/js/jquery.modal.userselectlayer.js') }}"></script>
+<script type="text/javascript" src="{{ theme_asset('app/js/jquery.user.city.js') }}"></script>
+<script type="text/javascript" src="{{ theme_asset('app/js/jquery.modal.dialog.js') }}"></script>
+<script>
+    //图片预览
+    this.vtip = function() {
+        this.xOffset = -10; // x distance from mouse
+        this.yOffset = 15; // y distance from mouse
+        $(".vtip").unbind().hover(
+            function(e) {
+                this.t = $(this).attr("title");
+                this.title = '';
+                this.top = (e.pageY + yOffset);
+                this.left = (e.pageX + xOffset);
+                $('body').css("cursor","help");
+                $('p#vtip').width()>450?$('p#vtip').width(450):'';
+                $('body').append( '<p id="vtip">' + this.t + '</p>' );
+                $('p#vtip').css("top", this.top+"px").css("left", this.left+"px").fadeIn(0);
+            },
+            function() {
+                this.title = this.t;
+                $('body').css("cursor","");
+                $("p#vtip").fadeOut("slow").remove();
+            }
+        ).mousemove(
+            function(e) {
+                this.top = (e.pageY + yOffset);
+                this.left = (e.pageX + xOffset);
+                $("p#vtip").css("top", this.top+"px").css("left", this.left+"px");
+            }
+        );
+
+    };
+    //提交数组整理
+    this.show = function(type = 0){
+        var id_array = new Array();
+        if(type == 0){
+            $('input[name="id\[\]"]:checked').each(function() {
+                id_array.push($(this).val()); //向数组中添加元素
+            });
+        }else{
+            id_array.push($("#appointinfo_"+type).val());
+        }
+        if (id_array.length == 0) {
+            disapperTooltip('remind', '请选择用户');
+            return false;
+        } else {
+            var idstr = id_array.join(','); //将数组元素连接起来以构建一个字符串
+            if (idstr == '' || idstr == null) {
+                idstr = 0;
+            }
+            return idstr;
+        }
+    }
+
+
+
+    $(document).ready(function() {
+        vtip();
+        $(document).off("click",'.appoint_audit').on('click','.appoint_audit',function () {
+            appointAudit($(this).data('param'));
+        });
+        $(document).off("click",'.supplement').on('click','.supplement',function () {
+            supplement($(this).data('param'));
+        });
+        $(document).off("click",'.health').on('click','.health',function () {
+            health($(this).data('param'),$(this).data("type"));
+        });
+        $(document).off("click",'.fetch_word').on('click','.fetch_word',function () {
+            var appoint_id = $(this).attr('data-aid');
+
+            var qsDialog = $(this).dialog({
+                title: 'word简历下载',
+                loading: true,
+                showFooter: false,
+                yes: function() {
+                    $('.J_btnyes').val('发送中...');
+                    $.post("{{ route('health.presentationStatus') }}", {_token:'{{ csrf_token() }}',id:appoint_id}, function(result) {
+                        if (result.status == 1) {
+                            disapperTooltip('success', result.msg);
+                            window.location.href = result.url;
+                            setTimeout(function() {
+                                $.pjax.reload('#pjax-container');
+                                qsDialog.hide(true);
+                            }, 2000);
+                        } else {
+                            $('.J_btnyes').val('确定');
+                            disapperTooltip('remind', result.msg);
+                        }
+                    }, 'json');
+                }
+            });
+            qsDialog.setCloseDialog(false);
+            qsDialog.setContent("即将下载简历,请确认?");
+            qsDialog.showFooter(true);
+        });
+        $("#ButtonAudit").click(function() {
+            appointAudit(0)
+        })
+        /*查看人员信息*/
+        $('.ButCompared').click(function() {
+            var qsDialog = $(this).dialog({
+                title: '查看报名信息',
+                loading: true,
+                footer: false
+            });
+            var param = $(this).data('param');
+            var url = $(this).data('url') + "?id=" + param;
+            $.getJSON(url, function(result) {
+                qsDialog.setContent('<div style="max-height:600px;overflow-y:auto;">' + result.data + '<\/div>');
+            });
+        });
+
+
+    });
+
+    /*查看日志信息*/
+    $('.ButExamineLog').click(function() {
+        var qsDialog = $(this).dialog({
+            title: '查看审核信息',
+            loading: true,
+            footer: false
+        });
+        var param = $(this).data('param');
+        var url = $(this).data('url') + "?id=" + param;
+        $.getJSON(url, function(result) {
+            qsDialog.setContent('<div style="max-height:600px;overflow-y:auto;">' + result.data + '<\/div>');
+        });
+    });
+
+    $('.js-search').click(function() {
+        var realname = $.trim($('#realname').val());
+        var sex = $.trim($("#sex").val());
+        var education = $.trim($("#education").val());
+        var parm = [`id=${ {{ $search_data['id'] }} }`];
+        if (realname) {
+            parm.push(`realname=${realname}`);
+        }
+        if(sex){
+            parm.push(`sex=${sex}`);
+        }
+        if(education){
+            parm.push(`education=${education}`);
+        }
+        if (parm.length == 0) {
+            window.location = "{{ url('/ST3IXxKlOa4eGEv0eTw0CfORI9444Mgj/health/presentation_appoint_list')}}";
+        } else {
+            window.location = "{{ url('/ST3IXxKlOa4eGEv0eTw0CfORI9444Mgj/health/presentation_appoint_list')}}?" + parm.join('&');
+        }
+    });
+
+
+
+
+
+    //提交准考证
+    $("#build").click(function() {
+
+        $("form[name=form1]").attr("action", "{:U('buildcard')}" + "&recruit_id=" + recruit_ids +
+            "&time=" + time + "&audits=" + audits + "&times=" + times + "&home=" + home + "&address=" + address + "&expand=" + expand);
+        $("form[name=form1]").submit();
+    });
+    //撤销准考证
+    $("#del_ticket").click(function() {
+        var ticket_id = $("input[name='ticket_id']:checked").val();
+        var r_id = $("input[name='r_id']").val();
+        $("form[name=form1]").attr("action", "{:U('delcard')}" + "&ticket_id=" + ticket_id + "&r_id=" + r_id);
+        $("form[name=form1]").submit();
+    });
+
+
+    /*全选*/
+    $("#chk").click(function() {
+        if (this.checked == false) {
+            // console.log("反选")
+            $("td :checkbox").prop("checked", false);
+        }
+        if (this.checked == true) {
+            // console.log("全选")
+            $("td :checkbox").prop("checked", true);
+        }
+    })
+
+    //子复选框有一个未选中时,去掉全选按钮的选中状态
+    $("td :checkbox").click(function() {
+        var allCheckNum = $("td input[type='checkbox']").length;
+        var checkedNum = $("td input[type='checkbox']:checked").length;
+        if (checkedNum == allCheckNum) {
+            // console.log("全选");
+            document.getElementById("chk").checked = true;
+        } else {
+            // console.log("反选");
+            document.getElementById("chk").checked = false;
+        }
+    })
+</script>
+<link href="{{ theme_asset('app/css/person/common.css') }}" rel="stylesheet">
+<style type="text/css">
+    p#vtip { display: none; position: absolute; padding: 10px; left: 5px; font-size: 0.8em; background-color: white; border: 1px solid #a6c9e2; -moz-border-radius: 5px; -webkit-border-radius: 5px; z-index: 9999 }
+    p#vtip img{width: 200px}
+    /*body{min-width: 1680px;overflow: auto;}*/
+    .clearfix:after {
+        display: block;
+        clear: both;
+        content: "";
+        visibility: hidden;
+        height: 0;
+    }
+
+    .clearfix {
+        zoom: 1;
+        /*为了兼容IE*/
+    }
+
+    .box .box-body {
+        position: relative;
+    }
+
+    .box .form-group label {
+        float: left;
+        width: 120px;
+        line-height: 34px;
+        text-align: right;
+    }
+
+    .box .input-group {
+        width: 360px;
+    }
+
+    .list_empty_group {
+        text-align: center;
+        line-height: 80px;
+        color: #404446;
+        font-size: 22px;
+    }
+
+    .jobslist_table .li-table-btn {
+        width: 120px;
+        height: 50px;
+        line-height: 50px;
+    }
+
+    .modal {
+        display: block;
+        position: static;
+    }
+
+    .qs-category-unlimited .selected-group .selected-box .s-cell {
+        width: 112px;
+    }
+
+    .qs-category-unlimited .cate-type .dd {
+        margin: 0px;
+        font-size: 14px;
+    }
+
+    .qs-category-unlimited .cate-type .one-select label {
+        display: block;
+        margin: 0px;
+        width: 110px;
+    }
+
+    .qs-category-unlimited .cate-type .one-select .check-box {
+        margin: 0px;
+    }
+
+    .modal_body_box .list_nav1 li label {
+        margin-bottom: 0px;
+    }
+
+    .disappear_tooltip .content {
+        min-height: auto;
+        padding: 0px;
+        padding-left: 10px;
+        padding-right: 10px;
+    }
+</style>

+ 98 - 0
resources/views/admin/ic/jobfairs.blade.php

@@ -0,0 +1,98 @@
+{!! $grid !!}
+<style type="text/css">
+    .clearfix:after{display:block;clear:both;content:"";visibility:hidden;height:0;}
+    .clearfix{zoom:1;  /*为了兼容IE*/}
+
+</style>
+
+<script type="text/javascript" src="{{ theme_asset('app/js/drag.js') }}"></script>
+<script type="text/javascript" src="{{ theme_asset('app/js/jobfair.js') }}"></script>
+<script type="text/javascript" src="{{ theme_asset('app/js/jobfair/DrawingManager_min.js') }}"></script>
+<script>
+
+    // 百度地图API功能
+    function G(id) {
+        return document.getElementById(id);
+    }
+    var map = new BMap.Map("container");
+    var map_x = $("#x").val();
+    var map_y = $("#y").val();
+    var map_zoom = $("#zoom").val();
+    var address_id = $("#address").val();
+    var mPoint = new BMap.Point(map_x,map_y);
+    map.centerAndZoom(mPoint,map_zoom);
+    map.enableScrollWheelZoom(true);
+    map.addControl(new BMap.NavigationControl());
+
+    if(address_id){
+        sear(address_id);
+        $("#address").focus(function () {
+            var ac = new BMap.Autocomplete(    //建立一个自动完成的对象
+                {"input" : "address"
+                    ,"location" : map
+                });
+            var myValue;
+            ac.addEventListener("onconfirm", function(e) {    //鼠标点击下拉列表后的事件
+                var _value = e.item.value;
+                console.log(_value);
+                myValue = _value.province +  _value.city +  _value.district +  _value.street +  _value.business;
+                $("#address").val(myValue);
+                G("searchResultPanel").innerHTML ="onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue;
+                sear(myValue);
+            });
+        })
+    } else {
+        var ac = new BMap.Autocomplete(    //建立一个自动完成的对象
+            {"input" : "address"
+                ,"location" : map
+            });
+        ac.addEventListener("onhighlight", function(e) {  //鼠标放在下拉列表上的事件
+            var str = "";
+            var _value = e.fromitem.value;
+            var value = "";
+            if (e.fromitem.index > -1) {
+                value = _value.province +  _value.city +  _value.district +  _value.street +  _value.business;
+            }
+            str = "FromItem<br />index = " + e.fromitem.index + "<br />value = " + value;
+
+            value = "";
+            if (e.toitem.index > -1) {
+                _value = e.toitem.value;
+                value = _value.province +  _value.city +  _value.district +  _value.street +  _value.business;
+            }
+            str += "<br />ToItem<br />index = " + e.toitem.index + "<br />value = " + value;
+            G("searchResultPanel").innerHTML = str;
+        });
+
+        var myValue;
+        ac.addEventListener("onconfirm", function(e) {    //鼠标点击下拉列表后的事件
+            var _value = e.item.value;
+            myValue = _value.province +  _value.city +  _value.district +  _value.street +  _value.business;
+            G("searchResultPanel").innerHTML ="onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue;
+
+            sear(myValue);
+        });
+    }
+
+
+    function setPlace(){
+        map.clearOverlays();    //清除地图上所有覆盖物
+        function myFun(){
+            var pp = local.getResults().getPoi(0).point;    //获取第一个智能搜索的结果
+            map.centerAndZoom(pp, map_zoom);
+            map.addOverlay(new BMap.Marker(pp));    //添加标注
+        }
+        var local = new BMap.LocalSearch(map, { //智能搜索
+            onSearchComplete: myFun
+        });
+        local.search(myValue);
+    }
+
+    function sear(result){//地图搜索
+        var local = new BMap.LocalSearch(map, {
+            renderOptions:{map: map}
+        });
+        local.search(result);
+    }
+
+</script>

+ 413 - 0
resources/views/admin/ic/jobfairs_appoint_list.blade.php

@@ -0,0 +1,413 @@
+<section class="content">
+    <div class="row">
+        <div class="col-md-12">
+            <div class="box">
+                {{ csrf_field() }}
+                <div class="box-body table-responsive">
+                    <div class="col-md-3 clearfix">
+                        <div class="box-body table-responsive" style="padding:5px;">
+                            <div class="form-group clearfix" style="margin-bottom:0;">
+                                <label for="prefix" class="control-label">性别:</label>
+                                <div style="float: left;width: 150px;">
+                                    <select class="form-control" name="sex" id="sex">
+                                        <option value=''>不限</option>
+                                        <option value='2' @if(array_key_exists('sex',$search_data) && $search_data['sex'] == '2') selected @endif>女</option>
+                                        <option value='1' @if(array_key_exists('sex',$search_data) && $search_data['sex'] == '1') selected @endif>男</option>
+                                    </select>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="col-md-3 clearfix">
+                        <div class="box-body table-responsive" style="padding:5px;">
+                            <div class="form-group clearfix" style="margin-bottom:0;">
+                                <label for="prefix" class="control-label">学历:</label>
+                                <div style="float: left;width: 150px;">
+                                    <select class="form-control" name="education" id="education">
+                                        <option value=''>不限</option>
+                                        <option value='初中' @if(array_key_exists('education',$search_data) && $search_data['education'] == 65) selected @endif>初中</option>
+                                        <option value='高中' @if(array_key_exists('education',$search_data) && $search_data['education'] == 66) selected @endif>高中</option>
+                                        <option value='中技' @if(array_key_exists('education',$search_data) && $search_data['education'] == 67) selected @endif>中技</option>
+                                        <option value='中专' @if(array_key_exists('education',$search_data) && $search_data['education'] == 68) selected @endif>中专</option>
+                                        <option value='大专' @if(array_key_exists('education',$search_data) && $search_data['education'] == 69) selected @endif>大专</option>
+                                        <option value='本科' @if(array_key_exists('education',$search_data) && $search_data['education'] == 70) selected @endif>本科</option>
+                                        <option value='硕士' @if(array_key_exists('education',$search_data) && $search_data['education'] == 71) selected @endif>硕士</option>
+                                        <option value='博士' @if(array_key_exists('education',$search_data) && $search_data['education'] == 72) selected @endif>博士</option>
+                                        <option value='博士后' @if(array_key_exists('education',$search_data) && $search_data['education'] == 73) selected @endif>博士后</option>
+                                    </select>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="col-md-3 clearfix">
+                        <div class="box-body table-responsive" style="padding:5px;">
+                            <div class="form-group clearfix" style="margin-bottom:0;">
+                                <label for="prefix" class="control-label">精确查询:</label>
+                                <div style="float: left;width: 150px;">
+                                    <input type="text" class="form-control" name="realname" id="realname" placeholder="请输入姓名" @if(array_key_exists('realname',$search_data)) value="{{$search_data['realname']}}" @endif>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="box-footer">
+                    <div class="btn-group" style="margin-left: 440px;">
+                        <button type="button" class="btn btn-info  btn-primary js-search" data-type="1"><i class="fa fa-search">搜索</i></button>
+                    </div>
+                </div>
+
+                <div class="box-body table-responsive">
+                    <div class="col-md-12">
+                        <div class="box-header with-border">
+                            <h3 class="box-title">查询结果</h3>
+                        </div>
+                        <div class="box-body table-responsive no-padding">
+                            <table class="table table-hover">
+                                <thead>
+                                <tr>
+                                    <th height="26" class="admin_list_tit">
+                                        <input type="checkbox" name=" " title="全选/反选" id="chk" />
+                                    </th>
+                                    <th>头像</th>
+                                    <th>基础资料</th>
+                                    <th>电话</th>
+                                    <th>是否上传简历</th>
+                                    <th>下载状态</th>
+                                    <th>操作</th>
+                                </tr>
+                                </thead>
+                                <tbody>
+                                @if(isset($list) && $list->total())
+                                    @foreach($list as $k=>$v)
+                                        <tr>
+                                            <td>
+                                                <input ls="{{$v->id}}" name="id[]" id="appointinfo_{{$v->id}}" type="checkbox" value="{{$v->id}}" />
+                                            </td>
+                                            <td>
+                                                <span class="vtip" title='<img  @if($v->avatar) src="{{$v->avatar}}" @else src="/data/upload/resource/no_photo_male.png" @endif>'  height=120>
+                                                <img style="width: 30px; height: 30px;" @if($v->avatar) src="{{$v->avatar}}" @else src="/data/upload/resource/no_photo_male.png" @endif></span>
+                                            </td>
+                                            <td>
+                                                <span style="color: #0A246A; margin-right: 3px;">{!! $v->realname !!}</span>
+                                                <span style="color: #0A246A; margin-right: 3px;">{{$v->sex}}</span>
+                                                <span style="color:#be7707; margin-right: 3px;">{{$v->birthday}}</span>
+                                                <span style="color:#0A7CF7; margin-right: 3px;">{{$v->education}}</span>
+                                                <span style="color:#0F73AC; margin-right: 3px;">{{$v->native_place}}</span>
+                                            </td>
+                                            <td>
+                                                {{ $v->mobile }}
+                                            </td>
+                                            <td>{!! $v->is_attachment !!}</td>
+                                            <td>{!! $v->status !!}</td>
+                                            <td>
+
+                                                <button class='btn btn-primary btn-xs fetch_word' data-aid="{{$v->id}}" style="margin-bottom: 10px">下载简历</button>
+
+                                            </td>
+                                        </tr>
+                                    @endforeach
+                                @else
+                                    <tr>
+                                        <td colspan="11">
+                                            <div class="list_empty_group">
+                                                <div class="list_empty">
+                                                    <div class="list_empty_left"></div>
+                                                    <div class="list_empty_right">
+                                                        <div class="sorry_box">对不起,暂无相关信息!</div>
+                                                    </div>
+                                                    <div class="clear"></div>
+                                                </div>
+                                            </div>
+                                        </td>
+                                    </tr>
+                                @endif
+                                </tbody>
+                            </table>
+                        </div>
+
+                        @if(isset($list))
+                            {{ $list->appends($search_data)->links('module.widgets.pagination') }}
+                        @endif
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </div>
+</section>
+<script type="text/javascript" src="{{ theme_asset('app/js/jquery.disappear.tooltip.js') }}"></script>
+<script type="text/javascript" src="{{ theme_asset('app/js/jquery.modal.userselectlayer.js') }}"></script>
+<script type="text/javascript" src="{{ theme_asset('app/js/jquery.user.city.js') }}"></script>
+<script type="text/javascript" src="{{ theme_asset('app/js/jquery.modal.dialog.js') }}"></script>
+<script>
+    //图片预览
+    this.vtip = function() {
+        this.xOffset = -10; // x distance from mouse
+        this.yOffset = 15; // y distance from mouse
+        $(".vtip").unbind().hover(
+            function(e) {
+                this.t = $(this).attr("title");
+                this.title = '';
+                this.top = (e.pageY + yOffset);
+                this.left = (e.pageX + xOffset);
+                $('body').css("cursor","help");
+                $('p#vtip').width()>450?$('p#vtip').width(450):'';
+                $('body').append( '<p id="vtip">' + this.t + '</p>' );
+                $('p#vtip').css("top", this.top+"px").css("left", this.left+"px").fadeIn(0);
+            },
+            function() {
+                this.title = this.t;
+                $('body').css("cursor","");
+                $("p#vtip").fadeOut("slow").remove();
+            }
+        ).mousemove(
+            function(e) {
+                this.top = (e.pageY + yOffset);
+                this.left = (e.pageX + xOffset);
+                $("p#vtip").css("top", this.top+"px").css("left", this.left+"px");
+            }
+        );
+
+    };
+    //提交数组整理
+    this.show = function(type = 0){
+        var id_array = new Array();
+        if(type == 0){
+            $('input[name="id\[\]"]:checked').each(function() {
+                id_array.push($(this).val()); //向数组中添加元素
+            });
+        }else{
+            id_array.push($("#appointinfo_"+type).val());
+        }
+        if (id_array.length == 0) {
+            disapperTooltip('remind', '请选择用户');
+            return false;
+        } else {
+            var idstr = id_array.join(','); //将数组元素连接起来以构建一个字符串
+            if (idstr == '' || idstr == null) {
+                idstr = 0;
+            }
+            return idstr;
+        }
+    }
+
+
+
+    $(document).ready(function() {
+        vtip();
+        $(document).off("click",'.appoint_audit').on('click','.appoint_audit',function () {
+            appointAudit($(this).data('param'));
+        });
+        $(document).off("click",'.supplement').on('click','.supplement',function () {
+            supplement($(this).data('param'));
+        });
+        $(document).off("click",'.fetch_word').on('click','.fetch_word',function () {
+            var appoint_id = $(this).attr('data-aid');
+
+            var qsDialog = $(this).dialog({
+                title: 'word简历下载',
+                loading: true,
+                showFooter: false,
+                yes: function() {
+                    $('.J_btnyes').val('发送中...');
+                    $.post("{{ route('ic.jobfairsAppointStatus') }}", {_token:'{{ csrf_token() }}',id:appoint_id}, function(result) {
+                        if (result.status == 1) {
+                            disapperTooltip('success', result.msg);
+                            window.location.href = result.url;
+                            setTimeout(function() {
+                                $.pjax.reload('#pjax-container');
+                                qsDialog.hide(true);
+                            }, 2000);
+                        } else {
+                            $('.J_btnyes').val('确定');
+                            disapperTooltip('remind', result.msg);
+                        }
+                    }, 'json');
+                }
+            });
+            qsDialog.setCloseDialog(false);
+            qsDialog.setContent("即将下载简历,请确认?");
+            qsDialog.showFooter(true);
+        });
+        $("#ButtonAudit").click(function() {
+            appointAudit(0)
+        })
+        /*查看人员信息*/
+        $('.ButCompared').click(function() {
+            var qsDialog = $(this).dialog({
+                title: '查看报名信息',
+                loading: true,
+                footer: false
+            });
+            var param = $(this).data('param');
+            var url = $(this).data('url') + "?id=" + param;
+            $.getJSON(url, function(result) {
+                qsDialog.setContent('<div style="max-height:600px;overflow-y:auto;">' + result.data + '<\/div>');
+            });
+        });
+
+
+    });
+
+    /*查看日志信息*/
+    $('.ButExamineLog').click(function() {
+        var qsDialog = $(this).dialog({
+            title: '查看审核信息',
+            loading: true,
+            footer: false
+        });
+        var param = $(this).data('param');
+        var url = $(this).data('url') + "?id=" + param;
+        $.getJSON(url, function(result) {
+            qsDialog.setContent('<div style="max-height:600px;overflow-y:auto;">' + result.data + '<\/div>');
+        });
+    });
+
+    $('.js-search').click(function() {
+        var realname = $.trim($('#realname').val());
+        var sex = $.trim($("#sex").val());
+        var education = $.trim($("#education").val());
+        var parm = [`id=${ {{ $search_data['id'] }} }`];
+        if (realname) {
+            parm.push(`realname=${realname}`);
+        }
+        if(sex){
+            parm.push(`sex=${sex}`);
+        }
+        if(education){
+            parm.push(`education=${education}`);
+        }
+        if (parm.length == 0) {
+            window.location = "{{ url('/ST3IXxKlOa4eGEv0eTw0CfORI9444Mgj/ic/jobfairs_appoint_list')}}";
+        } else {
+            window.location = "{{ url('/ST3IXxKlOa4eGEv0eTw0CfORI9444Mgj/ic/jobfairs_appoint_list')}}?" + parm.join('&');
+        }
+    });
+
+
+
+
+
+    //提交准考证
+    $("#build").click(function() {
+
+        $("form[name=form1]").attr("action", "{:U('buildcard')}" + "&recruit_id=" + recruit_ids +
+            "&time=" + time + "&audits=" + audits + "&times=" + times + "&home=" + home + "&address=" + address + "&expand=" + expand);
+        $("form[name=form1]").submit();
+    });
+    //撤销准考证
+    $("#del_ticket").click(function() {
+        var ticket_id = $("input[name='ticket_id']:checked").val();
+        var r_id = $("input[name='r_id']").val();
+        $("form[name=form1]").attr("action", "{:U('delcard')}" + "&ticket_id=" + ticket_id + "&r_id=" + r_id);
+        $("form[name=form1]").submit();
+    });
+
+
+    /*全选*/
+    $("#chk").click(function() {
+        if (this.checked == false) {
+            // console.log("反选")
+            $("td :checkbox").prop("checked", false);
+        }
+        if (this.checked == true) {
+            // console.log("全选")
+            $("td :checkbox").prop("checked", true);
+        }
+    })
+
+    //子复选框有一个未选中时,去掉全选按钮的选中状态
+    $("td :checkbox").click(function() {
+        var allCheckNum = $("td input[type='checkbox']").length;
+        var checkedNum = $("td input[type='checkbox']:checked").length;
+        if (checkedNum == allCheckNum) {
+            // console.log("全选");
+            document.getElementById("chk").checked = true;
+        } else {
+            // console.log("反选");
+            document.getElementById("chk").checked = false;
+        }
+    })
+</script>
+<link href="{{ theme_asset('app/css/person/common.css') }}" rel="stylesheet">
+<style type="text/css">
+    p#vtip { display: none; position: absolute; padding: 10px; left: 5px; font-size: 0.8em; background-color: white; border: 1px solid #a6c9e2; -moz-border-radius: 5px; -webkit-border-radius: 5px; z-index: 9999 }
+    p#vtip img{width: 200px}
+    /*body{min-width: 1680px;overflow: auto;}*/
+    .clearfix:after {
+        display: block;
+        clear: both;
+        content: "";
+        visibility: hidden;
+        height: 0;
+    }
+
+    .clearfix {
+        zoom: 1;
+        /*为了兼容IE*/
+    }
+
+    .box .box-body {
+        position: relative;
+    }
+
+    .box .form-group label {
+        float: left;
+        width: 120px;
+        line-height: 34px;
+        text-align: right;
+    }
+
+    .box .input-group {
+        width: 360px;
+    }
+
+    .list_empty_group {
+        text-align: center;
+        line-height: 80px;
+        color: #404446;
+        font-size: 22px;
+    }
+
+    .jobslist_table .li-table-btn {
+        width: 120px;
+        height: 50px;
+        line-height: 50px;
+    }
+
+    .modal {
+        display: block;
+        position: static;
+    }
+
+    .qs-category-unlimited .selected-group .selected-box .s-cell {
+        width: 112px;
+    }
+
+    .qs-category-unlimited .cate-type .dd {
+        margin: 0px;
+        font-size: 14px;
+    }
+
+    .qs-category-unlimited .cate-type .one-select label {
+        display: block;
+        margin: 0px;
+        width: 110px;
+    }
+
+    .qs-category-unlimited .cate-type .one-select .check-box {
+        margin: 0px;
+    }
+
+    .modal_body_box .list_nav1 li label {
+        margin-bottom: 0px;
+    }
+
+    .disappear_tooltip .content {
+        min-height: auto;
+        padding: 0px;
+        padding-left: 10px;
+        padding-right: 10px;
+    }
+</style>