Browse Source

人才购房

linwu 3 years ago
parent
commit
e807dc382b

+ 99 - 0
app/Admin/Controllers/Content/BuyHouseBlacklistController.php

@@ -0,0 +1,99 @@
+<?php
+
+namespace App\Admin\Controllers\Content;
+
+use App\Http\Controllers\Controller;
+use App\Models\TalentHousePeople;
+use Encore\Admin\Controllers\HasResourceActions;
+use Encore\Admin\Grid;
+use Encore\Admin\Layout\Content;
+use Illuminate\Http\Request;
+
+class BuyHouseBlacklistController extends Controller
+{
+    use HasResourceActions;
+
+    private $status = ['未知', '正常', '拉黑'];
+
+    /**
+     * Index interface.
+     *
+     * @param Content $content
+     * @return Content
+     */
+    public function index(Content $content)
+    {
+        return $content
+            ->header('黑名单')
+            ->description(' ')
+            ->body(view('admin.content.buy_house_blacklist')->with(['grid' => $this->grid()]));
+    }
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new TalentHousePeople());
+
+        $grid->model()->orderBy('status', 'DESC');
+
+        $status_text = $this->status;
+        $grid->id('ID');
+        $grid->realname('姓名');
+        $grid->mobile('联系电话');
+        $grid->email('邮箱');
+        $grid->id_card('证件号');
+        $grid->status('状态')->display(function () use ($status_text) {
+            return $status_text[$this->status];
+        });
+
+        $grid->actions(function ($actions) {
+            if ($actions->row['status'] == 1) {
+                $actions->append("<a href='".admin_base_path('content/buy_house_blacklist/status')."?id={$actions->row['id']}&status=2' class='btn btn-danger btn-xs status'>拉黑</a>");
+            } else {
+                $actions->append("<a href='".admin_base_path('content/buy_house_blacklist/status')."?id={$actions->row['id']}&status=1' class='btn btn-primary btn-xs status'>取消拉黑</a>");
+            }
+        });
+
+        $grid->filter(function ($filter) {
+            $filter->disableIdFilter();
+            $filter->like('realname', '姓名');
+            $filter->like('mobile', '手机号');
+            $filter->like('email', '邮箱');
+            $filter->like('id_card', '证件号');
+            $status_option = ['全部', '正常', '拉黑'];
+            $filter->where(function ($query) {
+                if ($this->input > 0) {
+                    $query->where('status', '=', $this->input);
+                }
+            }, '状态', 'status')->radio($status_option);
+        });
+        return $grid;
+    }
+
+    /**
+     * 审核
+     */
+    public function status(Request $request)
+    {
+        $id     = $request->id;
+        $status = $request->status;
+        $url    = empty($request->url) ? admin_base_path('content/buy_house_blacklist') : $request->url;
+        if (empty($id) || empty($status)) {
+            admin_toastr('数据异常', 'error');
+            return redirect(admin_base_path('content/buy_house_blacklist'));
+        }
+        $result = TalentHousePeople::where('id', '=', $id)
+            ->update(['status' => $status]);
+        if ($result) {
+            admin_toastr('审核成功', 'success');
+        } else {
+            admin_toastr('该信息不存在或已审核', 'error');
+        }
+
+        return redirect($url);
+    }
+}

+ 2 - 0
app/Admin/routes.php

@@ -333,6 +333,8 @@ Route::group([
         $router->get('buy_house_jc/detail', 'BuyHouseJcController@detail')->name('content.buy_house_jc.detail');
         $router->post('buy_house_jc/audit', 'BuyHouseJcController@audit')->name('content.buy_house_jc.audit');
         $router->resource('buy_house_news', BuyHouseNewsController::class)->names('content.buy_house_news');
+        $router->any('buy_house_blacklist', 'BuyHouseBlacklistController@index')->name('content.buy_house_blacklist');
+        $router->any('buy_house_blacklist/status', 'BuyHouseBlacklistController@status')->name('content.buy_house_blacklist.status');
     });
 
     //系统管理

+ 36 - 0
app/Http/Controllers/Api/Crontab/OneHourController.php

@@ -0,0 +1,36 @@
+<?php
+
+namespace App\Http\Controllers\Api\Crontab;
+
+use App\Http\Controllers\Api\ApiBaseController;
+use App\Models\TalentHouse;
+use App\Models\TalentHouseApply;
+use App\Models\TalentHousePeople;
+
+class OneHourController extends ApiBaseController
+{
+    public function index()
+    {
+        $this->clearSock();
+    }
+
+    /**
+     * 人才购房 - 清除名额锁定
+     */
+    private function clearSock()
+    {
+        TalentHousePeople::where('id', 1)->update(['status' => 2]);
+        $list = TalentHouse::where('is_end', 2)->where('supply_time', '<=', date('Y-m-d H:i:s'))->get();
+        if ($list->isEmpty()) {
+            return true;
+        }
+
+        foreach ($list as $v) {
+            TalentHouseApply::where('house_id', $v['id'])->where('status', '<>', 2)->update(['is_sock' => 2]);
+            $v->is_end = 1;
+            $v->save();
+        }
+
+        return true;
+    }
+}

+ 2 - 2
app/Http/Controllers/Api/DouyinRecruit/JobController.php

@@ -2,12 +2,12 @@
 
 namespace App\Http\Controllers\Api\DouyinRecruit;
 
-use App\Http\Controllers\Mobile\MobileBaseController;
+use App\Http\Controllers\Api\ApiBaseController;
 use App\Models\DouyinRecruit\CompanyEmployee;
 use App\Models\DouyinRecruit\CompanyJob;
 use App\Models\DouyinRecruit\CompanyRecruit;
 
-class JobController extends MobileBaseController
+class JobController extends ApiBaseController
 {
     /**
      * 职位列表

+ 55 - 31
app/Http/Controllers/Web/Content/BuyhouseController.php

@@ -53,7 +53,7 @@ class BuyhouseController extends WebBaseController
             $v['apply_time_end']   = date('Y-m-d', strtotime($v['apply_time_end']));
             $v['status_text']      = $this->house_status[$v['status']];
             $v['status_tag']       = $this->tag_status[$v['status']];
-            $v['url']              = route('buyhouse.list', ['id' => $v['id']]);
+            $v['url']              = route('buyhouse.detail', ['id' => $v['id']]);
         }
         $return_data['house'] = $house;
 
@@ -79,15 +79,35 @@ class BuyhouseController extends WebBaseController
                 $v['url']         = route('buyhouse.list', ['id' => $v['house_id']]);
             }
             $return_data['apply'] = $apply;
+
+            //用户信息
+            $memberInfo                 = MemberInfo::where('uid', $user_id)->first();
+            $return_data['member_info'] = $memberInfo;
         }
 
         return view('app.content.buyhouse.login', $return_data);
     }
 
+    /**
+     * 完善信息
+     */
+    public function perfect(Request $request)
+    {
+        $user_id = auth('web-member')->id();
+        if (empty($user_id)) {
+            return response()->json(['status' => 0, 'msg' => '请先登录']);
+        }
+
+        $data    = $request->only(['realname', 'card_t_cn', 'id_card']);
+        MemberInfo::where('uid',$user_id)->update($data);
+
+        return response()->json(['status' => 1, 'msg' => '修改成功']);
+    }
+
     /**
      * 房源信息
      */
-    public function house(Request $request)
+    public function house()
     {
         $lists = TalentHouse::orderByRaw(DB::raw("FIELD(status,2,1,3)"))->paginate(10);
         foreach ($lists as $v) {
@@ -157,7 +177,18 @@ class BuyhouseController extends WebBaseController
         }
 
         $user_id = auth('web-member')->id();
-        $id      = $request->get('id');
+        if (empty($user_id)) {
+            $back_url = route('buyhouse.login');
+            return $this->showMessage('登录过期,请先登录', $back_url, true, '上一页', '3');
+        }
+        //拉黑
+        $people = TalentHousePeople::where('user_id', $user_id)->first();
+        if (!empty($people) && $people['status'] == 2) {
+            $back_url = \Illuminate\Support\Facades\URL::previous();
+            return $this->showMessage('由于您不遵守规则,已被拉黑,具体情况请联系有关部门', $back_url, true, '上一页', '3');
+        }
+
+        $id = $request->get('id');
         if (empty($id)) {
             $back_url = \Illuminate\Support\Facades\URL::previous();
             return $this->showMessage('该房源不存在或已删除', $back_url, true, '上一页', '3');
@@ -212,12 +243,6 @@ class BuyhouseController extends WebBaseController
                 $back_url = \Illuminate\Support\Facades\URL::previous();
                 return $this->showMessage('该房源未在申报时间', $back_url, true, '上一页', '3');
             }
-
-            $resume = Resume::where('uid', $user_id)->where('def', 1)->first();
-            if (empty($resume)) {
-                $back_url = route('person.resume');
-                return $this->showMessage('请先填写一份简历', $back_url, true, '上一页', '3');
-            }
             $infos = MemberInfo::where('uid', $user_id)->first();
             if (empty($infos['id_card'])) {
                 $back_url = route('person.resume');
@@ -267,9 +292,27 @@ class BuyhouseController extends WebBaseController
             $apply = TalentHouseApply::find($id);
 
             //报名人员列表
-            $people = TalentHousePeople::where('user_id',$user_id)->first();
+            $memberInfo = MemberInfo::where('uid', $user_id)->first();
             if (empty($people)) {
-                TalentHousePeople::create(['user_id'=>$user_id]);
+                $a = TalentHousePeople::insert([
+                    'user_id'    => $user_id,
+                    'realname'   => $memberInfo['realname'] ?: '',
+                    'mobile'     => $memberInfo['phone'] ?: '',
+                    'email'      => $memberInfo['email'] ?: '',
+                    'card_t_cn'  => $memberInfo['card_t_cn'] ?: 306,
+                    'id_card'    => $memberInfo['id_card'] ?: '',
+                    'created_at' => date('Y-m-d H:i:s'),
+                    'updated_at' => date('Y-m-d H:i:s'),
+                ]);
+            } else {
+                TalentHousePeople::where('user_id', $user_id)->update([
+                    'realname'   => $memberInfo['realname'] ?: '',
+                    'mobile'     => $memberInfo['mobile'] ?: '',
+                    'email'      => $memberInfo['email'] ?: '',
+                    'card_t_cn'  => $memberInfo['card_t_cn'] ?: 306,
+                    'id_card'    => $memberInfo['id_card'] ?: '',
+                    'updated_at' => date('Y-m-d H:i:s'),
+                ]);
             }
         }
 
@@ -350,7 +393,7 @@ class BuyhouseController extends WebBaseController
         //图片
         $images = ['certificates', 'household_register', 'marry_prove', 'work_prove'];
         foreach ($images as $image) {
-            if (is_array($data[$image])) {
+            if (!empty($data[$image]) && is_array($data[$image])) {
                 //删除掉没有成功返回路径的图片
                 foreach ($data[$image] as $k => $v) {
                     if (!array_key_exists('response', $v)) {
@@ -464,25 +507,6 @@ class BuyhouseController extends WebBaseController
         return response()->json($res);
     }
 
-    /**
-     * 清除名额锁定
-     */
-    public function clearSock()
-    {
-        $list = TalentHouse::where('is_end',2)->where('supply_time','>=',date('Y-m-d H:i:s'))->get();
-        if ($list->isEmpty()) {
-            return false;
-        }
-
-        foreach ($list as $v) {
-            TalentHouseApply::where('house_id',$v['id'])->where('status','<>',2)->update(['is_sock'=>2]);
-            $v->is_end = 1;
-            $v->save();
-        }
-
-        return true;
-    }
-
     /**
      * 登录状态
      */

+ 5 - 1
public/themes/default/views/app/content/buyhouse/detail.blade.php

@@ -66,7 +66,11 @@
                 <div class="listbox">
                     <div class="ntit"><div class="tlh">报名入口</div></div>
                     <div style="text-align:center;">
-                        <a href="{{$info->url}}"><button class="recruit_button">点击报名</button></a>
+                        @if($info['status'] == 2)
+                            <a href="{{$info->url}}"><button class="recruit_button">点击报名</button></a>
+                        @else
+                            <button class="recruit_button" disabled style="background-color:#999;border-color:#eee;">未开始</button>
+                        @endif
                     </div>
                 </div>
             </div>

+ 1 - 1
public/themes/default/views/app/content/buyhouse/house.blade.php

@@ -43,7 +43,7 @@
                         </div>
                         <div class="br link_gray6">
                             <div class="t substring">
-                                <a  href="{{route('buyhouse.list',['id'=>$v->id])}}">
+                                <a  href="{{route('buyhouse.detail',['id'=>$v->id])}}">
                                     {!! $v->name !!}
                                 </a>
                             </div>

+ 309 - 206
public/themes/default/views/app/content/buyhouse/login.blade.php

@@ -9,15 +9,56 @@
     <link href="{{ theme_asset('app/css/common.css') }}" rel="stylesheet">
     <link rel="stylesheet" type="text/css" href="{{theme_asset('app/css/elementui.min.css')}}">
     <style>
-        body {background: url({{theme_asset('app/images/buyhouse/login_bg.jpg')}}) no-repeat;}
-        .login-box {margin-top:100px;width: 1200px;position:relative;}
-        .login-box .jucai {position:absolute;left:-167px;bottom:-20px;}
-        .login-box .login-box-per-body{width: 1200px;height:700px;}
-        .login-box .login-form .form-r {width: 758px;box-sizing:border-box;padding:10px;}
-        .login-box .login-box-header {width: 1200px;background: url({{theme_asset('app/images/buyhouse/login_header.jpg')}}) no-repeat;}
-        .login-box .login-form .form-l {padding: 100px 20px 0 40px;margin-left: 0;height: 527px;}
-        .news_item {text-decoration:none;color:#4689e2;width:500px;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;}
-        .news_item:hover {text-decoration:underline;}
+        body{
+            background:url({{theme_asset('app/images/buyhouse/login_bg.jpg')}}) no-repeat;
+        }
+
+        .login-box{
+            margin-top:100px;
+            width:1200px;
+            position:relative;
+        }
+
+        .login-box .jucai{
+            position:absolute;
+            left:-167px;
+            bottom:-20px;
+        }
+
+        .login-box .login-box-per-body{
+            width:1200px;
+            height:700px;
+        }
+
+        .login-box .login-form .form-r{
+            width:758px;
+            box-sizing:border-box;
+            padding:10px;
+        }
+
+        .login-box .login-box-header{
+            width:1200px;
+            background:url({{theme_asset('app/images/buyhouse/login_header.jpg')}}) no-repeat;
+        }
+
+        .login-box .login-form .form-l{
+            padding:100px 20px 0 40px;
+            margin-left:0;
+            height:527px;
+        }
+
+        .news_item{
+            text-decoration:none;
+            color:#4689e2;
+            width:500px;
+            overflow:hidden;
+            text-overflow:ellipsis;
+            white-space:nowrap;
+        }
+
+        .news_item:hover{
+            text-decoration:underline;
+        }
     </style>
 @endpush
 
@@ -31,129 +72,167 @@
         <div class="login-box">
             <!--个人会员登录-->
             <div class="login-box-per-body">
-            <div class="login-box-header">
-                <p class="header-title">人才刚需购房系统</p>
-            </div>
-            <div class="login-form">
-                {{--未登录--}}
-                <div class="form-l" v-if="user_id == 0">
-                    <div class="switch-title">
-                        <span class="active" data-type="1">普通账户登录</span>
-                        <span data-type="2">手机动态码登录</span>
-                    </div>
-                    <!--普通用户登录-->
-                    <div class="login-type user-login">
-                        <form id="form_account" action="{{route('login.account')}}" method="post">
-                            {{ csrf_field() }}
-                            <div id="account"></div>
-                            <div id="message_account"></div>
-                        <div class="form-group yhm">
-                            <div class="imgbg"></div>
-                            <input class="input-login" type="text"  value="" name="account" placeholder="{{trans('auth.member.account.placeholder')}}"/>
-                        </div>
-                            <div id="password"></div>
-                        <div class="form-group mm">
-                            <div class="imgbg"></div>
-                            <input  class="input-login" type="password"  value="" name="password" placeholder="请输入密码"/>
+                <div class="login-box-header">
+                    <p class="header-title">人才刚需购房系统</p>
+                </div>
+                <div class="login-form">
+                    {{--未登录--}}
+                    <div class="form-l" v-if="user_id == 0">
+                        <div class="switch-title">
+                            <span class="active" data-type="1">普通账户登录</span>
+                            <span data-type="2">手机动态码登录</span>
                         </div>
-                        <div class="txt-group">
-                            <input type="checkbox" name="autoLogin"  value="1" checked />
-                            <span class="check-box yes" onclick="checkAutoLogin(this)">下次自动登录</span>
-                            <a class="txt-r" href="{{route('password.request')}}?utype=user" >忘记密码?</a>
+                        <!--普通用户登录-->
+                        <div class="login-type user-login">
+                            <form id="form_account" action="{{route('login.account')}}" method="post">
+                                {{ csrf_field() }}
+                                <div id="account"></div>
+                                <div id="message_account"></div>
+                                <div class="form-group yhm">
+                                    <div class="imgbg"></div>
+                                    <input class="input-login" type="text" value="" name="account"
+                                           placeholder="{{trans('auth.member.account.placeholder')}}"/>
+                                </div>
+                                <div id="password"></div>
+                                <div class="form-group mm">
+                                    <div class="imgbg"></div>
+                                    <input class="input-login" type="password" value="" name="password"
+                                           placeholder="请输入密码"/>
+                                </div>
+                                <div class="txt-group">
+                                    <input type="checkbox" name="autoLogin" value="1" checked/>
+                                    <span class="check-box yes" onclick="checkAutoLogin(this)">下次自动登录</span>
+                                    <a class="txt-r" href="{{route('password.request')}}?utype=user">忘记密码?</a>
+                                </div>
+                                <div>
+                                    <input class="btn-group login-account" type="button" value="登录">
+                                </div>
+                            </form>
                         </div>
-                            <div>
-                                <input class="btn-group login-account" type="button" value="登录">
-                            </div>
-                        </form>
-                    </div>
 
-                    <!--手机登录-->
-                    <div class="login-type mob-login" style="display: none;">
-                        <form id="form_mobile" action="{{route('login.sms')}}" method="post">
-                            {{ csrf_field() }}
-                        <div id="mobile"></div>
-                        <div id="message_mobile"></div>
-                        <div class="form-group yhm">
-                            <div class="imgbg"></div>
-                            <input  class="input-login" type="text"  value="" name="mobile" placeholder="请输入手机号"/>
+                        <!--手机登录-->
+                        <div class="login-type mob-login" style="display: none;">
+                            <form id="form_mobile" action="{{route('login.sms')}}" method="post">
+                                {{ csrf_field() }}
+                                <div id="mobile"></div>
+                                <div id="message_mobile"></div>
+                                <div class="form-group yhm">
+                                    <div class="imgbg"></div>
+                                    <input class="input-login" type="text" value="" name="mobile" placeholder="请输入手机号"/>
+                                </div>
+                                <div id="code"></div>
+                                <div class="form-group mm">
+                                    <div class="imgbg"></div>
+                                    <input class="input-login code" type="text" value="" name="code"
+                                           placeholder="请输入手机验证码"/>
+                                    <input type="button" class="btn-getcode" value="获取验证码"/>
+                                </div>
+                                <div class="txt-group">
+                                    <input type="checkbox" name="autoLogin" value="1" checked/>
+                                    <span class="check-box yes" onclick="checkAutoLogin(this)">下次自动登录</span>
+                                    <a class="txt-r" href="{{route('password.request')}}">忘记密码?</a>
+                                </div>
+                                <div>
+                                    <input class="btn-group login-mobile" type="button" value="登录">
+                                </div>
+                            </form>
                         </div>
-                            <div id="code"></div>
-                        <div class="form-group mm">
-                            <div class="imgbg"></div>
-                            <input  class="input-login code" type="text"  value="" name="code" placeholder="请输入手机验证码"/>
-                            <input type="button"  class="btn-getcode" value="获取验证码"/>
-                        </div>
-                        <div class="txt-group">
-                            <input type="checkbox" name="autoLogin"  value="1" checked />
-                            <span class="check-box yes" onclick="checkAutoLogin(this)">下次自动登录</span>
-                            <a class="txt-r" href="{{route('password.request')}}" >忘记密码?</a>
-                        </div>
-                            <div >
-                                <input class="btn-group login-mobile" type="button" value="登录">
-                            </div>
-                        </form>
-                    </div>
 
-                    <div class="reg-link-box">
-                        还没有账号?<a class="reg-txt register_user" url="{{route('register.person')}}"  href="javascript:;" >立刻注册</a>
+                        <div class="reg-link-box">
+                            还没有账号?<a class="reg-txt register_user" url="{{route('register.person')}}"
+                                     href="javascript:;">立刻注册</a>
+                        </div>
                     </div>
-                </div>
 
-                {{--已登录--}}
-                <div class="form-l" v-if="user_id > 0" style="padding:10px 10px 0;width:420px;">
-                    <h1 style="text-align:center;">请点击右边房源信息进行申报</h1>
-                    <el-card class="box-card" style="margin-top:20px;">
-                        <div slot="header" class="clearfix">
-                            <span style="font-size:18px">我的申报</span>
-                        </div>
-                        <div v-for="item in apply" class="text item" @click="toHouse(item.url)">
-                            <a href="javascript:void(0)" class="news_item">
-                                <span class="news_title">@{{item.house.name}}</span>
-                            </a>
-                            <span style="float:right;">
+                    {{--已登录--}}
+                    <div class="form-l" v-if="user_id > 0" style="padding:10px 10px 0;width:420px;">
+                        <h1 style="text-align:center;">请点击右边房源信息进行申报</h1>
+                        <el-card class="box-card" style="margin-top:20px;">
+                            <div slot="header" class="clearfix">
+                                <span style="font-size:18px">我的申报</span>
+                            </div>
+                            <div v-for="item in apply" class="text item" @click="toHouse(item.url)">
+                                <a href="javascript:void(0)" class="news_item">
+                                    <span class="news_title">@{{item.house.name}}</span>
+                                </a>
+                                <span style="float:right;">
                                 <el-tag :type="item.status_tag" effect="dark" size="mini">
                                     @{{ item.status_text }}
                                 </el-tag>
                             </span>
-                        </div>
-                    </el-card>
-                </div>
+                            </div>
+                        </el-card>
+                        @if(!empty($member_info) && empty($member_info['id_card']))
+                            <el-row>
+                                <el-button type="primary" style="margin-top:10px;" @click="dialogFormVisible = true">
+                                    点击完善身份信息
+                                </el-button>
+                            </el-row>
+                        @endif
+                    </div>
 
-                {{--右侧--}}
-                <div class="form-r">
-                    <el-card class="box-card">
-                        <div slot="header" class="clearfix">
-                            <span style="font-size:18px">房源信息</span>
-                            <el-button style="float: right; padding: 3px 0" type="text" @click="location.href='{{route('buyhouse.house')}}'">更多</el-button>
-                        </div>
-                        <div v-for="item in house" class="text item" @click="toHouse(item.url)" style="height:25px;">
-                            <a href="javascript:void(0)" class="news_item">
-                                <span class="news_title">@{{item.name}}</span>
-                                <el-tag :type="item.status_tag" effect="dark" size="mini">
-                                    @{{ item.status_text }}
-                                </el-tag>
-                            </a>
-                            <span style="float:right;">@{{ item.apply_time_start }} 至 @{{ item.apply_time_end }}</span>
-                        </div>
-                    </el-card>
-                    <el-card class="box-card" style="margin-top:20px;">
-                        <div slot="header" class="clearfix">
-                            <span style="font-size:18px">公告</span>
-                            <el-button style="float: right; padding: 3px 0" type="text" @click="location.href='{{route('buyhouse.news')}}'">更多</el-button>
-                        </div>
-                        <div v-for="item in news" class="text item" @click="toNews(item.url)">
-                            <a href="javascript:void(0)" class="news_item">
-                                <span>@{{ item.title }}</span>
-                            </a>
-                            <span style="float:right;">@{{ item.updated_at_text }}</span>
-                        </div>
-                    </el-card>
+                    {{--右侧--}}
+                    <div class="form-r">
+                        <el-card class="box-card">
+                            <div slot="header" class="clearfix">
+                                <span style="font-size:18px">房源信息</span>
+                                <el-button style="float: right; padding: 3px 0" type="text"
+                                           @click="location.href='{{route('buyhouse.house')}}'">更多
+                                </el-button>
+                            </div>
+                            <div v-for="item in house" class="text item" @click="toHouse(item.url)"
+                                 style="height:25px;">
+                                <a href="javascript:void(0)" class="news_item">
+                                    <span class="news_title">@{{item.name}}</span>
+                                    <el-tag :type="item.status_tag" effect="dark" size="mini">
+                                        @{{ item.status_text }}
+                                    </el-tag>
+                                </a>
+                                <span style="float:right;">@{{ item.apply_time_start }} 至 @{{ item.apply_time_end }}</span>
+                            </div>
+                        </el-card>
+                        <el-card class="box-card" style="margin-top:20px;">
+                            <div slot="header" class="clearfix">
+                                <span style="font-size:18px">公告</span>
+                                <el-button style="float: right; padding: 3px 0" type="text"
+                                           @click="location.href='{{route('buyhouse.news')}}'">更多
+                                </el-button>
+                            </div>
+                            <div v-for="item in news" class="text item" @click="toNews(item.url)">
+                                <a href="javascript:void(0)" class="news_item">
+                                    <span>@{{ item.title }}</span>
+                                </a>
+                                <span style="float:right;">@{{ item.updated_at_text }}</span>
+                            </div>
+                        </el-card>
+                    </div>
+                    <div class="clear"></div>
                 </div>
-                <div class="clear"></div>
             </div>
-        </div>
             <img src="{{theme_asset('app/images/buyhouse/login_jucai.png')}}" class="jucai">
         </div>
+
+        <el-dialog title="完善信息" :visible.sync="dialogFormVisible">
+            <el-form :model="form">
+                <el-form-item label="真实姓名" :label-width="formLabelWidth">
+                    <el-input v-model="form.realname" autocomplete="off"></el-input>
+                </el-form-item>
+                <el-form-item label="证件类型" :label-width="formLabelWidth">
+                    <el-select v-model="form.card_t_cn" placeholder="请选择证件类型">
+                        <el-option label="身份证" :value="306"></el-option>
+                        <el-option label="通行证" :value="307"></el-option>
+                        <el-option label="护照" :value="308"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="证件号" :label-width="formLabelWidth">
+                    <el-input v-model="form.id_card" autocomplete="off"></el-input>
+                </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+                <el-button @click="dialogFormVisible = false">取 消</el-button>
+                <el-button type="primary" @click="perfect">确 定</el-button>
+            </div>
+        </el-dialog>
     </div>
 @endsection
 
@@ -162,63 +241,60 @@
     <script type="text/javascript" src="{{theme_asset('app/js/jquery.disappear.tooltip.js ')}}"></script>
     <script>
         $(function () {
-            var is_need_geetest=0;//全局,是否使用极验.
-            var login_type=1;//登录模式,1用户账号登录,2用户手机登录,3企业登录.
-            var gt_call_back=function(captchaObj) {
+            var is_need_geetest = 0;//全局,是否使用极验.
+            var login_type = 1;//登录模式,1用户账号登录,2用户手机登录,3企业登录.
+            var gt_call_back = function (captchaObj) {
                 captchaObj.onReady(function () {
                     //极验加载完成
                 });
                 captchaObj.onSuccess(function () {
-                    ajax_login(login_type,captchaObj);
+                    ajax_login(login_type, captchaObj);
 
                 });
                 captchaObj.onError(function () {
-                    show_error(login_type,"请先进行验证");
+                    show_error(login_type, "请先进行验证");
                 });
                 captchaObj.onClose(function () {
-                    show_error(login_type,"请先进行验证");
+                    show_error(login_type, "请先进行验证");
                 });
                 $('.login-account').on('click', function () {
-                    login_type=1;
+                    login_type = 1;
                     //clean_message();
-                    if (is_need_geetest==1){
+                    if (is_need_geetest == 1) {
                         captchaObj.bindForm("#form_account");
                         captchaObj.verify();
-                    }
-                    else{
-                        ajax_login(login_type,captchaObj);
+                    } else {
+                        ajax_login(login_type, captchaObj);
                     }
 
                 });
 
                 $('.login-mobile').on('click', function () {
-                    login_type=2;
+                    login_type = 2;
                     //clean_message();
-                    if (is_need_geetest==1){
+                    if (is_need_geetest == 1) {
                         captchaObj.bindForm("#form_mobile");
                         captchaObj.verify();
-                    }
-                    else{
-                        ajax_login(login_type,captchaObj);
+                    } else {
+                        ajax_login(login_type, captchaObj);
                     }
                 });
 
                 $('.login-company').on('click', function () {
-                    login_type=3;
+                    login_type = 3;
                     //clean_message();
-                    if (is_need_geetest==1){
+                    if (is_need_geetest == 1) {
                         captchaObj.bindForm("#form_company");
                         captchaObj.verify();
-                    }
-                    else{
-                        ajax_login(login_type,captchaObj);
+                    } else {
+                        ajax_login(login_type, captchaObj);
                     }
                 });
             };
 
             gt_init(gt_call_back);//初始化极验
 
-            $(".input-login").keydown(function(ev){
+            $(".input-login").keydown(function (ev) {
                 ev = ev || window.event;
                 var code = (ev.keyCode || ev.which);
                 if (code == 10 || code == 13) {
@@ -232,38 +308,37 @@
                 $(".login-type").eq(index).show().siblings(".login-type").hide();
             });
             $('.btn-getcode').on('click', function () {
-                submit_data={
-                    "mobile":$("input[name='mobile']").val(),
-                    "type":"login"
+                submit_data = {
+                    "mobile": $("input[name='mobile']").val(),
+                    "type": "login"
                 };
                 $.ajax({
                     method: 'post',
                     url: '{{route('sms.send')}}',
                     data: submit_data,
-                    beforeSend:function () {
-                       // console.log('请求开始');
+                    beforeSend: function () {
+                        // console.log('请求开始');
                         $(".errinfo").text("");
                         $(".errinfo").removeClass("errinfo");
 
                     },
-                    complete:function() {
+                    complete: function () {
                         console.log('请求结束');
                     },
                     success: function (data) {
-                       // console.log(data);
+                        // console.log(data);
                         $("#message_mobile").addClass("successinfo");
                         $("#message_mobile").text("发送成功,请注意查收");
                         settime();
                     },
                     error: function (errorData) {
-                       // console.log(errorData);
-                        if (errorData.status==422) {//验证错误
-                            $.each(errorData.responseJSON.errors,function (key,val) {
-                                $("#"+key).addClass("errinfo");
-                                $("#"+key).text(val[0]);
+                        // console.log(errorData);
+                        if (errorData.status == 422) {//验证错误
+                            $.each(errorData.responseJSON.errors, function (key, val) {
+                                $("#" + key).addClass("errinfo");
+                                $("#" + key).text(val[0]);
                             });
-                        }
-                        else if(errorData.status==400) {//业务错误
+                        } else if (errorData.status == 400) {//业务错误
                             $("#message_mobile").addClass("errinfo");
                             $("#message_mobile").text(errorData.responseJSON.message);
                         }
@@ -271,33 +346,33 @@
                 });
             });
 
-            $(".register_user").click(function(){
-				 var url=$(this).attr("url")
+            $(".register_user").click(function () {
+                var url = $(this).attr("url")
                 $.getJSON("{{route('register.status')}}", function (result) {
-                        
-                        if (result.status == 0) {
-                            disapperTooltip('remind', result.msg);
-                        } else{
-                            location.href=url;
-                        }
+
+                    if (result.status == 0) {
+                        disapperTooltip('remind', result.msg);
+                    } else {
+                        location.href = url;
+                    }
                 });
             })
 
 
             function ajax_login(type, captchaObj) {
-                if (type==1) {
+                if (type == 1) {
                     $.ajax({
                         method: 'post',
                         url: $("#form_account").attr('action'),
                         data: $("#form_account").serialize(),
-                        beforeSend:function () {
+                        beforeSend: function () {
                             //console.log('请求开始');
                             clean_message();
                             $('.login-account').addClass("btn-disabled").prop('disabled', true);
                             $('.login-account').val("登录中...");
 
                         },
-                        complete:function() {
+                        complete: function () {
                             //console.log('请求结束');
                             $('.login-account').val("登录");
                             $('.login-account').removeClass("btn-disabled").prop('disabled', false);
@@ -310,36 +385,34 @@
                             location.reload();
                         },
                         error: function (errorData) {
-                            if (is_need_geetest==1){
+                            if (is_need_geetest == 1) {
                                 captchaObj.reset();
                             }
-                            if (errorData.status==422) {//验证错误
-                                $.each(errorData.responseJSON.errors,function (key,val) {
-                                    $("#"+key).addClass("errinfo");
-                                    $("#"+key).text(val[0]);
+                            if (errorData.status == 422) {//验证错误
+                                $.each(errorData.responseJSON.errors, function (key, val) {
+                                    $("#" + key).addClass("errinfo");
+                                    $("#" + key).text(val[0]);
                                 });
-                            }
-                            else if(errorData.status==400) {//业务错误
+                            } else if (errorData.status == 400) {//业务错误
                                 $("#message_account").addClass("errinfo");
                                 $("#message_account").text(errorData.responseJSON.message);
-                                is_need_geetest=errorData.responseJSON.errors.is_need_geetest;
+                                is_need_geetest = errorData.responseJSON.errors.is_need_geetest;
                             }
                         }
                     });
-                }
-                else if (type==2) {
+                } else if (type == 2) {
                     $.ajax({
                         method: 'post',
                         url: $("#form_mobile").attr('action'),
                         data: $("#form_mobile").serialize(),
-                        beforeSend:function () {
+                        beforeSend: function () {
                             //console.log('请求开始');
                             clean_message();
                             $('.login-mobile').addClass("btn-disabled").prop('disabled', true);
                             $('.login-mobile').val("登录中...");
 
                         },
-                        complete:function() {
+                        complete: function () {
                             //console.log('请求结束');
                             $('.login-mobile').val("登录");
                             $('.login-mobile').removeClass("btn-disabled").prop('disabled', false);
@@ -352,36 +425,34 @@
                         },
                         error: function (errorData) {
                             //console.log(errorData);
-                            if (is_need_geetest==1){
+                            if (is_need_geetest == 1) {
                                 captchaObj.reset();
                             }
-                            if (errorData.status==422) {//验证错误
-                                $.each(errorData.responseJSON.errors,function (key,val) {
-                                    $("#"+key).addClass("errinfo");
-                                    $("#"+key).text(val[0]);
+                            if (errorData.status == 422) {//验证错误
+                                $.each(errorData.responseJSON.errors, function (key, val) {
+                                    $("#" + key).addClass("errinfo");
+                                    $("#" + key).text(val[0]);
                                 });
-                            }
-                            else if(errorData.status==400) {//业务错误
+                            } else if (errorData.status == 400) {//业务错误
                                 $("#message_mobile").addClass("errinfo");
                                 $("#message_mobile").text(errorData.responseJSON.message);
-                                is_need_geetest=errorData.responseJSON.errors.is_need_geetest;
+                                is_need_geetest = errorData.responseJSON.errors.is_need_geetest;
                             }
                         }
                     });
-                }
-                else if (type==3){
+                } else if (type == 3) {
                     $.ajax({
                         method: 'post',
                         url: $("#form_company").attr('action'),
                         data: $("#form_company").serialize(),
-                        beforeSend:function () {
+                        beforeSend: function () {
                             //console.log('请求开始');
                             clean_message();
                             $('.login-company').addClass("btn-disabled").prop('disabled', true);
                             $('.login-company').val("登录中...");
 
                         },
-                        complete:function() {
+                        complete: function () {
                             //console.log('请求结束');
                             $('.login-company').val("登录");
                             $('.login-company').removeClass("btn-disabled").prop('disabled', false);
@@ -395,43 +466,41 @@
                         },
                         error: function (errorData) {
                             //console.log(errorData);
-                            if (is_need_geetest==1){
+                            if (is_need_geetest == 1) {
                                 captchaObj.reset();
                             }
-                            if (errorData.status==422) {//验证错误
-                                $.each(errorData.responseJSON.errors,function (key,val) {
-                                    $("#"+key).addClass("errinfo");
-                                    $("#"+key).text(val[0]);
+                            if (errorData.status == 422) {//验证错误
+                                $.each(errorData.responseJSON.errors, function (key, val) {
+                                    $("#" + key).addClass("errinfo");
+                                    $("#" + key).text(val[0]);
                                 });
-                            }
-                            else if(errorData.status==400) {//业务错误
+                            } else if (errorData.status == 400) {//业务错误
                                 $("#message_company").addClass("errinfo");
                                 $("#message_company").text(errorData.responseJSON.message);
-                                is_need_geetest=errorData.responseJSON.errors.is_need_geetest;
+                                is_need_geetest = errorData.responseJSON.errors.is_need_geetest;
                             }
                         }
                     });
                 }
             };
 
-            function show_error(type,message) {
-                if (type==1) {
+            function show_error(type, message) {
+                if (type == 1) {
 
                     $("#message_account").addClass("errinfo");
                     $("#message_account").text(message);
 
-                }
-                else if (type==2) {
+                } else if (type == 2) {
                     $("#message_mobile").addClass("errinfo");
                     $("#message_mobile").text(message);
 
-                }
-                else if (type==3){
+                } else if (type == 3) {
                     $("#message_company").addClass("errinfo");
                     $("#message_company").text(message);
 
                 }
             };
+
             function clean_message() {
                 $(".errinfo").text("");
                 $(".errinfo").removeClass("errinfo");
@@ -442,7 +511,6 @@
         });
 
 
-
         function checkAutoLogin(obj) {
             var isCheck = $(obj).hasClass("yes");
             if (isCheck) {
@@ -457,6 +525,7 @@
 
         // 倒计时
         var countdown = 60;
+
         function settime() {
             if (countdown == 0) {
                 $('.btn-getcode').prop("disabled", false);
@@ -470,15 +539,16 @@
                 $('.btn-getcode').val('重新发送' + countdown + '秒');
                 countdown--;
             }
-            setTimeout(function() {
+            setTimeout(function () {
                 settime()
-            },1000)
+            }, 1000)
         }
 
 
     </script>
     <script type="text/javascript" src="{{theme_asset('app/js/vue.min.js')}}"></script>
     <script src="{{theme_asset('app/js/axios.js')}}"></script>
+    <script src="{{theme_asset('app/js/qs.min.js')}}"></script>
     <script type="text/javascript" src="{{theme_asset('app/js/elementui.min.js')}}"></script>
     <script>
         new Vue({
@@ -488,7 +558,24 @@
                     user_id: {{$user_id}},
                     house: {!! $house !!},
                     news: {!!$news!!},
-                    apply: {!! $apply !!}
+                    apply: {!! $apply !!},
+                    dialogFormVisible: false,
+                    form: {
+                        realname: '',
+                        card_t_cn: 306,
+                        id_card: '',
+                    },
+                    formLabelWidth: '120px',
+                    card_t_cn:[{
+                        value: 306,
+                        label: '身份证'
+                    }, {
+                        value: 307,
+                        label: '通行证'
+                    }, {
+                        value: 308,
+                        label: '护照'
+                    }]
                 }
             },
             methods: {
@@ -504,9 +591,25 @@
                     location.href = url;
                 },
                 toNews(url) {
-                    console.log(url);
                     location.href = url;
                 },
+                perfect() {
+                    this.form._token = '{{csrf_token()}}';
+                    axios.post("{{route('buyhouse.perfect')}}", Qs.stringify(this.form)).then(response => {
+                        if (response.data.status) {
+                            this.$alert(response.data.msg, '提交成功', {
+                                confirmButtonText: '确定',
+                                callback: action => {
+                                    window.location.reload();
+                                }
+                            });
+                        } else {
+                            this.$message.error(response.data.msg);
+                            this.loading.close();
+                            return false;
+                        }
+                    });
+                }
             }
         })
     </script>

+ 56 - 0
resources/views/admin/content/buy_house_blacklist.blade.php

@@ -0,0 +1,56 @@
+{!! $grid->render() !!}
+<style>
+    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 #vtipArrow { position: absolute; top: -10px; left: 5px }
+</style>
+<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");
+            }
+        );
+
+    };
+    $(document).ready(function() {
+        vtip();
+        $('select[name="parent_id"]').parent().parent().attr('id','parent_id_div');
+        $('select[name="type_id"]').parent().parent().attr('id','type_id_div');
+        $('#parent_id_div select[name="parent_id"]').change(function(){
+            if($(this).val() ==''){
+                $('#type_id_div').css('display','none');
+                $('select[name="type_id"]').val('');
+            }else{
+                $('#type_id_div').css('display','block');
+            }
+        });
+
+        var parent_id = $('#parent_id_div select[name="parent_id"]').val();
+        if(parent_id ==''){
+            $('#type_id_div').css('display','none');
+        }else{
+            $('#type_id_div').css('display','block');
+        }
+    });
+
+</script>

+ 0 - 1
resources/views/admin/content/buy_house_jc.blade.php

@@ -123,7 +123,6 @@
             data:{'id':id,'_token':'{{csrf_token()}}'},
             // dataType:'json',
             success:function (res) {
-                console.log(res);
                 $('.contentfade').html(res.data);
             },
         })

+ 0 - 1
resources/views/admin/content/buy_house_rs.blade.php

@@ -123,7 +123,6 @@
             data:{'id':id,'_token':'{{csrf_token()}}'},
             // dataType:'json',
             success:function (res) {
-                console.log(res);
                 $('.contentfade').html(res.data);
             },
         })

+ 0 - 1
resources/views/admin/content/buy_house_zj.blade.php

@@ -123,7 +123,6 @@
             data:{'id':id,'_token':'{{csrf_token()}}'},
             // dataType:'json',
             success:function (res) {
-                console.log(res);
                 $('.contentfade').html(res.data);
             },
         })

+ 7 - 0
routes/api.php

@@ -118,3 +118,10 @@ Route::group([
     $router->any('job/job_list','Api\DouyinRecruit\JobController@jobList')->name('api.douyin_recruit.job.job_list');
     $router->post('job/add_post','Api\DouyinRecruit\JobController@addPost')->name('api.douyin_recruit.job.add_post');
 });
+
+/*计划任务*/
+Route::group([
+    'prefix' => '/crontab',
+], function (Router $router) {
+    $router->get('one_hour','Api\Crontab\OneHourController@index')->name('api.crontab.one_hour');
+});

+ 1 - 1
routes/web.php

@@ -735,7 +735,7 @@ Route::group([
     $router->post('buyhouse/upload', 'Web\Content\BuyhouseController@upload')->name('buyhouse.upload');
     $router->get('buyhouse/news', 'Web\Content\BuyhouseController@news')->name('buyhouse.news');
     $router->get('buyhouse/house', 'Web\Content\BuyhouseController@house')->name('buyhouse.house');
-    $router->get('buyhouse/clear_sock', 'Web\Content\BuyhouseController@clearSock')->name('buyhouse.clearSock');
+    $router->post('buyhouse/perfect', 'Web\Content\BuyhouseController@perfect')->name('buyhouse.perfect');
 });
 
 /*硬件模块*/