浏览代码

公司简历库

linwu 2 年之前
父节点
当前提交
9f362197df

+ 1 - 1
app/admin/view/user/userform.html

@@ -286,7 +286,7 @@
 							<label class="layui-form-label">学历</label>
 							<div class="layui-input-block">
 								<!--<input type="text" name="education" value="{$user.education}" placeholder="请输入学历" autocomplete="off" class="layui-input">-->
-								<select name="companyid" lay-search>
+								<select name="education" lay-search>
 									<option value="">全部(可搜索)</option>
 									<option value="1" {eq name="user.education" value="1"}selected{/eq}>初中</option>
 									<option value="2" {eq name="user.education" value="2"}selected{/eq}>高中</option>

+ 1 - 1
app/agent/view/user/userform.html

@@ -272,7 +272,7 @@
 							<label class="layui-form-label">学历</label>
 							<div class="layui-input-block">
 								<!--<input type="text" name="education" value="{$user.education}" placeholder="请输入学历" autocomplete="off" class="layui-input">-->
-								<select name="companyid" lay-search>
+								<select name="education" lay-search>
 									<option value="">全部(可搜索)</option>
 									<option value="1" {eq name="user.education" value="1"}selected{/eq}>初中</option>
 									<option value="2" {eq name="user.education" value="2"}selected{/eq}>高中</option>

+ 103 - 0
app/common/model/WorkerResume.php

@@ -0,0 +1,103 @@
+<?php
+
+namespace app\common\model;
+
+use think\Model;
+use think\model\concern\SoftDelete;
+
+class WorkerResume extends Model
+{
+    use SoftDelete;
+    protected $deleteTime = 'deletetime';
+    protected $defaultSoftDelete = 0;
+
+    // 设置字段信息
+    protected $schema = [
+        'id'             => 'int',
+        'workerid'       => 'int',
+        'groupsid'       => 'int',
+        'nickname'       => 'string',
+        'avatar'         => 'string',
+        'mobile'         => 'string',
+        'status'         => 'tinyint',
+        'idcardzpic'     => 'string',
+        'idcardfpic'     => 'string',
+        'idcard'         => 'string',
+        'gender'         => 'tinyint',
+        'birthday'       => 'string',
+        'address'        => 'string',
+        'education'      => 'string',
+        'createtime'     => 'int',
+        'jobintention'   => 'string',
+        'workexperience' => 'string',
+        'eduexperience'  => 'string',
+        'followstatus'   => 'tinyint',
+        'wxampcode'      => 'string',
+        'bankcard'       => 'string',
+        'emp_time'       => 'string',
+        'user_tags'      => 'string',
+        'com_cate'       => 'string',
+        'volume'         => 'int',
+        'deletetime'     => 'int',
+        'work_place'     => 'string',
+        'com_cate_type'  => 'int',
+        'com_cate_other' => 'string',
+        'comment'        => 'string',
+    ];
+
+    // 设置字段自动转换类型
+    protected $type = [
+        'bankcard'   => 'json',
+        'createtime' => 'timestamp:Y-m-d H:i:s',
+        'emp_time'   => 'json',
+        'com_cate'   => 'json',
+        'work_place' => 'json',
+        'user_tags'  => 'json',
+    ];
+    protected $jsonAssoc = true;
+
+    public function getFollowstatusTextAttr($value, $data)
+    {
+        $followstatus = [1 => '未跟进', 2 => '未面试', 3 => '面试通过', 4 => '面试未通过', 5 => '用户放弃', 6 => '已入职', 7 => '已离职'];
+        return $followstatus[$data['followstatus']];
+    }
+
+    public function getEducationTextAttr($value, $data)
+    {
+        $education = ['' => '', 1 => '初中', 2 => '高中', 3 => '中技', 4 => '中专', 5 => '大专', 6 => '本科', 7 => '硕士', 8 => '博士'];
+        return $education[$data['education']];
+    }
+
+    public function getWorkerTextAttr($value, $data)
+    {
+        $experience = ['' => '', 1 => '无经验', 2 => '一年以下', 3 => '1-3年', 4 => '3-5年', 5 => '5-10年', 6 => '10年以上'];
+        return $experience[$data['workexperience']];
+    }
+
+    public function getJobintentionTextAttr($value, $data)
+    {
+        $title = '';
+        if ($data['jobintention']) {
+            $title = UserWill::where('id', $data['jobintention'])->value('title');
+        }
+        return $title;
+    }
+
+    // 关联UserGroups
+    public function userGroups()
+    {
+        return $this->hasOne(UserGroups::class, "id", "groupsid");
+    }
+
+    // 关联WorkerGroups
+    public function workerGroup()
+    {
+        return $this->hasOne(WorkerGroup::class, "id", "groupid");
+    }
+
+    // 关联Worker
+    public function worker()
+    {
+        return $this->hasOne(Worker::class, "id", "workerid");
+    }
+}

+ 170 - 1
app/worker/controller/Resume.php

@@ -2,8 +2,16 @@
 
 namespace app\worker\controller;
 
+use app\common\model\RensheCode;
+use app\common\model\UserTags;
+use app\common\model\UserWill;
 use app\common\model\WorkerGroup;
+use app\common\model\UserGroups as UserGroupsModel;
+use app\common\model\WorkerResume as WorkerResumeModel;
+use app\common\model\ComjobsCate as ComjobsCateModel;
+use app\common\validate\User as UserValidate;
 use app\worker\BaseController;
+use think\exception\ValidateException;
 
 class Resume extends BaseController
 {
@@ -56,7 +64,7 @@ class Resume extends BaseController
     {
         $id       = input('id/d, 0');
         $workerid = $this->access_worker['id'];
-        $group     = WorkerGroup::where('workerid', $workerid)->where('id', $id)->findOrEmpty();
+        $group    = WorkerGroup::where('workerid', $workerid)->where('id', $id)->findOrEmpty();
         return view('resume/groupform', [
             'group' => $group,
         ]);
@@ -82,4 +90,165 @@ class Resume extends BaseController
         ]));
     }
 
+    public function companylist()
+    {
+        $workerid   = $this->access_worker['id'];
+        $groupslist = UserGroupsModel::order(['isdefault' => 'desc', 'id' => 'asc'])->select();
+        return view('resume/companylist', [
+            'groupslist' => $groupslist,
+        ]);
+    }
+
+    public function listCompany()
+    {
+        $workerid = $this->access_worker['id'];
+        $limit    = input('limit');
+        $page     = input('page');
+        $map      = [];
+        $map[]    = ['workerid', '=', $workerid];
+        $keywords = input('keywords/s');
+        if (!empty($keywords)) {
+            $map[] = ['nickname', 'like', '%' . $keywords . '%', 'or'];
+        }
+        $groupsid = input('groupsid/d');
+        if (!empty($groupsid)) {
+            $map[] = ['groupsid', '=', $groupsid];
+        }
+        $list  = WorkerResumeModel::with(['userGroups'])->where($map)->order('id', 'desc')->limit($limit)->page($page)->append(['followstatus_text'])->select();
+        $count = WorkerResumeModel::where($map)->count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
+
+    public function fieldCompany()
+    {
+        $workerid = $this->access_worker['id'];
+        $id       = input('id/d', 0);
+        $user     = WorkerResumeModel::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 delCompany()
+    {
+        $idarr = input('idarr/a');
+        WorkerResumeModel::destroy($idarr);
+        exit(json_encode([
+            'code' => 0,
+            'msg'  => "",
+        ]));
+    }
+
+    public function companyForm()
+    {
+        $id            = input('id/d', 0);
+        $user          = WorkerResumeModel::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 = ComjobsCateModel::select();
+        return view('resume/companyform', [
+            'groupslist'    => $groupslist,
+            'willlist'      => $willlist,
+            'usertags'      => $usertags,
+            'user'          => $user,
+            'emptimelist'   => $emptimelist,
+            'communitylist' => $communitylist,
+            'comlist'       => $comlist,
+        ]);
+    }
+
+    public function editCompany()
+    {
+        $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(),
+            ]));
+        }
+
+        //手机号
+        $workerid         = $this->access_worker['id'];
+        $check_user_where = [['mobile', '=', $mobile], ['workerid', '=', $workerid]];
+        if (!empty($id)) {
+            $check_user_where[] = ['id', '<>', $id];
+        }
+        $check_user = WorkerResumeModel::where($check_user_where)->find();
+        if (!empty($check_user)) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => '手机号已存在',
+            ]));
+        }
+
+        $data = [
+            'groupsid'       => input('groupsid/d', 0),
+            'workerid'       => $workerid,
+            'nickname'       => input('nickname/s', ""),
+            'avatar'         => input('avatar/s', ""),
+            'mobile'         => $mobile,
+            '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', ""),
+            'comment'        => input('comment/s', ""),
+        ];
+        if (empty($id)) {
+            $data['createtime'] = time();
+            WorkerResumeModel::create($data);
+        } else {
+            $data['id'] = $id;
+            WorkerResumeModel::update($data);
+        }
+
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
 }

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

@@ -133,9 +133,9 @@
 							<cite>简历</cite>
 							<span class="layui-nav-more"></span></a>
 						<dl class="layui-nav-child">
-							<!--<dd>-->
-								<!--<a lay-href="{:url('/resume/companylist')}" lay-text="公司简历库">公司简历库</a>-->
-							<!--</dd>-->
+							<dd>
+								<a lay-href="{:url('/resume/companylist')}" lay-text="公司简历库">公司简历库</a>
+							</dd>
 							<dd>
 								<a lay-href="{:url('/user/userlist')}" lay-text="系统简历库">系统简历库</a>
 							</dd>

+ 409 - 0
app/worker/view/resume/companyform.html

@@ -0,0 +1,409 @@
+<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-user-userform-edit">
+						<input type="hidden" name="id" value="{$user.id}" />
+						<div class="layui-form-item">
+							<label class="layui-form-label">用户组</label>
+							<div class="layui-input-block">
+								<select name="groupsid">
+									<option value="">请选择用户组</option>
+									{volist name="groupslist" id="vo"}
+									<option value="{$vo.id}" {$user.groupsid===$vo.id ? 'selected' : '' }>{$vo.title}</option>
+									{/volist}
+								</select>
+							</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="nickname" value="{$user.nickname}" 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">
+								<div class="layui-upload">
+									<button type="button" class="layui-btn attachment-upload-images" data-input="avatar" data-amount="1">上传图片</button>
+									<div class="layui-inline layui-word-aux"> 最佳尺寸:320px*320px </div>
+									<div class="layui-upload-list echo-attachment-image-list" id="avatar">
+										{notempty name="user.avatar"}
+										<div>
+											<input type="hidden" name="avatar" value="{$user.avatar}">
+											<img src="{$user.avatar}">
+										</div>
+										{/notempty}
+									</div>
+								</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="nickname" value="{$user.nickname}" 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="{$user.mobile}" lay-verify="phone" placeholder="请输入手机号" autocomplete="off"
+								 class="layui-input">
+							</div>
+						</div>
+						<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">
+								<input type="text" name="bankcard[openbank]" value="{$user.bankcard.openbank}" 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="bankcard[account]" value="{$user.bankcard.account}" 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="bankcard[number]" value="{$user.bankcard.number}" placeholder="请输入账户号" autocomplete="off"
+								 class="layui-input">
+							</div>
+						</div>
+
+						<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">
+								<div class="layui-upload">
+									<button type="button" class="layui-btn attachment-upload-images" data-input="idcardzpic" data-amount="1">上传图片</button>
+									<div class="layui-upload-list echo-attachment-image-list" id="idcardzpic">
+										{notempty name="user.idcardzpic"}
+										<div>
+											<input type="hidden" name="idcardzpic" value="{$user.idcardzpic}">
+											<img src="{$user.idcardzpic}" class="idcard">
+										</div>
+										{/notempty}
+									</div>
+								</div>
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<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="idcardfpic" data-amount="1">上传图片</button>
+									<div class="layui-upload-list echo-attachment-image-list" id="idcardfpic">
+										{notempty name="user.idcardfpic"}
+										<div>
+											<input type="hidden" name="idcardfpic" value="{$user.idcardfpic}">
+											<img src="{$user.idcardfpic}" class="idcard">
+										</div>
+										{/notempty}
+									</div>
+								</div>
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">身份证号</label>
+							<div class="layui-input-block">
+								<input type="text" name="idcard" value="{$user.idcard}" placeholder="请输入身份证号" autocomplete="off" class="layui-input">
+							</div>
+						</div>
+						<div class="layui-form-item" pane>
+							<label class="layui-form-label">性别</label>
+							<div class="layui-input-block">
+								<input type="radio" name="gender" value="1" title="男" {eq name="user.gender|default=1" value="1" }checked{/eq} />
+								<input type="radio" name="gender" value="2" title="女" {eq name="user.gender" value="2" }checked{/eq} />
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">出生日期</label>
+							<div class="layui-input-block">
+								<input type="text" name="birthday" id="birthday" value="{$user.birthday}" placeholder="请选择出生日期" autocomplete="off"
+								 class="layui-input">
+							</div>
+						</div>
+
+						<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">
+								<input type="text" name="address" value="{$user.address}" placeholder="请输入现居住地" autocomplete="off" class="layui-input">
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">学历</label>
+							<div class="layui-input-block">
+								<select name="education" lay-search>
+									<option value="">全部(可搜索)</option>
+									<option value="1" {eq name="user.education" value="1"}selected{/eq}>初中</option>
+									<option value="2" {eq name="user.education" value="2"}selected{/eq}>高中</option>
+									<option value="3" {eq name="user.education" value="3"}selected{/eq}>中技</option>
+									<option value="4" {eq name="user.education" value="4"}selected{/eq}>中专</option>
+									<option value="5" {eq name="user.education" value="5"}selected{/eq}>大专</option>
+									<option value="6" {eq name="user.education" value="6"}selected{/eq}>本科</option>
+									<option value="7" {eq name="user.education" value="7"}selected{/eq}>硕士</option>
+									<option value="8" {eq name="user.education" value="8"}selected{/eq}>博士</option>
+								</select>
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">工作经验</label>
+							<div class="layui-input-block">
+								<!--<textarea name="workexperience" placeholder="请输入工作经验" class="layui-textarea">{$user.workexperience}</textarea>-->
+								<select name="workexperience" lay-search>
+									<option value="">全部(可搜索)</option>
+									<option value="1" {eq name="user.workexperience" value="1"}selected{/eq}>无经验</option>
+									<option value="2" {eq name="user.workexperience" value="2"}selected{/eq}>一年以下</option>
+									<option value="3" {eq name="user.workexperience" value="3"}selected{/eq}>1-3年</option>
+									<option value="4" {eq name="user.workexperience" value="4"}selected{/eq}>3-5年</option>
+									<option value="5" {eq name="user.workexperience" value="5"}selected{/eq}>5-10年</option>
+									<option value="6" {eq name="user.workexperience" value="6"}selected{/eq}>10年以上</option>
+								</select>
+
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">个人描述</label>
+							<div class="layui-input-block">
+								<textarea name="eduexperience" placeholder="请输入个人描述" class="layui-textarea">{$user.eduexperience}</textarea>
+							</div>
+						</div>
+
+						<div class="layui-form-item" pane>
+							<label class="layui-form-label">跟进状态</label>
+							<div class="layui-input-block">
+								<input type="radio" name="followstatus" value="1" title="未跟进" {eq name="user.followstatus|default=1" value="1" }checked{/eq} />
+								<input type="radio" name="followstatus" value="2" title="未面试" {eq name="user.followstatus" value="2" }checked{/eq} />
+								<input type="radio" name="followstatus" value="3" title="面试通过" {eq name="user.followstatus" value="3" }checked{/eq} />
+								<input type="radio" name="followstatus" value="4" title="面试未通过" {eq name="user.followstatus" value="4" }checked{/eq} />
+								<input type="radio" name="followstatus" value="5" title="用户放弃" {eq name="user.followstatus" value="5" }checked{/eq} />
+								<input type="radio" name="followstatus" value="6" title="已入职" {eq name="user.followstatus" value="6" }checked{/eq} />
+								<input type="radio" name="followstatus" value="7" title="已离职" {eq name="user.followstatus" value="7" }checked{/eq} />
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">备注</label>
+							<div class="layui-input-block">
+								<textarea name="comment" placeholder="请输入备注" class="layui-textarea">{$user.comment}</textarea>
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<div class="layui-input-block">
+								<input type="button" lay-submit lay-filter="LAY-user-userform-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', 'laydate' ], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin,
+			form = layui.form,
+			laydate = layui.laydate,
+			upload = layui.upload;
+		form.render();
+
+		laydate.render({
+			elem: '#birthday',
+			type: 'date'
+		});
+		laydate.render({
+			elem: '#createtime',
+			type: 'datetime'
+		});
+
+		form.on('submit(LAY-user-userform-edit-submit)', function(obj) {
+			var index = parent.layer.getFrameIndex(window.name);
+			admin.req({
+				url: setter.baseWorkerUrl + 'resume/editcompany',
+				type: 'post',
+				data: obj.field,
+				done: function(res) {
+					layer.msg("提交成功", {
+						icon: 1
+					});
+					parent.layui.table.reload('LAY-user-userlist-table'); //重载表格
+					parent.layer.close(index);
+				}
+			});
+		});
+
+		$('.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();
+		});
+
+		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.baseWorkerUrl + 'attachment/tplfieldimage',
+			accept: 'images',
+			exits: 'jpg|png|jpeg',
+			acceptMime: 'image/*',
+			size: 2048,
+			number: 1,
+			method: 'post',
+			before: function(obj) {
+				var item = this.item;
+				upload_input = $(item).data('input');
+				upload_amount = $(item).data('amount');
+				layer.load();
+			},
+			done: function(res, index, upload) {
+				layer.closeAll('loading');
+				var html = "";
+				if (upload_amount == 1) {
+					html += '<div> <input type="hidden" name="' + upload_input + '" value="' + res.data.src + '"> ';
+					html += '<img src="' + res.data.src + '" class="idcard"></div>';
+					$("#" + upload_input).html(html);
+				} else {
+					html += '<div> <input type="hidden" name="' + upload_input + '[]" value="' + res.data.src + '"> ';
+					html += '<img src="' + res.data.src +
+						'"> <button type="button" class="attachmentdel layui-btn layui-btn-primary layui-btn-xs layui-btn-fluid">删除</button></div>';
+					$("#" + upload_input).append(html);
+				}
+			},
+			error: function(index, upload) {
+				layer.closeAll('loading');
+			}
+		});
+	});
+</script>
+</body>
+</html>

+ 197 - 0
app/worker/view/resume/companylist.html

@@ -0,0 +1,197 @@
+<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-userlist-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="groupsid" lay-search>
+							<option value="">全部用户组(可搜索)</option>
+							{volist name="groupslist" id="vo"}
+							<option value="{$vo.id}">{$vo.title}</option>
+							{/volist}
+						</select>
+					</div>
+				</div>
+				<div class="layui-inline">
+					<button class="layui-btn" lay-submit lay-filter="LAY-user-userlist-search-btn">
+						<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
+					</button>
+				</div>
+			</div>
+		</div>
+
+		<div class="layui-card-body">
+			<div class="layui-form" lay-filter="LAY-user-userlist-setbroker" style="padding-bottom: 10px;">
+				<div class="layui-form-item">
+					<div class="layui-inline">
+						<button class="layui-btn layuiadmin-btn" data-type="batchdel">删除</button>
+					</div>
+					<div class="layui-inline">
+						<button class="layui-btn layuiadmin-btn" data-type="add">添加新用户</button>
+					</div>
+				</div>
+			</div>
+			<table id="LAY-user-userlist-table" lay-filter="LAY-user-userlist-table"></table>
+			<script type="text/html" id="avatarTpl">
+				{{#  if(d.avatar != ''){ }}
+						<div id="pic{{d.id}}" lay-event="pic">
+							<img style="width: 100%; height: 100%;" src="{{d.avatar}}">
+						</div>
+						{{#  } }}
+					</script>
+			<script type="text/html" id="groupsidTpl">
+				{{d.groupsid == 0 ? '' : d.userGroups.title}}
+			</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-user-userlist-table',
+			url: setter.baseWorkerUrl + 'resume/listcompany',
+			cols: [
+				[
+					{ type: 'checkbox', fixed: 'left' },
+					{ field: 'id', width: 80, title: '表ID', sort: true },
+					{ field: 'avatar', width: 60, title: '头像', templet: '#avatarTpl' },
+					{ field: 'nickname', title: '姓名', edit: 'text' },
+					{ field: 'mobile', title: '手机号' },
+					{ field: 'groupsid', title: '用户组', templet: '#groupsidTpl' },
+					{ field: 'createtime', title: '添加时间', width: 170, sort: true },
+					{ field: 'followstatus_text', title: '跟进状态', minWidth: 150, align: 'center' },
+					{ title: '操作', minWidth: 220, align: 'center', fixed: 'right', toolbar: '#setTpl' }
+				]
+			],
+			page: true,
+			limit: 50,
+			toolbar: true,
+			cellMinWidth: 200,
+			text: '对不起,加载出现异常!'
+		});
+
+		form.on('submit(LAY-user-userlist-search-btn)', function(data) {
+			table.reload('LAY-user-userlist-table', {
+				where: data.field,
+				page: {
+					curr: 1
+				}
+			});
+		});
+
+		//监听单元格编辑
+		table.on('edit(LAY-user-userlist-table)', function(obj) {
+			var id = obj.data.id,
+				field = obj.field,
+				value = obj.value;
+			admin.req({
+				url: setter.baseWorkerUrl + 'resume/fieldcompany',
+				data: { id: id, field: field, value: value },
+				done: function(res) {
+					layer.msg('修改成功');
+					layui.table.reload('LAY-user-userlist-table');
+				}
+			});
+		});
+
+		var active = {
+			batchdel: function() {
+				var checkStatus = table.checkStatus('LAY-user-userlist-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.baseWorkerUrl + 'resume/delcompany',
+						data: {
+							idarr: idarr
+						},
+						done: function(res) {
+							table.reload('LAY-user-userlist-table');
+							layer.msg('已删除');
+						}
+					});
+					layer.close(index);
+				});
+			},
+			add: function() {
+				var index = layer.open({
+					type: 2,
+					title: '添加用户',
+					content: 'companyform.html?id=0',
+					maxmin: true,
+					area: ['550px', '550px']
+				});
+				layer.full(index);
+			},
+		};
+
+		table.on('tool(LAY-user-userlist-table)', function(obj) {
+			var data = obj.data;
+			if (obj.event === 'del') {
+				layer.confirm('确定删除此用户吗?', function(index) {
+					admin.req({
+						url: setter.baseWorkerUrl + 'resume/delcompany',
+						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: 'companyform.html?id=' + data.id,
+					maxmin: true,
+					area: ['550px', '550px']
+				});
+				layer.full(index);
+			} else if (obj.event === 'pic') {
+				layer.photos({
+					photos: '#pic' + data.id,
+					anim: 5,
+				});
+			}
+		});
+
+		$('.layui-btn.layuiadmin-btn').on('click', function() {
+			var type = $(this).data('type');
+			active[type] ? active[type].call(this) : '';
+		});
+
+	});
+</script>

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

@@ -276,7 +276,17 @@
 						<div class="layui-form-item">
 							<label class="layui-form-label">学历</label>
 							<div class="layui-input-block">
-								<input type="text" name="education" value="{$user.education}" placeholder="请输入学历" autocomplete="off" class="layui-input">
+								<select name="education" lay-search>
+									<option value="">全部(可搜索)</option>
+									<option value="1" {eq name="user.education" value="1"}selected{/eq}>初中</option>
+									<option value="2" {eq name="user.education" value="2"}selected{/eq}>高中</option>
+									<option value="3" {eq name="user.education" value="3"}selected{/eq}>中技</option>
+									<option value="4" {eq name="user.education" value="4"}selected{/eq}>中专</option>
+									<option value="5" {eq name="user.education" value="5"}selected{/eq}>大专</option>
+									<option value="6" {eq name="user.education" value="6"}selected{/eq}>本科</option>
+									<option value="7" {eq name="user.education" value="7"}selected{/eq}>硕士</option>
+									<option value="8" {eq name="user.education" value="8"}selected{/eq}>博士</option>
+								</select>
 							</div>
 						</div>
 						<div class="layui-form-item">

+ 1 - 1
public/mainapp.php

@@ -11,7 +11,7 @@
 
 // [ 应用入口文件 ]
 namespace think;
-
+header('Access-Control-Allow-Origin:*');
 require __DIR__ . '/../vendor/autoload.php';
 
 // 执行HTTP应用并响应