浏览代码

简历分组

linwu 2 年之前
父节点
当前提交
2916ff05fe

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

@@ -15,6 +15,7 @@ class User extends Model
     protected $schema = [
         'id'             => 'int',
         'groupsid'       => 'int',
+        'groupid'        => 'int',
         'brokerid'       => 'int',
         'nickname'       => 'string',
         'avatar'         => 'string',
@@ -116,6 +117,12 @@ class User extends Model
         return $this->hasOne(UserGroups::class, "id", "groupsid");
     }
 
+    // 关联WorkerGroups
+    public function workerGroup()
+    {
+        return $this->hasOne(WorkerGroup::class, "id", "groupid");
+    }
+
     // 关联Broker
     public function broker()
     {

+ 16 - 0
app/common/model/WorkerGroup.php

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

+ 75 - 4
app/worker/controller/Resume.php

@@ -2,13 +2,84 @@
 
 namespace app\worker\controller;
 
+use app\common\model\WorkerGroup;
 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
 {
 
+    public function grouplist()
+    {
+        return view('resume/grouplist');
+    }
+
+    public function listgroup()
+    {
+        $workerid = $this->access_worker['id'];
+        $limit    = input('limit');
+        $page     = input('page');
+        $map      = [
+            ['workerid', '=', $workerid],
+        ];
+        $keywords = input('keywords/s');
+        if (!empty($keywords)) {
+            $map[] = ['name', 'like', '%' . $keywords . '%'];
+        }
+        $list  = WorkerGroup::where($map)->limit($limit)->page($page)->select();
+        $count = WorkerGroup::count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
+
+    public function delgroup()
+    {
+        $idarr    = input('idarr/a');
+        $workerid = $this->access_worker['id'];
+        WorkerGroup::whereIn('id', $idarr)->where('workerid', $workerid)->delete();
+        exit(json_encode([
+            'code' => 0,
+            'msg'  => "",
+        ]));
+    }
+
+    public function groupForm()
+    {
+        $id       = input('id/d, 0');
+        $workerid = $this->access_worker['id'];
+        $group     = WorkerGroup::where('workerid', $workerid)->where('id', $id)->findOrEmpty();
+        return view('resume/groupform', [
+            'group' => $group,
+        ]);
+    }
+
+    public function editgroup()
+    {
+        $id       = input('id/d');
+        $workerid = $this->access_worker['id'];
+        if (empty($id)) {
+            WorkerGroup::create([
+                'name'     => input('name/s'),
+                'workerid' => $workerid,
+            ]);
+        } else {
+            $administer = WorkerGroup::find($id);
+            $administer->save([
+                'name' => input('name/s'),
+            ]);
+        }
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
 }

+ 19 - 5
app/worker/controller/User.php

@@ -6,6 +6,7 @@ use app\common\model\ComjobsCate;
 use app\common\model\RensheCode;
 use app\common\model\UserTags;
 use app\common\model\UserWill;
+use app\common\model\WorkerGroup;
 use think\facade\Session;
 use app\worker\BaseController;
 use app\common\model\User as UserModel;
@@ -126,7 +127,9 @@ class User extends BaseController
         $workerid   = $this->access_worker['id'];
         $groupslist = UserGroupsModel::order(['isdefault' => 'desc', 'id' => 'asc'])->select();
         $agentlist  = AgentModel::with('broker')->where('workerid', '=', $workerid)->order(['id' => 'desc'])->select();
+        $grouplist  = WorkerGroup::where('workerid', $workerid)->select();
         return view('user/userlist', [
+            'grouplist'  => $grouplist,
             'groupslist' => $groupslist,
             'agentlist'  => $agentlist,
         ]);
@@ -139,19 +142,20 @@ class User extends BaseController
         if (empty($agentlist)) {
             return '没有权限';
         }
-        $agentidarr  = $agentlist->column('id');
-        $brokerlist  = BrokerModel::whereIn('agentid', $agentidarr)->select();
+        $agentidarr = $agentlist->column('id');
+        $brokerlist = BrokerModel::whereIn('agentid', $agentidarr)->select();
         if (empty($brokerlist)) {
             return '没有权限';
         }
         $id            = input('id/d', 0);
-        $brokeridarr = $brokerlist->column('id');
+        $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();
+        $grouplist     = WorkerGroup::where('workerid', $workerid)->select();
         array_push($communitylist, ['code' => 0, 'id' => 0, 'name' => "不限"]);
         $comlist = ComjobsCate::select();
         return view('user/userform', [
@@ -164,6 +168,7 @@ class User extends BaseController
             'emptimelist'   => $emptimelist,
             'communitylist' => $communitylist,
             'comlist'       => $comlist,
+            'grouplist'     => $grouplist,
         ]);
     }
 
@@ -209,7 +214,15 @@ class User extends BaseController
         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();
+        $groupsid = input('groupsid/d');
+        if (!empty($groupsid)) {
+            $map[] = ['groupsid', '=', $groupsid];
+        }
+        $groupid = input('groupid/d');
+        if (!empty($groupid)) {
+            $map[] = ['groupid', '=', $groupid];
+        }
+        $list  = UserModel::with(['userGroups', 'workerGroup', '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([
@@ -307,6 +320,7 @@ class User extends BaseController
         $brokerid       = isset($agentbrokerarr[1]) ? $agentbrokerarr[1] : 0;
         $data           = [
             'groupsid'       => input('groupsid/d', 0),
+            'groupid'        => input('groupid/d', 0),
             'brokerid'       => $brokerid,
             'nickname'       => input('nickname/s', ""),
             'avatar'         => input('avatar/s', ""),
@@ -353,7 +367,7 @@ class User extends BaseController
         } else {
             $data['id'] = $id;
             UserModel::update($data);
-            $adata      = ['identifier' => $mobile];
+            $adata = ['identifier' => $mobile];
             if (!empty($password)) {
                 $adata['password'] = md5($password);
             }

+ 3 - 3
app/worker/view/index.html

@@ -139,9 +139,9 @@
 							<dd>
 								<a lay-href="{:url('/user/userlist')}" lay-text="系统简历库">系统简历库</a>
 							</dd>
-							<!--<dd>-->
-								<!--<a lay-href="{:url('/resume/grouplist')}" 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">

+ 56 - 0
app/worker/view/resume/groupform.html

@@ -0,0 +1,56 @@
+<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="{$group['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="{$group['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;
+		form.render();
+
+		form.on('submit(LAY-user-groupsform-edit-submit)', function(obj) {
+			var index = parent.layer.getFrameIndex(window.name);
+			admin.req({
+				url: setter.baseWorkerUrl + 'resume/editgroup',
+				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/worker/view/resume/grouplist.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.baseWorkerUrl + 'resume/listgroup',
+			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: 'groupform.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.baseWorkerUrl + 'user/delgroup',
+						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: 'groupform.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>

+ 11 - 0
app/worker/view/user/userform.html

@@ -18,6 +18,17 @@
 								</select>
 							</div>
 						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label"><span style="color:#f90c05;">*</span>分组</label>
+							<div class="layui-input-block">
+								<select name="groupid" lay-verify="required">
+									<option value="">请选择分组</option>
+									{volist name="grouplist" id="vo"}
+									<option value="{$vo.id}" {$user.groupid===$vo.id ? 'selected' : '' }>{$vo.name}</option>
+									{/volist}
+								</select>
+							</div>
+						</div>
 						<div class="layui-form-item">
 							<label class="layui-form-label">代理/顾问</label>
 							<div class="layui-input-block" id="agentbroker">

+ 16 - 1
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="groupid" lay-search>
+							<option value="">全部分组(可搜索)</option>
+							{volist name="grouplist" id="vo"}
+							<option value="{$vo.id}">{$vo.name}</option>
+							{/volist}
+						</select>
+					</div>
+				</div>
 				<div class="layui-inline">
 					<label class="layui-form-label">门店</label>
 					<div class="layui-input-block">
@@ -63,7 +74,10 @@
 					</script>
 			<script type="text/html" id="groupsidTpl">
 				{{d.groupsid == 0 ? '' : d.userGroups.title}}
-					</script>
+			</script>
+			<script type="text/html" id="groupidTpl">
+				{{d.groupid == 0 ? '无' : d.workerGroup.name}}
+			</script>
 			<script type="text/html" id="agentidTpl">
 				{{d.brokerid == 0 ? '' : d.broker.agent.title}}
 					</script>
@@ -119,6 +133,7 @@
 					{ field: 'isvip_text', title: '是否VIP', minWidth: 80, align: 'center' },
 					{ field: 'authstatus_text', title: '实名认证', minWidth: 100, align: 'center' },
 					{ field: 'groupsid', title: '用户组', templet: '#groupsidTpl' },
+					{ field: 'groupid', title: '分组', templet: '#groupidTpl' },
 					{ field: 'agentid', title: '代理门店', templet: '#agentidTpl' },
 					{ field: 'brokerid', title: '经纪人', templet: '#brokeridTpl' },
 					{ field: 'createtime', title: '注册时间', width: 170, sort: true },