Parcourir la source

Merge branch 'master' of http://47.118.43.255:3000/jjhc/jucai

linwu il y a 3 ans
Parent
commit
ffc3144014
49 fichiers modifiés avec 1228 ajouts et 445 suppressions
  1. 3 3
      app/Http/Controllers/Api/Third/ScrmController.php
  2. 28 2
      app/Http/Controllers/Mobile/Auth/LoginController.php
  3. 32 2
      app/Http/Controllers/Web/Auth/LoginController.php
  4. 20 0
      app/Http/Controllers/Web/Talent/JjhcController.php
  5. 38 0
      app/Http/Controllers/Web/Talent/ShuoboController.php
  6. 2 1
      app/Http/Middleware/VerifyCsrfToken.php
  7. 19 2
      app/Models/MemberShuobo.php
  8. 14 0
      app/Models/Yqfk/Fillinfo.php
  9. 1 0
      app/Repositories/CompanyRepository.php
  10. 2 1
      app/Repositories/MemberLogRepository.php
  11. 1 0
      app/Repositories/MemberRepository.php
  12. 11 0
      app/Search/Traits/ShuoboSearchable.php
  13. 59 12
      app/Services/Auth/AuthService.php
  14. 8 0
      app/Services/Common/SearchService.php
  15. 3 0
      app/Services/Person/MemberInfoService.php
  16. 8 4
      app/Validators/AuthValidatorRequest.php
  17. 17 0
      config/database.php
  18. 1 1
      config/session.php
  19. 11 3
      libs/repositories/laravel-admin/src/Controllers/AuthController.php
  20. 7 1
      public/test.php
  21. 0 9
      public/themes/default/assets/app/js/Chart.js
  22. 1 2
      public/themes/default/assets/app/js/aio/jquery-1.9.1.min.js
  23. 0 1
      public/themes/default/assets/app/js/axios.js
  24. 0 10
      public/themes/default/assets/app/js/company/jquery.zclip.min.js
  25. 0 21
      public/themes/default/assets/app/js/echarts.common.min.js
  26. 1 5
      public/themes/default/assets/app/js/jQuery.print.js
  27. 0 218
      public/themes/default/assets/app/js/jcarousellite.js
  28. 0 14
      public/themes/default/assets/app/js/jquery.SuperSlide.2.1.2.js
  29. 0 12
      public/themes/default/assets/app/js/jquery.autocomplete.js
  30. 1 8
      public/themes/default/assets/app/js/jquery.ba-resize.min.js
  31. 1 7
      public/themes/default/assets/app/js/jquery.cookie.js
  32. 1 4
      public/themes/default/assets/app/js/jquery.cxscroll.js
  33. 1 5
      public/themes/default/assets/app/js/jquery.flexslider-min.js
  34. 0 12
      public/themes/default/assets/app/js/jquery.form.js
  35. 1 10
      public/themes/default/assets/app/js/jquery.nivo.slider.pack.js
  36. 1 1
      public/themes/default/assets/app/js/jquery.placeholder.min.js
  37. 1 5
      public/themes/default/assets/app/js/jquery.steps.min.js
  38. 1 3
      public/themes/default/assets/app/js/jquery.validate.js
  39. 0 12
      public/themes/default/assets/app/js/outward.company.js
  40. 1 12
      public/themes/default/assets/app/js/portamento-min.js
  41. 1 14
      public/themes/default/assets/app/js/swiper.min.js
  42. 1 9
      public/themes/default/assets/app/js/viewer-jquery.min.js
  43. 1 5
      public/themes/default/assets/app/js/vue-router.js
  44. 1 1
      public/themes/default/assets/jquery/jquery-1.12.4.min.js
  45. 0 12
      public/themes/default/assets/jquery/jquery.SuperSlide.2.1.1.js
  46. 1 1
      public/themes/default/assets/jquery/jquery.min.js
  47. 320 0
      public/themes/default/views/app/shuobo/talent.blade.php
  48. 598 0
      public/themes/default/views/app/talent/jjhc/yqfk.blade.php
  49. 9 0
      routes/web.php

+ 3 - 3
app/Http/Controllers/Api/Third/ScrmController.php

@@ -56,7 +56,7 @@ class ScrmController extends ApiBaseController
                     $customer['cid'] = $param['cid'];
                     switch ($customer['label']){
                         case '硕博人才':
-                            $user = Member::where('mobile',$customer['mobile'])->first();
+                            $user = Member::where(['mobile' => $customer['mobile']])->first();
                             if(!$user){
                                 //手机号找不到聚才网账户,进行注册并入库
                                 $user = $this->registerService->registerPersonScrm($customer);
@@ -68,14 +68,14 @@ class ScrmController extends ApiBaseController
                                 }
                             }
                             //如果手机号在聚才网已存在账户,将信息入库
-                            $shuobo_exist = MemberShuobo::where('uid',$user->id)->first();
+                            $shuobo_exist = MemberShuobo::where(['uid' => $user->id])->first();
                             $shuobo_data = array_only($customer,['uid','realname','sex','mobile','email','birthday','education','school','pro','graduation_time','address','country','weixin','company','job','come_in_time','require','trade_type','speciality']);
                             $shuobo_data['cid'] = $param['cid'];
                             if(!$shuobo_exist){
                                 $shuobo_data['uid'] = $user->id;
                                 MemberShuobo::create($shuobo_data);
                             }else{
-                                MemberShuobo::where('uid',$user->id)->update($shuobo_data);
+                                MemberShuobo::where(['uid' => $user->id])->update($shuobo_data);
                             }
 
                             break;

+ 28 - 2
app/Http/Controllers/Mobile/Auth/LoginController.php

@@ -10,6 +10,7 @@ use App\Services\Common\SmsService;
 use App\Validators\AuthValidatorRequest;
 use Closure;
 use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Cache;
 
 class LoginController extends MobileBaseController
 {
@@ -94,7 +95,20 @@ class LoginController extends MobileBaseController
                 config('aix.system.site_safety.site_vo_code.members_login')
             );
 
-            return $this->sendErrorResponse("用户名或密码错误", $data);
+            $redis = Cache::getRedis();
+            $value = $redis->get('user_'.$request->account);
+            //dd($value);
+            if(!$value){
+                $value = 0;
+            }
+            if($value >= 5){
+                $redis->expire('user_'.$request->account,900);
+                return $this->sendErrorResponse("连续登录失败5次,请15分钟后再尝试!", $data);
+            }
+            $redis->set('user_'.$request->account,++$value);
+
+            return $this->sendErrorResponse("账号或密码错误或密码已超过90天未修改,请使用找回密码功能", $data);
+
         }
         if ($member->status == 0) {
             Auth::guard('web-member')->logout();
@@ -149,7 +163,19 @@ class LoginController extends MobileBaseController
             $data['is_need_geetest'] = $this->geetestService->isNeedGeetest(
                 config('aix.system.site_safety.site_vo_code.members_login')
             );
-            return $this->sendErrorResponse("用户名或密码错误", $data);
+            $redis = Cache::getRedis();
+            $value = $redis->get('user_'.$request->account);
+            //dd($value);
+            if(!$value){
+                $value = 0;
+            }
+            if($value >= 5){
+                $redis->expire('user_'.$request->account,900);
+                return $this->sendErrorResponse("连续登录失败5次,请15分钟后再尝试!", $data);
+            }
+            $redis->set('user_'.$request->account,++$value);
+
+            return $this->sendErrorResponse("账号或密码错误或密码已超过90天未修改,请使用找回密码功能", $data);
         }
         if ($company->user_status == 0) {
             Auth::guard('web-company')->logout();

+ 32 - 2
app/Http/Controllers/Web/Auth/LoginController.php

@@ -10,6 +10,7 @@ use App\Services\Common\SmsService;
 use App\Validators\AuthValidatorRequest;
 use Closure;
 use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Cache;
 
 class LoginController extends WebBaseController
 {
@@ -83,13 +84,29 @@ class LoginController extends WebBaseController
         if (!$this->geetestService->checkGeetest(config('aix.system.site_safety.site_vo_code.members_login'))) {
             return $this->sendErrorResponse("验证码不通过,请重新验证", ['is_need_geetest'=>1]);
         }
+
         if (!$member=$this->authService->loginByAccount($request->account, $request->password, $request->autoLogin)) {
             $data['is_need_geetest']=$this->geetestService->isNeedGeetest(
                 config('aix.system.site_safety.site_vo_code.members_login')
             );
 
-            return $this->sendErrorResponse("账号或密码错误", $data);
+            $redis = Cache::getRedis();
+            $value = $redis->get('user_'.$request->account);
+            //dd($value);
+            if(!$value){
+                $value = 0;
+            }
+            if($value >= 5){
+                $redis->expire('user_'.$request->account,900);
+                return $this->sendErrorResponse("连续登录失败5次,请15分钟后再尝试!", $data);
+            }
+            $redis->set('user_'.$request->account,++$value);
+
+            return $this->sendErrorResponse("账号或密码错误或密码已超过90天未修改,请使用找回密码功能", $data);
         }
+//        if(!$this->authService->checkPwdLog($member)){
+//            return $this->sendErrorResponse("密码已过期,请使用找回密码重新设置密码");
+//        }
         if ($member->status == 0) {
             Auth::guard('web-member')->logout();
             return $this->sendErrorResponse("你的账号处于封禁状态, 请联系管理员");
@@ -143,7 +160,20 @@ class LoginController extends WebBaseController
             $data['is_need_geetest']=$this->geetestService->isNeedGeetest(
                 config('aix.system.site_safety.site_vo_code.members_login')
             );
-            return $this->sendErrorResponse("账号或密码错误", $data);
+            $redis = Cache::getRedis();
+            $value = $redis->get('user_'.$request->account);
+            //dd($value);
+            if(!$value){
+                $value = 0;
+            }
+            if($value >= 5){
+                $redis->expire('user_'.$request->account,900);
+                return $this->sendErrorResponse("连续登录失败5次,请15分钟后再尝试!", $data);
+            }
+            $redis->set('user_'.$request->account,++$value);
+
+            return $this->sendErrorResponse("账号或密码错误或密码已超过90天未修改,请使用找回密码功能", $data);
+            //return $this->sendErrorResponse("账号或密码错误", $data);
         }
         if ($company->user_status == 0) {
             Auth::guard('web-company')->logout();

+ 20 - 0
app/Http/Controllers/Web/Talent/JjhcController.php

@@ -8,6 +8,7 @@ use PhpOffice\PhpSpreadsheet\Spreadsheet;
 use PhpOffice\PhpSpreadsheet\IOFactory;
 use Illuminate\Support\Facades\DB;
 use App\Exceptions\ResponseException;
+use Illuminate\Http\Request;
 
 class JjhcController extends WebBaseController
 {
@@ -17,6 +18,25 @@ class JjhcController extends WebBaseController
         $this->smsService = $smsService;
     }
 
+    public function yqfk()
+    {
+        return view("app.talent.jjhc.yqfk");
+    }
+
+    public function chaxun(Request $request)
+    {
+        $data = array('msg'=>'查无此用户!','status' => 0);
+        return response()->json($data);
+        $info = DB::connection('fangyi')->table('fillinfo')
+            ->where(['lxdh'=>$request->tel])->first();
+        if($info){
+            $data = array('status'=>1,'msg'=>'查到已存在数据!','info'=>$info);
+        }else{
+            $data = array('msg'=>'查无此用户!','status' => 0);
+        }
+        return response()->json($data);
+    }
+
     public function test()
     {
 

+ 38 - 0
app/Http/Controllers/Web/Talent/ShuoboController.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace App\Http\Controllers\Web\Talent;
+
+use App\Http\Controllers\Web\WebBaseController;
+use App\Services\Common\SmsService;
+use App\Models\Member;
+use Illuminate\Http\Request;
+use App\Services\Common\SearchService;
+
+class ShuoboController extends WebBaseController
+{
+
+    private $smsService;
+    protected $searchService;
+
+    public function __construct(SmsService $smsService,SearchService $searchService)
+    {
+        $this->smsService = $smsService;
+        $this->searchService = $searchService;
+    }
+
+    public function talent()
+    {
+
+        return view('app.shuobo.talent');
+    }
+
+    public function getTalentData(Request $request)
+    {
+        $keyword = $request->input('keyword');
+        $page = $request->input('page');
+        $list = $this->searchService->search('Shuobo', [], [], $keyword,10,$page);
+        dd($list);
+
+        return json_encode([]);
+    }
+}

+ 2 - 1
app/Http/Middleware/VerifyCsrfToken.php

@@ -17,6 +17,7 @@ class VerifyCsrfToken extends Middleware
         'auth/gt/init',
         'common/sms/send',
         'api/checkuser',
-        'auth/login/sms'
+        'auth/login/sms',
+        'jjhc/yqfk/chaxun'
     ];
 }

+ 19 - 2
app/Models/MemberShuobo.php

@@ -2,12 +2,13 @@
 
 namespace App\Models;
 
+use App\Search\Traits\ShuoboSearchable;
 use Illuminate\Database\Eloquent\SoftDeletes;
 use Illuminate\Database\Eloquent\Model;
 
 class MemberShuobo extends Model
 {
-    use SoftDeletes;
+    use SoftDeletes,ShuoboSearchable;
     protected $table = 'members_shuobo';
     protected $guarded = [];
 
@@ -21,5 +22,21 @@ class MemberShuobo extends Model
         return $this->belongsTo(Member::class, 'uid');
     }
 
-
+    public function toSearchableArray()
+    {
+        return [
+            'realname' => $this->realname,
+            'mobile' => $this->mobile,
+            'email' => $this->email,
+            'education' => $this->education,
+            'school' => $this->school,
+            'pro' => $this->pro,
+            'address' => $this->address,
+            'country' => $this->country,
+            'company' => $this->company,
+            'job' => $this->job,
+            'trade_type' => $this->trade_type,
+            'speciality' => $this->speciality
+        ];
+    }
 }

+ 14 - 0
app/Models/Yqfk/Fillinfo.php

@@ -0,0 +1,14 @@
+<?php
+namespace App\Models\Yqfk;
+
+use Illuminate\Database\Eloquent\Model;
+
+class Fillinfo extends Model
+{
+    public $timestamps = false;
+    protected $table = 'fillinfo';
+    protected $connection = 'fangyi';
+
+    protected $guarded = [];
+
+}

+ 1 - 0
app/Repositories/CompanyRepository.php

@@ -213,6 +213,7 @@ class CompanyRepository extends BaseRepository
     public function resetPassword($type, $value, $password)
     {
         $this->model->where($type, $value)->update(['password'=>Hash::make($password)]);
+        return $this->model->where($type, $value)->first();
     }
 
     public function getLastCompanyCount($where)

+ 2 - 1
app/Repositories/MemberLogRepository.php

@@ -119,7 +119,8 @@ class MemberLogRepository extends BaseRepository
         2041=>array('type'=>'订阅职位订阅器','content'=>'订阅职位订阅器(记录id:%s)'),
         2042=>array('type'=>'举报职位','content'=>'举报职位(职位id:%s)'),
         2043=>array('type'=>'修改个人资料','content'=>'修改个人资料'),
-        2044=>array('type'=>'修改了个人头像','content'=>'修改了个人头像')
+        2044=>array('type'=>'修改了个人头像','content'=>'修改了个人头像'),
+        2045=>array('type'=>'修改了登录密码','content'=>'修改了登录密码')
     );
     /**
      * Specify Model class name

+ 1 - 0
app/Repositories/MemberRepository.php

@@ -126,6 +126,7 @@ class MemberRepository extends BaseRepository
     public function resetPassword($type, $value, $password)
     {
         $this->model->where($type, $value)->update(['password'=>Hash::make($password)]);
+        return $this->model->where($type, $value)->first();
     }
 
     public function getLastPersonCount($where)

+ 11 - 0
app/Search/Traits/ShuoboSearchable.php

@@ -0,0 +1,11 @@
+<?php
+namespace App\Search\Traits;
+
+trait ShuoboSearchable
+{
+    use ElasticsearchSearchable;
+
+
+    protected $search_index = 'shuobo';
+
+}

+ 59 - 12
app/Services/Auth/AuthService.php

@@ -74,6 +74,9 @@ class AuthService
         if (!$user) {
             return false;
         }
+        if(!$this->checkPwdLog($user)){
+            return false;
+        }
         $this->login($user, $isAutoLogin);
 
         //绑定微信和中奖
@@ -111,6 +114,10 @@ class AuthService
         if (!$user) {
             return false;
         }
+
+        if(!$this->checkPwdLog($user)){
+            return false;
+        }
         $this->login($user, $isAutoLogin);
         return $user;
     }
@@ -145,10 +152,11 @@ class AuthService
     {
         $data = Cache::pull($token);
         if ($data['utype'] == 1) {
-            $this->companyRepository->resetPassword($data['type'], $data[$data['type']], $password);
+            $user = $this->companyRepository->resetPassword($data['type'], $data[$data['type']], $password);
         } elseif ($data['utype'] == 2) {
-            $this->memberRepository->resetPassword($data['type'], $data[$data['type']], $password);
+            $user = $this->memberRepository->resetPassword($data['type'], $data[$data['type']], $password);
         }
+        $this->memberLogRepository->createLog($user, 2045, []);
         return $data['utype'];
     }
 
@@ -273,22 +281,61 @@ class AuthService
         }
 
         if ($password && !Hash::check($password, $user->password)) {
-            if (!empty($user->old_password)) {
-                //旧系统数据密码转移
-                $oldmembers = \App\Transfer\Member::select('pwd_hash')->where('uid', $user->id)->first();
-                if (md5(md5($password) . $oldmembers->pwd_hash . 'pNxOnSBtDzW7-7Pi') == $user->old_password) {
-                    $user->old_password = "";
-                    $user->password     = Hash::make($password);
-                    $user->save();
-                    return $user;
-                }
-            }
+//            if (!empty($user->old_password)) {
+//                //旧系统数据密码转移
+//                $oldmembers = \App\Transfer\Member::select('pwd_hash')->where('uid', $user->id)->first();
+//                if (md5(md5($password) . $oldmembers->pwd_hash . 'pNxOnSBtDzW7-7Pi') == $user->old_password) {
+//                    $user->old_password = "";
+//                    $user->password     = Hash::make($password);
+//                    $user->save();
+//                    return $user;
+//                }
+//            }
             return false;
         }
 
         return $user;
     }
 
+    public function checkPwdLog($user)
+    {
+        $reglog = $this->memberLogRepository->getMemberLog(
+            $user->id,
+            $user->utype,
+            1000
+        );
+        $regdata = $reglog->toArray()['data'];
+        if(count($regdata) >= 1){
+            $log = array_shift($regdata);
+            $reg_time = strtotime($log['created_at']);
+        }else{
+            $reg_time = 0;
+        }
+        if((time()-$reg_time)<7776000){
+            return true;
+        }
+
+        $pwdLog = $this->memberLogRepository->getMemberLog(
+            $user->id,
+            $user->utype,
+            2045
+        );
+
+        $data = $pwdLog->toArray()['data'];
+        if(count($data) >= 1){
+            $log = array_shift($data);
+            $time = strtotime($log['created_at']);
+        }else{
+            $time = 0;
+        }
+
+        if((time()-$time)>7776000){
+            return false;
+        }else{
+            return true;
+        }
+    }
+
     public function login($user, $isAutoLogin = 0)
     {
         $isAutoLogin = $isAutoLogin ? true : false;

+ 8 - 0
app/Services/Common/SearchService.php

@@ -5,6 +5,7 @@ use App\Exceptions\ResponseException;
 use App\Models\Resume;
 use App\Models\Jobs;
 use App\Models\Company;
+use App\Models\MemberShuobo;
 use App\Models\PersonShieldCompany;
 use App\Repositories\PersonalJobsApplyRepository;
 use App\Search\Builders\SubBuilder;
@@ -854,6 +855,13 @@ class SearchService
             } else {
                 return $list->paginate($limit);
             }
+        } elseif ($model == 'Shuobo') {
+            $list=MemberShuobo::search($search_key);
+            if ($page) {
+                return $list->paginate($limit, 'page', $page);
+            } else {
+                return $list->paginate($limit);
+            }
         }
     }
 }

+ 3 - 0
app/Services/Person/MemberInfoService.php

@@ -315,6 +315,9 @@ class MemberInfoService
         }
         $res = $this->MemberRepository->updatePasswordById(bcrypt($password), $user->id);
         if ($res) {
+            if(!$this->memberLogRepository->createLog(auth('web-member')->user(),2045,"")){
+                throw new \Exception("日志记失败!");
+            }
             return ['status'=>1,'info'=>'修改成功'];
         } else {
             return ['status'=>0,'info'=>'修改失败'];

+ 8 - 4
app/Validators/AuthValidatorRequest.php

@@ -12,11 +12,13 @@ class AuthValidatorRequest extends BaseValidatorRequest
         return [
            'rules'=>[
                'account'=>['required'],
-               'password'=>['required']
+               'password'=>['required','min:8','regex:/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,}$/']
            ],
            'messages'=>[
                'account.required'=>'请输入用户名',
-               'password.required'=>'请输入密码'
+               'password.required'=>'请输入密码',
+               'password.min'=>'密码最低8位',
+               'password.regex'=>'密码应包含字母与数字两种字符'
            ]
         ];
     }
@@ -40,11 +42,13 @@ class AuthValidatorRequest extends BaseValidatorRequest
         return [
             'rules'=>[
                 'company_account'=>['required'],
-                'company_password'=>['required']
+                'company_password'=>['required','min:8','regex:/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,}$/']
             ],
             'messages'=>[
                 'account.required'=>'请输入用户名',
-                'password.required'=>'请输入密码'
+                'company_password.required'=>'请输入密码',
+                'company_password.min'=>'密码最低8位',
+                'company_password.regex'=>'密码应包含字母与数字两种字符'
             ]
         ];
     }

+ 17 - 0
config/database.php

@@ -71,6 +71,23 @@ return [
             'engine' => null,
         ],
 
+        'fangyi' => [
+            'driver' => 'mysql',
+            'host' => env('DB_HOST', '127.0.0.1'),
+            'port' => 3306,
+            'database' => 'fangyi',
+            'username' => env('DB_USERNAME', 'forge'),
+            'password' => env('DB_PASSWORD', ''),
+            /*'username' => 'root',
+            'password' => 'root',*/
+            'unix_socket' => '',
+            'charset' => 'utf8mb4',
+            'collation' => 'utf8mb4_unicode_ci',
+            'prefix' => '',
+            'strict' => false,
+            'engine' => null,
+        ],
+
         'transfer_center' => [
             'driver' => 'mysql',
             'host' => env('DB_HOST_CENTER', 'localhost'),

+ 1 - 1
config/session.php

@@ -29,7 +29,7 @@ return [
     |
     */
 
-    'lifetime' => env('SESSION_LIFETIME', 120),
+    'lifetime' => env('SESSION_LIFETIME', 15),
 
     'expire_on_close' => false,
 

+ 11 - 3
libs/repositories/laravel-admin/src/Controllers/AuthController.php

@@ -61,7 +61,7 @@ class AuthController extends Controller
             $credentials,
             [
                 $this->username()   => 'required',
-                'password'          => 'required|min:8|regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$/',
+                'password'          => 'required|min:8|regex:/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\W_]).{8,}/',
             ],
             [
                 $this->username().'required'   => '请输入用户名',
@@ -80,9 +80,17 @@ class AuthController extends Controller
             return $this->sendLockoutResponse($request);
         }
 
-
         if ($this->guard()->attempt($credentials, $remember)) {
-            return $this->sendLoginResponse($request);
+            $user = Admin::user();
+            $time = strtotime($user->updated_at);
+            if((time()-$time)>7776000){
+                $this->guard()->logout();
+                return back()->withInput()->withErrors([
+                    $this->username() => '超过90天未修改,您的密码已过期,请联系管理员',
+                ]);
+            }else{
+                return $this->sendLoginResponse($request);
+            }
         }
 
         $this->incrementLoginAttempts($request);

+ 7 - 1
public/test.php

@@ -1,2 +1,8 @@
 <?php
-$ret = error_log(json_encode($_POST),3,'/data/wwwroot/jucai/public/scrm');
+error_reporting(E_ALL);
+ini_set('display_errors',1);
+if(!preg_match('/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\W_]).{8,}/','DZwY&W9tT%1uFnkQ')){
+    echo 0;
+}else{
+    echo 1;
+}

+ 0 - 9
public/themes/default/assets/app/js/Chart.js

@@ -1,12 +1,3 @@
-/*!
- * Chart.js
- * http://chartjs.org/
- * Version: 2.7.3
- *
- * Copyright 2018 Chart.js Contributors
- * Released under the MIT license
- * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md
- */
 (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Chart = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
 
     },{}],2:[function(require,module,exports){

Fichier diff supprimé car celui-ci est trop grand
+ 1 - 2
public/themes/default/assets/app/js/aio/jquery-1.9.1.min.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 1
public/themes/default/assets/app/js/axios.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 10
public/themes/default/assets/app/js/company/jquery.zclip.min.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 21
public/themes/default/assets/app/js/echarts.common.min.js


+ 1 - 5
public/themes/default/assets/app/js/jQuery.print.js

@@ -1,8 +1,4 @@
-/* @license
- * jQuery.print, version 1.6.0
- *  (c) Sathvik Ponangi, Doers' Guild
- * Licence: CC-By (http://creativecommons.org/licenses/by/3.0/)
- *--------------------------------------------------------------------------*/
+
 (function ($) {
     "use strict";
     // A nice closure for our definitions

+ 0 - 218
public/themes/default/assets/app/js/jcarousellite.js

@@ -1,221 +1,3 @@
-/**
- * jCarouselLite - jQuery plugin to navigate images/any content in a carousel style widget.
- * @requires jQuery v1.2 or above
- *
- * http://gmarwaha.com/jquery/jcarousellite/
- *
- * Copyright (c) 2007 Ganeshji Marwaha (gmarwaha.com)
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- *
- * Version: 1.0.1
- * Note: Requires jquery 1.2 or above from version 1.0.1
- */
-/**
-btnPrev : 上一张按钮
-btnNext : 下一张按钮
-btnGo : 标签控制,也就是用’1,2,3,4…’来控制
-mouseWheel : 是否支持鼠标滑轮滚动,属性值:false / true;默认为false 打开此项需要jQuery UI插件支持
-auto : 设置自动播放的速度,默认自动播放是关闭的,格式 auto: 800 (为播放速度)
-speed : 动画效果速度
-easing : 动画效果优化,姑且这么里面 需要外部插件支持
-vertical : 动画方向,如果设置为true,则表示垂直滚动,默认为false
-circular : 是否重复播放,如果设置为false,则到最后一个下一张按钮就点不动了,到第一张上一张按钮就点不动
-visible : 设置默认显示几个li,默认是3个
-start : 效果从第几个开始,默认为0
-scroll : 一次滑动几个li,默认是2
-beforeStart : 这个是接口,每次滑动效果执行之前执行的自定义函数
-afterEnd : 这个是接口,每次滑动效果执行之后执行的自定义函数
- */
- 
-/**
- * Creates a carousel-style navigation widget for images/any-content from a simple HTML markup.
- *
- * The HTML markup that is used to build the carousel can be as simple as...
- *
- *  <div class="carousel">
- *      <ul>
- *          <li><img src="image/1.jpg" alt="1"></li>
- *          <li><img src="image/2.jpg" alt="2"></li>
- *          <li><img src="image/3.jpg" alt="3"></li>
- *      </ul>
- *  </div>
- *
- * As you can see, this snippet is nothing but a simple div containing an unordered list of images.
- * You don't need any special "class" attribute, or a special "css" file for this plugin.
- * I am using a class attribute just for the sake of explanation here.
- *
- * To navigate the elements of the carousel, you need some kind of navigation buttons.
- * For example, you will need a "previous" button to go backward, and a "next" button to go forward.
- * This need not be part of the carousel "div" itself. It can be any element in your page.
- * Lets assume that the following elements in your document can be used as next, and prev buttons...
- *
- * <button class="prev">&lt;&lt;</button>
- * <button class="next">&gt;&gt;</button>
- *
- * Now, all you need to do is call the carousel component on the div element that represents it, and pass in the
- * navigation buttons as options.
- *
- * $(".carousel").jCarouselLite({
- *      btnNext: ".next",
- *      btnPrev: ".prev"
- * });
- *
- * That's it, you would have now converted your raw div, into a magnificient carousel.
- *
- * There are quite a few other options that you can use to customize it though.
- * Each will be explained with an example below.
- *
- * @param an options object - You can specify all the options shown below as an options object param.
- *
- * @option btnPrev, btnNext : string - no defaults
- * @example
- * $(".carousel").jCarouselLite({
- *      btnNext: ".next",
- *      btnPrev: ".prev"
- * });
- * @desc Creates a basic carousel. Clicking "btnPrev" navigates backwards and "btnNext" navigates forward.
- *
- * @option btnGo - array - no defaults
- * @example
- * $(".carousel").jCarouselLite({
- *      btnNext: ".next",
- *      btnPrev: ".prev",
- *      btnGo: [".0", ".1", ".2"]
- * });
- * @desc If you don't want next and previous buttons for navigation, instead you prefer custom navigation based on
- * the item number within the carousel, you can use this option. Just supply an array of selectors for each element
- * in the carousel. The index of the array represents the index of the element. What i mean is, if the
- * first element in the array is ".0", it means that when the element represented by ".0" is clicked, the carousel
- * will slide to the first element and so on and so forth. This feature is very powerful. For example, i made a tabbed
- * interface out of it by making my navigation elements styled like tabs in css. As the carousel is capable of holding
- * any content, not just images, you can have a very simple tabbed navigation in minutes without using any other plugin.
- * The best part is that, the tab will "slide" based on the provided effect. :-)
- *
- * @option mouseWheel : boolean - default is false
- * @example
- * $(".carousel").jCarouselLite({
- *      mouseWheel: true
- * });
- * @desc The carousel can also be navigated using the mouse wheel interface of a scroll mouse instead of using buttons.
- * To get this feature working, you have to do 2 things. First, you have to include the mouse-wheel plugin from brandon.
- * Second, you will have to set the option "mouseWheel" to true. That's it, now you will be able to navigate your carousel
- * using the mouse wheel. Using buttons and mouseWheel or not mutually exclusive. You can still have buttons for navigation
- * as well. They complement each other. To use both together, just supply the options required for both as shown below.
- * @example
- * $(".carousel").jCarouselLite({
- *      btnNext: ".next",
- *      btnPrev: ".prev",
- *      mouseWheel: true
- * });
- *
- * @option auto : number - default is null, meaning autoscroll is disabled by default
- * @example
- * $(".carousel").jCarouselLite({
- *      auto: 800,
- *      speed: 500
- * });
- * @desc You can make your carousel auto-navigate itself by specfying a millisecond value in this option.
- * The value you specify is the amount of time between 2 slides. The default is null, and that disables auto scrolling.
- * Specify this value and magically your carousel will start auto scrolling.
- *
- * @option speed : number - 200 is default
- * @example
- * $(".carousel").jCarouselLite({
- *      btnNext: ".next",
- *      btnPrev: ".prev",
- *      speed: 800
- * });
- * @desc Specifying a speed will slow-down or speed-up the sliding speed of your carousel. Try it out with
- * different speeds like 800, 600, 1500 etc. Providing 0, will remove the slide effect.
- *
- * @option easing : string - no easing effects by default.
- * @example
- * $(".carousel").jCarouselLite({
- *      btnNext: ".next",
- *      btnPrev: ".prev",
- *      easing: "bounceout"
- * });
- * @desc You can specify any easing effect. Note: You need easing plugin for that. Once specified,
- * the carousel will slide based on the provided easing effect.
- *
- * @option vertical : boolean - default is false
- * @example
- * $(".carousel").jCarouselLite({
- *      btnNext: ".next",
- *      btnPrev: ".prev",
- *      vertical: true
- * });
- * @desc Determines the direction of the carousel. true, means the carousel will display vertically. The next and
- * prev buttons will slide the items vertically as well. The default is false, which means that the carousel will
- * display horizontally. The next and prev items will slide the items from left-right in this case.
- *
- * @option circular : boolean - default is true
- * @example
- * $(".carousel").jCarouselLite({
- *      btnNext: ".next",
- *      btnPrev: ".prev",
- *      circular: false
- * });
- * @desc Setting it to true enables circular navigation. This means, if you click "next" after you reach the last
- * element, you will automatically slide to the first element and vice versa. If you set circular to false, then
- * if you click on the "next" button after you reach the last element, you will stay in the last element itself
- * and similarly for "previous" button and first element.
- *
- * @option visible : number - default is 3
- * @example
- * $(".carousel").jCarouselLite({
- *      btnNext: ".next",
- *      btnPrev: ".prev",
- *      visible: 4
- * });
- * @desc This specifies the number of items visible at all times within the carousel. The default is 3.
- * You are even free to experiment with real numbers. Eg: "3.5" will have 3 items fully visible and the
- * last item half visible. This gives you the effect of showing the user that there are more images to the right.
- *
- * @option start : number - default is 0
- * @example
- * $(".carousel").jCarouselLite({
- *      btnNext: ".next",
- *      btnPrev: ".prev",
- *      start: 2
- * });
- * @desc You can specify from which item the carousel should start. Remember, the first item in the carousel
- * has a start of 0, and so on.
- *
- * @option scrool : number - default is 1
- * @example
- * $(".carousel").jCarouselLite({
- *      btnNext: ".next",
- *      btnPrev: ".prev",
- *      scroll: 2
- * });
- * @desc The number of items that should scroll/slide when you click the next/prev navigation buttons. By
- * default, only one item is scrolled, but you may set it to any number. Eg: setting it to "2" will scroll
- * 2 items when you click the next or previous buttons.
- *
- * @option beforeStart, afterEnd : function - callbacks
- * @example
- * $(".carousel").jCarouselLite({
- *      btnNext: ".next",
- *      btnPrev: ".prev",
- *      beforeStart: function(a) {
- *          alert("Before animation starts:" + a);
- *      },
- *      afterEnd: function(a) {
- *          alert("After animation ends:" + a);
- *      }
- * });
- * @desc If you wanted to do some logic in your page before the slide starts and after the slide ends, you can
- * register these 2 callbacks. The functions will be passed an argument that represents an array of elements that
- * are visible at the time of callback.
- *
- *
- * @cat Plugins/Image Gallery
- * @author Ganeshji Marwaha/ganeshread@gmail.com
- */
-
 (function($) {                                          // Compliant with jquery.noConflict()
 $.fn.jCarouselLite = function(o) {
     o = $.extend({

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 14
public/themes/default/assets/app/js/jquery.SuperSlide.2.1.2.js


+ 0 - 12
public/themes/default/assets/app/js/jquery.autocomplete.js

@@ -1,15 +1,3 @@
-/**
-*  Ajax Autocomplete for jQuery, version 1.1.3
-*  (c) 2010 Tomas Kirda
-*
-*  Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
-*  For details, see the web site: http://www.devbridge.com/projects/autocomplete/jquery/
-*
-*  Last Review: 04/19/2010
-*/
-
-/*jslint onevar: true, evil: true, nomen: true, eqeqeq: true, bitwise: true, regexp: true, newcap: true, immed: true */
-/*global window: true, document: true, clearInterval: true, setInterval: true, jQuery: true */
 
 (function($) {
 

+ 1 - 8
public/themes/default/assets/app/js/jquery.ba-resize.min.js

@@ -1,9 +1,2 @@
-/*
- * jQuery resize event - v1.1 - 3/14/2010
- * http://benalman.com/projects/jquery-resize-plugin/
- * 
- * Copyright (c) 2010 "Cowboy" Ben Alman
- * Dual licensed under the MIT and GPL licenses.
- * http://benalman.com/about/license/
- */
+
 (function($,h,c){var a=$([]),e=$.resize=$.extend($.resize,{}),i,k="setTimeout",j="resize",d=j+"-special-event",b="delay",f="throttleWindow";e[b]=50;e[f]=true;$.event.special[j]={setup:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.add(l);$.data(this,d,{w:l.width(),h:l.height()});if(a.length===1){g()}},teardown:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.not(l);l.removeData(d);if(!a.length){clearTimeout(i)}},add:function(l){if(!e[f]&&this[k]){return false}var n;function m(s,o,p){var q=$(this),r=$.data(this,d);r.w=o!==c?o:q.width();r.h=p!==c?p:q.height();n.apply(this,arguments)}if($.isFunction(l)){n=l;return m}else{n=l.handler;l.handler=m}}};function g(){i=h[k](function(){a.each(function(){var n=$(this),m=n.width(),l=n.height(),o=$.data(this,d);if(m!==o.w||l!==o.h){n.trigger(j,[o.w=m,o.h=l])}});g()},e[b])}})(jQuery,this);

+ 1 - 7
public/themes/default/assets/app/js/jquery.cookie.js

@@ -1,10 +1,4 @@
-/*!
- * jQuery Cookie Plugin v1.4.0
- * https://github.com/carhartl/jquery-cookie
- *
- * Copyright 2013 Klaus Hartl
- * Released under the MIT license
- */
+
 (function (factory) {
     if (typeof define === 'function' && define.amd) {
         // AMD. Register as anonymous module.

+ 1 - 4
public/themes/default/assets/app/js/jquery.cxscroll.js

@@ -1,7 +1,4 @@
-/*!
- * cxScroll 1.0.0
- * DownLoad by www.juheweb.com
- */
+
 (function($){
 	$.fn.cxScroll=function(settings){
 		if(!this.length){return;};

+ 1 - 5
public/themes/default/assets/app/js/jquery.flexslider-min.js

@@ -1,8 +1,4 @@
-/*
- * jQuery FlexSlider v2.0
- * Copyright 2012 WooThemes
- * Contributing Author: Tyler Smith
- */
+
 ;(function(d){d.flexslider=function(h,k){var a=d(h),c=d.extend({},d.flexslider.defaults,k),e=c.namespace,o="ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,s=o?"touchend":"click",l="vertical"===c.direction,m=c.reverse,i=0<c.itemWidth,p="fade"===c.animation,r=""!==c.asNavFor,f={};d.data(h,"flexslider",a);f={init:function(){a.animating=!1;a.currentSlide=c.startAt;a.animatingTo=a.currentSlide;a.atEnd=0===a.currentSlide||a.currentSlide===a.last;a.containerSelector=c.selector.substr(0,
 c.selector.search(" "));a.slides=d(c.selector,a);a.container=d(a.containerSelector,a);a.count=a.slides.length;a.syncExists=0<d(c.sync).length;"slide"===c.animation&&(c.animation="swing");a.prop=l?"top":"marginLeft";a.args={};a.manualPause=!1;a.transitions=!c.video&&!p&&c.useCSS&&function(){var b=document.createElement("div"),c=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"],d;for(d in c)if(b.style[c[d]]!==void 0){a.pfx=c[d].replace("Perspective","").toLowerCase();
 a.prop="-"+a.pfx+"-transform";return true}return false}();""!==c.controlsContainer&&(a.controlsContainer=0<d(c.controlsContainer).length&&d(c.controlsContainer));""!==c.manualControls&&(a.manualControls=0<d(c.manualControls).length&&d(c.manualControls));c.randomize&&(a.slides.sort(function(){return Math.round(Math.random())-0.5}),a.container.empty().append(a.slides));a.doMath();r&&f.asNav.setup();a.setup("init");c.controlNav&&f.controlNav.setup();c.directionNav&&f.directionNav.setup();c.keyboard&&

+ 0 - 12
public/themes/default/assets/app/js/jquery.form.js

@@ -1,16 +1,4 @@
-/*!
- * jQuery Form Plugin
- * version: 3.50.0-2014.02.05
- * Requires jQuery v1.5 or later
- * Copyright (c) 2013 M. Alsup
- * Examples and documentation at: http://malsup.com/jquery/form/
- * Project repository: https://github.com/malsup/form
- * Dual licensed under the MIT and GPL licenses.
- * https://github.com/malsup/form#copyright-and-license
- */
-/*global ActiveXObject */
 
-// AMD support
 (function (factory) {
     "use strict";
     if (typeof define === 'function' && define.amd) {

Fichier diff supprimé car celui-ci est trop grand
+ 1 - 10
public/themes/default/assets/app/js/jquery.nivo.slider.pack.js


Fichier diff supprimé car celui-ci est trop grand
+ 1 - 1
public/themes/default/assets/app/js/jquery.placeholder.min.js


Fichier diff supprimé car celui-ci est trop grand
+ 1 - 5
public/themes/default/assets/app/js/jquery.steps.min.js


+ 1 - 3
public/themes/default/assets/app/js/jquery.validate.js

@@ -1,6 +1,4 @@
-/*
-* jQuery validation plug-in 1.5.2
-*/
+
 
 (function($)
 {

+ 0 - 12
public/themes/default/assets/app/js/outward.company.js

@@ -1,15 +1,3 @@
-/**
- *  Ajax Autocomplete for jQuery, version 1.1.3
- *  (c) 2010 Tomas Kirda
- *
- *  Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
- *  For details, see the web site: http://www.devbridge.com/projects/autocomplete/jquery/
- *
- *  Last Review: 04/19/2010
- */
-
-/*jslint onevar: true, evil: true, nomen: true, eqeqeq: true, bitwise: true, regexp: true, newcap: true, immed: true */
-/*global window: true, document: true, clearInterval: true, setInterval: true, jQuery: true */
 
 (function($) {
 

Fichier diff supprimé car celui-ci est trop grand
+ 1 - 12
public/themes/default/assets/app/js/portamento-min.js


Fichier diff supprimé car celui-ci est trop grand
+ 1 - 14
public/themes/default/assets/app/js/swiper.min.js


Fichier diff supprimé car celui-ci est trop grand
+ 1 - 9
public/themes/default/assets/app/js/viewer-jquery.min.js


+ 1 - 5
public/themes/default/assets/app/js/vue-router.js

@@ -1,8 +1,4 @@
-/*!
-  * vue-router v3.5.1
-  * (c) 2021 Evan You
-  * @license MIT
-  */
+
 (function (global, factory) {
     typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
         typeof define === 'function' && define.amd ? define(factory) :

Fichier diff supprimé car celui-ci est trop grand
+ 1 - 1
public/themes/default/assets/jquery/jquery-1.12.4.min.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 12
public/themes/default/assets/jquery/jquery.SuperSlide.2.1.1.js


Fichier diff supprimé car celui-ci est trop grand
+ 1 - 1
public/themes/default/assets/jquery/jquery.min.js


+ 320 - 0
public/themes/default/views/app/shuobo/talent.blade.php

@@ -0,0 +1,320 @@
+@extends('module.layouts.content')
+@push('meta')
+
+@endpush
+
+@push('css')
+    <link href="{{ theme_asset('app/css/common.css') }}" rel="stylesheet">
+    <link rel="stylesheet" href="{{ theme_asset('app/css/element.css') }}">
+    <link href="{{theme_asset('app/css/resume/resume.css')}}" rel="stylesheet"/>
+    <style>
+        .container{
+            width:1182px;
+            margin:0 auto;
+        }
+        .enterce{
+            text-align: center;
+        }
+        .search{
+            text-align: center;
+            margin-top: 20px;
+        }
+        .talent-list{
+            border: 1px #EEEEEE solid;
+            margin-top: 10px;
+        }
+        .talent-list .talent-item{
+            border-bottom: 1px #EEEEEE solid;
+            padding-top: 18px;
+            padding-bottom: 18px;
+            background-color: #FFFFFF;
+        }
+        .talent-list .talent-item .photo {
+            width: 140px;
+            float: left;
+            margin-left: 20px;
+        }
+        .talent-list .talent-item .tcent {
+            float: left;
+            width: 420px;
+        }
+        .talent-list .talent-item .tcent .txt {
+            font-size: 16px;
+            color: #333333;
+            line-height: 40px;
+        }
+        .talent-list .talent-item .tcent .txt span {
+            color: #999999;
+            padding-left: 3px;
+            padding-right: 3px;
+            font-size: 10px;
+        }
+        .talent-list .talent-item .rbtn {
+            float: right;
+            width: 145px;
+            position: relative;
+            margin-top: 15px;
+        }
+        .talent-list .talent-item .rbtn .btn {
+            width: 80px;
+            height: 38px;
+            line-height: 38px;
+            color: #3b87f7;
+            border: 1px #3b87f7 solid;
+            border-radius: 6px;
+            cursor: pointer;
+            padding: 0 20px;
+            font-size: 15px;
+            margin-top: 2px;
+            text-align: center;
+        }
+
+        .talent-list .talent-item .rbtn:before {
+            position: absolute;
+            content: "";
+            width: 1px;
+            height: 78px;
+            background: #e0e0e0;
+            left: -28px;
+            bottom: 5px;
+        }
+        .page{
+            margin-top: 20px;
+            text-align: center;
+        }
+    </style>
+
+@endpush
+@push('js')
+
+@endpush
+@section('content')
+    <div id="app">
+        <div class="banner">
+            <h1 style="text-align: center;line-height: 300px;font-size: 60px;">
+                硕博专场
+            </h1>
+        </div>
+        <div class="container">
+            <div class="enterce">
+                <el-radio v-model="enter" label="1" border>人才端</el-radio>
+                <el-radio v-model="enter" label="2" border>企业端</el-radio>
+            </div>
+            <div class="search">
+                <el-form :inline="true"  class="demo-form-inline" >
+                    <el-form-item style="margin-bottom: 0"  >
+                        <el-input placeholder="职位/技能/专业/证书/公司名" v-model="keyword" style="width: 300px"></el-input>
+                    </el-form-item>
+                    <el-form-item style="margin-bottom: 0">
+                        <el-button type="primary">查询</el-button>
+                    </el-form-item>
+                </el-form>
+            </div>
+
+            <div class="talent-list">
+                <div class="talent-item">
+                    <div class="photo">
+                        <img src="{{theme_asset('app/images/08.png')}}" >
+                    </div>
+                    <div class="tcent">
+                        <div class="txt font_gray6">徐博士<span>|</span>男<span>|</span>35岁<span>|</span>博士</div>
+                        <div class="dlabs">
+                            <div class="dl">毕业学校:厦门大学</div>
+                            <div class="dl">专业:天体物理</div>
+                            <div class="dl">行业领域:科研院所、党政单位</div>
+                            <div class="dl">核心技术或专长:主要研究方向为涉台研究</div>
+                            <div class="clear"></div>
+                        </div>
+                    </div>
+
+                    <div class="rbtn">
+                        <div class="btn" data-batch="false" data-url="" style="margin-bottom: 10px">查看详情</div>
+                        <div class="btn" data-batch="false" data-url="">收藏</div>
+                    </div>
+                    <div class="clear"></div>
+                </div>
+                <div class="talent-item">
+                    <div class="photo">
+                        <img src="{{theme_asset('app/images/08.png')}}" >
+                    </div>
+                    <div class="tcent">
+                        <div class="txt font_gray6">徐博士<span>|</span>男<span>|</span>35岁<span>|</span>博士</div>
+                        <div class="dlabs">
+                            <div class="dl">毕业学校:厦门大学</div>
+                            <div class="dl">专业:天体物理</div>
+                            <div class="dl">行业领域:科研院所、党政单位</div>
+                            <div class="dl">核心技术或专长:主要研究方向为涉台研究</div>
+                            <div class="clear"></div>
+                        </div>
+                    </div>
+
+                    <div class="rbtn">
+                        <div class="btn" data-batch="false" data-url="" style="margin-bottom: 10px">查看详情</div>
+                        <div class="btn" data-batch="false" data-url="">收藏</div>
+                    </div>
+                    <div class="clear"></div>
+                </div>
+                <div class="talent-item">
+                    <div class="photo">
+                        <img src="{{theme_asset('app/images/08.png')}}" >
+                    </div>
+                    <div class="tcent">
+                        <div class="txt font_gray6">徐博士<span>|</span>男<span>|</span>35岁<span>|</span>博士</div>
+                        <div class="dlabs">
+                            <div class="dl">毕业学校:厦门大学</div>
+                            <div class="dl">专业:天体物理</div>
+                            <div class="dl">行业领域:科研院所、党政单位</div>
+                            <div class="dl">核心技术或专长:主要研究方向为涉台研究</div>
+                            <div class="clear"></div>
+                        </div>
+                    </div>
+
+                    <div class="rbtn">
+                        <div class="btn" data-batch="false" data-url="" style="margin-bottom: 10px">查看详情</div>
+                        <div class="btn" data-batch="false" data-url="">收藏</div>
+                    </div>
+                    <div class="clear"></div>
+                </div>
+                <div class="talent-item">
+                    <div class="photo">
+                        <img src="{{theme_asset('app/images/08.png')}}" >
+                    </div>
+                    <div class="tcent">
+                        <div class="txt font_gray6">徐博士<span>|</span>男<span>|</span>35岁<span>|</span>博士</div>
+                        <div class="dlabs">
+                            <div class="dl">毕业学校:厦门大学</div>
+                            <div class="dl">专业:天体物理</div>
+                            <div class="dl">行业领域:科研院所、党政单位</div>
+                            <div class="dl">核心技术或专长:主要研究方向为涉台研究</div>
+                            <div class="clear"></div>
+                        </div>
+                    </div>
+
+                    <div class="rbtn">
+                        <div class="btn" data-batch="false" data-url="" style="margin-bottom: 10px">查看详情</div>
+                        <div class="btn" data-batch="false" data-url="">收藏</div>
+                    </div>
+                    <div class="clear"></div>
+                </div><div class="talent-item">
+                    <div class="photo">
+                        <img src="{{theme_asset('app/images/08.png')}}" >
+                    </div>
+                    <div class="tcent">
+                        <div class="txt font_gray6">徐博士<span>|</span>男<span>|</span>35岁<span>|</span>博士</div>
+                        <div class="dlabs">
+                            <div class="dl">毕业学校:厦门大学</div>
+                            <div class="dl">专业:天体物理</div>
+                            <div class="dl">行业领域:科研院所、党政单位</div>
+                            <div class="dl">核心技术或专长:主要研究方向为涉台研究</div>
+                            <div class="clear"></div>
+                        </div>
+                    </div>
+
+                    <div class="rbtn">
+                        <div class="btn" data-batch="false" data-url="" style="margin-bottom: 10px">查看详情</div>
+                        <div class="btn" data-batch="false" data-url="">收藏</div>
+                    </div>
+                    <div class="clear"></div>
+                </div>
+                <div class="talent-item">
+                    <div class="photo">
+                        <img src="{{theme_asset('app/images/08.png')}}" >
+                    </div>
+                    <div class="tcent">
+                        <div class="txt font_gray6">徐博士<span>|</span>男<span>|</span>35岁<span>|</span>博士</div>
+                        <div class="dlabs">
+                            <div class="dl">毕业学校:厦门大学</div>
+                            <div class="dl">专业:天体物理</div>
+                            <div class="dl">行业领域:科研院所、党政单位</div>
+                            <div class="dl">核心技术或专长:主要研究方向为涉台研究</div>
+                            <div class="clear"></div>
+                        </div>
+                    </div>
+
+                    <div class="rbtn">
+                        <div class="btn" data-batch="false" data-url="" style="margin-bottom: 10px">查看详情</div>
+                        <div class="btn" data-batch="false" data-url="">收藏</div>
+                    </div>
+                    <div class="clear"></div>
+                </div>
+
+                <div class="talent-item">
+                    <div class="photo">
+                        <img src="{{theme_asset('app/images/08.png')}}" >
+                    </div>
+                    <div class="tcent">
+                        <div class="txt font_gray6">徐博士<span>|</span>男<span>|</span>35岁<span>|</span>博士</div>
+                        <div class="dlabs">
+                            <div class="dl">毕业学校:厦门大学</div>
+                            <div class="dl">专业:天体物理</div>
+                            <div class="dl">行业领域:科研院所、党政单位</div>
+                            <div class="dl">核心技术或专长:主要研究方向为涉台研究</div>
+                            <div class="clear"></div>
+                        </div>
+                    </div>
+
+                    <div class="rbtn">
+                        <div class="btn" data-batch="false" data-url="" style="margin-bottom: 10px">查看详情</div>
+                        <div class="btn" data-batch="false" data-url="">收藏</div>
+                    </div>
+                    <div class="clear"></div>
+                </div>
+
+
+
+
+            </div>
+            <div class="page">
+                <el-pagination
+                        background
+                        layout="prev, pager, next"
+                        :total="1000"
+                        @current-change="page_change">
+                </el-pagination>
+            </div>
+
+        </div>
+
+
+
+
+
+    </div>
+
+@endsection
+@section('script')
+    <script src="{{theme_asset('app/js/vue.min.js')}}"></script>
+    <script src="{{theme_asset('app/js/axios.js')}}"></script>
+    <script src="{{theme_asset('app/js/element.js')}}"></script>
+    <script>
+        new Vue({
+            el: '#app',
+            data() {
+                return {
+                    enter: '1',
+                    loading:true,
+                    keyword:'',
+                    page_current:1,
+
+                };
+            },
+            methods: {
+                getData(page){
+                    axios.post("/shuobo/getTalentData",{keyword:this.keyword,page:page}).then(response => {
+                        this.loading = false;
+                        this.share_list = response.data.data;
+                        this.page_total = response.data.total;
+                    });
+                },
+                page_change(page){
+                    this.getData(page);
+                }
+            },
+            created(){
+                this.getData(1);
+            }
+        })
+
+    </script>
+
+@endsection

+ 598 - 0
public/themes/default/views/app/talent/jjhc/yqfk.blade.php

@@ -0,0 +1,598 @@
+@extends('module.layouts.content')
+
+@push('meta')
+
+@endpush
+
+@push('css')
+    <link href="{{ theme_asset('app/css/common.css') }}" rel="stylesheet">
+    <link rel="stylesheet" type="text/css" href="{{ theme_asset('app/css/suggest/suggest.css') }}"/>
+    <style type="text/css">
+        .errinfo{
+            margin-left:85px;
+            width: 650px;
+            line-height: 26px;
+            color: #CC3300;
+            background-color: #FFD8CE;
+            border: 1px #FF9E86 solid;
+            font-size: 12px;
+            padding-left: 10px;
+            margin-bottom: 15px;
+            border-radius: 3px;
+        }
+        .display_none{display:none;    border: 0px #FF9E86 solid;}
+        .define-table{
+            border-collapse:collapse;
+            border-spacing:0;
+            border-left:1px solid #888;
+            border-top:1px solid #888;
+        }
+        .define-table th,.define-table td{
+            border-right:1px solid #888;
+            border-bottom:1px solid #888;
+            padding:5px 15px;
+        }
+        .define-table th{
+            font-weight:bold;background:#ccc;
+        }
+        ————————————————
+        版权声明:本文为CSDN博主「NFA_YY」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
+                                             原文链接:https://blog.csdn.net/NFA_YY/article/details/75089564
+    </style>
+@endpush
+
+@push('js')
+    <script type="text/javascript" src="{{ theme_asset('gt/gt.js') }}"></script>
+    <script type="text/javascript" src="{{ theme_asset('gt/gt.handle.js') }}"></script>
+@endpush
+
+@section('content')
+    <div class="all_body">
+        <div class="suggest_main">
+            <form id="form_suggest" action="{{route('suggest.add')}}" method="post">
+                <div class="suggest_head">疫情流调数据查重系统</div>
+                <div class="top_tips">根据手机号码进行查重判定</div>
+                <div class="suggest_list_group">
+
+                    <div class="errinfo display_none" id="sugget_tel_div"></div>
+                    <div class="suggest_list_cell">
+                        <div class="list_cell_left">手机号码</div>
+                        <div class="list_cell_right"><input type="text" class="suggest_input" name="tel" placeholder="请输入手机号码!"></div>
+                        <div class="clear"></div>
+                    </div>
+
+
+                    <div class="suggest_list_cell">
+                        <div class="list_cell_left"></div>
+                        <div class="list_cell_right">
+
+                            <input type="button" class="btn_yellow suggest_btn" id="J_suggest_submit" value="提 交">
+                        </div>
+                        <div class="clear"></div>
+                    </div>
+                </div>
+            </form>
+            <div id="result" style="display: none">
+                <table  class="define-table">
+                    <tbody>
+                        <tr>
+                            <td>
+                                姓名
+                            </td>
+                            <td id="xm">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                性别
+                            </td>
+                            <td id="xb">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                证件类型
+                            </td>
+                            <td id="zjlx">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                证件号码
+                            </td>
+                            <td id="zjhm">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                人员类型
+                            </td>
+                            <td id="personTypeCName">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                出生日期
+                            </td>
+                            <td id="csrq">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                联系电话
+                            </td>
+                            <td id="lxdh">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                联系电话2
+                            </td>
+                            <td id="lxdh2">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                联系电话3
+                            </td>
+                            <td id="lxdh3">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                职业
+                            </td>
+                            <td id="zy">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                户籍地址
+                            </td>
+                            <td id="hjdz">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                居住地址(补充)
+                            </td>
+                            <td id="jzdz">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                身份证地址
+                            </td>
+                            <td id="sfzdz">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                来源地/漫出地
+                            </td>
+                            <td id="lydmcd">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                所在城市
+                            </td>
+                            <td id="mrszcs">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                所在区县
+                            </td>
+                            <td id="mrszqx">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                所在乡镇/街道
+                            </td>
+                            <td id="mrszxzjd">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                所在村居
+                            </td>
+                            <td id="mrszcj">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                线索来源
+                            </td>
+                            <td id="xsly">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                线索接收时间
+                            </td>
+                            <td id="xsjssj">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                派发时间
+                            </td>
+                            <td id="pfsj">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                派发时间
+                            </td>
+                            <td id="pczt">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                何时去中高风险地(格式2022/1/1)
+                            </td>
+                            <td id="hszgfx">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                中高风险地
+                            </td>
+                            <td id="zgfxd">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                排查方式
+                            </td>
+                            <td id="pcfs">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                排查结果
+                            </td>
+                            <td id="pcjg">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                其他排查结果
+                            </td>
+                            <td id="qtpcjg">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                高中风险地1
+                            </td>
+                            <td id="gzfxd1">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                高中风险地2
+                            </td>
+                            <td id="gzfxd2">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                高中风险地3
+                            </td>
+                            <td id="gzfxd3">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                平推目的地
+                            </td>
+                            <td id="samePushAreaCode">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                入闽方式
+                            </td>
+                            <td id="rmfs">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                入返闽时间
+                            </td>
+                            <td id="rfmsj">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                排查时间
+                            </td>
+                            <td id="pcsj">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                排查执行人
+                            </td>
+                            <td id="pczxr">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                隔离方式
+                            </td>
+                            <td id="glfs">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                填报人
+                            </td>
+                            <td id="tbr">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                线索备注
+                            </td>
+                            <td id="xsbz">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                备注
+                            </td>
+                            <td id="touchNote">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                填报时间
+                            </td>
+                            <td id="dataFillTime">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                核酸检测时间
+                            </td>
+                            <td id="hsjccysj1">
+
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                核酸检测结果
+                            </td>
+                            <td id="hsjcjg1">
+
+                            </td>
+                        </tr>
+                    </tbody>
+                </table>
+            </div>
+
+        </div>
+    </div>
+
+@endsection
+
+
+
+@section('script')
+    <script>
+
+
+        // 提交验证
+        $('#J_suggest_submit').on('click', function(event) {
+            $("#result").css("display","none");
+            var telValue = $.trim($('input[name="tel"]').val());
+            if (telValue == "") {
+                disapperTooltip("remind", "请输入手机号码");
+                return false;
+            }
+            if (!eval($('#J_suggest_verify').val())) {
+                $('#J_suggest_submit').val('提 交 中...').addClass('btn_disabled').prop('disabled', !0);
+                doSuggestFun();
+            }
+        });
+        // 配置极验
+        var gt_call_back=function(captchaObj) {
+            captchaObj.onReady(function () {
+                //极验加载完成
+            });
+            captchaObj.onSuccess(function () {
+                $('#J_suggest_submit').val('提 交 中...').addClass('btn_disabled').prop('disabled', !0);
+                doSuggestFun();
+
+            });
+            captchaObj.onError(function () {
+                show_error(login_type,"请先进行验证");
+            });
+            captchaObj.onClose(function () {
+                show_error(login_type,"请先进行验证");
+            });
+            $('#J_suggest_submit').on('click', function () {
+
+                $('#J_suggest_submit').val('提 交 中...').addClass('btn_disabled').prop('disabled', !0);
+                doSuggestFun();
+
+
+            });
+        };
+
+        if (eval($('#J_suggest_verify').val())) {
+            gt_init(gt_call_back);//初始化极验
+        }
+
+
+        // 提交
+        function doSuggestFun() {
+            var telValue = $.trim($('input[name="tel"]').val());
+            // 提交表单
+            $.post("{{route('talent.jjhc.chaxun')}}", {tel: telValue, '_token': '{{ csrf_token() }}'}, function (data) {
+                disapperTooltip("success", data.msg);
+                if(data.status == 1){
+                    $("#result").css("display","block");
+                    $("#xm").text(data.info.xm)
+                    switch (data.info.xb) {
+                        case '1':
+                            $("#xb").text("男")
+                            break;
+                        case '2':
+                            $("#xb").text("女");
+                            break;
+                        default:
+                            $("#xb").text("未知");
+                            break;
+                    }
+                    switch (data.info.zjlx) {
+                        case '1':
+                            $("#zjlx").text("居民身份证")
+                            break;
+                        case '2':
+                            $("#zjlx").text("中国护照");
+                            break;
+                        case '3':
+                            $("#zjlx").text("港澳通行证");
+                            break;
+                        case '4':
+                            $("#zjlx").text("台湾通行证");
+                            break;
+                        case '5':
+                            $("#zjlx").text("外国护照");
+                            break;
+                        default:
+                            $("#zjlx").text("其他");
+                            break;
+                    }
+                    $("#zjhm").text(data.info.zjhm);
+                    $("#personTypeCName").text(data.info.personTypeCName);
+                    $("#csrq").text(data.info.csrq);
+                    $("#lxdh").text(data.info.lxdh);
+                    $("#lxdh2").text(data.info.lxdh2);
+                    $("#lxdh3").text(data.info.lxdh3);
+                    $("#zy").text(data.info.zy);
+                    $("#hjdz").text(data.info.hjdz);
+                    $("#jzdz").text(data.info.jzdz);
+                    $("#sfzdz").text(data.info.sfzdz);
+                    $("#lydmcd").text(data.info.lydmcd);
+                    $("#mrszcs").text(data.info.mrszcs);
+                    $("#mrszqx").text(data.info.mrszqx);
+                    $("#mrszxzjd").text(data.info.mrszxzjd);
+                    $("#mrszcj").text(data.info.mrszcj);
+                    switch (data.info.xsly) {
+                        case '1':
+                            $("#xsly").text("省交通检疫组");
+                            break;
+                        case '2':
+                            $("#xsly").text("省通信管理局");
+                            break;
+                        case '3':
+                            $("#xsly").text("省公安厅");
+                            break;
+                        case '4':
+                            $("#xsly").text("国家卫健局");
+                            break;
+                        case '5':
+                            $("#xsly").text("主动排查");
+                            break;
+                        default:
+                            $("#xsly").text("其他");
+                    }
+                    $("#xsjssj").text(data.info.xsjssj);
+                    $("#pfsj").text(data.info.pfsj);
+                    if(data.info.pczj == "3"){
+                        $("#pczt").text("已落实");
+                    }else{
+                        $("#pczt").text("落实中");
+                    }
+                    $("#hszgfx").text(data.info.hszgfx);
+                    $("#zgfxd").text(data.info.zgfxd);
+                    $("#pcfs").text(data.info.pcfs);
+                    $("#pcjg").text(data.info.pcjg);
+                    $("#qtpcjg").text(data.info.qtpcjg);
+                    $("#gzfxd1").text(data.info.gzfxd1);
+                    $("#gzfxd2").text(data.info.gzfxd2);
+                    $("#gzfxd3").text(data.info.gzfxd3);
+                    $("#samePushAreaCode").text(data.info.samePushAreaCode);
+                    $("#rfmsj").text(data.info.rfmsj);
+                    $("#rmfs").text(data.info.rmfs);
+                    $("#pcsj").text(data.info.pcsj);
+                    $("#pczxr").text(data.info.pczxr);
+                    $("#glfs").text(data.info.glfs);
+                    $("#tbr").text(data.info.tbr);
+                    $("#xsbz").text(data.info.xsbz);
+                    $("#touchNote").text(data.info.touchNote);
+                    $("#dataFillTime").text(data.info.dataFillTime);
+                    $("#hsjccysj1").text(data.info.hsjccysj1);
+                    $("#hsjcjg1").text(data.info.hsjcjg1);
+                }
+
+                $('#J_suggest_submit').val('提 交').removeClass('btn_disabled').prop('disabled', 0);
+            }).fail(function(result) {
+                if(result.status == 422){ //显示验证错误信息
+                    var errors = result.responseJSON.errors;
+                    $.each(errors,function(key,val){
+                        var error_html =val.join(",");
+                        $('#sugget_'+key+'_div').text(error_html);
+                        $('#sugget_'+key+'_div').removeClass('display_none');
+                    });
+                }else{
+                    disapperTooltip("remind", "提交失败,请稍后重试");
+                }
+                $('#J_suggest_submit').val('提 交').removeClass('btn_disabled').prop('disabled', 0);
+            });
+        }
+    </script>
+@endsection
+<script>
+    import Tab
+        from "../../../../../../../../xjl/admin-dist-67bc71e24b22a500e506caf6d9263fc10bf5fed6/src/views/tab/index";
+    export default {
+        components: {Tab}
+    }
+</script>

+ 9 - 0
routes/web.php

@@ -889,5 +889,14 @@ Route::group([
 Route::group([
     'prefix' =>  '/jjhc',
 ], function (Router $router){
+    /*$router->get('/bOQ4J1CqySjkWDKh', 'Web\Talent\JjhcController@yqfk')->name('talent.jjhc.yqfk');*/
+    $router->post('/yqfk/chaxun', 'Web\Talent\JjhcController@chaxun')->name('talent.jjhc.chaxun');
     $router->get('/test', 'Web\Talent\JjhcController@test')->name('talent.jjhc.test');
 });
+
+Route::group([
+    'prefix' => '/shuobo'
+], function (Router $router){
+    $router->get('/talent','Web\Talent\ShuoboController@talent')->name('shuobo.talent');
+    $router->any('/getTalentData','Web\Talent\ShuoboController@getTalentData')->name('shuobo.getTalentData');
+});

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff