소스 검색

零工3.0

linwu 2 년 전
부모
커밋
7f8711fc01
77개의 변경된 파일3894개의 추가작업 그리고 1369개의 파일을 삭제
  1. 1 1
      app/admin/controller/Agent.php
  2. 16 2
      app/admin/controller/Broker.php
  3. 1 1
      app/admin/controller/Comjobsreport.php
  4. 363 361
      app/admin/controller/Demand.php
  5. 51 0
      app/admin/controller/Feedback.php
  6. 1 1
      app/admin/controller/Report.php
  7. 212 0
      app/admin/controller/Resident.php
  8. 75 4
      app/admin/controller/User.php
  9. 1 1
      app/admin/controller/Worker.php
  10. 2 2
      app/admin/view/broker/brokerform.html
  11. 4 15
      app/admin/view/broker/brokerlist.html
  12. 1 1
      app/admin/view/broker/fbrokerform.html
  13. 1 1
      app/admin/view/comjobs/comjobsform.html
  14. 1 1
      app/admin/view/comjobsreport/reportexamine.html
  15. 1 1
      app/admin/view/comjobsreport/reportform.html
  16. 1 1
      app/admin/view/comjobsreport/reportlist.html
  17. 7 0
      app/admin/view/demand/demandform.html
  18. 146 0
      app/admin/view/feedback/feedbacklist.html
  19. 1 1
      app/admin/view/help/link.html
  20. 71 0
      app/admin/view/resident/follow.html
  21. 130 0
      app/admin/view/resident/residentform.html
  22. 211 0
      app/admin/view/resident/residentlist.html
  23. 3 3
      app/admin/view/set/param.html
  24. 57 0
      app/admin/view/user/tagsform.html
  25. 92 0
      app/admin/view/user/tagslist.html
  26. 14 2
      app/admin/view/user/userform.html
  27. 4 4
      app/admin/view/user/userlist.html
  28. 2 2
      app/admin/view/user/userpublic.html
  29. 25 4
      app/admin/view/worker/workerform.html
  30. 6 2
      app/admin/view/worker/workerlist.html
  31. 1 1
      app/agent/controller/Report.php
  32. 4 1
      app/agent/controller/User.php
  33. 2 2
      app/agent/view/broker/brokerform.html
  34. 4 4
      app/agent/view/broker/brokerlist.html
  35. 2 2
      app/agent/view/comjobs/report.html
  36. 1 1
      app/agent/view/home/console.html
  37. 17 11
      app/agent/view/index.html
  38. 211 0
      app/agent/view/index_back.html
  39. 2 2
      app/agent/view/report/entryform.html
  40. 3 3
      app/agent/view/report/entrylist.html
  41. 14 2
      app/agent/view/user/userform.html
  42. 3 3
      app/agent/view/user/userlist.html
  43. 96 88
      app/common/model/Demand.php
  44. 36 0
      app/common/model/Feedback.php
  45. 63 0
      app/common/model/Resident.php
  46. 42 0
      app/common/model/ResidentLog.php
  47. 2 0
      app/common/model/User.php
  48. 14 0
      app/common/model/UserTags.php
  49. 19 0
      app/common/validate/Resident.php
  50. 8 8
      app/dataTable.sql
  51. 2 2
      app/mainapp/controller/Broker.php
  52. 2 2
      app/mainapp/controller/Comjobs.php
  53. 2 2
      app/mainapp/controller/Demand.php
  54. 3 2
      app/mainapp/controller/Login.php
  55. 10 1
      app/mainapp/controller/My.php
  56. 3 2
      app/mainapp/controller/Wcomjobs.php
  57. 0 1
      app/worker/controller/Broker.php
  58. 1 1
      app/worker/controller/Comjobsreport.php
  59. 445 449
      app/worker/controller/Demand.php
  60. 1 1
      app/worker/controller/Report.php
  61. 223 0
      app/worker/controller/Resident.php
  62. 14 0
      app/worker/controller/Resume.php
  63. 344 305
      app/worker/controller/User.php
  64. 3 3
      app/worker/view/broker/brokerform.html
  65. 4 4
      app/worker/view/broker/brokerlist.html
  66. 1 1
      app/worker/view/comjobsreport/reportexamine.html
  67. 1 1
      app/worker/view/comjobsreport/reportlist.html
  68. 9 2
      app/worker/view/demand/demandform.html
  69. 35 45
      app/worker/view/index.html
  70. 237 0
      app/worker/view/index_back.html
  71. 2 2
      app/worker/view/report/entryform.html
  72. 1 1
      app/worker/view/report/entrylist.html
  73. 71 0
      app/worker/view/resident/follow.html
  74. 130 0
      app/worker/view/resident/residentform.html
  75. 199 0
      app/worker/view/resident/residentlist.html
  76. 93 1
      app/worker/view/user/userform.html
  77. 13 2
      app/worker/view/user/userlist.html

+ 1 - 1
app/admin/controller/Agent.php

@@ -178,7 +178,7 @@ class Agent extends BaseController
 	
 	
 	
-	// 申请注册职业顾问
+	// 申请注册经纪人
 	public function fagentList()
 	{
 		return view('agent/fagentlist');

+ 16 - 2
app/admin/controller/Broker.php

@@ -6,6 +6,7 @@ use app\common\model\User as UserModel;
 use app\common\model\Worker as WorkerModel;
 use app\common\model\Agent as AgentModel;
 use app\common\model\Broker as BrokerModel;
+use app\common\model\Resident as ResidentModel;
 use app\common\model\BrokerForm as BrokerFormModel;
 
 use app\common\validate\Broker as BrokerValidate;
@@ -136,13 +137,22 @@ class Broker extends BaseController
 			)));
 		}
 		$idarr = input('idarr/a');
-		$user_check = UserModel::whereIn('brokerid',$idarr)->find();
+		$user_check = UserModel::whereIn('brokerid',$idarr)->findOrEmpty();
 		if (!empty($user_check)) {
             exit(json_encode(array(
                 'code' 	=> 1,
                 'msg'	=> "该经纪人还有下线,请先转移再删除"
             )));
         }
+        $user_ids = BrokerModel::whereIn('id',$idarr)->column('userid');
+        $resident_check = ResidentModel::whereIn('userid',$user_ids)->findOrEmpty();
+        if (empty($resident_check)) {
+            exit(json_encode(array(
+                'code' 	=> 1,
+                'msg'	=> "该经纪人是驻场老师,请取消驻场老师资格"
+            )));
+        }
+
         $result = BrokerModel::whereIn('id',$idarr)->delete();
 		if ($result){
 			exit(json_encode(array(
@@ -169,6 +179,10 @@ class Broker extends BaseController
 		if (!empty($status)){
 			$map[] = ['status', '=', $status];
 		}
+        $workerid = input('workerid/d');
+        if (!empty($workerid)){
+            $map[] = ['workerid', '=', $workerid];
+        }
 		$list = BrokerModel::with(['worker','agent','muser'])->withCount(['user'])->where($map)->order('id','DESC')->limit($limit)->page($page)->append(['status_text','powerreport_text'])->select();
 		$count = BrokerModel::where($map)->count();
 		if ($count==0){
@@ -186,7 +200,7 @@ class Broker extends BaseController
 	}
 	
 	
-	// 申请注册职业顾问
+	// 申请注册经纪人
 	public function fbrokerList()
 	{
 		return view('broker/fbrokerlist');

+ 1 - 1
app/admin/controller/Comjobsreport.php

@@ -108,7 +108,7 @@ class Comjobsreport extends BaseController
 			array('id','表ID'),
 			array('comjobs.title','招聘标题'),
 			array('agent.title','代理门店'),
-			array('broker.title','职业顾问'),
+			array('broker.title','经纪人'),
 			array('realname','姓名'),
 			array('mobile','手机号'),
 			array('idcard','身份证号'),

+ 363 - 361
app/admin/controller/Demand.php

@@ -1,4 +1,5 @@
 <?php
+
 namespace app\admin\controller;
 
 use app\admin\BaseController;
@@ -13,372 +14,373 @@ use think\facade\Db;
 
 class Demand extends BaseController
 {
-	
-	
-	// 报名记录
-	public function logList()
-	{
-		$workerlist = WorkerModel::with('demand')->order(['id'=>'desc'])->select();
-		return view('demand/loglist',[
-			'workerlist'		=> $workerlist
-		]);
-	} 
-	
-	public function delLog()
-	{
-		$idarr = input('idarr/a');
-		$log = DemandLogModel::whereIn('id',$idarr)->select();
-		$result = $log->delete();
-		if ($result){
-			exit(json_encode(array(
-				'code' 	=> 0,
-				'msg'	=> ""
-			)));
-		}
-		exit(json_encode(array(
-			'code' 	=> 1,
-			'msg'	=> "删除失败,请稍后重试"
-		)));
-	}
-	
-	public function fieldLog()
-	{
-		$id = input('id/d',0); 
-		$log = DemandLogModel::findOrEmpty($id);
-		if ($log->isEmpty()){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "信息不存在"
-			)));
-		}else{
-			$log->save([
-				input('field/s')  => input('value')
-			]);
-		}
-		exit(json_encode(array(
-			'code' 	=> 0
-		)));
-	}
-	
-	public function listLog()
-	{
-		$limit = input('limit/d',20);
-		$page = input('page/d',1);
-		$map = array();
-		$workerdemandarr = explode(",", input('workerdemand/s'));
-		$workerid = isset($workerdemandarr[0]) ? $workerdemandarr[0] : 0;
-		$demandid = isset($workerdemandarr[1]) ? $workerdemandarr[1] : 0;
-		if (!empty($workerid)){
-			$map[] = ['workerid', '=', $workerid];
-		}
-		if (!empty($demandid)){
-			$map[] = ['demandid', '=', $demandid];
-		}
-		$list = DemandLogModel::with(['gworker','worker','demand'])->where($map)->order('id','DESC')->limit($limit)->page($page)->select();
-		$count = DemandLogModel::where($map)->count();
-		if ($count==0){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "未查询到数据"
-			)));
-		}
-		exit(json_encode(array(
-			'code' 	=> 0,
-			'msg'	=> "",
-			'count' => $count,
-			'data'  => $list
-		)));
-	}
-	
-	public function exportLog()
-	{
-		$map = array();
-		$workerdemandarr = explode(",", input('workerdemand/s'));
-		$workerid = isset($workerdemandarr[0]) ? $workerdemandarr[0] : 0;
-		$demandid = isset($workerdemandarr[1]) ? $workerdemandarr[1] : 0;
-		if (!empty($workerid)){
-			$map[] = ['workerid', '=', $workerid];
-		}
-		if (!empty($demandid)){
-			$map[] = ['demandid', '=', $demandid];
-		}
-		$xlsData = DemandLogModel::with(['gworker','worker','demand'])->where($map)->order('id','DESC')->select()->toArray();
-		$xlsCell = array(
-			array('id','表ID'),
-			array('gworker.title','接单公司名称'),
-			array('gworker.realname','接单公司联系人姓名'),
-			array('gworker.mobile','接单公司联系人手机号'),
-			array('worker.title','发单公司'),
-			array('demand.title','订单标题'),
-			array('createtime','接单时间'),
-		);
-		export_excel("接单报名记录",$xlsCell,$xlsData);
-	}
-	
-	
-	// 企业招聘
-	public function demandList()
-	{
-		$workerlist = WorkerModel::order(['id'=>'desc'])->select();
-		$catelist = DemandCateModel::order(['priority'=>'desc','id'=>'desc'])->select();
-		return view('demand/demandlist',[
-			'workerlist'	=> $workerlist,
-			'catelist'		=> $catelist
-		]);
-	}
-	
-	public function demandForm()
-	{
-		$id = input('id/d, 0');
-		$demand = DemandModel::findOrEmpty($id);
-		$workerlist = WorkerModel::order(['id'=>'desc'])->select();
-		$catelist = DemandCateModel::order(['priority'=>'desc','id'=>'desc'])->select();
-		return view('demand/demandform',[
-			'catelist'		=> $catelist,
-			'workerlist'	=> $workerlist,
-			'demand'		=> $demand
-		]);
-	}
-	
-	public function editDemand()
-	{
-		$id = input('id/d', 0);
-		$wtype = input('wtype/d', 1);
-		$zwagall = $wtype==1 ? input('zwagall/s', "") : '';
-		$data = [
-			'workerid'			=> input('workerid/d', 0),
-			'title'				=> input('title/s', ""),
-			'cateid'			=> input('cateid/d', 0),
-			'province'			=> input('province/s', ""),
-			'city'				=> input('city/s', ""),
-			'district'			=> input('district/s', ""),
-			'agegroup'			=> input('agegroup/s', ""),
-			'tags'				=> input('tags/a', array()),
-			'enddate'			=> input('enddate/s', ""),
-			'requirement'		=> input('requirement/s', ""),
-			'comdetails'		=> input('comdetails/s', ""),
-			'wtype'				=> $wtype,
-			'bwagall'			=> input('bwagall/s', ""),
-			'zwagall'			=> $zwagall,
-			'ftype'				=> input('ftype/d', 1),
-			'fwagall'			=> input('fwagall/s', ""),
-			'telephone'			=> input('telephone/s', ""),
-			'remark'			=> input('remark/s', ""),
-			'status'			=> input('status/d', 1),
-			'isfree'			=> input('isfree/d', 1),
-			'priority'			=> input('priority/d', 0),
-			'updatetime'		=> input('updatetime/s', ""),
-			'createtime'		=> input('createtime/s', ""),
-			'volume'			=> input('volume/d', 0)
-		];
-		try {
-		    validate(DemandValidate::class)->check($data);
-		} catch (ValidateException $e) {
-		    exit(json_encode(array(
-		        'code' 	=> 1,
-		        'msg'	=> $e->getError()
-		    )));
-		}
-		if (empty($id)){
-			$data['telearr'] = array();
-            $data['video'] = input('new_video/s', "");
-			$demand = DemandModel::create($data);
-		}else{
 
-            $old_video = input('old_video/s','');
-            $new_video = input('new_video/s','');
-            if(!empty($new_video)){
+
+    // 报名记录
+    public function logList()
+    {
+        $workerlist = WorkerModel::with('demand')->order(['id' => 'desc'])->select();
+        return view('demand/loglist', [
+            'workerlist' => $workerlist,
+        ]);
+    }
+
+    public function delLog()
+    {
+        $idarr  = input('idarr/a');
+        $log    = DemandLogModel::whereIn('id', $idarr)->select();
+        $result = $log->delete();
+        if ($result) {
+            exit(json_encode([
+                'code' => 0,
+                'msg'  => "",
+            ]));
+        }
+        exit(json_encode([
+            'code' => 1,
+            'msg'  => "删除失败,请稍后重试",
+        ]));
+    }
+
+    public function fieldLog()
+    {
+        $id  = input('id/d', 0);
+        $log = DemandLogModel::findOrEmpty($id);
+        if ($log->isEmpty()) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "信息不存在",
+            ]));
+        } else {
+            $log->save([
+                input('field/s') => input('value'),
+            ]);
+        }
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+    public function listLog()
+    {
+        $limit           = input('limit/d', 20);
+        $page            = input('page/d', 1);
+        $map             = [];
+        $workerdemandarr = explode(",", input('workerdemand/s'));
+        $workerid        = isset($workerdemandarr[0]) ? $workerdemandarr[0] : 0;
+        $demandid        = isset($workerdemandarr[1]) ? $workerdemandarr[1] : 0;
+        if (!empty($workerid)) {
+            $map[] = ['workerid', '=', $workerid];
+        }
+        if (!empty($demandid)) {
+            $map[] = ['demandid', '=', $demandid];
+        }
+        $list  = DemandLogModel::with(['gworker', 'worker', 'demand'])->where($map)->order('id', 'DESC')->limit($limit)->page($page)->select();
+        $count = DemandLogModel::where($map)->count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
+
+    public function exportLog()
+    {
+        $map             = [];
+        $workerdemandarr = explode(",", input('workerdemand/s'));
+        $workerid        = isset($workerdemandarr[0]) ? $workerdemandarr[0] : 0;
+        $demandid        = isset($workerdemandarr[1]) ? $workerdemandarr[1] : 0;
+        if (!empty($workerid)) {
+            $map[] = ['workerid', '=', $workerid];
+        }
+        if (!empty($demandid)) {
+            $map[] = ['demandid', '=', $demandid];
+        }
+        $xlsData = DemandLogModel::with(['gworker', 'worker', 'demand'])->where($map)->order('id', 'DESC')->select()->toArray();
+        $xlsCell = [
+            ['id', '表ID'],
+            ['gworker.title', '接单公司名称'],
+            ['gworker.realname', '接单公司联系人姓名'],
+            ['gworker.mobile', '接单公司联系人手机号'],
+            ['worker.title', '发单公司'],
+            ['demand.title', '订单标题'],
+            ['createtime', '接单时间'],
+        ];
+        export_excel("接单报名记录", $xlsCell, $xlsData);
+    }
+
+
+    // 企业招聘
+    public function demandList()
+    {
+        $workerlist = WorkerModel::order(['id' => 'desc'])->select();
+        $catelist   = DemandCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
+        return view('demand/demandlist', [
+            'workerlist' => $workerlist,
+            'catelist'   => $catelist,
+        ]);
+    }
+
+    public function demandForm()
+    {
+        $id         = input('id/d, 0');
+        $demand     = DemandModel::findOrEmpty($id);
+        $workerlist = WorkerModel::order(['id' => 'desc'])->select();
+        $catelist   = DemandCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
+        return view('demand/demandform', [
+            'catelist'   => $catelist,
+            'workerlist' => $workerlist,
+            'demand'     => $demand,
+        ]);
+    }
+
+    public function editDemand()
+    {
+        $id      = input('id/d', 0);
+        $wtype   = input('wtype/d', 1);
+        $type    = input('type/d', 1);
+        $zwagall = $wtype == 1 ? input('zwagall/s', "") : '';
+        $data    = [
+            'workerid'    => input('workerid/d', 0),
+            'title'       => input('title/s', ""),
+            'cateid'      => input('cateid/d', 0),
+            'province'    => input('province/s', ""),
+            'city'        => input('city/s', ""),
+            'district'    => input('district/s', ""),
+            'agegroup'    => input('agegroup/s', ""),
+            'tags'        => input('tags/a', []),
+            'enddate'     => input('enddate/s', ""),
+            'requirement' => input('requirement/s', ""),
+            'comdetails'  => input('comdetails/s', ""),
+            'type'        => $type,
+            'wtype'       => $wtype,
+            'bwagall'     => input('bwagall/s', ""),
+            'zwagall'     => $zwagall,
+            'ftype'       => input('ftype/d', 1),
+            'fwagall'     => input('fwagall/s', ""),
+            'telephone'   => input('telephone/s', ""),
+            'remark'      => input('remark/s', ""),
+            'status'      => input('status/d', 1),
+            'isfree'      => input('isfree/d', 1),
+            'priority'    => input('priority/d', 0),
+            'updatetime'  => input('updatetime/s', ""),
+            'createtime'  => input('createtime/s', ""),
+            'volume'      => input('volume/d', 0),
+        ];
+        try {
+            validate(DemandValidate::class)->check($data);
+        } catch (ValidateException $e) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => $e->getError(),
+            ]));
+        }
+        if (empty($id)) {
+            $data['telearr'] = [];
+            $data['video']   = input('new_video/s', "");
+            $demand          = DemandModel::create($data);
+        } else {
+
+            $old_video = input('old_video/s', '');
+            $new_video = input('new_video/s', '');
+            if (!empty($new_video)) {
                 $data['video'] = $new_video;
-            }else{
-                if(!empty($old_video))
-                {
+            } else {
+                if (!empty($old_video)) {
                     $data['video'] = $old_video;
                 }
             }
 
-			$demand = DemandModel::find($id);
-			DemandLogModel::update([ 'workerid' => input('workerid/d', 0) ],['demandid'=>$demand->id]); 
-			$demand->save($data);
-		}
-		exit(json_encode(array(
-			'code' 	=> 0
-		)));
-	}
-	
-	public function fieldDemand()
-	{
-		$id = input('id/d',0); 
-		$demand = DemandModel::findOrEmpty($id);
-		if ($demand->isEmpty()){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "信息不存在"
-			)));
-		}else{
-			$demand->save([
-				input('field/s')  => input('value')
-			]);
-		}
-		exit(json_encode(array(
-			'code' 	=> 0
-		)));
-	}
-	
-	public function delDemand()
-	{
-		$idarr = input('idarr/a');
-		DemandLogModel::whereIn('demandid',$idarr)->delete();
-        $result = Db::name('demand')->whereIn('id',$idarr)->update(['deletetime'=>time()]);
-		if ($result){
-			exit(json_encode(array(
-				'code' 	=> 0,
-				'msg'	=> ""
-			)));
-		}
-		exit(json_encode(array(
-			'code' 	=> 1,
-			'msg'	=> "删除失败,请稍后重试"
-		)));
-	}
-	
-	public function listDemand()
-	{
-		$limit = input('limit/d',20);
-		$page = input('page/d',1);
-		$map = array();
-		$keywords = input('keywords/s', "");
-		if (!empty($keywords)){
-			$map[] =['title', 'like', '%'.$keywords.'%'];
-		}
-		$workerid = input('workerid/d', 0);
-		if (!empty($workerid)){
-			$map[] = ['workerid', '=', $workerid];
-		}
-		$cateid = input('cateid/d', 0);
-		if (!empty($cateid)){
-			$map[] = ['cateid', '=', $cateid];
-		}
-		$wtype = input('wtype/d');
-		if (!empty($wtype)){
-			$map[] = ['wtype', '=', $wtype];
-		}
-		$ftype = input('ftype/d');
-		if (!empty($ftype)){
-			$map[] = ['ftype', '=', $ftype];
-		}
-		$status = input('status/d');
-		if (!empty($status)){
-			$map[] = ['status', '=', $status];
-		}
-		$isfree = input('isfree/d',0);
-		if (!empty($isfree)){
-			$map[] = ['isfree', '=', $isfree];
-		}
-		$daterange = input('daterange/s', "");
-		if (!empty($daterange)){
-			$daterangearr = explode("~", $daterange);
-			$map[] = ['createtime', '>= time', trim($daterangearr[0])];
-			$map[] = ['createtime', '<= time', trim($daterangearr[1])];
-		}
-		$list = DemandModel::with(['worker','demandCate'])->withCount(['demandLog'])->where($map)->order(['priority'=>'desc','id'=>'desc',])->limit($limit)->page($page)->append(['wtype_text','ftype_text','status_text','isfree_text'])->select();
-		$count = DemandModel::where($map)->count();
-		if ($count==0){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "未查询到数据"
-			)));
-		}
-		exit(json_encode(array(
-			'code' 	=> 0,
-			'msg'	=> "",
-			'count' => $count,
-			'data'  => $list
-		)));
-	}
-	
-	// 岗位类型
-	public function cateList()
-	{
-		return view('demand/catelist');
-	}
-	
-	public function cateForm()
-	{
-		$id = input('id/d', 0);
-		$cate = DemandCateModel::findOrEmpty($id);
-		return view('demand/cateform',[
-			'cate'			=> $cate
-		]);
-	}
-	
-	public function listCate()
-	{
-		$limit = input('limit');
-		$page = input('page');
-		$list = DemandCateModel::order(['priority'=>'desc','id'=>'desc'])->limit($limit)->page($page)->select();
-		$count = DemandCateModel::count();
-		if ($count==0){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "未查询到数据"
-			)));
-		}
-		exit(json_encode(array(
-			'code' 	=> 0,
-			'msg'	=> "",
-			'count' => $count,
-			'data'  => $list
-		)));
-	}	
-	
-	public function fieldCate()
-	{
-		$id = input('id/d', 0);
-		$info = DemandCateModel::find($id);
-		$info->save([
-			input('field/s')  => input('value/s', "")
-		]);
-		exit(json_encode(array(
-			'code' 	=> 0
-		)));
-	}
-	
-	public function editCate()
-	{
-		$id = input('id/d');
-		if (empty($id)){
-			$cate = DemandCateModel::create([
-				'title' 	=> input('title/s', ""),
-				'priority'  => input('priority/d', 0)
-			]);
-		}else{
-			$cate = DemandCateModel::find($id);
-			$cate->save([
-				'title' 	=> input('title/s', ""),
-				'priority'  => input('priority/d', 0)
-			]);
-		}
-		exit(json_encode(array(
-			'code' 	=> 0
-		)));
-	}
-	
-	public function delCate()
-	{
-		$id = input('id/d');
-		$cate = DemandCateModel::where('id',$id)->select();
-		$result = $cate->delete();
-		if ($result){
-			exit(json_encode(array(
-				'code' 	=> 0,
-				'msg'	=> ""
-			)));
-		}
-		exit(json_encode(array(
-			'code' 	=> 1,
-			'msg'	=> "删除失败,请稍后重试"
-		)));
-	}
-		
+            $demand = DemandModel::find($id);
+            DemandLogModel::update(['workerid' => input('workerid/d', 0)], ['demandid' => $demand->id]);
+            $demand->save($data);
+        }
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+    public function fieldDemand()
+    {
+        $id     = input('id/d', 0);
+        $demand = DemandModel::findOrEmpty($id);
+        if ($demand->isEmpty()) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "信息不存在",
+            ]));
+        } else {
+            $demand->save([
+                input('field/s') => input('value'),
+            ]);
+        }
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+    public function delDemand()
+    {
+        $idarr = input('idarr/a');
+        DemandLogModel::whereIn('demandid', $idarr)->delete();
+        $result = Db::name('demand')->whereIn('id', $idarr)->update(['deletetime' => time()]);
+        if ($result) {
+            exit(json_encode([
+                'code' => 0,
+                'msg'  => "",
+            ]));
+        }
+        exit(json_encode([
+            'code' => 1,
+            'msg'  => "删除失败,请稍后重试",
+        ]));
+    }
+
+    public function listDemand()
+    {
+        $limit    = input('limit/d', 20);
+        $page     = input('page/d', 1);
+        $map      = [];
+        $keywords = input('keywords/s', "");
+        if (!empty($keywords)) {
+            $map[] = ['title', 'like', '%' . $keywords . '%'];
+        }
+        $workerid = input('workerid/d', 0);
+        if (!empty($workerid)) {
+            $map[] = ['workerid', '=', $workerid];
+        }
+        $cateid = input('cateid/d', 0);
+        if (!empty($cateid)) {
+            $map[] = ['cateid', '=', $cateid];
+        }
+        $wtype = input('wtype/d');
+        if (!empty($wtype)) {
+            $map[] = ['wtype', '=', $wtype];
+        }
+        $ftype = input('ftype/d');
+        if (!empty($ftype)) {
+            $map[] = ['ftype', '=', $ftype];
+        }
+        $status = input('status/d');
+        if (!empty($status)) {
+            $map[] = ['status', '=', $status];
+        }
+        $isfree = input('isfree/d', 0);
+        if (!empty($isfree)) {
+            $map[] = ['isfree', '=', $isfree];
+        }
+        $daterange = input('daterange/s', "");
+        if (!empty($daterange)) {
+            $daterangearr = explode("~", $daterange);
+            $map[]        = ['createtime', '>= time', trim($daterangearr[0])];
+            $map[]        = ['createtime', '<= time', trim($daterangearr[1])];
+        }
+        $list  = DemandModel::with(['worker', 'demandCate'])->withCount(['demandLog'])->where($map)->order(['priority' => 'desc', 'id' => 'desc',])->limit($limit)->page($page)->append(['wtype_text', 'ftype_text', 'status_text', 'isfree_text'])->select();
+        $count = DemandModel::where($map)->count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
+
+    // 岗位类型
+    public function cateList()
+    {
+        return view('demand/catelist');
+    }
+
+    public function cateForm()
+    {
+        $id   = input('id/d', 0);
+        $cate = DemandCateModel::findOrEmpty($id);
+        return view('demand/cateform', [
+            'cate' => $cate,
+        ]);
+    }
+
+    public function listCate()
+    {
+        $limit = input('limit');
+        $page  = input('page');
+        $list  = DemandCateModel::order(['priority' => 'desc', 'id' => 'desc'])->limit($limit)->page($page)->select();
+        $count = DemandCateModel::count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
+
+    public function fieldCate()
+    {
+        $id   = input('id/d', 0);
+        $info = DemandCateModel::find($id);
+        $info->save([
+            input('field/s') => input('value/s', ""),
+        ]);
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+    public function editCate()
+    {
+        $id = input('id/d');
+        if (empty($id)) {
+            $cate = DemandCateModel::create([
+                'title'    => input('title/s', ""),
+                'priority' => input('priority/d', 0),
+            ]);
+        } else {
+            $cate = DemandCateModel::find($id);
+            $cate->save([
+                'title'    => input('title/s', ""),
+                'priority' => input('priority/d', 0),
+            ]);
+        }
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+    public function delCate()
+    {
+        $id     = input('id/d');
+        $cate   = DemandCateModel::where('id', $id)->select();
+        $result = $cate->delete();
+        if ($result) {
+            exit(json_encode([
+                'code' => 0,
+                'msg'  => "",
+            ]));
+        }
+        exit(json_encode([
+            'code' => 1,
+            'msg'  => "删除失败,请稍后重试",
+        ]));
+    }
+
 
 }

+ 51 - 0
app/admin/controller/Feedback.php

@@ -0,0 +1,51 @@
+<?php
+
+namespace app\admin\controller;
+
+use app\admin\BaseController;
+use app\common\model\Feedback as FeedbackModel;
+
+class Feedback extends BaseController
+{
+
+    // 列表
+    public function feedbacklist()
+    {
+        return view('feedback/feedbacklist');
+    }
+
+    public function listfeedback()
+    {
+        $limit = input('limit');
+        $page = input('page');
+        $map         = [];
+        $status = input('status/d');
+        if (!empty($status)) {
+            $map[] = ['status', '=', $status];
+        }
+        $list = FeedbackModel::with('user')->where($map)->order(['createtime'=>'desc'])->limit($limit)->page($page)->append(['status_text'])->select();
+        $count = FeedbackModel::where($map)->count();
+        if ($count==0){
+            exit(json_encode(array(
+                'code' 	=> 1,
+                'msg'	=> "未查询到数据"
+            )));
+        }
+        exit(json_encode(array(
+            'code' 	=> 0,
+            'msg'	=> "",
+            'count' => $count,
+            'data'  => $list
+        )));
+    }
+
+    public function dealfeedback()
+    {
+        $idarr = input('idarr/a');
+        FeedbackModel::whereIn('id', $idarr)->update(['status' => 1]);
+        exit(json_encode([
+            'code' => 0,
+            'msg'  => "",
+        ]));
+    }
+}

+ 1 - 1
app/admin/controller/Report.php

@@ -499,7 +499,7 @@ class Report extends BaseController
             array('id','表ID'),
             array('worker.title','劳务公司'),
             array('agent.title','代理门店'),
-            array('broker.title','职业顾问'),
+            array('broker.title','经纪人'),
             array('report_factory.title','意向工厂'),
             array('realname','姓名'),
             array('mobile','手机号'),

+ 212 - 0
app/admin/controller/Resident.php

@@ -0,0 +1,212 @@
+<?php
+
+namespace app\admin\controller;
+
+use app\admin\BaseController;
+use app\common\model\ResidentLog as ResidentLogModel;
+use app\common\model\User as UserModel;
+use app\common\model\Worker as WorkerModel;
+use app\common\model\Broker as BrokerModel;
+use app\common\model\Resident as ResidentModel;
+
+use app\common\validate\Resident as ResidentValidate;
+use think\exception\ValidateException;
+
+class Resident extends BaseController
+{
+
+    public function residentlist()
+    {
+        $workerlist = WorkerModel::order(['id' => 'desc'])->select();
+        return view('resident/residentlist', [
+            'workerlist' => $workerlist,
+        ]);
+    }
+
+    public function residentForm()
+    {
+        $id       = input('id/d, 0');
+        $resident = ResidentModel::findOrEmpty($id);
+        return view('resident/residentform', [
+            'resident' => $resident,
+        ]);
+    }
+
+    public function editresident()
+    {
+        $id   = input('id/d');
+        $data = [
+            'title'    => input('title/s', ""),
+            'mobile'   => input('mobile/s', ""),
+            'weixin'   => input('weixin/s', ""),
+            'qq'       => input('qq/s', ""),
+            'province' => input('province/s', ""),
+            'city'     => input('city/s', ""),
+            'district' => input('district/s', ""),
+            'details'  => input('details/s', ""),
+            'status'   => input('status/d') == 1 ? 1 : 2,
+        ];
+        if (empty($id)) {
+            $vdata = [
+                'id'     => $id,
+                'mobile' => input('mobile/s'),
+            ];
+            try {
+                validate(ResidentValidate::class)->check($vdata);
+            } catch (ValidateException $e) {
+                exit(json_encode([
+                    'code' => 1,
+                    'msg'  => $e->getError(),
+                ]));
+            }
+
+            $user = UserModel::where(['mobile' => input('usermobile/s', '')])->findOrEmpty();
+            if ($user->isEmpty()) {
+                exit(json_encode([
+                    'code' => 1,
+                    'msg'  => "关联的用户不存在。",
+                ]));
+            }
+            $broker = BrokerModel::where('userid', $user['id'])->findOrEmpty();
+            if (empty($broker)) {
+                exit(json_encode([
+                    'code' => 1,
+                    'msg'  => "只有经纪人才能关联。",
+                ]));
+            }
+
+            $resident_user = ResidentModel::where('userid', $user->id)->find();
+            if (!empty($resident_user)) {
+                exit(json_encode([
+                    'code' => 1,
+                    'msg'  => "该用户已是经纪人。",
+                ]));
+            }
+
+            $data['userid']     = $user->id;
+            $data['workerid']   = $broker['workerid'];
+            $data['agentid']    = $broker['agentid'];
+            $data['createtime'] = time();
+            ResidentModel::create($data);
+        } else {
+            $resident = ResidentModel::find($id);
+            $resident->save($data);
+        }
+
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+    public function fieldresident()
+    {
+        $id       = input('id/d', 0);
+        $resident = ResidentModel::findOrEmpty($id);
+        if ($resident->isEmpty()) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "信息不存在",
+            ]));
+        } else {
+            $resident->save([
+                input('field/s') => input('value'),
+            ]);
+        }
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+    public function delresident()
+    {
+        $access_admin = session('access_admin');
+        $password     = input('password');
+        if ($access_admin['password'] !== md5($password)) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "操作密码验证失败",
+            ]));
+        }
+        $idarr  = input('idarr/a');
+        $result = ResidentModel::whereIn('id', $idarr)->delete();
+        if ($result) {
+            exit(json_encode([
+                'code' => 0,
+                'msg'  => "",
+            ]));
+        }
+        exit(json_encode([
+            'code' => 1,
+            'msg'  => "删除失败,请稍后重试",
+        ]));
+    }
+
+    public function listresident()
+    {
+        $limit    = input('limit/d', 20);
+        $page     = input('page/d', 1);
+        $map      = [];
+        $keywords = input('keywords/s');
+        if (!empty($keywords)) {
+            $map[] = ['title', 'like', '%' . $keywords . '%'];
+        }
+        $status = input('status/d');
+        if (!empty($status)) {
+            $map[] = ['status', '=', $status];
+        }
+        $workerid = input('workerid/d');
+        if (!empty($workerid)) {
+            $map[] = ['workerid', '=', $workerid];
+        }
+        $list  = ResidentModel::with(['worker', 'user'])->where($map)->order('id', 'DESC')->limit($limit)->page($page)->append(['status_text'])->select();
+        $count = ResidentModel::where($map)->count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
+
+    // 用户跟进记录
+    public function follow()
+    {
+        return view('resident/follow');
+    }
+
+    public function listfollow()
+    {
+        $limit  = input('limit/d', 20);
+        $page   = input('page/d', 1);
+        $map    = [];
+        $mobile = input('mobile/s');
+        if (!empty($mobile)) {
+            $resident = ResidentModel::where('mobile',$mobile)->findOrEmpty();
+            if (empty($resident)) {
+                $map[] = ['id','=',0];
+            } else {
+                $map[] = ['residentid', '=', $resident['id']];
+            }
+        }
+        $list  = ResidentLogModel::with(['resident', 'worker'])->where($map)->order('createtime', 'DESC')->limit($limit)->page($page)->select();
+        $count = ResidentLogModel::where($map)->count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
+}

+ 75 - 4
app/admin/controller/User.php

@@ -3,6 +3,7 @@
 namespace app\admin\controller;
 
 use app\common\model\RensheCode;
+use app\common\model\UserTags;
 use app\common\model\UserWill;
 use app\admin\BaseController;
 use app\common\model\User as UserModel;
@@ -545,6 +546,7 @@ class User extends BaseController
         $agentlist     = AgentModel::with('broker')->order(['id' => 'asc'])->select();
         $groupslist    = UserGroupsModel::order(['isdefault' => 'desc', 'id' => 'asc'])->select();
         $willlist      = UserWill::select();
+        $usertags      = UserTags::select();
         $emptimelist   = RensheCode::getList('emp_time');
         $communitylist = RensheCode::getList('community')->toArray();
         array_push($communitylist, ['code' => 0, 'id' => 0, 'name' => "不限"]);
@@ -552,6 +554,7 @@ class User extends BaseController
         return view('user/userform', [
             'groupslist'    => $groupslist,
             'willlist'      => $willlist,
+            'usertags'      => $usertags,
             'agentlist'     => $agentlist,
             'user'          => $user,
             'emptimelist'   => $emptimelist,
@@ -693,7 +696,7 @@ class User extends BaseController
             ['userGroups.title', '用户组'],
             ['broker.worker.title', '劳务公司'],
             ['broker.agent.title', '代理门店'],
-            ['broker.title', '职业顾问'],
+            ['broker.title', '经纪人'],
             ['user_part_count', '推广人数'],
             ['createtime', '注册时间'],
         ];
@@ -708,7 +711,7 @@ class User extends BaseController
         if (empty($brokerid)) {
             exit(json_encode([
                 'code' => 1,
-                'msg'  => "请选择职业顾问。",
+                'msg'  => "请选择经纪人。",
             ]));
         }
         UserModel::whereIn('id', $idarr)->update(['brokerid' => $brokerid]);
@@ -789,6 +792,7 @@ class User extends BaseController
             'followstatus'   => input('followstatus/d', 1),
             'bankcard'       => input('bankcard/a', []),
             'emp_time'       => array_values(input('emp_time/a', [])),
+            'user_tags'      => array_values(input('user_tags/a', [])),
             'work_place'     => array_values(input('work_place/a', [])),
             'com_cate_type'  => input('com_cate_type/d', 1),
             'com_cate'       => array_values(input('com_cate/a', [])),
@@ -962,9 +966,9 @@ class User extends BaseController
     {
         $param = UserParamModel::where(1)->findOrEmpty();
         $data  = [
-            'getmoney'      => input('getmoney/a', [])
+            'getmoney' => input('getmoney/a', []),
         ];
-        foreach ($data['getmoney'] as $v){
+        foreach ($data['getmoney'] as $v) {
             if ($v['money'] <= 0) {
                 exit(json_encode([
                     'code' => 1,
@@ -1089,4 +1093,71 @@ class User extends BaseController
 
         exit(json_encode(['code' => 0]));
     }
+
+    public function tags()
+    {
+        return view('user/tagslist');
+    }
+
+    public function listtags()
+    {
+        $limit    = input('limit');
+        $page     = input('page');
+        $map      = [];
+        $keywords = input('keywords/s');
+        if (!empty($keywords)) {
+            $map[] = ['name', 'like', '%' . $keywords . '%'];
+        }
+        $list  = UserTags::where($map)->limit($limit)->page($page)->select();
+        $count = UserTags::count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
+
+    public function deltags()
+    {
+        $idarr = input('idarr/a');
+        UserTags::whereIn('id', $idarr)->delete();
+        exit(json_encode([
+            'code' => 0,
+            'msg'  => "",
+        ]));
+    }
+
+    public function tagsForm()
+    {
+        $id   = input('id/d, 0');
+        $tags = UserTags::findOrEmpty($id);
+        return view('user/tagsform', [
+            'tags' => $tags,
+        ]);
+    }
+
+    public function edittags()
+    {
+        $id = input('id/d');
+        if (empty($id)) {
+            UserTags::create([
+                'name' => input('name/s'),
+            ]);
+        } else {
+            $administer = UserTags::find($id);
+            $administer->save([
+                'name' => input('name/s'),
+            ]);
+        }
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
 }

+ 1 - 1
app/admin/controller/Worker.php

@@ -191,7 +191,7 @@ class Worker extends BaseController
 		)));
 	}
 	
-	// 申请注册职业顾问
+	// 申请注册经纪人
 	public function fworkerList()
 	{
 		return view('worker/fworkerlist');

+ 2 - 2
app/admin/view/broker/brokerform.html

@@ -2,7 +2,7 @@
 	<div class="layui-row layui-col-space15">
 		<div class="layui-col-md12">
 			<div class="layui-card">
-				<div class="layui-card-header">职业顾问</div>
+				<div class="layui-card-header">经纪人</div>
 				<div class="layui-card-body" pad15>
 					<div class="layui-form layui-form-pane" lay-filter="LAY-broker-brokerform-edit">
 						<input type="hidden" name="id" value="{$broker.id}">
@@ -11,7 +11,7 @@
 							<div class="layui-input-block">
 								<input type="text" name="musermobile" value="{$broker.muser.mobile}" lay-verify="phone" placeholder="请输入关联用户手机号..."
 								 autocomplete="off" class="layui-input">
-								<div class="layui-form-mid layui-word-aux">关联用户的手机号。关联的用户会自动归属到该职业顾问名下,请谨慎修改。个人中心才会出现职业顾问管理入口导航。</div>
+								<div class="layui-form-mid layui-word-aux">关联用户的手机号。关联的用户会自动归属到该经纪人名下,请谨慎修改。个人中心才会出现经纪人管理入口导航。</div>
 							</div>
 						</div>
 						<div class="layui-form-item">

+ 4 - 15
app/admin/view/broker/brokerlist.html

@@ -19,17 +19,6 @@
 						</select>
 					</div>
 				</div>
-				<div class="layui-inline">
-					<label class="layui-form-label">代理门店</label>
-					<div class="layui-input-block">
-						<select name="agentid" lay-search>
-							<option value="">全部代理门店(可搜索)</option>
-							{volist name="agentlist" id="vo"}
-							<option value="{$vo['id']}">{$vo['title']}</option>
-							{/volist}
-						</select>
-					</div>
-				</div>
 				<div class="layui-inline">
 					<label class="layui-form-label">状态</label>
 					<div class="layui-input-block">
@@ -156,7 +145,7 @@
 					title: '敏感操作,请验证密码'
 				}, function(value, index) {
 					layer.close(index);
-					layer.confirm('确定删除此职业顾问吗?', function(index) {
+					layer.confirm('确定删除此经纪人吗?', function(index) {
 						admin.req({
 							url: setter.baseAdminUrl + 'broker/delbroker',
 							data: {
@@ -175,7 +164,7 @@
 			add: function() {
 				var index = layer.open({
 					type: 2,
-					title: '添加职业顾问',
+					title: '添加经纪人',
 					content: 'brokerform.html?id=0',
 					maxmin: true,
 					area: ['750px', '480px']
@@ -192,7 +181,7 @@
 					title: '敏感操作,请验证密码'
 				}, function(value, index) {
 					layer.close(index);
-					layer.confirm('确定删除此职业顾问吗?', function(index) {
+					layer.confirm('确定删除此经纪人吗?', function(index) {
 						admin.req({
 							url: setter.baseAdminUrl + 'broker/delbroker',
 							data: {
@@ -210,7 +199,7 @@
 			} else if (obj.event === 'edit') {
 				var index = layer.open({
 					type: 2,
-					title: '编辑职业顾问',
+					title: '编辑经纪人',
 					content: 'brokerform.html?id=' + data.id,
 					maxmin: true,
 					area: ['750px', '480px']

+ 1 - 1
app/admin/view/broker/fbrokerform.html

@@ -2,7 +2,7 @@
 	<div class="layui-row layui-col-space15">
 		<div class="layui-col-md12">
 			<div class="layui-card">
-				<div class="layui-card-header">职业顾问申请信息</div>
+				<div class="layui-card-header">经纪人申请信息</div>
 				<div class="layui-card-body" pad15>
 
 

+ 1 - 1
app/admin/view/comjobs/comjobsform.html

@@ -187,7 +187,7 @@
 						<div class="layui-form-item">
 							<label class="layui-form-label">招聘人数</label>
 							<div class="layui-input-block">
-								<input type="number" name="num" value="{$comjobs.num|default=1}" placeholder="请输入...."
+								<input type="number" name="recruit_num" value="{$comjobs.recruit_num|default=1}" placeholder="请输入...."
 									   autocomplete="off" class="layui-input">
 							</div>
 						</div>

+ 1 - 1
app/admin/view/comjobsreport/reportexamine.html

@@ -131,7 +131,7 @@
                         { field: 'comjobsid', title: '招聘订单', minWidth: 200, toolbar: '<div>{{d.comjobs!=null ? d.comjobs.title : ""}}</div>' },
                         { field: 'comjobsid', title: '招聘企业', minWidth: 200, hide: true, toolbar: '<div>{{d.comjobs.company!=null ? d.comjobs.company.title : ""}}</div>' },
                         { field: 'agenttitle', title: '代理门店', minWidth: 200, templet: '<div>{{d.agent!=null ? d.agent.title : ""}}</div>' },
-                        { field: 'brokerid', title: '职业顾问', width: 150, templet: '<div>{{d.broker!=null ? d.broker.title : ""}}</div>', hide: true },
+                        { field: 'brokerid', title: '经纪人', width: 150, templet: '<div>{{d.broker!=null ? d.broker.title : ""}}</div>', hide: true },
                         { field: 'createtime', title: '报备时间', width: 170 },
                         { title: '操作', width: 230, align: 'center', fixed: 'right', toolbar: '#setTpl' }
                     ]

+ 1 - 1
app/admin/view/comjobsreport/reportform.html

@@ -119,7 +119,7 @@
 		var agentbroker = selectN({
 			elem: '#agentbroker',
 			search: [true, true],
-			tips: ["请选择代理门店", "请选择职业顾问"],
+			tips: ["请选择代理门店", "请选择经纪人"],
 			data: {$agentlist|raw},
 			selected: [{$report.agentid}, {$report.brokerid}],
 			field: { idName: 'id', titleName: 'title', childName: 'broker' }

+ 1 - 1
app/admin/view/comjobsreport/reportlist.html

@@ -142,7 +142,7 @@
 					{ field: 'comjobsid', title: '招聘订单', minWidth: 200, toolbar: '<div>{{d.comjobs!=null ? d.comjobs.title : ""}}</div>' },
 					{ field: 'comjobsid', title: '招聘企业', minWidth: 200, hide: true, toolbar: '<div>{{d.comjobs.company!=null ? d.comjobs.company.title : ""}}</div>' },
 					{ field: 'agenttitle', title: '代理门店', minWidth: 200, templet: '<div>{{d.agent!=null ? d.agent.title : ""}}</div>' },
-					{ field: 'brokerid', title: '职业顾问', width: 150, templet: '<div>{{d.broker!=null ? d.broker.title : ""}}</div>', hide: true },
+					{ field: 'brokerid', title: '经纪人', width: 150, templet: '<div>{{d.broker!=null ? d.broker.title : ""}}</div>', hide: true },
 					{ field: 'createtime', title: '报备时间', width: 170 },
 					{ title: '操作', width: 230, align: 'center', fixed: 'right', toolbar: '#setTpl' }
 				]

+ 7 - 0
app/admin/view/demand/demandform.html

@@ -50,6 +50,13 @@
 								</select>
 							</div>
 						</div>
+						<div class="layui-form-item" pane>
+							<label class="layui-form-label">类型</label>
+							<div class="layui-input-block">
+								<input type="radio" name="type" value="1" title="代招" {eq name="demand.type|default=1" value="1"}checked{/eq}>
+								<input type="radio" name="type" value="2" title="劳务派遣" {eq name="demand.type" value="2"}checked{/eq}>
+							</div>
+						</div>
 						<div class="layui-form-item" id="LAY-demand-demandform-edit-areapicker">
 							<label class="layui-form-label"><span style="color:#f90c05;">*</span>省市区</label>
 							<div class="layui-input-inline">

+ 146 - 0
app/admin/view/feedback/feedbacklist.html

@@ -0,0 +1,146 @@
+<div class="layui-fluid">
+	<div class="layui-card">
+		<div class="layui-form layui-form-pane  layui-card-header layuiadmin-card-header-auto" lay-filter="LAY-user-integrallist-search">
+			<div class="layui-form-item">
+				<div class="layui-inline">
+					<label class="layui-form-label">状态</label>
+					<div class="layui-input-block">
+						<select name="status">
+							<option value="">全部状态</option>
+							<option value="1">已处理</option>
+							<option value="2">待处理</option>
+						</select>
+					</div>
+				</div>
+				<div class="layui-inline">
+					<button class="layui-btn" lay-submit lay-filter="LAY-user-integrallist-search-btn">
+						<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
+					</button>
+				</div>
+			</div>
+		</div>
+		<div class="layui-form layui-card-header layuiadmin-card-header-auto">
+			<button class="layui-btn layuiadmin-btn" data-type="add">标记已处理</button>
+		</div>
+
+		<div class="layui-card-body">
+			<table id="LAY-artapp-notice-catelist-table" lay-filter="LAY-artapp-notice-catelist-table"></table>
+			<script type="text/html" id="setTpl">
+				{{#  if(d.status == 2){ }}
+					<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="del">
+						<i class="layui-icon layui-icon-edit"></i>标记已处理
+					</a>
+				{{#  } }}
+			</script>
+		</div>
+	</div>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use(['index', 'form', 'set', 'table'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin,
+			form = layui.form,
+			table = layui.table;
+		form.render();
+
+		table.render({
+			elem: '#LAY-artapp-notice-catelist-table',
+			url: setter.baseAdminUrl + 'feedback/listfeedback',
+			cols: [
+				[
+					{ type: 'checkbox', fixed: 'left' },
+					{ field: 'name', title: '姓名', width: 100},
+					{ field: 'mobile', title: '联系方式', width: 160 },
+					{ field: 'content', title: '内容' },
+					{ field: 'status_text', title: '状态', width: 80, align: 'center' },
+					{ title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#setTpl' }
+				]
+			],
+			page: true,
+			limit: 50,
+			cellMinWidth: 150,
+			text: '对不起,加载出现异常!'
+		});
+
+		form.on('submit(LAY-user-integrallist-search-btn)', function(data) {
+			table.reload('LAY-artapp-notice-catelist-table', {
+				where: data.field,
+				page: {
+					curr: 1
+				}
+			});
+		});
+
+		//事件
+		var active = {
+			add: function() {
+				var checkStatus = table.checkStatus('LAY-artapp-notice-catelist-table'),
+						checkData = checkStatus.data; //得到选中的数据
+				if (checkData.length === 0) {
+					return layer.msg('请选择数据');
+				}
+				var idarr = [];
+				for (var i = 0; i < checkData.length; i++) {
+					idarr.push(checkData[i].id);
+				}
+				layer.confirm('确定标记为已处理吗?', function(index) {
+					admin.req({
+						url: setter.baseAdminUrl + 'feedback/dealfeedback',
+						data: {
+							idarr: idarr
+						},
+						done: function(res) {
+							table.reload('LAY-artapp-notice-catelist-table');
+						}
+					});
+					layer.close(index);
+				});
+			}
+		};
+
+		//监听单元格编辑
+		table.on('edit(LAY-artapp-notice-catelist-table)', function(obj) {
+			var id = obj.data.id,
+				field = obj.field,
+				value = obj.value;
+			admin.req({
+				url: setter.baseAdminUrl + 'notice/fieldcate',
+				data: { id: id, field: field, value: value },
+				done: function(res) {
+					layer.msg('修改成功');
+					layui.table.reload('LAY-artapp-notice-catelist-table');
+				}
+			});
+		});
+
+		//监听工具条
+		table.on('tool(LAY-artapp-notice-catelist-table)', function(obj) {
+			var data = obj.data;
+			if (obj.event === 'del') {
+				layer.confirm('确定标记为已处理吗?', function(index) {
+					admin.req({
+						url: setter.baseAdminUrl + 'feedback/dealfeedback',
+						data: {
+							idarr: data.id
+						},
+						done: function(res) {
+							layui.table.reload('LAY-artapp-notice-catelist-table');
+						}
+					});
+					layer.close(index);
+				});
+			}
+		});
+
+		$('.layui-btn.layuiadmin-btn').on('click', function() {
+			var type = $(this).data('type');
+			active[type] ? active[type].call(this) : '';
+		});
+	});
+</script>

+ 1 - 1
app/admin/view/help/link.html

@@ -121,7 +121,7 @@
 							</thead>
 							<tbody>
 								<tr>
-									<td>职业顾问注册申请</td>
+									<td>经纪人注册申请</td>
 									<td onclick="JavaScript:copyMobileUrl('/pages/broker/brokerform');">/pages/broker/brokerform</td>
 									<td>我的邀请码</td>
 									<td onclick="JavaScript:copyMobileUrl('/pages/my/mycode');">/pages/my/mycode</td>

+ 71 - 0
app/admin/view/resident/follow.html

@@ -0,0 +1,71 @@
+<div class="layui-fluid">
+	<div class="layui-card">
+		<div class="layui-form layui-form-pane layui-card-header layuiadmin-card-header-auto" lay-filter="LAY-broker-brokerlist-search">
+			<div class="layui-form-item">
+				<div class="layui-inline">
+					<label class="layui-form-label">电话</label>
+					<div class="layui-input-block">
+						<input type="text" name="mobile" placeholder="请输入" autocomplete="off" class="layui-input">
+					</div>
+				</div>
+				<div class="layui-inline">
+					<button class="layui-btn" lay-submit lay-filter="LAY-broker-brokerlist-btn">
+						<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
+					</button>
+				</div>
+			</div>
+		</div>
+		<div class="layui-card-body">
+			<table id="LAY-broker-brokerlist-table" lay-filter="LAY-broker-brokerlist-table"></table>
+		</div>
+	</div>
+	<script type="text/html" id="residentTpl">
+		{{#  if(d.residentid != 0){ }}
+		{{d.resident.title}} - {{d.resident.mobile}}
+		{{#  } }}
+	</script>
+	<script type="text/html" id="workertitleTpl">
+		{{d.workerid == 0 ? '' : d.worker.title}}
+	</script>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use(['index', 'form', 'set', 'table'], function() {
+		var $ = layui.$,
+				setter = layui.setter,
+				form = layui.form,
+				table = layui.table;
+		form.render();
+
+		table.render({
+			elem: '#LAY-broker-brokerlist-table',
+			url: setter.baseAdminUrl + 'resident/listfollow',
+			cols: [
+				[
+					{ field: 'id', width: 80, title: '表ID', sort: true },
+					{ field: 'resident', title: '驻场老师(姓名-手机号)', templet: '#residentTpl', minWidth: 250, align: 'left' },
+					{ field: 'workerid', title: '劳务公司', templet: '#workertitleTpl' },
+					{ field: 'content', title: '记录', align: 'center' },
+					{ field: 'createtime', title: '创建时间', width: 170 },
+				]
+			],
+			page: true,
+			limit: 50,
+			cellMinWidth: 150,
+			text: '对不起,加载出现异常!'
+		});
+
+		form.on('submit(LAY-broker-brokerlist-btn)', function(data) {
+			table.reload('LAY-broker-brokerlist-table', {
+				where: data.field,
+				page: {
+					curr: 1
+				}
+			});
+		});
+	});
+</script>

+ 130 - 0
app/admin/view/resident/residentform.html

@@ -0,0 +1,130 @@
+<div class="layui-fluid">
+	<div class="layui-row layui-col-space15">
+		<div class="layui-col-md12">
+			<div class="layui-card">
+				<div class="layui-card-header">驻场老师</div>
+				<div class="layui-card-body" pad15>
+					<div class="layui-form layui-form-pane" lay-filter="LAY-broker-brokerform-edit">
+						<input type="hidden" name="id" value="{$resident.id}">
+						<div class="layui-form-item">
+							<label class="layui-form-label">关联用户</label>
+							<div class="layui-input-block">
+								<input type="text" name="usermobile" value="{$resident.user.mobile}" lay-verify="phone" placeholder="请输入关联用户手机号..."
+								 autocomplete="off" class="layui-input">
+								<div class="layui-form-mid layui-word-aux">关联用户的手机号。个人中心才会出现驻场老师管理入口导航。</div>
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label"><span style="color:#f90c05;">*</span>姓名</label>
+							<div class="layui-input-block">
+								<input type="text" name="title" value="{$resident.title}" lay-verify="required" placeholder="请输入..." autocomplete="off"
+								 class="layui-input">
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">手机号</label>
+							<div class="layui-input-block">
+								<input type="text" name="mobile" value="{$resident.mobile}" lay-verify="phone" placeholder="请输入..." autocomplete="off"
+								 class="layui-input">
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">微信号</label>
+							<div class="layui-input-block">
+								<input type="text" name="weixin" value="{$resident.weixin}" placeholder="请输入..." autocomplete="off" class="layui-input">
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">QQ号</label>
+							<div class="layui-input-block">
+								<input type="text" name="qq" value="{$resident.qq}" placeholder="请输入..." autocomplete="off" class="layui-input">
+							</div>
+						</div>
+						
+						<div class="layui-form-item" id="LAY-broker-brokerform-edit-areapicker">
+							<label class="layui-form-label"><span style="color:#f90c05;">*</span>省市区</label>
+							<div class="layui-input-inline">
+								<select name="province" class="province-selector" data-value="{$resident.province}" lay-filter="province-2"
+								 lay-verify="required">
+									<option value="">请选择省</option>
+								</select>
+							</div>
+							<div class="layui-input-inline">
+								<select name="city" class="city-selector" data-value="{$resident.city}" lay-filter="city-2" lay-verify="required">
+									<option value="">请选择市</option>
+								</select>
+							</div>
+							<div class="layui-input-inline">
+								<select name="district" class="district-selector" data-value="{$resident.district}" lay-filter="district-2"
+								 lay-verify="required">
+									<option value="">请选择区</option>
+								</select>
+							</div>
+						</div>
+						<div class="layui-form-item" id="formdetails">
+							<label class="layui-form-label">基本介绍</label>
+							<div class="layui-input-block">
+								<textarea name="details" placeholder="请输入..." class="layui-textarea">{$resident.details}</textarea>
+							</div>
+						</div>
+						
+						<div class="layui-form-item" pane>
+							<label class="layui-form-label">状态</label>
+							<div class="layui-input-block">
+								<input type="checkbox" lay-filter="switch" name="status" {eq name="resident.status|default=1" value="1" }checked{/eq}
+								 lay-skin="switch" lay-text="正常|禁用" value="1">
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<div class="layui-input-block">
+								<input type="button" lay-submit lay-filter="LAY-broker-brokerform-edit-submit" value="确认提交" class="layui-btn">
+							</div>
+						</div>
+					</div>
+
+
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use(['index', 'form', 'set', 'layarea'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin,
+			form = layui.form,
+			layarea = layui.layarea;
+		form.render();
+		
+		layarea.render({
+			elem: '#LAY-broker-brokerform-edit-areapicker',
+			data: {
+                province: '福建省',
+                city: '泉州市',
+                district: '晋江市',
+			}
+		});
+
+		form.on('submit(LAY-broker-brokerform-edit-submit)', function(obj) {
+			var index = parent.layer.getFrameIndex(window.name);
+			admin.req({
+				url: setter.baseAdminUrl + 'resident/editresident',
+				data: obj.field,
+				done: function(res) {
+					layer.msg("提交成功", {
+						icon: 1
+					});
+					parent.layui.table.reload('LAY-broker-brokerlist-table'); //重载表格
+					parent.layer.close(index);
+				}
+			});
+		});
+
+	});
+</script>

+ 211 - 0
app/admin/view/resident/residentlist.html

@@ -0,0 +1,211 @@
+<div class="layui-fluid">
+	<div class="layui-card">
+		<div class="layui-form layui-form-pane layui-card-header layuiadmin-card-header-auto" lay-filter="LAY-broker-brokerlist-search">
+			<div class="layui-form-item">
+				<div class="layui-inline">
+					<label class="layui-form-label">名称</label>
+					<div class="layui-input-block">
+						<input type="text" name="keywords" placeholder="请输入" autocomplete="off" class="layui-input">
+					</div>
+				</div>
+				<div class="layui-inline">
+					<label class="layui-form-label">劳务公司</label>
+					<div class="layui-input-block">
+						<select name="workerid" lay-search>
+							<option value="">全部公司(可搜索)</option>
+							{volist name="workerlist" id="vo"}
+							<option value="{$vo['id']}">{$vo['title']}</option>
+							{/volist}
+						</select>
+					</div>
+				</div>
+				<div class="layui-inline">
+					<label class="layui-form-label">状态</label>
+					<div class="layui-input-block">
+						<select name="status">
+							<option value="">全部状态</option>
+							<option value="1">正常</option>
+							<option value="2">禁用</option>
+						</select>
+					</div>
+				</div>
+				<div class="layui-inline">
+					<button class="layui-btn" lay-submit lay-filter="LAY-broker-brokerlist-btn">
+						<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
+					</button>
+				</div>
+			</div>
+		</div>
+
+		<div class="layui-card-body">
+			<div style="padding-bottom: 10px;">
+				<button class="layui-btn layuiadmin-btn" data-type="batchdel">删除</button>
+				<button class="layui-btn layuiadmin-btn" data-type="add">添加</button>
+			</div>
+
+			<table id="LAY-broker-brokerlist-table" lay-filter="LAY-broker-brokerlist-table"></table>
+			<script type="text/html" id="muserTpl">
+				{{#  if(d.userid != 0){ }}
+					{{d.user.realname}} - {{d.user.mobile}}
+				{{#  } }}
+			</script>
+			<script type="text/html" id="workertitleTpl">
+				{{d.worker.title}}
+			</script>
+			<script type="text/html" id="usercountTpl">
+				{{d.user_count}}
+			</script>
+			<script type="text/html" id="setTpl">
+				<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
+				<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
+			</script>
+		</div>
+	</div>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use(['index', 'form', 'set', 'table'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin,
+			form = layui.form,
+			table = layui.table;
+		form.render();
+
+		table.render({
+			elem: '#LAY-broker-brokerlist-table',
+			url: setter.baseAdminUrl + 'resident/listresident',
+			cols: [
+				[
+					{ type: 'checkbox', fixed: 'left' },
+					{ field: 'id', width: 80, title: '表ID', sort: true },
+					{ field: 'title', title: '姓名', edit: 'text' },
+					{ field: 'mobile', title: '手机号' },
+					{ field: 'weixin', title: '微信号', edit: 'text' },
+					{ field: 'qq', title: 'QQ号', edit: 'text' },
+					{ field: 'muser', title: '关联的用户(姓名-手机号)', templet: '#muserTpl', minWidth: 250, align: 'left' },
+					{ field: 'workertitle', title: '劳务公司', templet: '#workertitleTpl' },
+					{ field: 'status_text', title: '状态', width: 100, align: 'center' },
+					{ field: 'createtime', title: '创建时间', width: 170 },
+					{ title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#setTpl' }
+				]
+			],
+			page: true,
+			limit: 50,
+			cellMinWidth: 150,
+			text: '对不起,加载出现异常!'
+		});
+
+		form.on('submit(LAY-broker-brokerlist-btn)', function(data) {
+			table.reload('LAY-broker-brokerlist-table', {
+				where: data.field,
+				page: {
+					curr: 1
+				}
+			});
+		});
+
+		table.on('edit(LAY-broker-brokerlist-table)', function(obj) {
+			var id = obj.data.id,
+				field = obj.field,
+				value = obj.value;
+			admin.req({
+				url: setter.baseAdminUrl + 'resident/fieldresident',
+				data: { id: id, field: field, value: value },
+				done: function(res) {
+					layer.msg('修改成功');
+					layui.table.reload('LAY-broker-brokerlist-table');
+				}
+			});
+		});
+
+		var active = {
+			batchdel: function() {
+				var checkStatus = table.checkStatus('LAY-broker-brokerlist-table'),
+					checkData = checkStatus.data; //得到选中的数据
+				if (checkData.length === 0) {
+					return layer.msg('请选择数据');
+				}
+				var idarr = [];
+				for (var i = 0; i < checkData.length; i++) {
+					idarr.push(checkData[i].id);
+				}
+				layer.prompt({
+					formType: 1,
+					title: '敏感操作,请验证密码'
+				}, function(value, index) {
+					layer.close(index);
+					layer.confirm('确定删除此驻场老师吗?', function(index) {
+						admin.req({
+							url: setter.baseAdminUrl + 'resident/delresident',
+							data: {
+								password: value,
+								idarr: idarr
+							},
+							done: function(res) {
+								table.reload('LAY-broker-brokerlist-table');
+								layer.msg('已删除');
+							}
+						});
+						layer.close(index);
+					});
+				});
+			},
+			add: function() {
+				var index = layer.open({
+					type: 2,
+					title: '添加驻场老师',
+					content: 'residentform.html?id=0',
+					maxmin: true,
+					area: ['750px', '480px']
+				});
+				layer.full(index);
+			}
+		};
+
+		table.on('tool(LAY-broker-brokerlist-table)', function(obj) {
+			var data = obj.data;
+			if (obj.event === 'del') {
+				layer.prompt({
+					formType: 1,
+					title: '敏感操作,请验证密码'
+				}, function(value, index) {
+					layer.close(index);
+					layer.confirm('确定删除此驻场老师吗?', function(index) {
+						admin.req({
+							url: setter.baseAdminUrl + 'resident/delresident',
+							data: {
+								password: value,
+								idarr: [data.id]
+							},
+							done: function(res) {
+								obj.del();
+								layer.msg('已删除');
+							}
+						});
+						layer.close(index);
+					});
+				});
+			} else if (obj.event === 'edit') {
+				var index = layer.open({
+					type: 2,
+					title: '编辑驻场老师',
+					content: 'residentform.html?id=' + data.id,
+					maxmin: true,
+					area: ['750px', '480px']
+				});
+				layer.full(index);
+			}
+		});
+
+		$('.layui-btn.layuiadmin-btn').on('click', function() {
+			var type = $(this).data('type');
+			active[type] ? active[type].call(this) : '';
+		});
+
+	});
+</script>

+ 3 - 3
app/admin/view/set/param.html

@@ -110,14 +110,14 @@
 
 
 						<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
-							<legend>代理&职业顾问申请页面</legend>
+							<legend>经纪人申请页面</legend>
 						</fieldset>
 						<div class="layui-form-item">
-							<label class="layui-form-label">职业顾问</label>
+							<label class="layui-form-label">经纪人</label>
 							<div class="layui-input-block">
 								<div class="layui-upload">
 									<button type="button" class="layui-btn attachment-upload-images" data-input="brokerformpic" data-amount="1">上传图片</button>
-									<div class="layui-inline layui-word-aux"> 职业顾问申请页海报,最佳尺寸:750px*1160px,高度自适应。 <a target="_blank" href="/static/images/brokerformpic.png">默认素材</a>
+									<div class="layui-inline layui-word-aux"> 经纪人申请页海报,最佳尺寸:750px*1160px,高度自适应。 <a target="_blank" href="/static/images/brokerformpic.png">默认素材</a>
 									</div>
 									<div class="layui-upload-list echo-attachment-image-list" id="brokerformpic">
 										{notempty name="param.brokerformpic"}

+ 57 - 0
app/admin/view/user/tagsform.html

@@ -0,0 +1,57 @@
+<div class="layui-fluid">
+	<div class="layui-row layui-col-space15">
+		<div class="layui-col-md12">
+			<div class="layui-card">
+				<div class="layui-card-body" pad15>
+					<div class="layui-form layui-form-pane" lay-filter="LAY-user-groupsform-edit">
+						<input type="hidden" name="id" value="{$tags['id']}">
+						<div class="layui-form-item">
+							<label class="layui-form-label"><span style="color:#f90c05;">*</span>标签名</label>
+							<div class="layui-input-block">
+								<input type="text" name="name" value="{$tags['name']}" lay-verify="required" placeholder="请输入标签名"
+								 autocomplete="off" class="layui-input">
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<div class="layui-input-block">
+								<input type="button" lay-submit lay-filter="LAY-user-groupsform-edit-submit" value="确认" class="layui-btn">
+							</div>
+						</div>
+					</div>
+
+
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use(['index', 'form', 'set', 'upload'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin,
+			form = layui.form,
+			upload = layui.upload;
+		form.render();
+
+		form.on('submit(LAY-user-groupsform-edit-submit)', function(obj) {
+			var index = parent.layer.getFrameIndex(window.name);
+			admin.req({
+				url: setter.baseAdminUrl + 'user/edittags',
+				data: obj.field,
+				done: function(res) {
+					layer.msg("提交成功", {
+						icon: 1
+					});
+					parent.layui.table.reload('LAY-user-groupslist-table'); //重载表格
+					parent.layer.close(index);
+				}
+			});
+		});
+	});
+</script>

+ 92 - 0
app/admin/view/user/tagslist.html

@@ -0,0 +1,92 @@
+<div class="layui-fluid">
+	<div class="layui-card">
+		<div class="layui-form layui-card-header layuiadmin-card-header-auto">
+			<button class="layui-btn layuiadmin-btn" data-type="add">添加</button>
+		</div>
+
+		<div class="layui-card-body">
+			<table id="LAY-user-groupslist-table" lay-filter="LAY-user-groupslist-table"></table>
+			<script type="text/html" id="setTpl">
+				<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
+						<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
+					</script>
+		</div>
+	</div>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use(['index', 'form', 'set', 'table'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin,
+			form = layui.form,
+			table = layui.table;
+		form.render();
+
+		table.render({
+			elem: '#LAY-user-groupslist-table',
+			url: setter.baseAdminUrl + 'user/listtags',
+			cols: [
+				[
+					{ field: 'id', width: 80, title: '表ID', sort: true },
+					{ field: 'name', title: '名称' },
+					{ title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#setTpl' }
+				]
+			],
+			page: true,
+			limit: 50,
+			text: '对不起,加载出现异常!'
+		});
+
+		var active = {
+			add: function() {
+				var index = layer.open({
+					type: 2,
+					title: '添加标签',
+					content: 'tagsform.html?id=0',
+					maxmin: true,
+					area: ['550px', '550px']
+				});
+				layer.full(index);
+			}
+		};
+
+		table.on('tool(LAY-user-groupslist-table)', function(obj) {
+			var data = obj.data;
+			if (obj.event === 'del') {
+				layer.confirm('确定删除此记录吗?', function(index) {
+					admin.req({
+						url: setter.baseAdminUrl + 'user/deltags',
+						data: {
+							idarr: [data.id]
+						},
+						done: function(res) {
+							obj.del();
+							layer.msg('已删除');
+						}
+					});
+					layer.close(index);
+				});
+			} else if (obj.event === 'edit') {
+				var index = layer.open({
+					type: 2,
+					title: '编辑',
+					content: 'tagsform.html?id=' + data.id,
+					maxmin: true,
+					area: ['550px', '550px']
+				});
+				layer.full(index);
+			}
+		});
+
+		$('.layui-btn.layuiadmin-btn').on('click', function() {
+			var type = $(this).data('type');
+			active[type] ? active[type].call(this) : '';
+		});
+
+	});
+</script>

+ 14 - 2
app/admin/view/user/userform.html

@@ -19,7 +19,7 @@
 							</div>
 						</div>
 						<div class="layui-form-item">
-							<label class="layui-form-label">职业顾问</label>
+							<label class="layui-form-label">经纪人</label>
 							<div class="layui-input-block" id="agentbroker">
 							</div>
 						</div>
@@ -264,6 +264,18 @@
 								<input type="text" name="com_cate_other" value="{$user.com_cate_other}" placeholder="请输入岗位类型" autocomplete="off" class="layui-input">
 							</div>
 						</div>
+						<div class="layui-form-item user_tags_form">
+							<label class="layui-form-label">用户标签</label>
+							<div class="layui-input-block">
+								{volist name="usertags" id="vo"}
+								<input type="checkbox" name="user_tags[]" value="{$vo.name}" title="{$vo.name}"
+									   {if condition="!$user->isEmpty() && !empty($user['user_tags']) && in_array($vo['name'],$user['user_tags'])"}
+									   checked
+									   {/if}
+								/>
+								{/volist}
+							</div>
+						</div>
 						<div class="layui-form-item">
 							<label class="layui-form-label">现居住地</label>
 							<div class="layui-input-block">
@@ -355,7 +367,7 @@
 		var agentbroker = selectN({
 			elem: '#agentbroker',
 			search: [false, false],
-			tips: ["请选择代理门店", "请选择职业顾问"],
+			tips: ["请选择代理门店", "请选择经纪人"],
 			data: {$agentlist|raw},
 			selected: [{$user.broker.agentid}, {$user.broker.id}],
 			field: { idName: 'id', titleName: 'title', childName: 'broker' }

+ 4 - 4
app/admin/view/user/userlist.html

@@ -142,7 +142,7 @@
 		var agentbroker = selectN({
 			elem: '#agentbroker',
 			search: [true, true],
-			tips: ["请选择代理门店(可搜索)", "请选择职业顾问(可搜索)"],
+			tips: ["请选择代理门店(可搜索)", "请选择经纪人(可搜索)"],
 			data: {$agentlist|raw},
 			selected: [0, 0],
 			field: { idName: 'id', titleName: 'title', childName: 'broker' }
@@ -151,7 +151,7 @@
 		var setagentbroker = selectN({
 			elem: '#setagentbroker',
 			search: [true, true],
-			tips: ["请选择代理门店(可搜索)", "请选择职业顾问(可搜索)"],
+			tips: ["请选择代理门店(可搜索)", "请选择经纪人(可搜索)"],
 			data: {$agentlist|raw},
 			selected: [0, 0],
 			field: { idName: 'id', titleName: 'title', childName: 'broker' }
@@ -173,7 +173,7 @@
 				type: 'get',
 				data: obj.field,
 				done: function(res) {
-					layer.msg("批量设置职业顾问成功。", {
+					layer.msg("批量设置经纪人成功。", {
 						icon: 1
 					});
 					table.reload('LAY-user-userlist-table');
@@ -201,7 +201,7 @@
 					{ field: 'groupsid', title: '用户组', templet: '#groupsidTpl' },
 					{ field: 'workerid', title: '劳务公司', templet: '#workeridTpl' },
 					{ field: 'agentid', title: '代理门店', templet: '#agentidTpl' },
-					{ field: 'brokerid', title: '职业顾问', templet: '#brokeridTpl' },
+					{ field: 'brokerid', title: '经纪人', templet: '#brokeridTpl' },
 
                     { field: 'education_text', title: '学历', minWidth: 100, align: 'center' },
                     { field: 'worker_text', title: '工作经验', minWidth: 100, align: 'center' },

+ 2 - 2
app/admin/view/user/userpublic.html

@@ -127,7 +127,7 @@
 		var setagentbroker = selectN({
 			elem: '#setagentbroker',
 			search: [true, true],
-			tips: ["请选择代理门店(可搜索)", "请选择职业顾问(可搜索)"],
+			tips: ["请选择代理门店(可搜索)", "请选择经纪人(可搜索)"],
 			data: {$agentlist|raw},
 			selected: [0, 0],
 			field: { idName: 'id', titleName: 'title', childName: 'broker' }
@@ -149,7 +149,7 @@
 				type: 'get',
 				data: obj.field,
 				done: function(res) {
-					layer.msg("批量设置职业顾问成功。", {
+					layer.msg("批量设置经纪人成功。", {
 						icon: 1
 					});
 					table.reload('LAY-user-userlist-table');

+ 25 - 4
app/admin/view/worker/workerform.html

@@ -58,7 +58,7 @@
 										{notempty name="worker.tilpic"}
 										<div>
 											<input type="hidden" name="tilpic" value="{$worker.tilpic}">
-											<img src="{$worker.tilpic}">
+											<img src="{$worker.tilpic}" class="idcard">
 										</div>
 										{/notempty}
 									</div>
@@ -138,7 +138,7 @@
 										{notempty name="worker.picone"}
 										<div>
 											<input type="hidden" name="picone" value="{$worker.picone}">
-											<img src="{$worker.picone}">
+											<img src="{$worker.picone}" class="idcard">
 										</div>
 										{/notempty}
 									</div>
@@ -155,7 +155,7 @@
 										{notempty name="worker.pictwo"}
 										<div>
 											<input type="hidden" name="pictwo" value="{$worker.pictwo}">
-											<img src="{$worker.pictwo}">
+											<img src="{$worker.pictwo}" class="idcard">
 										</div>
 										{/notempty}
 									</div>
@@ -172,7 +172,7 @@
 										{notempty name="worker.picthr"}
 										<div>
 											<input type="hidden" name="picthr" value="{$worker.picthr}">
-											<img src="{$worker.picthr}">
+											<img src="{$worker.picthr}" class="idcard">
 										</div>
 										{/notempty}
 									</div>
@@ -291,6 +291,27 @@
 			});
 		});
 
+
+
+		$('.echo-attachment-image-list').on('click', '.idcard', function() {
+			var src = $(this).attr('src');
+			layer.photos({
+				photos: {
+					"title": "", //相册标题
+					"id": 1, //相册id
+					"start": 0, //初始显示的图片序号,默认0
+					"data": [   //相册包含的图片,数组格式
+						{
+							"alt": "身份证",
+							"pid": 1, //图片id
+							"src": src, //原图地址
+							"thumb": src //缩略图地址
+						}
+					]
+				}
+			});
+		});
+
 		$('.echo-attachment-image-list').on('click', '.attachmentdel', function() {
 			$(this).parent().remove();
 		});

+ 6 - 2
app/admin/view/worker/workerlist.html

@@ -23,8 +23,11 @@
 					<div class="layui-input-block">
 						<select name="status">
 							<option value="">全部状态</option>
-							<option value="1">正常</option>
-							<option value="2">禁用</option>
+							<option value="1">待审核</option>
+							<option value="2">未通过</option>
+							<option value="3">被禁用</option>
+							<option value="4">升级审核</option>
+							<option value="5">正常中</option>
 						</select>
 					</div>
 				</div>
@@ -74,6 +77,7 @@
 			cols: [
 				[
 					{ type: 'checkbox', fixed: 'left' },
+					{ field: 'id', width: 100, title: 'ID', sort: true },
 					{ field: 'priority', width: 100, title: '排序ID', edit: 'text', sort: true },
 					{ field: 'title', title: '公司名称', edit: 'text' },
 					{ field: 'wtype_text', title: '公司类型', edit: 'text' },

+ 1 - 1
app/agent/controller/Report.php

@@ -301,7 +301,7 @@ class Report extends BaseController
 		$xlsData = ReportEntryModel::with(['broker','reportFactory'])->where($map)->order('id','DESC')->select()->toArray();
 		$xlsCell = array(
 			array('id','表ID'),
-			array('broker.title','职业顾问'),
+			array('broker.title','经纪人'),
 			array('reportFactory.title','意向工厂'),
 			array('realname','姓名'),
 			array('mobile','手机号'),

+ 4 - 1
app/agent/controller/User.php

@@ -4,6 +4,7 @@ namespace app\agent\controller;
 
 use app\common\model\ComjobsCate;
 use app\common\model\RensheCode;
+use app\common\model\UserTags;
 use app\common\model\UserWill;
 use think\facade\Session;
 use app\agent\BaseController;
@@ -140,6 +141,7 @@ class User extends BaseController
         $groupslist    = UserGroupsModel::order(['isdefault' => 'desc', 'id' => 'asc'])->select();
         $brokerlist    = BrokerModel::where('agentid', '=', $agentid)->order(['id' => 'desc'])->select();
         $willlist      = UserWill::select();
+        $usertags      = UserTags::select();
         $emptimelist   = RensheCode::getList('emp_time');
         $communitylist = RensheCode::getList('community')->toArray();
         array_push($communitylist, ['code' => 0, 'id' => 0, 'name' => "不限"]);
@@ -150,6 +152,7 @@ class User extends BaseController
             'agent'         => $agent,
             'user'          => $user,
             'willlist'      => $willlist,
+            'usertags'      => $usertags,
             'emptimelist'   => $emptimelist,
             'communitylist' => $communitylist,
             'comlist'       => $comlist,
@@ -279,7 +282,7 @@ class User extends BaseController
             ['bankcard.number', '账户号'],
             ['followstatus_text', '跟进状态'],
             ['userGroups.title', '用户组'],
-            ['broker.title', '职业顾问'],
+            ['broker.title', '经纪人'],
             ['createtime', '注册时间'],
         ];
         export_excel("系统用户", $xlsCell, $xlsData);

+ 2 - 2
app/agent/view/broker/brokerform.html

@@ -2,7 +2,7 @@
 	<div class="layui-row layui-col-space15">
 		<div class="layui-col-md12">
 			<div class="layui-card">
-				<div class="layui-card-header">职业顾问</div>
+				<div class="layui-card-header">经纪人</div>
 				<div class="layui-card-body" pad15>
 
 					<div class="layui-form layui-form-pane" lay-filter="LAY-broker-brokerform-edit">
@@ -18,7 +18,7 @@
 							<div class="layui-input-block">
 								<input type="text" name="musermobile" value="{$broker.muser.mobile}" lay-verify="phone" placeholder="请输入关联用户手机号..."
 								 autocomplete="off" class="layui-input">
-								<div class="layui-form-mid layui-word-aux">关联用户的手机号。关联的用户会自动归属到该职业顾问名下,请谨慎修改。个人中心才会出现职业顾问管理入口导航。</div>
+								<div class="layui-form-mid layui-word-aux">关联用户的手机号。关联的用户会自动归属到该经纪人名下,请谨慎修改。个人中心才会出现职业顾问管理入口导航。</div>
 							</div>
 						</div>
 						<div class="layui-form-item">

+ 4 - 4
app/agent/view/broker/brokerlist.html

@@ -126,7 +126,7 @@
 				for (var i = 0; i < checkData.length; i++) {
 					idarr.push(checkData[i].id);
 				}
-				layer.confirm('确定删除此职业顾问吗?', function(index) {
+				layer.confirm('确定删除此经纪人吗?', function(index) {
 					admin.req({
 						url: setter.baseAgentUrl + 'broker/delbroker',
 						data: {
@@ -145,7 +145,7 @@
 			add: function() {
 				var index = layer.open({
 					type: 2,
-					title: '添加职业顾问',
+					title: '添加经纪人',
 					content: 'brokerform.html?id=0',
 					maxmin: true,
 					area: ['750px', '480px']
@@ -157,7 +157,7 @@
 		table.on('tool(LAY-broker-brokerlist-table)', function(obj) {
 			var data = obj.data;
 			if (obj.event === 'del') {
-				layer.confirm('确定删除此职业顾问吗?', function(index) {
+				layer.confirm('确定删除此经纪人吗?', function(index) {
 					admin.req({
 						url: setter.baseAgentUrl + 'broker/delbroker',
 						data: {
@@ -173,7 +173,7 @@
 			} else if (obj.event === 'edit') {
 				var index = layer.open({
 					type: 2,
-					title: '编辑职业顾问',
+					title: '编辑经纪人',
 					content: 'brokerform.html?id=' + data.id,
 					maxmin: true,
 					area: ['750px', '480px']

+ 2 - 2
app/agent/view/comjobs/report.html

@@ -9,10 +9,10 @@
 					</div>
 				</div>
 				<div class="layui-inline">
-					<label class="layui-form-label">职业顾问</label>
+					<label class="layui-form-label">经纪人</label>
 					<div class="layui-input-block">
 						<select name="brokerid" lay-search>
-							<option value="">全部职业顾问(可搜索)</option>
+							<option value="">全部经纪人(可搜索)</option>
 							{volist name="brokerlist" id="vo"}
 							<option value="{$vo.id}">{$vo.title}</option>
 							{/volist}

+ 1 - 1
app/agent/view/home/console.html

@@ -33,7 +33,7 @@
 								<!--</li>-->
 								<li class="layui-col-xs3">
 									<a href="javascript:;" class="layadmin-backlog-body">
-										<h3>职业顾问</h3>
+										<h3>经纪人</h3>
 										<p><cite>{$brolerCount}</cite></p>
 									</a>
 								</li>

+ 17 - 11
app/agent/view/index.html

@@ -78,15 +78,27 @@
 						</a>
 					</li>
 					<li data-name="broker" class="layui-nav-item">
-						<a lay-href="{:url('/comjobs/report')}" lay-tips="报备管理">
+						<a lay-href="{:url('/broker/brokerlist')}" lay-tips="经纪人管理">
+							<i class="layui-icon layui-icon-engine"></i>
+							<cite>经纪人管理</cite>
+						</a>
+					</li>
+					<li data-name="broker" class="layui-nav-item">
+						<a lay-href="{:url('/comjobs/report')}" lay-tips="悬赏报备管理">
+							<i class="layui-icon layui-icon-user"></i>
+							<cite>悬赏报备管理</cite>
+						</a>
+					</li>
+					<li data-name="broker" class="layui-nav-item">
+						<a lay-href="{:url('/comjobs/report')}" lay-tips="派遣订单报备">
 							<i class="layui-icon layui-icon-user"></i>
-							<cite>报备管理</cite>
+							<cite>派遣订单报备</cite>
 						</a>
 					</li>
 					<li data-name="broker" class="layui-nav-item">
-						<a lay-href="{:url('/mobilefollow/followList')}" lay-tips="电话跟进">
+						<a lay-href="{:url('/mobilefollow/followList')}" lay-tips="拓客跟进">
 							<i class="layui-icon layui-icon-user"></i>
-							<cite>电话跟进</cite>
+							<cite>拓客跟进</cite>
 						</a>
 					</li>
 					<!--<li data-name="report" class="layui-nav-item">
@@ -137,12 +149,6 @@
 						<!--</dl>-->
 					<!--</li>-->
 
-					<li data-name="broker" class="layui-nav-item">
-						<a lay-href="{:url('/broker/brokerlist')}" lay-tips="职业顾问">
-							<i class="layui-icon layui-icon-engine"></i>
-							<cite>职业顾问</cite>
-						</a>
-					</li>
 					<li data-name="broker" class="layui-nav-item">
 						<a lay-href="{:url('/coach/coachlist')}" lay-tips="辅导培训">
 							<i class="layui-icon layui-icon-engine"></i>
@@ -150,7 +156,7 @@
 						</a>
 					</li>
 					<li data-name="agent" class="layui-nav-item">
-						<a lay-href="{:url('/agent/agentform')}" lay-tips="代理信息">
+						<a lay-href="{:url('/agent/agentform')}" lay-tips="代理门店信息">
 							<i class="layui-icon layui-icon-set"></i>
 							<cite>代理门店信息</cite>
 						</a>

+ 211 - 0
app/agent/view/index_back.html

@@ -0,0 +1,211 @@
+<div id="LAY_app">
+	<div class="layui-layout layui-layout-admin">
+		<div class="layui-header">
+			<!-- 头部区域 -->
+			<ul class="layui-nav layui-layout-left">
+				<li class="layui-nav-item layadmin-flexible" lay-unselect>
+					<a href="javascript:;" layadmin-event="flexible" title="侧边伸缩">
+						<i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i>
+					</a>
+				</li>
+				<li class="layui-nav-item" lay-unselect>
+					<a href="javascript:;" layadmin-event="refresh" title="刷新">
+						<i class="layui-icon layui-icon-refresh-3"></i>
+					</a>
+				</li>
+			</ul>
+			<ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
+				<!--<li class="layui-nav-item" lay-unselect>
+					<a lay-href="{:url('/message/messagelist')}" layadmin-event="message" lay-text="消息中心">
+						<i class="layui-icon layui-icon-notice"></i>
+						<span class="layui-badge-dot"></span>
+					</a>
+				</li>-->
+				<li class="layui-nav-item layui-hide-xs" lay-unselect>
+					<a href="javascript:;" layadmin-event="theme">
+						<i class="layui-icon layui-icon-theme"></i>
+					</a>
+				</li>
+				<li class="layui-nav-item layui-hide-xs" lay-unselect>
+					<a href="javascript:;" layadmin-event="note">
+						<i class="layui-icon layui-icon-note"></i>
+					</a>
+				</li>
+				<li class="layui-nav-item" lay-unselect>
+					<a href="javascript:;">
+						<cite>{$access_agent['loginname']}【{$access_agent['title']}】</cite>
+					</a>
+					<dl class="layui-nav-child">
+						<dd style="text-align: center;"><a lay-href="{:url('/agent/mypassword')}">修改密码</a></dd>
+						<hr>
+						<dd style="text-align: center;"><a href="{:url('/login/logout')}">退出</a></dd>
+					</dl>
+				</li>
+				<li class="layui-nav-item layui-hide-xs" lay-unselect>
+					<a href="javascript:;" layadmin-event="fullscreen">
+						<i class="layui-icon layui-icon-screen-full"></i>
+					</a>
+				</li>
+				<li class="layui-nav-item layui-hide-xs" lay-unselect>
+					<a href="javascript:;" layadmin-event="about"><i class="layui-icon layui-icon-more-vertical"></i></a>
+				</li>
+				<li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-unselect>
+					<a href="javascript:;" layadmin-event="more"><i class="layui-icon layui-icon-more-vertical"></i></a>
+				</li>
+			</ul>
+		</div>
+
+		<!-- 侧边菜单 -->
+		<div class="layui-side layui-side-menu">
+			<div class="layui-side-scroll">
+				<div class="layui-logo">
+					<span>代理门店管理中心</span>
+				</div>
+
+				<ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
+
+					<li data-name="home" class="layui-nav-item">
+						<a lay-href="{:url('/home/console')}" lay-tips="首页">
+							<i class="layui-icon layui-icon-home"></i>
+							<cite>首页</cite>
+						</a>
+					</li>
+
+					<li data-name="broker" class="layui-nav-item">
+						<a lay-href="{:url('/user/userlist')}" lay-tips="用户管理">
+							<i class="layui-icon layui-icon-user"></i>
+							<cite>用户管理</cite>
+						</a>
+					</li>
+					<li data-name="broker" class="layui-nav-item">
+						<a lay-href="{:url('/comjobs/report')}" lay-tips="报备管理">
+							<i class="layui-icon layui-icon-user"></i>
+							<cite>报备管理</cite>
+						</a>
+					</li>
+					<li data-name="broker" class="layui-nav-item">
+						<a lay-href="{:url('/mobilefollow/followList')}" lay-tips="电话跟进">
+							<i class="layui-icon layui-icon-user"></i>
+							<cite>电话跟进</cite>
+						</a>
+					</li>
+					<!--<li data-name="report" class="layui-nav-item">
+						<a href="javascript:;" lay-tips="报备" lay-direction="2">
+							<i class="layui-icon layui-icon-upload-drag"></i>
+							<cite>报备</cite>
+						</a>
+						<dl class="layui-nav-child">
+							<dd data-name="entrylist">
+								<a lay-href="{:url('/report/entrylist')}">报备名单</a>
+							</dd>
+							<dd data-name="orderlist">
+								<a lay-href="{:url('/report/orderlist')}">订单信息</a>
+							</dd>
+							<dd data-name="factorylist">
+								<a lay-href="{:url('/report/factorylist')}">报备工厂</a>
+							</dd>
+						</dl>
+					</li>-->
+
+					<!--<li data-name="partjob" class="layui-nav-item">-->
+						<!--<a href="javascript:;" lay-tips="兼职">-->
+							<!--<i class="layui-icon layui-icon-log"></i>-->
+							<!--<cite>兼职</cite>-->
+						<!--</a>-->
+						<!--<dl class="layui-nav-child">-->
+							<!--<dd data-name="partjob">-->
+								<!--<a lay-href="{:url('/partjob/partjoblist')}" lay-text="兼职招聘">兼职招聘</a>-->
+							<!--</dd>-->
+							<!--<dd data-name="loglist">-->
+								<!--<a lay-href="{:url('/partjob/loglist')}" lay-text="报名记录">报名记录</a>-->
+							<!--</dd>-->
+						<!--</dl>-->
+					<!--</li>-->
+
+					<!--<li data-name="settle" class="layui-nav-item">-->
+						<!--<a href="javascript:;" lay-tips="结算" lay-direction="2">-->
+							<!--<i class="layui-icon layui-icon-rmb"></i>-->
+							<!--<cite>结算</cite>-->
+						<!--</a>-->
+						<!--<dl class="layui-nav-child">-->
+							<!--<dd data-name="catelist">-->
+								<!--<a lay-href="{:url('/settle/catelist')}">代理批次</a>-->
+							<!--</dd>-->
+							<!--<dd data-name="agentlist">-->
+								<!--<a lay-href="{:url('/settle/agentlist')}">代理结算</a>-->
+							<!--</dd>-->
+						<!--</dl>-->
+					<!--</li>-->
+
+					<li data-name="broker" class="layui-nav-item">
+						<a lay-href="{:url('/broker/brokerlist')}" lay-tips="经纪人">
+							<i class="layui-icon layui-icon-engine"></i>
+							<cite>经纪人</cite>
+						</a>
+					</li>
+					<li data-name="broker" class="layui-nav-item">
+						<a lay-href="{:url('/coach/coachlist')}" lay-tips="辅导培训">
+							<i class="layui-icon layui-icon-engine"></i>
+							<cite>辅导培训</cite>
+						</a>
+					</li>
+					<li data-name="agent" class="layui-nav-item">
+						<a lay-href="{:url('/agent/agentform')}" lay-tips="代理信息">
+							<i class="layui-icon layui-icon-set"></i>
+							<cite>代理门店信息</cite>
+						</a>
+					</li>
+					<li data-name="mypassword" class="layui-nav-item">
+						<a lay-href="{:url('/agent/mypassword')}" lay-tips="修改密码">
+							<i class="layui-icon layui-icon-util"></i>
+							<cite>修改密码</cite>
+						</a>
+					</li>
+
+				</ul>
+			</div>
+		</div>
+
+		<!-- 页面标签 -->
+		<div class="layadmin-pagetabs" id="LAY_app_tabs">
+			<div class="layui-icon layadmin-tabs-control layui-icon-prev" layadmin-event="leftPage"></div>
+			<div class="layui-icon layadmin-tabs-control layui-icon-next" layadmin-event="rightPage"></div>
+			<div class="layui-icon layadmin-tabs-control layui-icon-down">
+				<ul class="layui-nav layadmin-tabs-select" lay-filter="layadmin-pagetabs-nav">
+					<li class="layui-nav-item" lay-unselect>
+						<a href="javascript:;"></a>
+						<dl class="layui-nav-child layui-anim-fadein">
+							<dd layadmin-event="closeThisTabs"><a href="javascript:;">关闭当前标签页</a></dd>
+							<dd layadmin-event="closeOtherTabs"><a href="javascript:;">关闭其它标签页</a></dd>
+							<dd layadmin-event="closeAllTabs"><a href="javascript:;">关闭全部标签页</a></dd>
+						</dl>
+					</li>
+				</ul>
+			</div>
+			<div class="layui-tab" lay-unauto lay-allowClose="true" lay-filter="layadmin-layout-tabs">
+				<ul class="layui-tab-title" id="LAY_app_tabsheader">
+					<li lay-id="{:url('/home/console')}" lay-attr="{:url('/home/console')}" class="layui-this"><i class="layui-icon layui-icon-home"></i></li>
+				</ul>
+			</div>
+		</div>
+
+
+		<!-- 主体内容 -->
+		<div class="layui-body" id="LAY_app_body">
+			<div class="layadmin-tabsbody-item layui-show">
+				<iframe src="{:url('/home/console')}" frameborder="0" class="layadmin-iframe"></iframe>
+			</div>
+		</div>
+
+		<!-- 辅助元素,一般用于移动设备下遮罩 -->
+		<div class="layadmin-body-shade" layadmin-event="shade"></div>
+	</div>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use('index');
+</script>

+ 2 - 2
app/agent/view/report/entryform.html

@@ -8,10 +8,10 @@
 					<div class="layui-form layui-form-pane" lay-filter="LAY-report-entryform-edit">
 						<input type="hidden" name="id" value="{$entry.id}">
 						<div class="layui-form-item">
-							<label class="layui-form-label">职业顾问</label>
+							<label class="layui-form-label">经纪人</label>
 							<div class="layui-input-block">
 								<select name="brokerid" lay-search>
-									<option value="">全部职业顾问(可搜索)</option>
+									<option value="">全部经纪人(可搜索)</option>
 									{volist name="brokerlist" id="vo"}
 									<option value="{$vo['id']}" {$entry.brokerid==$vo.id ? 'selected' : '' }>{$vo['title']}</option>
 									{/volist}

+ 3 - 3
app/agent/view/report/entrylist.html

@@ -9,10 +9,10 @@
 					</div>
 				</div>
 				<div class="layui-inline">
-					<label class="layui-form-label">职业顾问</label>
+					<label class="layui-form-label">经纪人</label>
 					<div class="layui-input-block">
 						<select name="brokerid" lay-search>
-							<option value="">全部职业顾问(可搜索)</option>
+							<option value="">全部经纪人(可搜索)</option>
 							{volist name="brokerlist" id="vo"}
 							<option value="{$vo['id']}">{$vo['title']}</option>
 							{/volist}
@@ -106,7 +106,7 @@
 				[
 					{ type: 'checkbox', fixed: 'left' },
 					{ field: 'id', width: 80, title: '表ID', sort: true },
-					{ field: 'brokertitle', title: '职业顾问', templet: '#brokertitleTpl' },
+					{ field: 'brokertitle', title: '经纪人', templet: '#brokertitleTpl' },
 					{ field: 'factorytitle', width: 200, title: '意向工厂', templet: '#factorytitleTpl' },
 					{ field: 'realname', title: '姓名' },
 					{ field: 'mobile', title: '手机号码' },

+ 14 - 2
app/agent/view/user/userform.html

@@ -19,10 +19,10 @@
 							</div>
 						</div>
 						<div class="layui-form-item">
-							<label class="layui-form-label">职业顾问</label>
+							<label class="layui-form-label">经纪人</label>
 							<div class="layui-input-block">
 								<select name="brokerid" lay-search>
-									<option value="">全部职业顾问(可搜索)</option>
+									<option value="">全部经纪人(可搜索)</option>
 									{volist name="brokerlist" id="vo"}
 									<option value="{$vo['id']}" {$user.brokerid==$vo.id ? 'selected' : '' }>{$vo['title']}</option>
 									{/volist}
@@ -250,6 +250,18 @@
 								<input type="text" name="com_cate_other" value="{$user.com_cate_other}" placeholder="请输入岗位类型" autocomplete="off" class="layui-input">
 							</div>
 						</div>
+						<div class="layui-form-item user_tags_form">
+							<label class="layui-form-label">用户标签</label>
+							<div class="layui-input-block">
+								{volist name="usertags" id="vo"}
+								<input type="checkbox" name="user_tags[]" value="{$vo.name}" title="{$vo.name}"
+									   {if condition="!$user->isEmpty() && !empty($user['user_tags']) && in_array($vo['name'],$user['user_tags'])"}
+									   checked
+									   {/if}
+								/>
+								{/volist}
+							</div>
+						</div>
 						<div class="layui-form-item">
 							<label class="layui-form-label">现居住地</label>
 							<div class="layui-input-block">

+ 3 - 3
app/agent/view/user/userlist.html

@@ -20,10 +20,10 @@
 					</div>
 				</div>
 				<div class="layui-inline">
-					<label class="layui-form-label">职业顾问</label>
+					<label class="layui-form-label">经纪人</label>
 					<div class="layui-input-block">
 						<select name="brokerid" lay-search>
-							<option value="">全部职业顾问(可搜索)</option>
+							<option value="">全部经纪人(可搜索)</option>
 							{volist name="brokerlist" id="vo"}
 							<option value="{$vo.id}">{$vo.title}</option>
 							{/volist}
@@ -134,7 +134,7 @@
 					{ field: 'isvip_text', title: '是否VIP', minWidth: 100, align: 'center' },
 					{ field: 'authstatus_text', title: '实名认证', minWidth: 100, align: 'center' },
 					{ field: 'groupsid', title: '用户组', templet: '#groupsidTpl' },
-					{ field: 'brokerid', title: '职业顾问', templet: '#brokeridTpl' },
+					{ field: 'brokerid', title: '经纪人', templet: '#brokeridTpl' },
 					{ field: 'createtime', title: '注册时间', width: 170, sort: true },
 					{ field: 'followstatus_text', title: '跟进状态', minWidth: 150, align: 'center' },
 					{ title: '操作', minWidth: 220, align: 'center', fixed: 'right', toolbar: '#setTpl' }

+ 96 - 88
app/common/model/Demand.php

@@ -1,4 +1,5 @@
 <?php
+
 namespace app\common\model;
 
 use think\Model;
@@ -9,95 +10,102 @@ class Demand extends Model
     use SoftDelete;
     protected $deleteTime = 'deletetime';
     protected $defaultSoftDelete = 0;
-	// 设置字段信息
+    // 设置字段信息
     protected $schema = [
-        'id'			=> 'int',
-		'workerid'		=> 'int',
-		'title'			=> 'string',
-		'video'			=> 'string',
-		'cateid'		=> 'int',
-		
-		'province'		=> 'string',
-		'city'			=> 'string',
-		'district'		=> 'string',
-		
-		'agegroup'		=> 'string',
-		'tags'			=> 'string',
-		'enddate'		=> 'int',
-		'requirement'	=> 'string',
-		'comdetails'	=> 'string',
-		'picall'		=> 'string',
-
-		'wtype'			=> 'tinyint',
-		'bwagall'		=> 'string',
-		'zwagall'		=> 'string',
-		
-		'ftype'			=> 'tinyint',
-		'fwagall'		=> 'string',
-		'telephone'		=> 'string',
-		'remark'		=> 'string',
-		'status'		=> 'tinyint',
-		'isfree'		=> 'tinyint',
-		'priority'		=> 'int',
-		'updatetime'	=> 'int',
-        'createtime'	=> 'int',
-		'volume'		=> 'int',
-		'telearr'		=> 'string'
+        'id'       => 'int',
+        'workerid' => 'int',
+        'type'     => 'int',
+        'title'    => 'string',
+        'video'    => 'string',
+        'cateid'   => 'int',
+
+        'province' => 'string',
+        'city'     => 'string',
+        'district' => 'string',
+
+        'agegroup'    => 'string',
+        'tags'        => 'string',
+        'enddate'     => 'int',
+        'requirement' => 'string',
+        'comdetails'  => 'string',
+        'picall'      => 'string',
+
+        'wtype'   => 'tinyint',
+        'bwagall' => 'string',
+        'zwagall' => 'string',
+
+        'ftype'      => 'tinyint',
+        'fwagall'    => 'string',
+        'telephone'  => 'string',
+        'remark'     => 'string',
+        'status'     => 'tinyint',
+        'isfree'     => 'tinyint',
+        'priority'   => 'int',
+        'updatetime' => 'int',
+        'createtime' => 'int',
+        'volume'     => 'int',
+        'telearr'    => 'string',
+    ];
+
+    // 设置字段自动转换类型
+    protected $type = [
+        'tags'       => 'json',
+        'telearr'    => 'json',
+        'picall'     => 'json',
+        'enddate'    => 'timestamp:Y-m-d',
+        'updatetime' => 'timestamp:Y-m-d H:i:s',
+        'createtime' => 'timestamp:Y-m-d H:i:s',
     ];
+    // 设置JSON数据返回数组
+    protected $jsonAssoc = true;
+
+    public function gettypeTextAttr($value, $data)
+    {
+        $wtype = [1 => '代招', 2 => '劳务派遣'];
+        return $wtype[$data['wtype']];
+    }
+
+    public function getWtypeTextAttr($value, $data)
+    {
+        $wtype = [1 => '按月', 2 => '按时', 3 => '按件', 4 => '按项目', 5 => '其他'];
+        return $wtype[$data['wtype']];
+    }
+
+    public function getFtypeTextAttr($value, $data)
+    {
+        $ftype = [1 => '一次性', 2 => '小时工', 3 => '管理费', 4 => '其他'];
+        return $ftype[$data['ftype']];
+    }
+
+    public function getStatusTextAttr($value, $data)
+    {
+        $status = [1 => '待修改', 2 => '待审核', 3 => '已上架', 4 => '已停招', 5 => '已下架'];
+        return $status[$data['status']];
+    }
+
+    public function getIsfreeTextAttr($value, $data)
+    {
+        $isfree = [1 => '否', 2 => '是'];
+        return $isfree[$data['isfree']];
+    }
+
+    // 关联DemandCate
+    public function demandCate()
+    {
+        return $this->hasOne(DemandCate::class, "id", "cateid");
+    }
+
+    // 关联Worker
+    public function worker()
+    {
+        return $this->hasOne(Worker::class, "id", "workerid");
+    }
+
+    // 关联DemandLog
+    public function demandLog()
+    {
+        return $this->hasMany(DemandLog::class, "demandid", "id");
+    }
+
 
-	// 设置字段自动转换类型
-	protected $type = [
-		'tags'			=> 'json', 
-		'telearr'		=> 'json',
-		'picall'		=> 'json',
-		'enddate'		=> 'timestamp:Y-m-d',
-		'updatetime'	=> 'timestamp:Y-m-d H:i:s',
-        'createtime'	=> 'timestamp:Y-m-d H:i:s'
-    ]; 
-	// 设置JSON数据返回数组
-	protected $jsonAssoc = true;
-	
-	public function getWtypeTextAttr($value,$data)
-	{
-		$wtype = [1=>'按月',2=>'按时',3=>'按件',4=>'按项目',5=>'其他'];
-		return $wtype[$data['wtype']];
-	}
-	
-	public function getFtypeTextAttr($value,$data)
-	{
-		$ftype = [1=>'一次性',2=>'小时工',3=>'管理费',4=>'其他'];
-		return $ftype[$data['ftype']];
-	}
-	
-	public function getStatusTextAttr($value,$data)
-	{
-		$status = [1=>'待修改',2=>'待审核',3=>'已上架',4=>'已停招',5=>'已下架'];
-		return $status[$data['status']];
-	}
-	
-	public function getIsfreeTextAttr($value,$data)
-	{
-		$isfree = [1=>'否',2=>'是'];
-		return $isfree[$data['isfree']];
-	}
-	
-	// 关联DemandCate
-	public function demandCate()
-	{
-	    return $this->hasOne(DemandCate::class, "id", "cateid");
-	}
-	
-	// 关联Worker
-	public function worker()
-	{
-	    return $this->hasOne(Worker::class, "id", "workerid");
-	}
-	
-	// 关联DemandLog
-	public function demandLog()
-	{
-	    return $this->hasMany(DemandLog::class, "demandid", "id");
-	}
-	
-	
 }

+ 36 - 0
app/common/model/Feedback.php

@@ -0,0 +1,36 @@
+<?php
+
+namespace app\common\model;
+
+use think\Model;
+
+class Feedback extends Model
+{
+    // 设置字段信息
+    protected $schema = [
+        'id'         => 'int',
+        'userid'     => 'int',
+        'name'       => 'string',
+        'mobile'     => 'string',
+        'content'    => 'string',
+        'status'     => 'int',
+        'createtime' => 'int',
+    ];
+
+    // 设置字段自动转换类型
+    protected $type = [
+        'createtime' => 'timestamp:Y-m-d H:i:s',
+    ];
+
+    // 关联FormItem
+    public function User()
+    {
+        return $this->hasMany(User::class, "id", "userid");
+    }
+
+    public function getStatusTextAttr($value, $data)
+    {
+        $status = [1 => '已处理', 2 => '待处理'];
+        return $status[$data['status']];
+    }
+}

+ 63 - 0
app/common/model/Resident.php

@@ -0,0 +1,63 @@
+<?php
+namespace app\common\model;
+
+use think\Model;
+use think\model\concern\SoftDelete;
+
+class Resident extends Model
+{
+    use SoftDelete;
+    protected $deleteTime = 'deletetime';
+    protected $defaultSoftDelete = 0;
+
+	// 设置字段信息
+    protected $schema = [
+        'id'			=> 'int',
+		'userid'		=> 'int',
+		'workerid'		=> 'int',
+		'agentid'		=> 'int',
+		'title'			=> 'string',
+		'mobile'		=> 'string',
+		'weixin'		=> 'string',
+		'qq'			=> 'string',
+		
+		'province'      => 'string',
+		'city'       	=> 'string',
+		'district'     	=> 'string',
+		'details'       => 'string',
+		
+		'status'		=> 'tinyint',
+		'createtime'    => 'int',
+		'deletetime'    => 'int',
+    ];
+	
+	// 设置字段自动转换类型
+	protected $type = [
+		'createtime'	=> 'timestamp:Y-m-d H:i:s'
+    ];
+	
+	public function getStatusTextAttr($value,$data)
+	{
+		$status = [1=>'正常',2=>'禁用'];
+		return $status[$data['status']];
+	}
+	
+	// 关联User
+	public function user()
+	{
+	    return $this->hasOne(User::class, "id", "userid");
+	}
+	
+	// 关联Worker
+	public function worker()
+	{
+	    return $this->hasOne(Worker::class, "id", "workerid");
+	}
+	
+	// 关联Agent
+	public function agent()
+	{
+	    return $this->hasOne(Agent::class, "id", "agentid");
+	}
+
+}

+ 42 - 0
app/common/model/ResidentLog.php

@@ -0,0 +1,42 @@
+<?php
+
+namespace app\common\model;
+
+use think\Model;
+
+class ResidentLog extends Model
+{
+
+    // 设置字段信息
+    protected $schema = [
+        'id'         => 'int',
+        'userid'     => 'int',
+        'residentid' => 'int',
+        'workerid'   => 'int',
+        'content'    => 'string',
+        'createtime' => 'int',
+    ];
+
+    // 设置字段自动转换类型
+    protected $type = [
+        'createtime' => 'timestamp:Y-m-d H:i:s',
+    ];
+
+    // 关联User
+    public function user()
+    {
+        return $this->hasOne(User::class, "id", "userid");
+    }
+
+    // 关联resident
+    public function resident()
+    {
+        return $this->hasOne(Resident::class, "id", "residentid");
+    }
+
+    // 关联worker
+    public function worker()
+    {
+        return $this->hasOne(Worker::class, "id", "workerid");
+    }
+}

+ 2 - 0
app/common/model/User.php

@@ -41,6 +41,7 @@ class User extends Model
         'wxampcode'      => 'string',
         'bankcard'       => 'string',
         'emp_time'       => 'string',
+        'user_tags'      => 'string',
         'com_cate'       => 'string',
         'is_public'      => 'int',
         'volume'         => 'int',
@@ -59,6 +60,7 @@ class User extends Model
         'emp_time'   => 'json',
         'com_cate'   => 'json',
         'work_place' => 'json',
+        'user_tags'  => 'json',
     ];
     protected $jsonAssoc = true;
 

+ 14 - 0
app/common/model/UserTags.php

@@ -0,0 +1,14 @@
+<?php
+namespace app\common\model;
+
+use think\Model;
+
+class UserTags extends Model
+{
+	// 设置字段信息
+    protected $schema = [
+        'id'           => 'int',
+		'name'       => 'string',
+    ];
+	
+}

+ 19 - 0
app/common/validate/Resident.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace app\common\validate;
+
+use think\Validate;
+
+class Resident extends Validate
+{
+    protected $rule = [
+        'mobile'		=>  'require|mobile|unique:resident'
+    ];
+	
+	protected $message  =   [
+        'mobile.require'	=> '手机号不能为空',
+		'mobile.mobile'		=> '手机号格式不正确',
+        'mobile.unique'		=> '手机号不能重复'
+    ];
+
+}

+ 8 - 8
app/dataTable.sql

@@ -172,7 +172,7 @@ CREATE TABLE IF NOT EXISTS `echo_agent` (
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='代理门店';
 
 --
--- 职业顾问-表的结构
+-- 经纪人-表的结构
 --
 CREATE TABLE IF NOT EXISTS `echo_broker` ( 
 	`id` int(11) NOT NULL AUTO_INCREMENT,
@@ -193,7 +193,7 @@ CREATE TABLE IF NOT EXISTS `echo_broker` (
 	`powerreport` tinyint(4) NOT NULL DEFAULT '1' COMMENT '报备权限:1是,2否', 
 	`createtime` int(10) NOT NULL DEFAULT '0' COMMENT '创建时间',
 	PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='职业顾问'; 	
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='经纪人'; 	
 
 
 
@@ -217,7 +217,7 @@ CREATE TABLE IF NOT EXISTS `echo_user_groups` (
 CREATE TABLE IF NOT EXISTS `echo_user` (
 	`id` int(10) NOT NULL AUTO_INCREMENT,
 	`groupsid` int(10) unsigned NOT NULL COMMENT '用户组ID',
-	`brokerid` int(10) unsigned NOT NULL COMMENT '职业顾问ID',
+	`brokerid` int(10) unsigned NOT NULL COMMENT '经纪人ID',
 	`nickname` varchar(255) NOT NULL COMMENT '昵称',
 	`avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '头像',
 	`realname` varchar(255) NOT NULL DEFAULT '' COMMENT '姓名',
@@ -334,7 +334,7 @@ INSERT INTO `echo_user_param` (`id`, `redmoney`, `usernumber`, `shareintegral`,
 
 
 --
--- 职业顾问申请表单-表的结构
+-- 经纪人申请表单-表的结构
 --
 CREATE TABLE IF NOT EXISTS `echo_broker_form` ( 
 	`id` int(11) NOT NULL AUTO_INCREMENT, 
@@ -347,7 +347,7 @@ CREATE TABLE IF NOT EXISTS `echo_broker_form` (
 	`remark` varchar(255) DEFAULT '' COMMENT '备注信息',
 	`createtime` int(10) NOT NULL DEFAULT '0' COMMENT '创建时间',
 	PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='职业顾问申请表单'; 	
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='经纪人申请表单'; 	
 
 --
 -- 代理申请表单-表的结构
@@ -573,7 +573,7 @@ CREATE TABLE IF NOT EXISTS `echo_param` (
 	`mycodetil` varchar(255) NOT NULL DEFAULT '' COMMENT '用户邀请码页分享标题',
 	`mycodepic` varchar(255) NOT NULL DEFAULT '' COMMENT '用户邀请码页分享图片',
 	
-	`brokerformpic` varchar(255) NOT NULL DEFAULT '' COMMENT '职业顾问申请页海报',
+	`brokerformpic` varchar(255) NOT NULL DEFAULT '' COMMENT '经纪人申请页海报',
 	`agentformpic` varchar(255) NOT NULL DEFAULT '' COMMENT '代理门店申请页海报',
 	`workerformpic` varchar(255) NOT NULL DEFAULT '' COMMENT '企业提交信息页海报',
 		
@@ -732,7 +732,7 @@ CREATE TABLE IF NOT EXISTS `echo_comjobs_report` (
 	`comjobsid` int(10) NOT NULL DEFAULT '0' COMMENT '招聘订单ID',
 	`workerid` int(10) NOT NULL DEFAULT '0' COMMENT '发布企业ID',
 	`agentid` int(10) NOT NULL DEFAULT '0' COMMENT '代理门店ID',
-	`brokerid` int(10) NOT NULL DEFAULT '0' COMMENT '职业顾问ID',
+	`brokerid` int(10) NOT NULL DEFAULT '0' COMMENT '经纪人ID',
 	`realname` varchar(255) NOT NULL DEFAULT '' COMMENT '姓名',
 	`mobile` varchar(255) NOT NULL DEFAULT '' COMMENT '手机号',
 	`idcard` varchar(255) NOT NULL COMMENT '身份证号',
@@ -886,7 +886,7 @@ CREATE TABLE IF NOT EXISTS `echo_report_entry` (
 	`id` int(11) NOT NULL AUTO_INCREMENT,
 	`workerid` int(10) NOT NULL DEFAULT '0' COMMENT '负责人ID',
 	`agentid` int(10) NOT NULL DEFAULT '0' COMMENT '门店ID',
-	`brokerid` int(10) NOT NULL DEFAULT '0' COMMENT '职业顾问ID',
+	`brokerid` int(10) NOT NULL DEFAULT '0' COMMENT '经纪人ID',
 	`factoryid` int(10) NOT NULL DEFAULT '0' COMMENT '报备工厂ID',
 	`realname` varchar(255) NOT NULL COMMENT '姓名',
 	`mobile` varchar(255) NOT NULL COMMENT '手机号码',

+ 2 - 2
app/mainapp/controller/Broker.php

@@ -52,7 +52,7 @@ class Broker extends BaseController
 	
 	
 	
-	// 申请注册职业顾问
+	// 申请注册经纪人
 	public function pageForm()
 	{
 		$param = ParamModel::where(1)->find();
@@ -199,7 +199,7 @@ class Broker extends BaseController
 		$brokerid = input('brokerid/d',0);
 		$broker = BrokerModel::with('agent')->findOrEmpty($brokerid);
 		if ($broker->isEmpty()){
-			page_result(1, "职业顾问信息不存在。");
+			page_result(1, "经纪人信息不存在。");
 		}
 		$data = array(
 			'workerid'			=> $broker->workerid,

+ 2 - 2
app/mainapp/controller/Comjobs.php

@@ -50,7 +50,7 @@ class Comjobs extends BaseController
         $userid      = input('userid/d', 0);
         $brokeridarr = BrokerModel::where('userid', '=', $userid)->column('id');
         if (empty($brokeridarr)) {
-            page_result(1, "职业顾问信息不存在。");
+            page_result(1, "经纪人信息不存在。");
         }
         $map[]     = ['brokerid', 'IN', $brokeridarr];
         $searchval = input('searchval/s', "");
@@ -87,7 +87,7 @@ class Comjobs extends BaseController
         $brokerid = input('brokerid/d', 0);
         $broker   = BrokerModel::where('id', '=', $brokerid)->findOrEmpty();
         if ($broker->isEmpty()) {
-            page_result(1, "职业顾问信息不存在。");
+            page_result(1, "经纪人信息不存在。");
         }
         $data = [
             'comjobsid'  => $comjobsid,

+ 2 - 2
app/mainapp/controller/Demand.php

@@ -108,7 +108,7 @@ class Demand extends BaseController
             $map[] = ['district', '=', $district];
         }
         $orderby = ['status' => 'asc', 'updatetime' => 'desc', 'id' => 'desc'];
-        $plist   = DemandModel::with(['worker', 'demandCate'])->where($map)->order($orderby)->page($ppage)->limit($psize)->append(['ftype_text'])->select();
+        $plist   = DemandModel::with(['worker', 'demandCate'])->where($map)->order($orderby)->page($ppage)->limit($psize)->append(['ftype_text','type_text'])->select();
         page_result(0, "", [
             'plist'   => $plist,
             'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
@@ -119,7 +119,7 @@ class Demand extends BaseController
     public function getDemand()
     {
         $demandid = input('demandid/d', 0);
-        $demand   = DemandModel::with(['worker'])->where('status', 'in', '3,4')->where('id', '=', $demandid)->append(['ftype_text'])->findOrEmpty();
+        $demand   = DemandModel::with(['worker'])->where('status', 'in', '3,4')->where('id', '=', $demandid)->append(['ftype_text','type_text'])->findOrEmpty();
         if ($demand->isEmpty()) {
             page_result(1, "订单信息不存在。");
         }

+ 3 - 2
app/mainapp/controller/Login.php

@@ -156,6 +156,7 @@ class Login
             'emp_time'       => [],
             'com_cate'       => [],
             'work_place'     => [],
+            'user_tags'      => [],
         ];
         $resdata  = array_merge($data, $userdata);
         $user     = new UserModel;
@@ -169,7 +170,7 @@ class Login
             $this->authsRegister($user->id, "weixin", $authsarr['weixin'], $password);
         }
 
-        $part = UserPartModel::where('userid',$user->id)->find();
+        $part = UserPartModel::where('userid', $user->id)->find();
         if ($parentid != 0 && empty($part)) {
             $param = UserParamModel::where(1)->findOrEmpty();
             $part  = new UserPartModel;
@@ -211,7 +212,7 @@ class Login
         }
 
         $integralService = new IntegralService();
-        $integralService->add($user->id,IntegralService::REGISTER);
+        $integralService->add($user->id, IntegralService::REGISTER);
 
         return $user;
     }

+ 10 - 1
app/mainapp/controller/My.php

@@ -2,6 +2,7 @@
 
 namespace app\mainapp\controller;
 
+use app\common\model\Feedback;
 use app\common\model\ResumeInvite;
 use app\common\model\UserGetmoneyLog as UserGetmoneyLogModel;
 use app\common\model\UserGetmoneyLog;
@@ -177,7 +178,7 @@ class My extends BaseController
     }
 
 
-    // 我的职业顾问
+    // 我的经纪人
     public function getMyBroker()
     {
         $userid = input('userid/d');
@@ -679,4 +680,12 @@ class My extends BaseController
 
         page_result(0, "提现成功",$user);
     }
+
+    public function feedback()
+    {
+        $param = input('param.');
+        $param['createtime'] = time();
+        Feedback::create($param);
+        page_result(0, "提交成功");
+    }
 }

+ 3 - 2
app/mainapp/controller/Wcomjobs.php

@@ -167,9 +167,9 @@ class Wcomjobs extends BaseController
         event('JobMatch', $comjobslog);
 
         //积分
-        if (in_array($status,[3,6])) {
+        if (in_array($status, [3, 6])) {
             $integralService = new IntegralService();
-            $integralService->add($comjobslog['userid'],IntegralService::ENTRY);
+            $integralService->add($comjobslog['userid'], IntegralService::ENTRY);
         }
 
         page_result(0, "", [
@@ -325,6 +325,7 @@ class Wcomjobs extends BaseController
             'latitude'         => input('tlatitude/s', ""),
             'longitude'        => input('tlongitude/s', ""),
             'community'        => input('community/s', ""),
+            'recruit_num'      => input('recruit_num/d', 1),
         ];
 //        try {
 //            validate(ComjobsValidate::class)->check($data);

+ 0 - 1
app/worker/controller/Broker.php

@@ -2,7 +2,6 @@
 namespace app\worker\controller;
 
 use app\worker\BaseController;
-use app\common\model\Worker as WorkerModel;
 use app\common\model\Agent as AgentModel;
 use app\common\model\Broker as BrokerModel;
 use app\common\model\User as UserModel;

+ 1 - 1
app/worker/controller/Comjobsreport.php

@@ -159,7 +159,7 @@ class Comjobsreport extends BaseController
 			array('id','表ID'),
 			array('comjobs.title','招聘标题'),
 			array('agent.title','代理门店'),
-			array('broker.title','职业顾问'),
+			array('broker.title','经纪人'),
 			array('realname','姓名'),
 			array('mobile','手机号'),
 			array('idcard','身份证号'),

+ 445 - 449
app/worker/controller/Demand.php

@@ -1,4 +1,5 @@
 <?php
+
 namespace app\worker\controller;
 
 use app\worker\BaseController;
@@ -19,602 +20,597 @@ use think\facade\Request;
 
 class Demand extends BaseController
 {
-	
-	
-	// 我的报名记录
-	public function logList()
-	{
+
+
+    // 我的报名记录
+    public function logList()
+    {
         $workerid = $this->access_worker['id'];
 
         $workerid = 89;
 
         $data = Db::name("demand_log")
-                     ->alias('a')
-                     ->field('c.ftitle,b.title,a.id,a.gworkerid,a.demandid')
-                     ->where('a.workerid',$workerid)
-                     ->join('demand b','a.demandid = b.id','LEFT')
-                     ->join('worker c','a.gworkerid = c.id','LEFT')
-                     ->select()
-                     ->toArray();
-
-        $gworker_data = assoc_unique($data,'gworkerid');
-        $demand_data = assoc_unique($data,'demandid');
-
-		return view('demand/loglist',[
-			'gworker_data'		=> $gworker_data,
-			'demand_data'		=> $demand_data
-		]);
-	} 
-	
-	public function delLog()
-	{
-		$idarr = input('idarr/a');
+            ->alias('a')
+            ->field('c.ftitle,b.title,a.id,a.gworkerid,a.demandid')
+            ->where('a.workerid', $workerid)
+            ->join('demand b', 'a.demandid = b.id', 'LEFT')
+            ->join('worker c', 'a.gworkerid = c.id', 'LEFT')
+            ->select()
+            ->toArray();
+
+        $gworker_data = assoc_unique($data, 'gworkerid');
+        $demand_data  = assoc_unique($data, 'demandid');
+
+        return view('demand/loglist', [
+            'gworker_data' => $gworker_data,
+            'demand_data'  => $demand_data,
+        ]);
+    }
+
+    public function delLog()
+    {
+        $idarr = input('idarr/a');
 
         $workerid = $this->access_worker['id'];
         $workerid = 89;
-		$res = Db::name('demand_log')
-                ->where('workerid',$workerid)
-                ->whereIn('id',$idarr)
-                ->update(['del_status'=>(int)2]);
-
-		if ($res){
-			exit(json_encode(array(
-				'code' 	=> 0,
-				'msg'	=> ""
-			)));
-		}
-		exit(json_encode(array(
-			'code' 	=> 1,
-			'msg'	=> "删除失败,请稍后重试"
-		)));
-	}
-	
-	public function fieldLog()
-	{
-		$id = input('id/d',0); 
-		$log = DemandLogModel::findOrEmpty($id);
-		if ($log->isEmpty()){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "信息不存在"
-			)));
-		}else{
-			$log->save([
-				input('field/s')  => input('value')
-			]);
-		}
-		exit(json_encode(array(
-			'code' 	=> 0
-		)));
-	}
-	
-	public function listLog()
-	{
-		$limit = input('limit/d',20);
-		$page = input('page/d',1);
-		$map = array();
+        $res      = Db::name('demand_log')
+            ->where('workerid', $workerid)
+            ->whereIn('id', $idarr)
+            ->update(['del_status' => (int)2]);
+
+        if ($res) {
+            exit(json_encode([
+                'code' => 0,
+                'msg'  => "",
+            ]));
+        }
+        exit(json_encode([
+            'code' => 1,
+            'msg'  => "删除失败,请稍后重试",
+        ]));
+    }
+
+    public function fieldLog()
+    {
+        $id  = input('id/d', 0);
+        $log = DemandLogModel::findOrEmpty($id);
+        if ($log->isEmpty()) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "信息不存在",
+            ]));
+        } else {
+            $log->save([
+                input('field/s') => input('value'),
+            ]);
+        }
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+    public function listLog()
+    {
+        $limit     = input('limit/d', 20);
+        $page      = input('page/d', 1);
+        $map       = [];
         $gworkerid = input('gworkerid/d');
-        $demandid = input('demandid/d');
+        $demandid  = input('demandid/d');
 
         $workerid = $this->access_worker['id'];
         $workerid = 89;
-        $map[] = ['workerid', '=', $workerid];
-        $map[] = ['del_status', '=', 1];
-		if (!empty($gworkerid)){
-			$map[] = ['gworkerid', '=', $gworkerid];
-		}
-		if (!empty($demandid)){
-			$map[] = ['demandid', '=', $demandid];
-		}
-		$list = DemandLogModel::with(['gworker','worker','demand'])->where($map)->order('id','DESC')->limit($limit)->page($page)->select();
-		$count = DemandLogModel::where($map)->count();
-		if ($count==0){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "未查询到数据"
-			)));
-		}
-		exit(json_encode(array(
-			'code' 	=> 0,
-			'msg'	=> "",
-			'count' => $count,
-			'data'  => $list
-		)));
-	}
-	
-	public function exportLog()
-	{
-		$map = array();
-		$workerdemandarr = explode(",", input('workerdemand/s'));
-		$workerid = isset($workerdemandarr[0]) ? $workerdemandarr[0] : 0;
-		$demandid = isset($workerdemandarr[1]) ? $workerdemandarr[1] : 0;
-		if (!empty($workerid)){
-			$map[] = ['workerid', '=', $workerid];
-		}
-		if (!empty($demandid)){
-			$map[] = ['demandid', '=', $demandid];
-		}
-		$xlsData = DemandLogModel::with(['gworker','worker','demand'])->where($map)->order('id','DESC')->select()->toArray();
-		$xlsCell = array(
-			array('id','表ID'),
-			array('gworker.title','接单公司名称'),
-			array('gworker.realname','接单公司联系人姓名'),
-			array('gworker.mobile','接单公司联系人手机号'),
-			array('worker.title','发单公司'),
-			array('demand.title','订单标题'),
-			array('createtime','接单时间'),
-		);
-		export_excel("接单报名记录",$xlsCell,$xlsData);
-	}
-	
-	
-	// 企业招聘
-	public function demandList()
-	{
-        if (Request::isAjax()){
-            $limit = input('limit/d',20);
-            $page = input('page/d',1);
-            $map = array();
-            $workerid = $this->access_worker['id'];
+        $map[]    = ['workerid', '=', $workerid];
+        $map[]    = ['del_status', '=', 1];
+        if (!empty($gworkerid)) {
+            $map[] = ['gworkerid', '=', $gworkerid];
+        }
+        if (!empty($demandid)) {
+            $map[] = ['demandid', '=', $demandid];
+        }
+        $list  = DemandLogModel::with(['gworker', 'worker', 'demand'])->where($map)->order('id', 'DESC')->limit($limit)->page($page)->select();
+        $count = DemandLogModel::where($map)->count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
+
+    public function exportLog()
+    {
+        $map             = [];
+        $workerdemandarr = explode(",", input('workerdemand/s'));
+        $workerid        = isset($workerdemandarr[0]) ? $workerdemandarr[0] : 0;
+        $demandid        = isset($workerdemandarr[1]) ? $workerdemandarr[1] : 0;
+        if (!empty($workerid)) {
             $map[] = ['workerid', '=', $workerid];
+        }
+        if (!empty($demandid)) {
+            $map[] = ['demandid', '=', $demandid];
+        }
+        $xlsData = DemandLogModel::with(['gworker', 'worker', 'demand'])->where($map)->order('id', 'DESC')->select()->toArray();
+        $xlsCell = [
+            ['id', '表ID'],
+            ['gworker.title', '接单公司名称'],
+            ['gworker.realname', '接单公司联系人姓名'],
+            ['gworker.mobile', '接单公司联系人手机号'],
+            ['worker.title', '发单公司'],
+            ['demand.title', '订单标题'],
+            ['createtime', '接单时间'],
+        ];
+        export_excel("接单报名记录", $xlsCell, $xlsData);
+    }
+
+
+    // 企业招聘
+    public function demandList()
+    {
+        if (Request::isAjax()) {
+            $limit    = input('limit/d', 20);
+            $page     = input('page/d', 1);
+            $map      = [];
+            $workerid = $this->access_worker['id'];
+            $map[]    = ['workerid', '=', $workerid];
 
             $keywords = input('keywords/s', "");
-            if (!empty($keywords)){
-                $map[] =['title', 'like', '%'.$keywords.'%'];
+            if (!empty($keywords)) {
+                $map[] = ['title', 'like', '%' . $keywords . '%'];
             }
 
             $cateid = input('cateid/d', 0);
-            if (!empty($cateid)){
+            if (!empty($cateid)) {
                 $map[] = ['cateid', '=', $cateid];
             }
             $wtype = input('wtype/d');
-            if (!empty($wtype)){
+            if (!empty($wtype)) {
                 $map[] = ['wtype', '=', $wtype];
             }
             $ftype = input('ftype/d');
-            if (!empty($ftype)){
+            if (!empty($ftype)) {
                 $map[] = ['ftype', '=', $ftype];
             }
             $status = input('status/d');
-            if (!empty($status)){
+            if (!empty($status)) {
                 $map[] = ['status', '=', $status];
-            }else{
+            } else {
                 $map[] = ['status', '<', 6];
             }
-            $isfree = input('isfree/d',0);
-            if (!empty($isfree)){
+            $isfree = input('isfree/d', 0);
+            if (!empty($isfree)) {
                 $map[] = ['isfree', '=', $isfree];
             }
-            $list = DemandModel::with(['worker','demandCate'])
+            $list  = DemandModel::with(['worker', 'demandCate'])
                 ->withCount(['demandLog'])
                 ->where($map)
-                ->order(['priority'=>'desc','id'=>'desc',])
+                ->order(['priority' => 'desc', 'id' => 'desc',])
                 ->limit($limit)
                 ->page($page)
-                ->append(['wtype_text','ftype_text','status_text','isfree_text'])
+                ->append(['wtype_text', 'ftype_text', 'status_text', 'isfree_text'])
                 ->select();
             $count = DemandModel::where($map)->count();
-            if ($count==0){
-                exit(json_encode(array(
-                    'code' 	=> 1,
-                    'msg'	=> "未查询到数据"
-                )));
+            if ($count == 0) {
+                exit(json_encode([
+                    'code' => 1,
+                    'msg'  => "未查询到数据",
+                ]));
             }
-            exit(json_encode(array(
-                'code' 	=> 0,
-                'msg'	=> "",
+            exit(json_encode([
+                'code'  => 0,
+                'msg'   => "",
                 'count' => $count,
-                'data'  => $list
-            )));
+                'data'  => $list,
+            ]));
 
-        }else{
-            $catelist = DemandCateModel::order(['priority'=>'desc','id'=>'desc'])->select();
-            $param = ParamModel::where(1)->findOrEmpty();
+        } else {
+            $catelist      = DemandCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
+            $param         = ParamModel::where(1)->findOrEmpty();
             $access_worker = Session::get('access_worker');
 
             $is_released = 1;
-            if($access_worker['status'] == 1)
-            {
+            if ($access_worker['status'] == 1) {
                 $is_released = is_released($access_worker['id']);
             }
-            return view('demand/demandlist',[
-                'param' => $param,
-                'catelist' => $catelist,
-                'wtype' => $access_worker['wtype'],
-                'is_released' => $is_released['code']
+            return view('demand/demandlist', [
+                'param'       => $param,
+                'catelist'    => $catelist,
+                'wtype'       => $access_worker['wtype'],
+                'is_released' => $is_released['code'],
             ]);
         }
 
-	}
-	
-	public function demandForm()
-	{
+    }
+
+    public function demandForm()
+    {
         $worker_data = Session::get('access_worker');
 
-		$catelist = DemandCateModel::order(['priority'=>'desc','id'=>'desc'])->select();
-		return view('demand/demandform',[
-			'catelist'		=> $catelist,
-			'title'		=> $worker_data['title']
-		]);
-	}
+        $catelist = DemandCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
+        return view('demand/demandform', [
+            'catelist' => $catelist,
+            'title'    => $worker_data['title'],
+        ]);
+    }
 
 
     public function demandFormWyd()
     {
         $worker_data = Session::get('access_worker');
-        $catelist = DemandCateModel::order(['priority'=>'desc','id'=>'desc'])->select();
-        return view('demand/demandformwyd',[
-            'catelist'		=> $catelist,
-            'title'		=> $worker_data['title']
+        $catelist    = DemandCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
+        return view('demand/demandformwyd', [
+            'catelist' => $catelist,
+            'title'    => $worker_data['title'],
         ]);
     }
 
 
-	//修改订单状态
-	public function editDemandStatus()
+    //修改订单状态
+    public function editDemandStatus()
     {
-        $id = input('id/d', 0);
+        $id       = input('id/d', 0);
         $workerid = $this->access_worker['id'];
-        if (Request::isAjax()){
+        if (Request::isAjax()) {
 
             $status = input('status/d', 0);
-            $res = Db::name("demand")
-                ->where('workerid',$workerid)
-                ->where('id',$id)
-                ->update(['status'=>$status]);
-
-            if($res){
-                exit(json_encode(array(
-                    'code' 	=> 0
-                )));
+            $res    = Db::name("demand")
+                ->where('workerid', $workerid)
+                ->where('id', $id)
+                ->update(['status' => $status]);
+
+            if ($res) {
+                exit(json_encode([
+                    'code' => 0,
+                ]));
             }
 
-        }else{
+        } else {
             $data = Db::name('demand')
                 ->field('id,workerid,title,status')
-                ->where('workerid',$workerid)
-                ->where('id',$id)
+                ->where('workerid', $workerid)
+                ->where('id', $id)
                 ->find();
 
-            if($data['status'] == 1){
+            if ($data['status'] == 1) {
                 $data['status_text'] = '待修改';
-            }elseif($data['status'] == 2){
+            } elseif ($data['status'] == 2) {
                 $data['status_text'] = '待审核';
-            }elseif($data['status'] == 3){
+            } elseif ($data['status'] == 3) {
                 $data['status_text'] = '已上架';
-            }elseif($data['status'] == 4){
+            } elseif ($data['status'] == 4) {
                 $data['status_text'] = '已停招';
-            }elseif($data['status'] == 5){
+            } elseif ($data['status'] == 5) {
                 $data['status_text'] = '已下架';
-            }elseif($data['status'] == 6){
+            } elseif ($data['status'] == 6) {
                 $data['status_text'] = '已删除';
             }
 
-            return view('demand/editdemandstatus',[
-                'data' => $data
+            return view('demand/editdemandstatus', [
+                'data' => $data,
             ]);
         }
 
     }
-	
-	public function editDemand()
-	{
-		$id = input('id/d', 0);
+
+    public function editDemand()
+    {
+        $id       = input('id/d', 0);
         $workerid = $this->access_worker['id'];
-        $user = UserModel::findOrEmpty($this->access_worker['userid']);
-        $param = ParamModel::where(1)->findOrEmpty();
-        if ($user->isEmpty()){
-            exit(json_encode(array(
-                'code' 	=> 1,
-                'msg'	=> "用户信息不存在"
-            )));
+        $user     = UserModel::findOrEmpty($this->access_worker['userid']);
+        $param    = ParamModel::where(1)->findOrEmpty();
+        if ($user->isEmpty()) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "用户信息不存在",
+            ]));
+        }
+
+        $wtype   = input('wtype/d', 1);
+        $type    = input('type/d', 1);
+        $zwagall = $wtype == 1 ? input('zwagall/s', "") : '';
+        $data    = [
+            'workerid'    => $workerid,
+            'title'       => input('title/s', ""),
+            'cateid'      => input('cateid/d', 0),
+            'province'    => input('province/s', ""),
+            'city'        => input('city/s', ""),
+            'district'    => input('district/s', ""),
+            'agegroup'    => input('agegroup/s', ""),
+            'tags'        => input('tags/a', []),
+            'enddate'     => input('enddate/s', ""),
+            'requirement' => input('requirement/s', ""),
+            'comdetails'  => input('comdetails/s', ""),
+            'picall'      => input('picall/a', []),
+            'wtype'       => $wtype,
+            'type'        => $type,
+            'bwagall'     => input('bwagall/s', ""),
+            'zwagall'     => $zwagall,
+            'ftype'       => input('ftype/d', 1),
+            'fwagall'     => input('fwagall/s', ""),
+            'telephone'   => input('telephone/s', ""),
+            'remark'      => input('remark/s', ""),
+            'isfree'      => 1,
+        ];
+        try {
+            validate(DemandValidate::class)->check($data);
+        } catch (ValidateException $e) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => $e->getError(),
+            ]));
         }
+        if (empty($id)) {
 
-		$wtype = input('wtype/d', 1);
-		$zwagall = $wtype==1 ? input('zwagall/s', "") : '';
-		$data = [
-			'workerid'			=> $workerid,
-			'title'				=> input('title/s', ""),
-			'cateid'			=> input('cateid/d', 0),
-			'province'			=> input('province/s', ""),
-			'city'				=> input('city/s', ""),
-			'district'			=> input('district/s', ""),
-			'agegroup'			=> input('agegroup/s', ""),
-			'tags'				=> input('tags/a', array()),
-			'enddate'			=> input('enddate/s', ""),
-			'requirement'		=> input('requirement/s', ""),
-			'comdetails'		=> input('comdetails/s', ""),
-			'picall'			=> input('picall/a', array()),
-			'wtype'				=> $wtype,
-			'bwagall'			=> input('bwagall/s', ""),
-			'zwagall'			=> $zwagall,
-			'ftype'				=> input('ftype/d', 1),
-			'fwagall'			=> input('fwagall/s', ""),
-			'telephone'			=> input('telephone/s', ""),
-			'remark'			=> input('remark/s', ""),
-			'isfree'			=> 1
-		];
-		try {
-		    validate(DemandValidate::class)->check($data);
-		} catch (ValidateException $e) {
-		    exit(json_encode(array(
-		        'code' 	=> 1,
-		        'msg'	=> $e->getError()
-		    )));
-		}
-		if (empty($id)){
-
-            if($this->access_worker['status'] == 1)
-            {
+            if ($this->access_worker['status'] == 1) {
                 $is_released = is_released($workerid);
 
-                if($is_released['code'] == 1001)
-                {
+                if ($is_released['code'] == 1001) {
                     return $is_released;
 
                 }
 
-            }else{
+            } else {
 
-                if ($user->integral < $param->adddemand){
-                    page_result1(1, "每次发布订单信息需要扣除".$param->adddemand."积分,你当前积分不足。");
+                if ($user->integral < $param->adddemand) {
+                    page_result1(1, "每次发布订单信息需要扣除" . $param->adddemand . "积分,你当前积分不足。");
                 }
             }
 
 
-            $data['video'] = input('new_video/s', "");
+            $data['video']      = input('new_video/s', "");
             $data['updatetime'] = time();
             $data['createtime'] = time();
-            $data['status'] = (int)2;
-            $data['volume'] = 0;
-			$data['telearr'] = array(); 
-			$demand = DemandModel::create($data);
-            $intdata = array(
-                'userid'		=> $user->id,
-                'title'			=> "发布订单信息扣除",
-                'intvalue'		=> 0 - $param->adddemand,
-                'intmoney'		=> 0.00,
-                'onlycontent'	=> "",
-                'remark'		=> input('title/s', ""),
-                'itype'			=> 4,
-                'createtime'	=> date("Y-m-d H:i:s"),
-                'yeartime'		=> date("Y"),
-                'monthtime'		=> date("Ym")
-            );
+            $data['status']     = (int)2;
+            $data['volume']     = 0;
+            $data['telearr']    = [];
+            $demand             = DemandModel::create($data);
+            $intdata            = [
+                'userid'      => $user->id,
+                'title'       => "发布订单信息扣除",
+                'intvalue'    => 0 - $param->adddemand,
+                'intmoney'    => 0.00,
+                'onlycontent' => "",
+                'remark'      => input('title/s', ""),
+                'itype'       => 4,
+                'createtime'  => date("Y-m-d H:i:s"),
+                'yeartime'    => date("Y"),
+                'monthtime'   => date("Ym"),
+            ];
             UserIntegralModel::create($intdata);
             $integral = intval($user->integral) - intval($param->adddemand);
             $user->save([
-                'integral'	=> $integral
+                'integral' => $integral,
             ]);
-		}else{
-            $old_video = input('old_video/s','');
-            $new_video = input('new_video/s','');
-            if(!empty($new_video)){
-                    $data['video'] = $new_video;
-            }else{
-                if(!empty($old_video))
-                {
+        } else {
+            $old_video = input('old_video/s', '');
+            $new_video = input('new_video/s', '');
+            if (!empty($new_video)) {
+                $data['video'] = $new_video;
+            } else {
+                if (!empty($old_video)) {
                     $data['video'] = $old_video;
                 }
             }
 
             $data['createtime'] = time();
-            $data['status'] = input('status/d', 0);
-			$demand = DemandModel::find($id);
-			DemandLogModel::update([ 'workerid' => input('workerid/d', 0) ],['demandid'=>$demand->id]); 
-			$demand->save($data);
-		}
-		exit(json_encode(array(
-			'code' 	=> 0
-		)));
-	}
+            $data['status']     = input('status/d', 0);
+            $demand             = DemandModel::find($id);
+            DemandLogModel::update(['workerid' => input('workerid/d', 0)], ['demandid' => $demand->id]);
+            $demand->save($data);
+        }
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
 
     public function editdemandformWyd()
     {
-        $id = input('id/d', 0);
+        $id       = input('id/d', 0);
         $workerid = $this->access_worker['id'];
-        $user = UserModel::findOrEmpty($this->access_worker['userid']);
-        $param = ParamModel::where(1)->findOrEmpty();
-        if ($user->isEmpty()){
-            exit(json_encode(array(
-                'code' 	=> 1,
-                'msg'	=> "用户信息不存在"
-            )));
+        $user     = UserModel::findOrEmpty($this->access_worker['userid']);
+        $param    = ParamModel::where(1)->findOrEmpty();
+        if ($user->isEmpty()) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "用户信息不存在",
+            ]));
         }
 
-        $wtype = input('wtype/d', 1);
-        $zwagall = $wtype==1 ? input('zwagall/s', "") : '';
-        $data = [
-            'workerid'			=> $workerid,
-            'title'				=> input('title/s', ""),
-            'cateid'			=> input('cateid/d', 0),
-            'province'			=> input('province/s', ""),
-            'city'				=> input('city/s', ""),
-            'district'			=> input('district/s', ""),
-            'agegroup'			=> input('agegroup/s', ""),
-            'tags'				=> input('tags/a', array()),
-            'enddate'			=> input('enddate/s', ""),
-            'requirement'		=> input('requirement/s', ""),
-            'comdetails'		=> input('comdetails/s', ""),
-            'wtype'				=> $wtype,
-            'bwagall'			=> input('bwagall/s', ""),
-            'zwagall'			=> $zwagall,
-            'ftype'				=> input('ftype/d', 1),
-            'fwagall'			=> input('fwagall/s', ""),
-            'telephone'			=> input('telephone/s', ""),
-            'remark'			=> input('remark/s', ""),
-            'isfree'			=> 2
+        $wtype   = input('wtype/d', 1);
+        $zwagall = $wtype == 1 ? input('zwagall/s', "") : '';
+        $data    = [
+            'workerid'    => $workerid,
+            'title'       => input('title/s', ""),
+            'cateid'      => input('cateid/d', 0),
+            'province'    => input('province/s', ""),
+            'city'        => input('city/s', ""),
+            'district'    => input('district/s', ""),
+            'agegroup'    => input('agegroup/s', ""),
+            'tags'        => input('tags/a', []),
+            'enddate'     => input('enddate/s', ""),
+            'requirement' => input('requirement/s', ""),
+            'comdetails'  => input('comdetails/s', ""),
+            'wtype'       => $wtype,
+            'bwagall'     => input('bwagall/s', ""),
+            'zwagall'     => $zwagall,
+            'ftype'       => input('ftype/d', 1),
+            'fwagall'     => input('fwagall/s', ""),
+            'telephone'   => input('telephone/s', ""),
+            'remark'      => input('remark/s', ""),
+            'isfree'      => 2,
         ];
         try {
             validate(DemandValidate::class)->check($data);
         } catch (ValidateException $e) {
-            exit(json_encode(array(
-                'code' 	=> 1,
-                'msg'	=> $e->getError()
-            )));
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => $e->getError(),
+            ]));
         }
-        if (empty($id)){
+        if (empty($id)) {
 
-            if($this->access_worker['status'] == 1)
-            {
+            if ($this->access_worker['status'] == 1) {
                 $is_released = is_released($workerid);
 
-                if($is_released['code'] == 1001)
-                {
+                if ($is_released['code'] == 1001) {
                     return $is_released;
 
                 }
 
-            }else{
+            } else {
 
-                if ($user->integral < $param->adddemandwyd){
-                    page_result1(1, "每次发布悬赏单需要扣除".$param->adddemandwyd."积分,你当前积分不足。");
+                if ($user->integral < $param->adddemandwyd) {
+                    page_result1(1, "每次发布悬赏单需要扣除" . $param->adddemandwyd . "积分,你当前积分不足。");
                 }
             }
 
 
-            $data['video'] = input('new_video/s', "");
+            $data['video']      = input('new_video/s', "");
             $data['updatetime'] = time();
             $data['createtime'] = time();
-            $data['status'] = (int)2;
-            $data['volume'] = 0;
-
-            $data['telearr'] = array();
-            $demand = DemandModel::create($data);
-
-            $intdata = array(
-                'userid'		=> $user->id,
-                'title'			=> "发布悬赏单扣除",
-                'intvalue'		=> 0 - $param->adddemandwyd,
-                'intmoney'		=> 0.00,
-                'onlycontent'	=> "",
-                'remark'		=> input('title/s', ""),
-                'itype'			=> 4,
-                'createtime'	=> date("Y-m-d H:i:s"),
-                'yeartime'		=> date("Y"),
-                'monthtime'		=> date("Ym")
-            );
+            $data['status']     = (int)2;
+            $data['volume']     = 0;
+
+            $data['telearr'] = [];
+            $demand          = DemandModel::create($data);
+
+            $intdata = [
+                'userid'      => $user->id,
+                'title'       => "发布悬赏单扣除",
+                'intvalue'    => 0 - $param->adddemandwyd,
+                'intmoney'    => 0.00,
+                'onlycontent' => "",
+                'remark'      => input('title/s', ""),
+                'itype'       => 4,
+                'createtime'  => date("Y-m-d H:i:s"),
+                'yeartime'    => date("Y"),
+                'monthtime'   => date("Ym"),
+            ];
             UserIntegralModel::create($intdata);
             $integral = intval($user->integral) - intval($param->adddemandwyd);
             $user->save([
-                'integral'	=> $integral
+                'integral' => $integral,
             ]);
-        }else{
+        } else {
             $data['updatetime'] = time();
-            $data['status'] = input('status/d', 0);
-            $old_video = input('old_video/s','');
-            $new_video = input('new_video/s','');
-            if(!empty($new_video)){
+            $data['status']     = input('status/d', 0);
+            $old_video          = input('old_video/s', '');
+            $new_video          = input('new_video/s', '');
+            if (!empty($new_video)) {
                 $data['video'] = $new_video;
-            }else{
-                if(!empty($old_video))
-                {
+            } else {
+                if (!empty($old_video)) {
                     $data['video'] = $old_video;
                 }
             }
             $demand = DemandModel::find($id);
-            DemandLogModel::update([ 'workerid' => input('workerid/d', 0) ],['demandid'=>$demand->id]);
+            DemandLogModel::update(['workerid' => input('workerid/d', 0)], ['demandid' => $demand->id]);
             $demand->save($data);
         }
-        exit(json_encode(array(
-            'code' 	=> 0
-        )));
+        exit(json_encode([
+            'code' => 0,
+        ]));
     }
-	
-	public function fieldDemand()
-	{
-		$id = input('id/d',0); 
-		$demand = DemandModel::findOrEmpty($id);
-		if ($demand->isEmpty()){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "信息不存在"
-			)));
-		}else{
-			$demand->save([
-                'telephone'  => input('value'),
-                    ]);
-		}
-		exit(json_encode(array(
-			'code' 	=> 0
-		)));
-	}
-	
-	public function delDemand()
-	{
+
+    public function fieldDemand()
+    {
+        $id     = input('id/d', 0);
+        $demand = DemandModel::findOrEmpty($id);
+        if ($demand->isEmpty()) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "信息不存在",
+            ]));
+        } else {
+            $demand->save([
+                'telephone' => input('value'),
+            ]);
+        }
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+    public function delDemand()
+    {
         $workerid = $this->access_worker['id'];
-		$idarr = input('idarr/a');
+        $idarr    = input('idarr/a');
 
         $res = Db::name('demand')
-                ->where(['workerid'=>$workerid])
-                ->whereIn('id',$idarr)
-                ->update(['status'=>6]);
-		if ($res){
-			exit(json_encode(array(
-				'code' 	=> 0,
-				'msg'	=> ""
-			)));
-		}
-		exit(json_encode(array(
-			'code' 	=> 1,
-			'msg'	=> "删除失败,请稍后重试"
-		)));
-	}
-	
-	public function listDemand()
-	{
-		$limit = input('limit/d',20);
-		$page = input('page/d',1);
-		$map = array();
-		$keywords = input('keywords/s', "");
-		if (!empty($keywords)){
-			$map[] =['title', 'like', '%'.$keywords.'%'];
-		}
-		$workerid = input('workerid/d', 0);
-		if (!empty($workerid)){
-			$map[] = ['workerid', '=', $workerid];
-		}
-		$cateid = input('cateid/d', 0);
-		if (!empty($cateid)){
-			$map[] = ['cateid', '=', $cateid];
-		}
-		$wtype = input('wtype/d');
-		if (!empty($wtype)){
-			$map[] = ['wtype', '=', $wtype];
-		}
-		$ftype = input('ftype/d');
-		if (!empty($ftype)){
-			$map[] = ['ftype', '=', $ftype];
-		}
-		$status = input('status/d');
-		if (!empty($status)){
-			$map[] = ['status', '=', $status];
-		}
-		$isfree = input('isfree/d',0);
-		if (!empty($isfree)){
-			$map[] = ['isfree', '=', $isfree];
-		}
-		$list = DemandModel::with(['worker','demandCate'])
-                ->withCount(['demandLog'])
-                ->where($map)
-                ->order(['priority'=>'desc','id'=>'desc',])
-                ->limit($limit)
-                ->page($page)
-                ->append(['wtype_text','ftype_text','status_text','isfree_text'])
-                ->select();
-		$count = DemandModel::where($map)->count();
-		if ($count==0){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "未查询到数据"
-			)));
-		}
-		exit(json_encode(array(
-			'code' 	=> 0,
-			'msg'	=> "",
-			'count' => $count,
-			'data'  => $list
-		)));
-	}
+            ->where(['workerid' => $workerid])
+            ->whereIn('id', $idarr)
+            ->update(['status' => 6]);
+        if ($res) {
+            exit(json_encode([
+                'code' => 0,
+                'msg'  => "",
+            ]));
+        }
+        exit(json_encode([
+            'code' => 1,
+            'msg'  => "删除失败,请稍后重试",
+        ]));
+    }
+
+    public function listDemand()
+    {
+        $limit    = input('limit/d', 20);
+        $page     = input('page/d', 1);
+        $map      = [];
+        $keywords = input('keywords/s', "");
+        if (!empty($keywords)) {
+            $map[] = ['title', 'like', '%' . $keywords . '%'];
+        }
+        $workerid = input('workerid/d', 0);
+        if (!empty($workerid)) {
+            $map[] = ['workerid', '=', $workerid];
+        }
+        $cateid = input('cateid/d', 0);
+        if (!empty($cateid)) {
+            $map[] = ['cateid', '=', $cateid];
+        }
+        $wtype = input('wtype/d');
+        if (!empty($wtype)) {
+            $map[] = ['wtype', '=', $wtype];
+        }
+        $ftype = input('ftype/d');
+        if (!empty($ftype)) {
+            $map[] = ['ftype', '=', $ftype];
+        }
+        $status = input('status/d');
+        if (!empty($status)) {
+            $map[] = ['status', '=', $status];
+        }
+        $isfree = input('isfree/d', 0);
+        if (!empty($isfree)) {
+            $map[] = ['isfree', '=', $isfree];
+        }
+        $list  = DemandModel::with(['worker', 'demandCate'])
+            ->withCount(['demandLog'])
+            ->where($map)
+            ->order(['priority' => 'desc', 'id' => 'desc',])
+            ->limit($limit)
+            ->page($page)
+            ->append(['wtype_text', 'ftype_text', 'status_text', 'isfree_text'])
+            ->select();
+        $count = DemandModel::where($map)->count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
 
 }

+ 1 - 1
app/worker/controller/Report.php

@@ -232,7 +232,7 @@ class Report extends BaseController
 		$xlsCell = array(
 			array('id','表ID'),
 			array('agent.title','代理门店'),
-			array('broker.title','职业顾问'),
+			array('broker.title','经纪人'),
 			array('report_factory.title','意向工厂'),
 			array('realname','姓名'),
 			array('mobile','手机号'),

+ 223 - 0
app/worker/controller/Resident.php

@@ -0,0 +1,223 @@
+<?php
+
+namespace app\worker\controller;
+
+use app\worker\BaseController;
+use app\common\model\ResidentLog as ResidentLogModel;
+use app\common\model\User as UserModel;
+use app\common\model\Worker as WorkerModel;
+use app\common\model\Broker as BrokerModel;
+use app\common\model\Resident as ResidentModel;
+
+use app\common\validate\Resident as ResidentValidate;
+use think\exception\ValidateException;
+
+class Resident extends BaseController
+{
+
+    public function residentlist()
+    {
+        $workerlist = WorkerModel::order(['id' => 'desc'])->select();
+        return view('resident/residentlist', [
+            'workerlist' => $workerlist,
+        ]);
+    }
+
+    public function residentForm()
+    {
+        $id       = input('id/d, 0');
+        $resident = ResidentModel::findOrEmpty($id);
+        return view('resident/residentform', [
+            'resident' => $resident,
+        ]);
+    }
+
+    public function editresident()
+    {
+        $id       = input('id/d');
+        $data     = [
+            'title'    => input('title/s', ""),
+            'mobile'   => input('mobile/s', ""),
+            'weixin'   => input('weixin/s', ""),
+            'qq'       => input('qq/s', ""),
+            'province' => input('province/s', ""),
+            'city'     => input('city/s', ""),
+            'district' => input('district/s', ""),
+            'details'  => input('details/s', ""),
+            'status'   => input('status/d') == 1 ? 1 : 2,
+        ];
+        $workerid = $this->access_worker['id'];
+        if (empty($id)) {
+            $vdata = [
+                'id'     => $id,
+                'mobile' => input('mobile/s'),
+            ];
+            try {
+                validate(ResidentValidate::class)->check($vdata);
+            } catch (ValidateException $e) {
+                exit(json_encode([
+                    'code' => 1,
+                    'msg'  => $e->getError(),
+                ]));
+            }
+
+            $user = UserModel::where(['mobile' => input('usermobile/s', '')])->findOrEmpty();
+            if ($user->isEmpty()) {
+                exit(json_encode([
+                    'code' => 1,
+                    'msg'  => "关联的用户不存在。",
+                ]));
+            }
+            $broker = BrokerModel::where('userid', $user['id'])->findOrEmpty();
+            if (empty($broker)) {
+                exit(json_encode([
+                    'code' => 1,
+                    'msg'  => "只有经纪人才能关联。",
+                ]));
+            }
+
+            $resident_user = ResidentModel::where('userid', $user->id)->find();
+            if (!empty($resident_user)) {
+                exit(json_encode([
+                    'code' => 1,
+                    'msg'  => "该用户已是经纪人。",
+                ]));
+            }
+
+            $data['userid']     = $user->id;
+            $data['workerid']   = $broker['workerid'];
+            $data['agentid']    = $broker['agentid'];
+            $data['createtime'] = time();
+            ResidentModel::create($data);
+        } else {
+            $resident = ResidentModel::where('workerid', $workerid)->where('id', $id)->findOrEmpty();
+            if (empty($resident)) {
+                exit(json_encode([
+                    'code' => 1,
+                    'msg'  => '信息不存在',
+                ]));
+            }
+            $resident->save($data);
+        }
+
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+    public function fieldresident()
+    {
+        $workerid = $this->access_worker['id'];
+        $id       = input('id/d', 0);
+        $resident = ResidentModel::where('workerid', $workerid)->where('id', $id)->findOrEmpty();
+        if ($resident->isEmpty()) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "信息不存在",
+            ]));
+        } else {
+            $resident->save([
+                input('field/s') => input('value'),
+            ]);
+        }
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+    public function delresident()
+    {
+        $access_admin = session('access_admin');
+        $password     = input('password');
+        if ($access_admin['password'] !== md5($password)) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "操作密码验证失败",
+            ]));
+        }
+        $idarr    = input('idarr/a');
+        $workerid = $this->access_worker['id'];
+        $result   = ResidentModel::whereIn('id', $idarr)->where('workerid', $workerid)->delete();
+        if ($result) {
+            exit(json_encode([
+                'code' => 0,
+                'msg'  => "",
+            ]));
+        }
+        exit(json_encode([
+            'code' => 1,
+            'msg'  => "删除失败,请稍后重试",
+        ]));
+    }
+
+    public function listresident()
+    {
+        $limit    = input('limit/d', 20);
+        $page     = input('page/d', 1);
+        $workerid = $this->access_worker['id'];
+        $map      = [
+            ['workerid', '=', $workerid],
+        ];
+        $keywords = input('keywords/s');
+        if (!empty($keywords)) {
+            $map[] = ['title', 'like', '%' . $keywords . '%'];
+        }
+        $status = input('status/d');
+        if (!empty($status)) {
+            $map[] = ['status', '=', $status];
+        }
+        $list  = ResidentModel::with(['worker', 'user'])->where($map)->order('id', 'DESC')->limit($limit)->page($page)->append(['status_text'])->select();
+        $count = ResidentModel::where($map)->count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
+
+    // 用户跟进记录
+    public function follow()
+    {
+        return view('resident/follow');
+    }
+
+    public function listfollow()
+    {
+        $limit  = input('limit/d', 20);
+        $page   = input('page/d', 1);
+        $workerid = $this->access_worker['id'];
+        $map      = [
+            ['workerid', '=', $workerid],
+        ];
+        $mobile = input('mobile/s');
+        if (!empty($mobile)) {
+            $resident = ResidentModel::where('mobile', $mobile)->findOrEmpty();
+            if (empty($resident)) {
+                $map[] = ['id', '=', 0];
+            } else {
+                $map[] = ['residentid', '=', $resident['id']];
+            }
+        }
+        $list  = ResidentLogModel::with(['resident', 'worker'])->where($map)->order('createtime', 'DESC')->limit($limit)->page($page)->select();
+        $count = ResidentLogModel::where($map)->count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
+}

+ 14 - 0
app/worker/controller/Resume.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace app\worker\controller;
+
+use app\worker\BaseController;
+use \app\common\model\Broker as BrokerModel;
+use \app\common\model\Agent as AgentModel;
+use \app\common\model\UserGroups as UserGroupsModel;
+use \app\common\model\User as UserModel;
+
+class Resume extends BaseController
+{
+
+}

+ 344 - 305
app/worker/controller/User.php

@@ -1,6 +1,11 @@
 <?php
+
 namespace app\worker\controller;
 
+use app\common\model\ComjobsCate;
+use app\common\model\RensheCode;
+use app\common\model\UserTags;
+use app\common\model\UserWill;
 use think\facade\Session;
 use app\worker\BaseController;
 use app\common\model\User as UserModel;
@@ -18,312 +23,346 @@ use PHPExcel;
 
 class User extends BaseController
 {
-	
-	// 用户跟进记录
-	public function follow()
-	{
-		$userid = input('userid/d');
-		$user = UserModel::findOrEmpty($userid);
-		$followlist = UserFollowModel::where('userid',$userid)->order('id','desc')->limit(100)->select();
-		return view('user/follow',[
-			'user'			=> $user,
-			'followlist'	=> $followlist
-		]);
-	}
-	
-	public function editFollow()
-	{
-		$userid = input('userid/d', 0);
-		$user = UserModel::findOrEmpty($userid);
-		if ($user->isEmpty()){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "用户信息不存在。"
-			)));
-		}
-		$worker = $this->access_worker;
-		$broker = BrokerModel::where('workerid','=',$worker['id'])->findOrEmpty($user->brokerid);
-		if ($broker->isEmpty()){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "你无权限上报该用户跟进记录。"
-			)));
-		}
-		UserFollowModel::create([
-			'userid'		=> $userid,
-			'ftype'			=> input('ftype/s', ""),
-			'remark'		=> input('remark/s', ""),
-			'createtime'	=> time()
-		]);
-		$followstatus = input('followstatus/d', 1);
-		$user->save([
-			'followstatus' => $followstatus
-		]);
-		exit(json_encode(array(
-			'code' 	=> 0
-		)));
-	}
-	
-		
-	// 用户授权
-	public function authsList()
-	{
-		$userid = input('userid/d');
-		return view('user/authslist',[
-			'userid'	=> $userid
-		]);
-	}
-	
-	public function listAuths()
-	{
-		$userid = input('userid/d');
-		$list = UserAuthsModel::where('userid',$userid)->order('id','asc')->append(['identitytype_text'])->select();
-		$count = UserAuthsModel::where('userid',$userid)->count();
-		if ($count==0){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "未查询到数据"
-			)));
-		}
-		exit(json_encode(array(
-			'code' 	=> 0,
-			'msg'	=> "",
-			'count' => $count,
-			'data'  => $list
-		)));
-	}
-	
-	public function delAuths()
-	{
-		$id = input('id/d');
-		$auths = UserAuthsModel::find($id);
-		if ($auths->identitytype == 'mobile'){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "手机号授权方式不允许删除"
-			)));
-		}
-		$result = $auths->delete();
-		if ($result){
-			exit(json_encode(array(
-				'code' 	=> 0
-			)));
-		}
-		exit(json_encode(array(
-			'code' 	=> 1,
-			'msg'	=> "删除失败,请稍后重试"
-		)));
-	}
-	
-	// 用户
-	public function userList()
-	{
-		$workerid = $this->access_worker['id'];
-		$groupslist = UserGroupsModel::order(['isdefault'=>'desc','id'=>'asc'])->select();
-		$agentlist = AgentModel::with('broker')->where('workerid', '=', $workerid)->order(['id'=>'desc'])->select();
-		return view('user/userlist',[
-			'groupslist'	=> $groupslist,
-			'agentlist'		=> $agentlist
-		]);
-	}
 
-	
-	public function fieldUser()
-	{
-		$workerid = $this->access_worker['id'];
-		$id = input('id/d',0); 
-		$user = UserModel::where('workerid', '=', $workerid)->findOrEmpty($id);
-		if ($user->isEmpty()){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "信息不存在"
-			)));
-		}else{
-			$user->save([
-				input('field/s')  => input('value')
-			]);
-		}
-		exit(json_encode(array(
-			'code' 	=> 0
-		)));
-	}
-	
-	public function listUser()
-	{
-		$workerid = $this->access_worker['id'];
-		$limit = input('limit');
-		$page = input('page');
-		$map = array();
-		$brokeridarr = BrokerModel::where('workerid','=',$workerid)->column('id');
-		$map[] = ['brokerid', 'in', $brokeridarr];
-		$map[] = ['brokerid', '<>', 0];
-		$keywords = input('keywords/s');
-		if (!empty($keywords)){
-			$map[] =['nickname|realname', 'like', '%'.$keywords.'%', 'or'];
-		}
-		$agentbrokerarr = explode(",", input('agentbroker/s'));
-		$agentid = isset($agentbrokerarr[0]) ? $agentbrokerarr[0] : 0;
-		if (!empty($agentid)){
-			$brokeridarr = BrokerModel::where('agentid','=',$agentid)->column('id');
-			$map[] = ['brokerid', 'in', $brokeridarr];
-		}
-		$brokerid = isset($agentbrokerarr[1]) ? $agentbrokerarr[1] : 0;
-		if (!empty($brokerid)){
-			$map[] = ['brokerid', '=', $brokerid];
-		}
-		$status = input('status/d');
-		if (!empty($status)){
-			$map[] = ['status', '=', $status];
-		}
-		$list = UserModel::with(['userGroups','broker'=>['agent','worker']])->where($map)->order('id','desc')->limit($limit)->page($page)->append(['status_text','isvip_text','authstatus_text','followstatus_text'])->select();
-		$count = UserModel::where($map)->count();
-		if ($count==0){
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> "未查询到数据"
-			)));
-		}
-		exit(json_encode(array(
-			'code' 	=> 0,
-			'msg'	=> "",
-			'count' => $count,
-			'data'  => $list
-		)));
-	}
-	
-	
-	public function exportUser()
-	{
-		$workerid = $this->access_worker['id'];
-		$map = array();
-		$brokeridarr = BrokerModel::where('workerid','=',$workerid)->column('id');
-		$map[] = ['brokerid', 'in', $brokeridarr];
-		$map[] = ['brokerid', '<>', 0];
-		$keywords = input('keywords/s');
-		if (!empty($keywords)){
-			$map[] =['nickname|realname', 'like', '%'.$keywords.'%', 'or'];
-		}
-		$agentbrokerarr = explode(",", input('agentbroker/s'));
-		$agentid = isset($agentbrokerarr[0]) ? $agentbrokerarr[0] : 0;
-		if (!empty($agentid)){
-			$brokeridarr = BrokerModel::where('agentid','=',$agentid)->column('id');
-			$map[] = ['brokerid', 'in', $brokeridarr];
-		}
-		$brokerid = isset($agentbrokerarr[1]) ? $agentbrokerarr[1] : 0;
-		if (!empty($brokerid)){
-			$map[] = ['brokerid', '=', $brokerid];
-		}
-		$status = input('status/d');
-		if (!empty($status)){
-			$map[] = ['status', '=', $status];
-		}
-		$authstatus = input('authstatus/d');
-		if (!empty($authstatus)){
-			$map[] = ['authstatus', '=', $authstatus];
-		}
-		$followstatus = input('followstatus/d');
-		if (!empty($followstatus)){
-			$map[] = ['followstatus', '=', $followstatus];
-		}
-		$xlsData = UserModel::with(['userGroups','broker'=>['agent','worker']])->where($map)->order('id','desc')->select()->append(['status_text','isvip_text','authstatus_text','followstatus_text'])->toArray();
-		$xlsCell = array(
-			array('id','表ID'),
-			array('nickname','昵称'),
-			array('realname','姓名'),
-			array('mobile','手机号'),
-			array('integral','可用积分'),
-			array('inttotal','累计积分'),
-			array('status_text','状态'),
-			array('isvip_text','是否VIP'),
-			array('authstatus_text','是否实名认证'),
-			array('idcard','身份证号'),
-			array('gender','性别',array(1=>'男',2=>'女')),
-			array('birthday','出生日期'),
-			array('address','现居住地'),
-			array('education','学历'),
-			array('bankcard.openbank','开户行'),
-			array('bankcard.account','账户名'),
-			array('bankcard.number','账户号'),
-			array('followstatus_text','跟进状态'),
-			array('userGroups.title','用户组'),
-			array('broker.agent.title','代理门店'),
-			array('broker.title','职业顾问'),
-			array('createtime','注册时间'),
-		);
-		export_excel("系统用户",$xlsCell,$xlsData);
-	}
-	
-	public function editUser()
-	{
-		$id = input('id/d');
-		$mobile = input('mobile/s');
-		$vdata = array(
-			'id'		=> $id,
-			'mobile'    => $mobile
-		);
-		try {
-			validate(UserValidate::class)->check($vdata);
-		} catch (ValidateException $e) {
-			exit(json_encode(array(
-				'code' 	=> 1,
-				'msg'	=> $e->getError()
-			)));
-		}
-		$agentbrokerarr = explode(",", input('agentbroker/s'));
-		$brokerid = isset($agentbrokerarr[1]) ? $agentbrokerarr[1] : 0;
-		$data = array(
-			'groupsid'			=> input('groupsid/d', 0),
-			'brokerid'			=> $brokerid,
-			'nickname'			=> input('nickname/s', ""),
-			'avatar'			=> input('avatar/s', ""),
-			'realname'			=> input('realname/s', ""),
-			'mobile'			=> $mobile,
-			'status'			=> input('status/d', 1),
-			'isvip'				=> input('isvip/d', 1),
-			'authstatus'		=> input('authstatus/d', 1),
-			'authremark'		=> input('authremark/s', ""),
-			'idcardzpic'		=> input('idcardzpic/s', ""),
-			'idcardfpic'		=> input('idcardfpic/s', ""),
-			'idcard'			=> input('idcard/s', ""),
-			'gender'			=> input('gender/d', 1),
-			'birthday'			=> input('birthday/s', ""),
-			'address'			=> input('address/s', ""),
-			'education'			=> input('education/s', ""),
-			'jobintention'		=> input('jobintention/s', ""),
-			'workexperience'	=> input('workexperience/s', ""),
-			'eduexperience'		=> input('eduexperience/s', ""),
-			'followstatus'		=> input('followstatus/d', 1),
-			'bankcard'			=> input('bankcard/a', array()),
-		);
-		$password = input('password/s');
-		if (empty($id)){
-			$data['integral'] = 0;
-			$data['inttotal'] = 0;
-			$data['createtime'] = time();
-			$user = UserModel::create($data);
-			$auths = UserAuthsModel::create([
-				'userid'		=> $user->id,
-				'identitytype'	=> "mobile",
-				'identifier'	=> $mobile,
-				'password'		=> empty($password) ? md5("123456789") : md5($password),
-				'logintime'		=> time(),
-				'loginip'		=> $_SERVER['SERVER_ADDR'],
-				'wxampcode'		=> ""
-			]);
-		}else{
-			$data['id'] = $id;
-			$user = UserModel::update($data);
-			$adata = ['identifier'=>$mobile];
-			if (!empty($password)){
-				$adata['password'] =  md5($password);
-			}
-			UserAuthsModel::update($adata, ['userid'=>$id,'identitytype'=>'mobile']);
-		}
-		exit(json_encode(array(
-			'code' 	=> 0
-		)));
-	}
-	
+    // 用户跟进记录
+    public function follow()
+    {
+        $userid     = input('userid/d');
+        $user       = UserModel::findOrEmpty($userid);
+        $followlist = UserFollowModel::where('userid', $userid)->order('id', 'desc')->limit(100)->select();
+        return view('user/follow', [
+            'user'       => $user,
+            'followlist' => $followlist,
+        ]);
+    }
+
+    public function editFollow()
+    {
+        $userid = input('userid/d', 0);
+        $user   = UserModel::findOrEmpty($userid);
+        if ($user->isEmpty()) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "用户信息不存在。",
+            ]));
+        }
+        $worker = $this->access_worker;
+        $broker = BrokerModel::where('workerid', '=', $worker['id'])->findOrEmpty($user->brokerid);
+        if ($broker->isEmpty()) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "你无权限上报该用户跟进记录。",
+            ]));
+        }
+        UserFollowModel::create([
+            'userid'     => $userid,
+            'ftype'      => input('ftype/s', ""),
+            'remark'     => input('remark/s', ""),
+            'createtime' => time(),
+        ]);
+        $followstatus = input('followstatus/d', 1);
+        $user->save([
+            'followstatus' => $followstatus,
+        ]);
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+
+    // 用户授权
+    public function authsList()
+    {
+        $userid = input('userid/d');
+        return view('user/authslist', [
+            'userid' => $userid,
+        ]);
+    }
+
+    public function listAuths()
+    {
+        $userid = input('userid/d');
+        $list   = UserAuthsModel::where('userid', $userid)->order('id', 'asc')->append(['identitytype_text'])->select();
+        $count  = UserAuthsModel::where('userid', $userid)->count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
+
+    public function delAuths()
+    {
+        $id    = input('id/d');
+        $auths = UserAuthsModel::find($id);
+        if ($auths->identitytype == 'mobile') {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "手机号授权方式不允许删除",
+            ]));
+        }
+        $result = $auths->delete();
+        if ($result) {
+            exit(json_encode([
+                'code' => 0,
+            ]));
+        }
+        exit(json_encode([
+            'code' => 1,
+            'msg'  => "删除失败,请稍后重试",
+        ]));
+    }
+
+    // 用户
+    public function userList()
+    {
+        $workerid   = $this->access_worker['id'];
+        $groupslist = UserGroupsModel::order(['isdefault' => 'desc', 'id' => 'asc'])->select();
+        $agentlist  = AgentModel::with('broker')->where('workerid', '=', $workerid)->order(['id' => 'desc'])->select();
+        return view('user/userlist', [
+            'groupslist' => $groupslist,
+            'agentlist'  => $agentlist,
+        ]);
+    }
+
+    public function userForm()
+    {
+        $workerid  = $this->access_worker['id'];
+        $agentlist = AgentModel::with('broker')->where('workerid', '=', $workerid)->order(['id' => 'desc'])->select();
+        if (empty($agentlist)) {
+            return '没有权限';
+        }
+        $agentidarr  = $agentlist->column('id');
+        $brokerlist  = BrokerModel::whereIn('agentid', $agentidarr)->select();
+        if (empty($brokerlist)) {
+            return '没有权限';
+        }
+        $id            = input('id/d', 0);
+        $brokeridarr = $brokerlist->column('id');
+        $user          = UserModel::whereIn('brokerid', $brokeridarr)->findOrEmpty($id);
+        $groupslist    = UserGroupsModel::order(['isdefault' => 'desc', 'id' => 'asc'])->select();
+        $willlist      = UserWill::select();
+        $usertags      = UserTags::select();
+        $emptimelist   = RensheCode::getList('emp_time');
+        $communitylist = RensheCode::getList('community')->toArray();
+        array_push($communitylist, ['code' => 0, 'id' => 0, 'name' => "不限"]);
+        $comlist = ComjobsCate::select();
+        return view('user/userform', [
+            'brokerlist'    => $brokerlist,
+            'agentlist'     => $agentlist,
+            'groupslist'    => $groupslist,
+            'user'          => $user,
+            'willlist'      => $willlist,
+            'usertags'      => $usertags,
+            'emptimelist'   => $emptimelist,
+            'communitylist' => $communitylist,
+            'comlist'       => $comlist,
+        ]);
+    }
+
+    public function fieldUser()
+    {
+        $workerid = $this->access_worker['id'];
+        $id       = input('id/d', 0);
+        $user     = UserModel::where('workerid', '=', $workerid)->findOrEmpty($id);
+        if ($user->isEmpty()) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "信息不存在",
+            ]));
+        } else {
+            $user->save([
+                input('field/s') => input('value'),
+            ]);
+        }
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+    public function listUser()
+    {
+        $workerid    = $this->access_worker['id'];
+        $limit       = input('limit');
+        $page        = input('page');
+        $map         = [];
+        $brokeridarr = BrokerModel::where('workerid', '=', $workerid)->column('id');
+        $map[]       = ['brokerid', 'in', $brokeridarr];
+        $map[]       = ['brokerid', '<>', 0];
+        $keywords    = input('keywords/s');
+        if (!empty($keywords)) {
+            $map[] = ['nickname|realname', 'like', '%' . $keywords . '%', 'or'];
+        }
+        $agentid = input('agentid/d');
+        if (!empty($agentid)) {
+            $brokeridarr = BrokerModel::where('agentid', '=', $agentid)->column('id');
+            $map[]       = ['brokerid', 'in', $brokeridarr];
+        }
+        $status = input('status/d');
+        if (!empty($status)) {
+            $map[] = ['status', '=', $status];
+        }
+        $list  = UserModel::with(['userGroups', 'broker' => ['agent', 'worker']])->where($map)->order('id', 'desc')->limit($limit)->page($page)->append(['status_text', 'isvip_text', 'authstatus_text', 'followstatus_text'])->select();
+        $count = UserModel::where($map)->count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
+
+
+    public function exportUser()
+    {
+        $workerid    = $this->access_worker['id'];
+        $map         = [];
+        $brokeridarr = BrokerModel::where('workerid', '=', $workerid)->column('id');
+        $map[]       = ['brokerid', 'in', $brokeridarr];
+        $map[]       = ['brokerid', '<>', 0];
+        $keywords    = input('keywords/s');
+        if (!empty($keywords)) {
+            $map[] = ['nickname|realname', 'like', '%' . $keywords . '%', 'or'];
+        }
+        $agentbrokerarr = explode(",", input('agentbroker/s'));
+        $agentid        = isset($agentbrokerarr[0]) ? $agentbrokerarr[0] : 0;
+        if (!empty($agentid)) {
+            $brokeridarr = BrokerModel::where('agentid', '=', $agentid)->column('id');
+            $map[]       = ['brokerid', 'in', $brokeridarr];
+        }
+        $brokerid = isset($agentbrokerarr[1]) ? $agentbrokerarr[1] : 0;
+        if (!empty($brokerid)) {
+            $map[] = ['brokerid', '=', $brokerid];
+        }
+        $status = input('status/d');
+        if (!empty($status)) {
+            $map[] = ['status', '=', $status];
+        }
+        $authstatus = input('authstatus/d');
+        if (!empty($authstatus)) {
+            $map[] = ['authstatus', '=', $authstatus];
+        }
+        $followstatus = input('followstatus/d');
+        if (!empty($followstatus)) {
+            $map[] = ['followstatus', '=', $followstatus];
+        }
+        $xlsData = UserModel::with(['userGroups', 'broker' => ['agent', 'worker']])->where($map)->order('id', 'desc')->select()->append(['status_text', 'isvip_text', 'authstatus_text', 'followstatus_text'])->toArray();
+        $xlsCell = [
+            ['id', '表ID'],
+            ['nickname', '昵称'],
+            ['realname', '姓名'],
+            ['mobile', '手机号'],
+            ['integral', '可用积分'],
+            ['inttotal', '累计积分'],
+            ['status_text', '状态'],
+            ['isvip_text', '是否VIP'],
+            ['authstatus_text', '是否实名认证'],
+            ['idcard', '身份证号'],
+            ['gender', '性别', [1 => '男', 2 => '女']],
+            ['birthday', '出生日期'],
+            ['address', '现居住地'],
+            ['education', '学历'],
+            ['bankcard.openbank', '开户行'],
+            ['bankcard.account', '账户名'],
+            ['bankcard.number', '账户号'],
+            ['followstatus_text', '跟进状态'],
+            ['userGroups.title', '用户组'],
+            ['broker.agent.title', '代理门店'],
+            ['broker.title', '经纪人'],
+            ['createtime', '注册时间'],
+        ];
+        export_excel("系统用户", $xlsCell, $xlsData);
+    }
+
+    public function editUser()
+    {
+        $id     = input('id/d');
+        $mobile = input('mobile/s');
+        $vdata  = [
+            'id'     => $id,
+            'mobile' => $mobile,
+        ];
+        try {
+            validate(UserValidate::class)->check($vdata);
+        } catch (ValidateException $e) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => $e->getError(),
+            ]));
+        }
+        $agentbrokerarr = explode(",", input('agentbroker/s'));
+        $brokerid       = isset($agentbrokerarr[1]) ? $agentbrokerarr[1] : 0;
+        $data           = [
+            'groupsid'       => input('groupsid/d', 0),
+            'brokerid'       => $brokerid,
+            'nickname'       => input('nickname/s', ""),
+            'avatar'         => input('avatar/s', ""),
+            'realname'       => input('realname/s', ""),
+            'mobile'         => $mobile,
+            'status'         => input('status/d', 1),
+            'isvip'          => input('isvip/d', 1),
+            'authstatus'     => input('authstatus/d', 1),
+            'authremark'     => input('authremark/s', ""),
+            'idcardzpic'     => input('idcardzpic/s', ""),
+            'idcardfpic'     => input('idcardfpic/s', ""),
+            'idcard'         => input('idcard/s', ""),
+            'gender'         => input('gender/d', 1),
+            'birthday'       => input('birthday/s', ""),
+            'address'        => input('address/s', ""),
+            'education'      => input('education/s', ""),
+            'jobintention'   => input('jobintention/s', ""),
+            'workexperience' => input('workexperience/s', ""),
+            'eduexperience'  => input('eduexperience/s', ""),
+            'followstatus'   => input('followstatus/d', 1),
+            'bankcard'       => input('bankcard/a', []),
+            'emp_time'       => array_values(input('emp_time/a', [])),
+            'user_tags'      => array_values(input('user_tags/a', [])),
+            'work_place'     => array_values(input('work_place/a', [])),
+            'com_cate_type'  => input('com_cate_type/d', 1),
+            'com_cate'       => array_values(input('com_cate/a', [])),
+            'com_cate_other' => input('com_cate_other/s', ""),
+        ];
+        $password       = input('password/s');
+        if (empty($id)) {
+            $data['integral']   = 0;
+            $data['inttotal']   = 0;
+            $data['createtime'] = time();
+            $user               = UserModel::create($data);
+            UserAuthsModel::create([
+                'userid'       => $user->id,
+                'identitytype' => "mobile",
+                'identifier'   => $mobile,
+                'password'     => empty($password) ? md5("123456789") : md5($password),
+                'logintime'    => time(),
+                'loginip'      => $_SERVER['SERVER_ADDR'],
+                'wxampcode'    => "",
+            ]);
+        } else {
+            $data['id'] = $id;
+            UserModel::update($data);
+            $adata      = ['identifier' => $mobile];
+            if (!empty($password)) {
+                $adata['password'] = md5($password);
+            }
+            UserAuthsModel::update($adata, ['userid' => $id, 'identitytype' => 'mobile']);
+        }
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
 
 
 }

+ 3 - 3
app/worker/view/broker/brokerform.html

@@ -2,7 +2,7 @@
 	<div class="layui-row layui-col-space15">
 		<div class="layui-col-md12">
 			<div class="layui-card">
-				<div class="layui-card-header">职业顾问</div>
+				<div class="layui-card-header">经纪人</div>
 				<div class="layui-card-body" pad15>
 
 					<div class="layui-form layui-form-pane" lay-filter="LAY-broker-brokerform-edit">
@@ -29,7 +29,7 @@
 							<div class="layui-input-block">
 								<input type="text" name="musermobile" value="{$broker.muser.mobile}" lay-verify="phone" placeholder="请输入关联用户手机号..."
 								 autocomplete="off" class="layui-input">
-								<div class="layui-form-mid layui-word-aux">关联用户的手机号。关联的用户会自动归属到该职业顾问名下,请谨慎修改。个人中心才会出现职业顾问管理入口导航。</div>
+								<div class="layui-form-mid layui-word-aux">关联用户的手机号。关联的用户会自动归属到该经纪人名下,请谨慎修改。个人中心才会出现职业顾问管理入口导航。</div>
 							</div>
 						</div>
 						<div class="layui-form-item">
@@ -44,7 +44,7 @@
 							<div class="layui-input-block">
 								<input type="text" name="mobile" value="{$broker.mobile}" lay-verify="phone" placeholder="请输入号码" autocomplete="off"
 								 class="layui-input">
-								<div class="layui-form-mid layui-word-aux">手机号于对应的用户账号注册的手机号一致,个人中心才会出现职业顾问管理入口导航。</div>
+								<div class="layui-form-mid layui-word-aux">手机号于对应的用户账号注册的手机号一致,个人中心才会出现经纪人管理入口导航。</div>
 							</div>
 						</div>
 						<div class="layui-form-item">

+ 4 - 4
app/worker/view/broker/brokerlist.html

@@ -141,7 +141,7 @@
 					title: '敏感操作,请验证密码'
 				}, function(value, index) {
 					layer.close(index);
-					layer.confirm('确定删除此职业顾问吗?', function(index) {
+					layer.confirm('确定删除此经纪人吗?', function(index) {
 						admin.req({
 							url: setter.baseWorkerUrl + 'broker/delbroker',
 							data: {
@@ -160,7 +160,7 @@
 			add: function() {
 				var index = layer.open({
 					type: 2,
-					title: '添加职业顾问',
+					title: '添加经纪人',
 					content: 'brokerform.html?id=0',
 					maxmin: true,
 					area: ['750px', '480px']
@@ -172,7 +172,7 @@
 		table.on('tool(LAY-broker-brokerlist-table)', function(obj) {
 			var data = obj.data;
 			if (obj.event === 'del') {
-				layer.confirm('确定删除此职业顾问吗?', function(index) {
+				layer.confirm('确定删除此经纪人吗?', function(index) {
 					admin.req({
 						url: setter.baseWorkerUrl + 'broker/delbroker',
 						data: {
@@ -188,7 +188,7 @@
 			} else if (obj.event === 'edit') {
 				var index = layer.open({
 					type: 2,
-					title: '编辑职业顾问',
+					title: '编辑经纪人',
 					content: 'brokerform.html?id=' + data.id,
 					maxmin: true,
 					area: ['750px', '480px']

+ 1 - 1
app/worker/view/comjobsreport/reportexamine.html

@@ -128,7 +128,7 @@
                         { field: 'remark', title: '报名备注', minWidth: 170, hide: true },
                         { field: 'comjob_title', title: '招聘订单', minWidth: 200},
                         { field: 'agent_title', title: '代理门店', minWidth: 200},
-                        { field: 'broker_title', title: '职业顾问', width: 150},
+                        { field: 'broker_title', title: '经纪人', width: 150},
                         { field: 'createtime', title: '报备时间', width: 170 },
                         { title: '操作', width: 230, align: 'center', fixed: 'right', toolbar: '#setTpl' }
                     ]

+ 1 - 1
app/worker/view/comjobsreport/reportlist.html

@@ -140,7 +140,7 @@
 
 					{ field: 'comjob_title', title: '招聘订单', minWidth: 200},
 					{ field: 'agent_title', title: '代理门店', minWidth: 200},
-					{ field: 'broker_title', title: '职业顾问', width: 150},
+					{ field: 'broker_title', title: '经纪人', width: 150},
 					{ field: 'createtime', title: '报备时间', width: 170 },
 					{ title: '操作', width: 230, align: 'center', fixed: 'right', toolbar: '#setTpl' }
 				]

+ 9 - 2
app/worker/view/demand/demandform.html

@@ -49,6 +49,13 @@
 								</select>
 							</div>
 						</div>
+						<div class="layui-form-item" pane>
+							<label class="layui-form-label">类型</label>
+							<div class="layui-input-block">
+								<input type="radio" name="type" value="1" title="代招" checked>
+								<input type="radio" name="type" value="2" title="劳务派遣" >
+							</div>
+						</div>
 						<div class="layui-form-item" id="LAY-demand-demandform-edit-areapicker">
 							<label class="layui-form-label"><span style="color:#f90c05;">*</span>省市区</label>
 							<div class="layui-input-inline">
@@ -106,7 +113,7 @@
 						<div class="layui-form-item" pane>
 							<label class="layui-form-label">薪资类型</label>
 							<div class="layui-input-block">
-								<input type="radio" name="wtype" value="1" title="按月" >
+								<input type="radio" name="wtype" value="1" title="按月" checked>
 								<input type="radio" name="wtype" value="2" title="按时" >
 								<input type="radio" name="wtype" value="3" title="按件" >
 								<input type="radio" name="wtype" value="4" title="按项目" >
@@ -130,7 +137,7 @@
 						<div class="layui-form-item" pane>
 							<label class="layui-form-label">返费类型</label>
 							<div class="layui-input-block">
-								<input type="radio" name="ftype" value="1" title="一次性">
+								<input type="radio" name="ftype" value="1" title="一次性" checked>
 								<input type="radio" name="ftype" value="2" title="小时工" >
 								<input type="radio" name="ftype" value="3" title="管理费" >
 								<input type="radio" name="ftype" value="4" title="其他">

+ 35 - 45
app/worker/view/index.html

@@ -101,9 +101,6 @@
 							<dd>
 								<a lay-href="{:url('/comjobsreport/reportlist')}">报备记录</a>
 							</dd>
-							<dd>
-								<a lay-href="{:url('/comjobsreport/reportExamine')}">待审核</a>
-							</dd>
 						</dl>
 					</li>
 					
@@ -114,80 +111,73 @@
 						<span class="layui-nav-more"></span></a>
 						<dl class="layui-nav-child">
 							<dd>
-								<a lay-href="{:url('/demand/demandlist')}" lay-text="企业订单">企业订单</a>
+								<a lay-href="{:url('/demand/demandlist')}" lay-text="派遣订单">派遣订单</a>
+							</dd>
+							<dd>
+								<a lay-href="{:url('/demand/otherlist')}" lay-text="其他订单">其他订单</a>
+							</dd>
+							<dd>
+								<a lay-href="{:url('/demand/allhall')}" lay-text="抢单大厅">抢单大厅</a>
+							</dd>
+							<dd>
+								<a lay-href="{:url('/demand/roblist')}" lay-text="抢到的订单">抢到的订单</a>
 							</dd>
 							<dd>
 								<a lay-href="{:url('/demand/logList')}" lay-text="报名记录">报名记录</a>
 							</dd>
 						</dl>
 					</li>
-
-					<li data-name="worder" class="layui-nav-item">
-						<a href="javascript:;" lay-tips="订单">
+					<li data-name="resume" class="layui-nav-item">
+						<a href="javascript:;" lay-tips="简历">
 							<i class="layui-icon layui-icon-component"></i>
-							<cite>供人</cite>
+							<cite>简历</cite>
 							<span class="layui-nav-more"></span></a>
 						<dl class="layui-nav-child">
 							<dd>
-								<a lay-href="{:url('/supply/supplylist')}" lay-text="供人管理">供人管理</a>
+								<a lay-href="{:url('/resume/companylist')}" lay-text="公司简历库">公司简历库</a>
+							</dd>
+							<dd>
+								<a lay-href="{:url('/user/userlist')}" lay-text="系统简历库">系统简历库</a>
+							</dd>
+							<dd>
+								<a lay-href="{:url('/resume/grouplist')}" lay-text="简历分组">简历分组</a>
 							</dd>
 						</dl>
 					</li>
-
 					<li data-name="worder" class="layui-nav-item">
-						<a href="javascript:;" lay-tips="小视频">
+						<a href="javascript:;" lay-tips="共享用工">
 							<i class="layui-icon layui-icon-component"></i>
-							<cite>小视频</cite>
+							<cite>共享用工</cite>
 							<span class="layui-nav-more"></span></a>
 						<dl class="layui-nav-child">
 							<dd>
-								<a lay-href="{:url('/video/videoList')}" lay-text="小视频管理">小视频管理</a>
+								<a lay-href="{:url('/supply/supplylist')}" lay-text="用工管理">用工管理</a>
 							</dd>
 						</dl>
 					</li>
-
-<!--					<li data-name="report" class="layui-nav-item">-->
-<!--						<a href="javascript:;" lay-tips="报备" lay-direction="2">-->
-<!--							<i class="layui-icon layui-icon-upload-drag"></i>-->
-<!--							<cite>报备</cite>-->
-<!--						</a>-->
-<!--						<dl class="layui-nav-child">-->
-<!--							<dd data-name="entrylist">-->
-<!--								<a lay-href="{:url('/report/entrylist')}">报备名单</a>-->
-<!--							</dd>-->
-<!--							<dd data-name="factorylist">-->
-<!--								<a lay-href="{:url('/report/factorylist')}">报备工厂</a>-->
-<!--							</dd>-->
-<!--						</dl>-->
-<!--					</li>-->
-
 					<li data-name="admin" class="layui-nav-item">
 						<a href="javascript:;" lay-tips="公司" lay-direction="2">
 							<i class="layui-icon layui-icon-engine"></i>
 							<cite>公司</cite>
 						</a>
 						<dl class="layui-nav-child">
-							<dd data-name="agentlist">
-								<a lay-href="{:url('/agent/agent_join')}" lay-text="申请加盟">申请加盟</a>
+							<dd>
+								<a lay-href="{:url('/worker/workerform')}" lay-text="公司信息">公司信息</a>
 							</dd>
-							<dd data-name="agentlist">
+							<dd>
 								<a lay-href="{:url('/agent/agentlist')}" lay-text="代理门店">代理门店</a>
 							</dd>
-
-							<!--<dd data-name="brokerlist">-->
-							<!--	<a lay-href="{:url('/broker/brokerlist')}" lay-text="职业顾问">职业顾问</a>-->
-							<!--</dd>-->
-
+							<dd>
+								<a lay-href="{:url('/broker/brokerlist')}" lay-text="经纪人">经纪人</a>
+							</dd>
+							<dd>
+								<a lay-href="{:url('/resident/residentlist')}" lay-text="驻场老师">驻场老师</a>
+							</dd>
+							<dd>
+								<a lay-href="{:url('/resident/follow')}" lay-text="驻场老师">驻场日志</a>
+							</dd>
 						</dl>
 					</li>
-
-					<li data-name="worker" class="layui-nav-item">
-						<a lay-href="{:url('/worker/workerform')}" lay-tips="劳务公司信息">
-							<i class="layui-icon layui-icon-set"></i>
-							<cite>劳务公司信息</cite>
-						</a>
-					</li>
-
 				</ul>
 			</div>
 		</div>

+ 237 - 0
app/worker/view/index_back.html

@@ -0,0 +1,237 @@
+<div id="LAY_app">
+	<div class="layui-layout layui-layout-admin">
+		<div class="layui-header">
+			<!-- 头部区域 -->
+			<ul class="layui-nav layui-layout-left">
+				<li class="layui-nav-item layadmin-flexible" lay-unselect>
+					<a href="javascript:;" layadmin-event="flexible" title="侧边伸缩">
+						<i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i>
+					</a>
+				</li>
+				<li class="layui-nav-item layui-hide-xs" lay-unselect>
+					<a href="/worker.php" target="_blank" title="前台">
+						<i class="layui-icon layui-icon-website"></i>
+					</a>
+				</li>
+				<li class="layui-nav-item" lay-unselect>
+					<a href="javascript:;" layadmin-event="refresh" title="刷新">
+						<i class="layui-icon layui-icon-refresh-3"></i>
+					</a>
+				</li>
+			</ul>
+			<ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
+				<!--<li class="layui-nav-item" lay-unselect>
+					<a lay-href="{:url('/message/messagelist')}" layadmin-event="message" lay-text="消息中心">
+						<i class="layui-icon layui-icon-notice"></i>
+						<span class="layui-badge-dot"></span>
+					</a>
+				</li>-->
+				<li class="layui-nav-item layui-hide-xs" lay-unselect>
+					<a href="javascript:;" layadmin-event="theme">
+						<i class="layui-icon layui-icon-theme"></i>
+					</a>
+				</li>
+				<li class="layui-nav-item layui-hide-xs" lay-unselect>
+					<a href="javascript:;" layadmin-event="note">
+						<i class="layui-icon layui-icon-note"></i>
+					</a>
+				</li>
+				<li class="layui-nav-item" lay-unselect>
+					<a href="javascript:;">
+						<cite>{$access_worker['title']}</cite>
+						<cite></cite>
+					</a>
+					<dl class="layui-nav-child">
+						{volist name="worker_list" id="worker_item"}
+						<dd style="text-align: center;"><a href="{:url('/login/change')}?id={$worker_item.id}" target="_top">{$worker_item.title}</a></dd>
+						{/volist}
+						<hr>
+						<dd style="text-align: center;"><a href="{:url('/login/logout')}">退出</a></dd>
+					</dl>
+				</li>
+				<li class="layui-nav-item layui-hide-xs" lay-unselect>
+					<a href="javascript:;" layadmin-event="fullscreen">
+						<i class="layui-icon layui-icon-screen-full"></i>
+					</a>
+				</li>
+				<li class="layui-nav-item layui-hide-xs" lay-unselect>
+					<a href="javascript:;" layadmin-event="about"><i class="layui-icon layui-icon-more-vertical"></i></a>
+				</li>
+				<li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-unselect>
+					<a href="javascript:;" layadmin-event="more"><i class="layui-icon layui-icon-more-vertical"></i></a>
+				</li>
+			</ul>
+		</div>
+
+		<!-- 侧边菜单 -->
+		<div class="layui-side layui-side-menu">
+			<div class="layui-side-scroll">
+				<div class="layui-logo">
+					<span>劳务公司管理中心</span>
+				</div>
+
+				<ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
+
+					<li data-name="home" class="layui-nav-item">
+						<a lay-href="{:url('/home/console')}" lay-tips="首页">
+							<i class="layui-icon layui-icon-home"></i>
+							<cite>首页</cite>
+						</a>
+					</li>
+
+					<!--<li data-name="broker" class="layui-nav-item">-->
+					<!--	<a lay-href="{:url('/user/userlist')}" lay-tips="用户管理">-->
+					<!--		<i class="layui-icon layui-icon-user"></i>-->
+					<!--		<cite>用户管理</cite>-->
+					<!--	</a>-->
+					<!--</li>-->
+					
+					<li class="layui-nav-item">
+						<a href="javascript:;" lay-tips="招聘" lay-direction="2">
+							<i class="layui-icon layui-icon-diamond"></i>
+							<cite>招聘</cite>
+						</a>
+						<dl class="layui-nav-child">
+							<dd class="layui-this">
+								<a lay-href="{:url('/comjobs/comjobslist')}">招聘信息</a>
+							</dd>
+							<dd>
+								<a lay-href="{:url('/comjobs/loglist')}">报名记录</a>
+							</dd>
+							<dd>
+								<a lay-href="{:url('/comjobsreport/reportlist')}">报备记录</a>
+							</dd>
+							<dd>
+								<a lay-href="{:url('/comjobsreport/reportExamine')}">待审核</a>
+							</dd>
+						</dl>
+					</li>
+					
+					<li data-name="worder" class="layui-nav-item">
+						<a href="javascript:;" lay-tips="订单">
+							<i class="layui-icon layui-icon-component"></i>
+							<cite>订单</cite>
+						<span class="layui-nav-more"></span></a>
+						<dl class="layui-nav-child">
+							<dd>
+								<a lay-href="{:url('/demand/demandlist')}" lay-text="企业订单">企业订单</a>
+							</dd>
+							<dd>
+								<a lay-href="{:url('/demand/logList')}" lay-text="报名记录">报名记录</a>
+							</dd>
+						</dl>
+					</li>
+
+					<li data-name="worder" class="layui-nav-item">
+						<a href="javascript:;" lay-tips="订单">
+							<i class="layui-icon layui-icon-component"></i>
+							<cite>供人</cite>
+							<span class="layui-nav-more"></span></a>
+						<dl class="layui-nav-child">
+							<dd>
+								<a lay-href="{:url('/supply/supplylist')}" lay-text="供人管理">供人管理</a>
+							</dd>
+						</dl>
+					</li>
+
+					<li data-name="worder" class="layui-nav-item">
+						<a href="javascript:;" lay-tips="小视频">
+							<i class="layui-icon layui-icon-component"></i>
+							<cite>小视频</cite>
+							<span class="layui-nav-more"></span></a>
+						<dl class="layui-nav-child">
+							<dd>
+								<a lay-href="{:url('/video/videoList')}" lay-text="小视频管理">小视频管理</a>
+							</dd>
+						</dl>
+					</li>
+
+<!--					<li data-name="report" class="layui-nav-item">-->
+<!--						<a href="javascript:;" lay-tips="报备" lay-direction="2">-->
+<!--							<i class="layui-icon layui-icon-upload-drag"></i>-->
+<!--							<cite>报备</cite>-->
+<!--						</a>-->
+<!--						<dl class="layui-nav-child">-->
+<!--							<dd data-name="entrylist">-->
+<!--								<a lay-href="{:url('/report/entrylist')}">报备名单</a>-->
+<!--							</dd>-->
+<!--							<dd data-name="factorylist">-->
+<!--								<a lay-href="{:url('/report/factorylist')}">报备工厂</a>-->
+<!--							</dd>-->
+<!--						</dl>-->
+<!--					</li>-->
+
+					<li data-name="admin" class="layui-nav-item">
+						<a href="javascript:;" lay-tips="公司" lay-direction="2">
+							<i class="layui-icon layui-icon-engine"></i>
+							<cite>公司</cite>
+						</a>
+						<dl class="layui-nav-child">
+							<dd data-name="agentlist">
+								<a lay-href="{:url('/agent/agent_join')}" lay-text="申请加盟">申请加盟</a>
+							</dd>
+							<dd data-name="agentlist">
+								<a lay-href="{:url('/agent/agentlist')}" lay-text="代理门店">代理门店</a>
+							</dd>
+
+							<!--<dd data-name="brokerlist">-->
+							<!--	<a lay-href="{:url('/broker/brokerlist')}" lay-text="经纪人">经纪人</a>-->
+							<!--</dd>-->
+
+						</dl>
+					</li>
+
+					<li data-name="worker" class="layui-nav-item">
+						<a lay-href="{:url('/worker/workerform')}" lay-tips="劳务公司信息">
+							<i class="layui-icon layui-icon-set"></i>
+							<cite>劳务公司信息</cite>
+						</a>
+					</li>
+
+				</ul>
+			</div>
+		</div>
+
+		<!-- 页面标签 -->
+		<div class="layadmin-pagetabs" id="LAY_app_tabs">
+			<div class="layui-icon layadmin-tabs-control layui-icon-prev" layadmin-event="leftPage"></div>
+			<div class="layui-icon layadmin-tabs-control layui-icon-next" layadmin-event="rightPage"></div>
+			<div class="layui-icon layadmin-tabs-control layui-icon-down">
+				<ul class="layui-nav layadmin-tabs-select" lay-filter="layadmin-pagetabs-nav">
+					<li class="layui-nav-item" lay-unselect>
+						<a href="javascript:;"></a>
+						<dl class="layui-nav-child layui-anim-fadein">
+							<dd layadmin-event="closeThisTabs"><a href="javascript:;">关闭当前标签页</a></dd>
+							<dd layadmin-event="closeOtherTabs"><a href="javascript:;">关闭其它标签页</a></dd>
+							<dd layadmin-event="closeAllTabs"><a href="javascript:;">关闭全部标签页</a></dd>
+						</dl>
+					</li>
+				</ul>
+			</div>
+			<div class="layui-tab" lay-unauto lay-allowClose="true" lay-filter="layadmin-layout-tabs">
+				<ul class="layui-tab-title" id="LAY_app_tabsheader">
+					<li lay-id="{:url('/home/console')}" lay-attr="{:url('/home/console')}" class="layui-this"><i class="layui-icon layui-icon-home"></i></li>
+				</ul>
+			</div>
+		</div>
+
+
+		<!-- 主体内容 -->
+		<div class="layui-body" id="LAY_app_body">
+			<div class="layadmin-tabsbody-item layui-show">
+				<iframe src="{:url('/home/console')}" frameborder="0" class="layadmin-iframe"></iframe>
+			</div>
+		</div>
+
+		<!-- 辅助元素,一般用于移动设备下遮罩 -->
+		<div class="layadmin-body-shade" layadmin-event="shade"></div>
+	</div>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use('index');
+</script>

+ 2 - 2
app/worker/view/report/entryform.html

@@ -8,7 +8,7 @@
 					<div class="layui-form layui-form-pane" lay-filter="LAY-report-entryform-edit">
 						<input type="hidden" name="id" value="{$entry.id}">
 						<div class="layui-form-item">
-							<label class="layui-form-label">代理/职业顾问</label>
+							<label class="layui-form-label">经纪人</label>
 							<div class="layui-input-block" id="agentbroker">
 							</div>
 						</div>
@@ -153,7 +153,7 @@
 		var agentbroker = selectN({
 			elem: '#agentbroker',
 			search: [false, false],
-			tips: ["请选择代理门店", "请选择职业顾问"],
+			tips: ["请选择代理门店", "请选择经纪人"],
 			data: {$agentlist|raw},
 			selected: [{$entry['agentid']}, {$entry['brokerid']}],
 			field: { idName: 'id', titleName: 'title', childName: 'broker' }

+ 1 - 1
app/worker/view/report/entrylist.html

@@ -105,7 +105,7 @@
 					{ type: 'checkbox', fixed: 'left' },
 					{ field: 'id', width: 80, title: '表ID', sort: true },
 					{ field: 'agenttitle', title: '代理门店', templet: '#agenttitleTpl' },
-					{ field: 'brokertitle', title: '职业顾问', templet: '#brokertitleTpl' },
+					{ field: 'brokertitle', title: '经纪人', templet: '#brokertitleTpl' },
 					{ field: 'factorytitle', width: 200, title: '意向工厂', templet: '#factorytitleTpl' },
 					{ field: 'realname', title: '姓名' },
 					{ field: 'mobile', title: '手机号码' },

+ 71 - 0
app/worker/view/resident/follow.html

@@ -0,0 +1,71 @@
+<div class="layui-fluid">
+	<div class="layui-card">
+		<div class="layui-form layui-form-pane layui-card-header layuiadmin-card-header-auto" lay-filter="LAY-broker-brokerlist-search">
+			<div class="layui-form-item">
+				<div class="layui-inline">
+					<label class="layui-form-label">电话</label>
+					<div class="layui-input-block">
+						<input type="text" name="mobile" placeholder="请输入" autocomplete="off" class="layui-input">
+					</div>
+				</div>
+				<div class="layui-inline">
+					<button class="layui-btn" lay-submit lay-filter="LAY-broker-brokerlist-btn">
+						<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
+					</button>
+				</div>
+			</div>
+		</div>
+		<div class="layui-card-body">
+			<table id="LAY-broker-brokerlist-table" lay-filter="LAY-broker-brokerlist-table"></table>
+		</div>
+	</div>
+	<script type="text/html" id="residentTpl">
+		{{#  if(d.residentid != 0){ }}
+		{{d.resident.title}} - {{d.resident.mobile}}
+		{{#  } }}
+	</script>
+	<script type="text/html" id="workertitleTpl">
+		{{d.workerid == 0 ? '' : d.worker.title}}
+	</script>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use(['index', 'form', 'set', 'table'], function() {
+		var $ = layui.$,
+				setter = layui.setter,
+				form = layui.form,
+				table = layui.table;
+		form.render();
+
+		table.render({
+			elem: '#LAY-broker-brokerlist-table',
+			url: setter.baseAdminUrl + 'resident/listfollow',
+			cols: [
+				[
+					{ field: 'id', width: 80, title: '表ID', sort: true },
+					{ field: 'resident', title: '驻场老师(姓名-手机号)', templet: '#residentTpl', minWidth: 250, align: 'left' },
+					{ field: 'workerid', title: '劳务公司', templet: '#workertitleTpl' },
+					{ field: 'content', title: '记录', align: 'center' },
+					{ field: 'createtime', title: '创建时间', width: 170 },
+				]
+			],
+			page: true,
+			limit: 50,
+			cellMinWidth: 150,
+			text: '对不起,加载出现异常!'
+		});
+
+		form.on('submit(LAY-broker-brokerlist-btn)', function(data) {
+			table.reload('LAY-broker-brokerlist-table', {
+				where: data.field,
+				page: {
+					curr: 1
+				}
+			});
+		});
+	});
+</script>

+ 130 - 0
app/worker/view/resident/residentform.html

@@ -0,0 +1,130 @@
+<div class="layui-fluid">
+	<div class="layui-row layui-col-space15">
+		<div class="layui-col-md12">
+			<div class="layui-card">
+				<div class="layui-card-header">驻场老师</div>
+				<div class="layui-card-body" pad15>
+					<div class="layui-form layui-form-pane" lay-filter="LAY-broker-brokerform-edit">
+						<input type="hidden" name="id" value="{$resident.id}">
+						<div class="layui-form-item">
+							<label class="layui-form-label">关联用户</label>
+							<div class="layui-input-block">
+								<input type="text" name="usermobile" value="{$resident.user.mobile}" lay-verify="phone" placeholder="请输入关联用户手机号..."
+								 autocomplete="off" class="layui-input">
+								<div class="layui-form-mid layui-word-aux">关联用户的手机号。个人中心才会出现驻场老师管理入口导航。</div>
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label"><span style="color:#f90c05;">*</span>姓名</label>
+							<div class="layui-input-block">
+								<input type="text" name="title" value="{$resident.title}" lay-verify="required" placeholder="请输入..." autocomplete="off"
+								 class="layui-input">
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">手机号</label>
+							<div class="layui-input-block">
+								<input type="text" name="mobile" value="{$resident.mobile}" lay-verify="phone" placeholder="请输入..." autocomplete="off"
+								 class="layui-input">
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">微信号</label>
+							<div class="layui-input-block">
+								<input type="text" name="weixin" value="{$resident.weixin}" placeholder="请输入..." autocomplete="off" class="layui-input">
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">QQ号</label>
+							<div class="layui-input-block">
+								<input type="text" name="qq" value="{$resident.qq}" placeholder="请输入..." autocomplete="off" class="layui-input">
+							</div>
+						</div>
+						
+						<div class="layui-form-item" id="LAY-broker-brokerform-edit-areapicker">
+							<label class="layui-form-label"><span style="color:#f90c05;">*</span>省市区</label>
+							<div class="layui-input-inline">
+								<select name="province" class="province-selector" data-value="{$resident.province}" lay-filter="province-2"
+								 lay-verify="required">
+									<option value="">请选择省</option>
+								</select>
+							</div>
+							<div class="layui-input-inline">
+								<select name="city" class="city-selector" data-value="{$resident.city}" lay-filter="city-2" lay-verify="required">
+									<option value="">请选择市</option>
+								</select>
+							</div>
+							<div class="layui-input-inline">
+								<select name="district" class="district-selector" data-value="{$resident.district}" lay-filter="district-2"
+								 lay-verify="required">
+									<option value="">请选择区</option>
+								</select>
+							</div>
+						</div>
+						<div class="layui-form-item" id="formdetails">
+							<label class="layui-form-label">基本介绍</label>
+							<div class="layui-input-block">
+								<textarea name="details" placeholder="请输入..." class="layui-textarea">{$resident.details}</textarea>
+							</div>
+						</div>
+						
+						<div class="layui-form-item" pane>
+							<label class="layui-form-label">状态</label>
+							<div class="layui-input-block">
+								<input type="checkbox" lay-filter="switch" name="status" {eq name="resident.status|default=1" value="1" }checked{/eq}
+								 lay-skin="switch" lay-text="正常|禁用" value="1">
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<div class="layui-input-block">
+								<input type="button" lay-submit lay-filter="LAY-broker-brokerform-edit-submit" value="确认提交" class="layui-btn">
+							</div>
+						</div>
+					</div>
+
+
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use(['index', 'form', 'set', 'layarea'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin,
+			form = layui.form,
+			layarea = layui.layarea;
+		form.render();
+		
+		layarea.render({
+			elem: '#LAY-broker-brokerform-edit-areapicker',
+			data: {
+                province: '福建省',
+                city: '泉州市',
+                district: '晋江市',
+			}
+		});
+
+		form.on('submit(LAY-broker-brokerform-edit-submit)', function(obj) {
+			var index = parent.layer.getFrameIndex(window.name);
+			admin.req({
+				url: setter.baseAdminUrl + 'resident/editresident',
+				data: obj.field,
+				done: function(res) {
+					layer.msg("提交成功", {
+						icon: 1
+					});
+					parent.layui.table.reload('LAY-broker-brokerlist-table'); //重载表格
+					parent.layer.close(index);
+				}
+			});
+		});
+
+	});
+</script>

+ 199 - 0
app/worker/view/resident/residentlist.html

@@ -0,0 +1,199 @@
+<div class="layui-fluid">
+	<div class="layui-card">
+		<div class="layui-form layui-form-pane layui-card-header layuiadmin-card-header-auto" lay-filter="LAY-broker-brokerlist-search">
+			<div class="layui-form-item">
+				<div class="layui-inline">
+					<label class="layui-form-label">名称</label>
+					<div class="layui-input-block">
+						<input type="text" name="keywords" placeholder="请输入" autocomplete="off" class="layui-input">
+					</div>
+				</div>
+				<div class="layui-inline">
+					<label class="layui-form-label">状态</label>
+					<div class="layui-input-block">
+						<select name="status">
+							<option value="">全部状态</option>
+							<option value="1">正常</option>
+							<option value="2">禁用</option>
+						</select>
+					</div>
+				</div>
+				<div class="layui-inline">
+					<button class="layui-btn" lay-submit lay-filter="LAY-broker-brokerlist-btn">
+						<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
+					</button>
+				</div>
+			</div>
+		</div>
+
+		<div class="layui-card-body">
+			<div style="padding-bottom: 10px;">
+				<button class="layui-btn layuiadmin-btn" data-type="batchdel">删除</button>
+				<button class="layui-btn layuiadmin-btn" data-type="add">添加</button>
+			</div>
+
+			<table id="LAY-broker-brokerlist-table" lay-filter="LAY-broker-brokerlist-table"></table>
+			<script type="text/html" id="muserTpl">
+				{{#  if(d.userid != 0){ }}
+					{{d.user.realname}} - {{d.user.mobile}}
+				{{#  } }}
+			</script>
+			<script type="text/html" id="workertitleTpl">
+				{{d.worker.title}}
+			</script>
+			<script type="text/html" id="usercountTpl">
+				{{d.user_count}}
+			</script>
+			<script type="text/html" id="setTpl">
+				<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
+				<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
+			</script>
+		</div>
+	</div>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use(['index', 'form', 'set', 'table'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin,
+			form = layui.form,
+			table = layui.table;
+		form.render();
+
+		table.render({
+			elem: '#LAY-broker-brokerlist-table',
+			url: setter.baseAdminUrl + 'resident/listresident',
+			cols: [
+				[
+					{ type: 'checkbox', fixed: 'left' },
+					{ field: 'id', width: 80, title: '表ID', sort: true },
+					{ field: 'title', title: '姓名', edit: 'text' },
+					{ field: 'mobile', title: '手机号' },
+					{ field: 'weixin', title: '微信号', edit: 'text' },
+					{ field: 'qq', title: 'QQ号', edit: 'text' },
+					{ field: 'muser', title: '关联的用户(姓名-手机号)', templet: '#muserTpl', minWidth: 250, align: 'left' },
+					{ field: 'status_text', title: '状态', width: 100, align: 'center' },
+					{ field: 'createtime', title: '创建时间', width: 170 },
+					{ title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#setTpl' }
+				]
+			],
+			page: true,
+			limit: 50,
+			cellMinWidth: 150,
+			text: '对不起,加载出现异常!'
+		});
+
+		form.on('submit(LAY-broker-brokerlist-btn)', function(data) {
+			table.reload('LAY-broker-brokerlist-table', {
+				where: data.field,
+				page: {
+					curr: 1
+				}
+			});
+		});
+
+		table.on('edit(LAY-broker-brokerlist-table)', function(obj) {
+			var id = obj.data.id,
+				field = obj.field,
+				value = obj.value;
+			admin.req({
+				url: setter.baseAdminUrl + 'resident/fieldresident',
+				data: { id: id, field: field, value: value },
+				done: function(res) {
+					layer.msg('修改成功');
+					layui.table.reload('LAY-broker-brokerlist-table');
+				}
+			});
+		});
+
+		var active = {
+			batchdel: function() {
+				var checkStatus = table.checkStatus('LAY-broker-brokerlist-table'),
+					checkData = checkStatus.data; //得到选中的数据
+				if (checkData.length === 0) {
+					return layer.msg('请选择数据');
+				}
+				var idarr = [];
+				for (var i = 0; i < checkData.length; i++) {
+					idarr.push(checkData[i].id);
+				}
+				layer.prompt({
+					formType: 1,
+					title: '敏感操作,请验证密码'
+				}, function(value, index) {
+					layer.close(index);
+					layer.confirm('确定删除此驻场老师吗?', function(index) {
+						admin.req({
+							url: setter.baseAdminUrl + 'resident/delresident',
+							data: {
+								password: value,
+								idarr: idarr
+							},
+							done: function(res) {
+								table.reload('LAY-broker-brokerlist-table');
+								layer.msg('已删除');
+							}
+						});
+						layer.close(index);
+					});
+				});
+			},
+			add: function() {
+				var index = layer.open({
+					type: 2,
+					title: '添加驻场老师',
+					content: 'residentform.html?id=0',
+					maxmin: true,
+					area: ['750px', '480px']
+				});
+				layer.full(index);
+			}
+		};
+
+		table.on('tool(LAY-broker-brokerlist-table)', function(obj) {
+			var data = obj.data;
+			if (obj.event === 'del') {
+				layer.prompt({
+					formType: 1,
+					title: '敏感操作,请验证密码'
+				}, function(value, index) {
+					layer.close(index);
+					layer.confirm('确定删除此驻场老师吗?', function(index) {
+						admin.req({
+							url: setter.baseAdminUrl + 'resident/delresident',
+							data: {
+								password: value,
+								idarr: [data.id]
+							},
+							done: function(res) {
+								obj.del();
+								layer.msg('已删除');
+							}
+						});
+						layer.close(index);
+					});
+				});
+			} else if (obj.event === 'edit') {
+				var index = layer.open({
+					type: 2,
+					title: '编辑驻场老师',
+					content: 'residentform.html?id=' + data.id,
+					maxmin: true,
+					area: ['750px', '480px']
+				});
+				layer.full(index);
+			}
+		});
+
+		$('.layui-btn.layuiadmin-btn').on('click', function() {
+			var type = $(this).data('type');
+			active[type] ? active[type].call(this) : '';
+		});
+
+	});
+</script>

+ 93 - 1
app/worker/view/user/userform.html

@@ -183,6 +183,79 @@
 						<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
 							<legend>简历信息</legend>
 						</fieldset>
+						<div class="layui-form-item">
+							<label class="layui-form-label">求职意向</label>
+							<div class="layui-input-block">
+								<!--<textarea name="jobintention" placeholder="请输入求职意向" class="layui-textarea">{$user.jobintention}</textarea>-->
+								<select name="jobintention" lay-search lay-filter="jobintention">
+									<option value="">全部企业(可搜索)</option>
+									{volist name="willlist" id="vo"}
+									<option value="{$vo['id']}" {if $user.jobintention == $vo.id}selected{/if}>{$vo['title']}</option>
+									{/volist}
+								</select>
+							</div>
+						</div>
+						<div class="layui-form-item emp_time_form" {if condition="!empty($user) && $user['jobintention']==1"}style="display:none"{/if}>
+							<label class="layui-form-label">用工时间</label>
+							<div class="layui-input-block">
+								{volist name="emptimelist" id="vo"}
+								<input type="checkbox" name="emp_time[]" value="{$vo.name}" title="{$vo.name}"
+									   {if condition="!$user->isEmpty() && !empty($user['emp_time']) && in_array($vo['name'],$user['emp_time'])"}
+									   checked
+									   {/if}
+								/>
+								{/volist}
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">上班地点</label>
+							<div class="layui-input-block">
+								{volist name="communitylist" id="vo"}
+								<input type="checkbox" name="work_place[]" value="{$vo.name}" title="{$vo.name}"
+									   {if condition="!$user->isEmpty() && !empty($user['work_place']) && in_array($vo['name'],$user['work_place'])"}
+									   checked
+									   {/if}
+								/>
+								{/volist}
+							</div>
+						</div>
+						<div class="layui-form-item" pane>
+							<label class="layui-form-label">岗位设置方式</label>
+							<div class="layui-input-block">
+								<input type="radio" lay-filter="com_cate_type" name="com_cate_type" value="1" title="选择项方式" {eq name="user.com_cate_type|default=1" value="1" }checked{/eq} />
+								<input type="radio" lay-filter="com_cate_type" name="com_cate_type" value="2" title="手工填写方式" {eq name="user.com_cate_type" value="2" }checked{/eq} />
+							</div>
+						</div>
+						<div class="layui-form-item com_cate_form" {if condition="!empty($user) && $user['com_cate_type']==2"}style="display:none"{/if}>
+							<label class="layui-form-label">岗位类型</label>
+							<div class="layui-input-block">
+								{volist name="comlist" id="vo"}
+								<input type="checkbox" name="com_cate[]" value="{$vo.title}" title="{$vo.title}"
+									   {if condition="!$user->isEmpty() && !empty($user['com_cate']) && in_array($vo['title'],$user['com_cate'])"}
+									   checked
+									   {/if}
+								/>
+								{/volist}
+							</div>
+						</div>
+						<div class="layui-form-item com_cate_other_form" {if condition="!empty($user) && $user['com_cate_type']==1"}style="display:none"{/if}>
+							<label class="layui-form-label">岗位类型</label>
+							<div class="layui-input-block">
+								<input type="text" name="com_cate_other" value="{$user.com_cate_other}" placeholder="请输入岗位类型" autocomplete="off" class="layui-input">
+							</div>
+						</div>
+						<div class="layui-form-item user_tags_form">
+							<label class="layui-form-label">用户标签</label>
+							<div class="layui-input-block">
+								{volist name="usertags" id="vo"}
+								<input type="checkbox" name="user_tags[]" value="{$vo.name}" title="{$vo.name}"
+									   {if condition="!$user->isEmpty() && !empty($user['user_tags']) && in_array($vo['name'],$user['user_tags'])"}
+									   checked
+									   {/if}
+								/>
+								{/volist}
+							</div>
+						</div>
 						<div class="layui-form-item">
 							<label class="layui-form-label">现居住地</label>
 							<div class="layui-input-block">
@@ -261,7 +334,7 @@
 		var agentbroker = selectN({
 			elem: '#agentbroker',
 			search: [false, false],
-			tips: ["请选择代理门店", "请选择职业顾问"],
+			tips: ["请选择代理门店", "请选择经纪人"],
 			data: {$agentlist|raw},
 			selected: [{$user.broker.agentid}, {$user.broker.id}],
 			field: { idName: 'id', titleName: 'title', childName: 'broker' }
@@ -296,6 +369,25 @@
 		$('.echo-attachment-image-list').on('click', '.attachmentdel', function() {
 			$(this).parent().remove();
 		});
+
+		form.on('radio(com_cate_type)', function(data){
+			if (data.value==1) {
+				$('.com_cate_other_form').hide();
+				$('.com_cate_form').show();
+			} else {
+				$('.com_cate_form').hide();
+				$('.com_cate_other_form').show();
+			}
+		});
+
+		form.on('select(jobintention)', function(data){
+			if (data.value==1) {
+				$('.emp_time_form').hide();
+			} else {
+				$('.emp_time_form').show();
+			}
+		});
+
 		upload.render({
 			elem: '.attachment-upload-images',
 			url: setter.baseUrl + 'agent/attachment/tplfieldimage',

+ 13 - 2
app/worker/view/user/userlist.html

@@ -19,6 +19,17 @@
 						</select>
 					</div>
 				</div>
+				<div class="layui-inline">
+					<label class="layui-form-label">门店</label>
+					<div class="layui-input-block">
+						<select name="agentid" lay-search>
+							<option value="">全部门店(可搜索)</option>
+							{volist name="agentlist" id="vo"}
+							<option value="{$vo.id}">{$vo.title}</option>
+							{/volist}
+						</select>
+					</div>
+				</div>
 				<div class="layui-inline">
 					<label class="layui-form-label">状态</label>
 					<div class="layui-input-block">
@@ -87,7 +98,7 @@
 		var agentbroker = selectN({
 			elem: '#agentbroker',
 			search: [true, true],
-			tips: ["请选择代理门店(可搜索)", "请选择职业顾问(可搜索)"],
+			tips: ["请选择代理门店(可搜索)", "请选择经纪人(可搜索)"],
 			data: {$agentlist|raw},
 			selected: [0, 0],
 			field: { idName: 'id', titleName: 'title', childName: 'broker' }
@@ -109,7 +120,7 @@
 					{ field: 'authstatus_text', title: '实名认证', minWidth: 100, align: 'center' },
 					{ field: 'groupsid', title: '用户组', templet: '#groupsidTpl' },
 					{ field: 'agentid', title: '代理门店', templet: '#agentidTpl' },
-					{ field: 'brokerid', title: '职业顾问', templet: '#brokeridTpl' },
+					{ field: 'brokerid', title: '经纪人', templet: '#brokeridTpl' },
 					{ field: 'createtime', title: '注册时间', width: 170, sort: true },
 					{ field: 'followstatus_text', title: '跟进状态', minWidth: 150, align: 'center' },
 					{ title: '操作', minWidth: 220, align: 'center', fixed: 'right', toolbar: '#setTpl' }