Browse Source

省外经纪人

linwu 1 year ago
parent
commit
532110f3a3

+ 7 - 1
app/admin/controller/Outjob.php

@@ -25,10 +25,16 @@ class Outjob extends BaseController
             if (!empty($keywords)) {
                 $map[] = ['title', 'like', '%' . $keywords . '%'];
             }
-            $status = input('status/d');
+            $status = input('status/d', 0);
             if (!empty($status)) {
                 $map[] = ['status', '=', $status];
             }
+            $source = input('source/s', '');
+            if ($source == 'admin') {
+                $map[] = ['worker_id', '=', 0];
+            } elseif ($source == 'worker') {
+                $map[] = ['worker_id', '>', 0];
+            }
 
             $list  = OutRecruitModel::where($map)
                 ->order(['priority' => 'desc', 'id' => 'desc'])

+ 14 - 0
app/admin/view/outjob/index.html

@@ -19,6 +19,16 @@
 						</select>
 					</div>
 				</div>
+				<div class="layui-inline">
+					<label class="layui-form-label">来源</label>
+					<div class="layui-input-block">
+						<select name="source">
+							<option value="">全部</option>
+							<option value="admin">总后台</option>
+							<option value="worker">企业</option>
+						</select>
+					</div>
+				</div>
 				<div class="layui-inline">
 					<button class="layui-btn" lay-submit lay-filter="LAY-outjob-list-btn">
 						<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
@@ -38,6 +48,9 @@
 				<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
 				<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="report"><i class="layui-icon layui-icon-edit"></i>报备记录</a>
 			</script>
+			<script type="text/html" id="setSource">
+				{{d.worker_id == 0 ? '总后台' : '企业'}}
+			</script>
 		</div>
 	</div>
 </div>
@@ -63,6 +76,7 @@
 					{ field: 'id', width: 80, title: '表ID', sort: true },
 					{ field: 'title', title: '岗位标题', minWidth: 300},
 					{ field: 'company_name', title: '公司名称', width: 250 },
+					{ field: 'worker_id', title: '来源', minWidth: 80, toolbar: '#setSource'},
 					{ field: 'num', title: '招聘人数', width: 100 },
 					{ field: 'province', title: '省', width: 100 },
 					{ field: 'city', title: '市', width: 100 },

+ 1 - 1
app/mainapp/controller/Wcomjobs.php

@@ -266,7 +266,7 @@ class Wcomjobs extends BaseController
     {
         $workerid  = input('workerid/d', 0);
         $comjobsid = input('comjobsid/d', 0);
-        $comjobs   = ComjobsModel::where('workerid', '=', $workerid)->where('id', '=', $comjobsid)->findOrEmpty();
+        $comjobs   = ComjobsModel::with('worker')->where('workerid', '=', $workerid)->where('id', '=', $comjobsid)->findOrEmpty();
         if ($comjobs->isEmpty()) {
             $comjobs = "NULL";
         } else {

+ 111 - 0
app/mainapp/controller/Woutjobs.php

@@ -0,0 +1,111 @@
+<?php
+
+namespace app\mainapp\controller;
+
+use app\common\model\OutRecruit as OutRecruitModel;
+use app\common\model\OutRecruitReport as OutRecruitReportModel;
+use app\common\model\AgentMarket as AgentMarketModel;
+use app\mainapp\BaseController;
+
+class Woutjobs extends BaseController
+{
+    public function listjobs()
+    {
+        $status   = input('status/d', 1);
+        $workerid = input('workerid/d', 0);
+        $ppage    = input('ppage/d', 1);
+        $psize    = input('psize/d', 20);
+        $map      = [];
+        $map[]    = ['worker_id', '=', $workerid];
+        if (!empty($status)) {
+            $map[] = ['status', '=', $status];
+        }
+        $plist = OutRecruitModel::where($map)
+            ->order(['priority' => 'desc', 'id' => 'desc'])
+            ->limit($psize)
+            ->page($ppage)
+            ->append(['status_text'])
+            ->select();
+        page_result(0, "", [
+            'plist'   => $plist,
+            'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
+        ]);
+    }
+
+    public function delrecruit()
+    {
+        $id        = input('id/d', 0);
+        $worker_id = input('workerid/d', 0);
+
+        $res = OutRecruitReportModel::where('recruit_id', $id)->find();
+        if (!empty($res)) {
+            page_result(1, "已有报备记录,无法删除");
+        }
+        OutRecruitModel::where('worker_id', $worker_id)->where('id', $id)->delete();
+
+        page_result();
+    }
+
+    public function getmarket()
+    {
+        $list = AgentMarketModel::where(1)->append(['is_bargain_text'])
+            ->select();
+        page_result(0, "", [
+            'list' => $list,
+        ]);
+    }
+
+    public function editrecruit()
+    {
+        $id = input('id/d', 0);
+
+        $data = [
+            'title'          => input('title/s', ""),
+            'worker_id'      => input('worker_id/d', 0),
+            'company_name'   => input('company_name/s', ""),
+            'num'            => input('num/d', 1),
+            'province'       => input('province/s', ""),
+            'city'           => input('city/s', ""),
+            'district'       => input('district/s', ""),
+            'address'        => input('address/s', ""),
+            'agegroup'       => input('agegroup/s', ""),
+            'tags'           => input('tags/s', ""),
+            'requirement'    => input('requirement/s', ""),
+            'comdetails'     => input('comdetails/s', ""),
+            'picall'         => input('picall/s', ""),
+            'salary'         => input('salary/s', ""),
+            'telephone'      => input('telephone/s', ""),
+            'remark'         => input('remark/s', ""),
+            'priority'       => input('priority/d', 255),
+            'volume'         => input('volume/d', 0),
+            'market_content' => input('market_content/s', ""),
+            'is_bargain'     => input('is_bargain/d', 1),
+            'updatetime'     => time(),
+        ];
+
+        $data['picall'] = json_decode($data['picall'], true);
+        $data['tags']   = explode(' ', $data['tags']);
+        $data['status'] = 2;
+        if (empty($id)) {
+            $data['createtime'] = time();
+            OutRecruitModel::create($data);
+        } else {
+            OutRecruitModel::update($data, ['id' => $id]);
+        }
+
+        page_result();
+    }
+
+    public function getrecruit()
+    {
+        $id = input('id/d', '0');
+        if (empty($id)) {
+            page_result(0, "", []);
+        }
+
+        $recruit         = OutRecruitModel::findOrEmpty($id);
+        $recruit['tags'] = implode(' ', $recruit['tags']);
+
+        page_result(0, "", $recruit);
+    }
+}

+ 11 - 0
app/mobile/view/recruit/detail.html

@@ -20,6 +20,7 @@
     .describe .header {padding:10px 20px;font-size:16px;border-bottom:1px solid #f0f0f0;}
     .describe .content {padding:10px 20px;}
     .describe .content pre {font-size: 14px;line-height: 20px;padding: 0;margin: 0;font-family: "Microsoft Yahei",arial,"Hiragino Sans GB","Hiragino Sans GB W3",宋体,simsun;}
+    .describe .content .is_bargain {color:var(--red);padding-bottom:5px;}
 </style>
 {/block}
 {block name="body"}
@@ -127,6 +128,16 @@
     </div>
 </div>
 
+<div class="describe" v-if="info.market_content">
+    <div class="header">
+        市场行情
+    </div>
+    <div class="content">
+        <div class="is_bargain">{{info.is_bargain == 1 ? '可议价' : '不可议价'}}</div>
+        <pre>{{info.market_content}}</pre>
+    </div>
+</div>
+
 <van-floating-bubble @click="onReport">报备</van-floating-bubble>
 {/block}
 {block name="script"}

+ 13 - 0
app/worker/controller/Comjobs.php

@@ -674,4 +674,17 @@ class Comjobs extends BaseController
 
         exit(json_encode(['code' => 0]));
     }
+
+    public function outjobsform()
+    {
+        $id = input('id/d',0);
+        $jobs = ComjobsModel::with('worker')->find($id);
+        if (empty($jobs)) {
+            exit('该信息不存在');
+        }
+
+        return view('comjobs/outjobsform', [
+            'jobs'       => $jobs,
+        ]);
+    }
 }

+ 11 - 1
app/worker/view/comjobs/comjobslist.html

@@ -77,6 +77,7 @@
 				{{d.comjobsCate.title}}
 			</script>
 			<script type="text/html" id="setTpl">
+				<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="syn"><i class="layui-icon layui-icon-edit"></i>同步省外</a>
 				<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>
@@ -123,7 +124,7 @@
 						{ field: 'status_text', title: '状态', width: 80, align: 'center' },
 						{ field: 'volume', title: '浏览量', width: 100, align: 'right' },
 						{ field: 'createtime', title: '创建时间', width: 170 },
-						{ title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#setTpl' }
+						{ title: '操作', width: 250, align: 'center', fixed: 'right', toolbar: '#setTpl' }
 				]
 			],
 			page: true,
@@ -254,6 +255,15 @@
 					area: ['750px', '480px']
 				});
 				layer.full(index);
+			}else if (obj.event === 'syn') {
+				var index = layer.open({
+					type: 2,
+					title: '省外招聘信息',
+					content: 'outjobsform.html?id=' + data.id,
+					maxmin: true,
+					area: ['750px', '480px']
+				});
+				layer.full(index);
 			}
 		});
 

+ 257 - 0
app/worker/view/comjobs/outjobsform.html

@@ -0,0 +1,257 @@
+<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-outjob-recruitform-edit">
+						<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="{$jobs.title}" lay-verify="required" placeholder="请输入..."
+								 autocomplete="off" class="layui-input">
+							</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="company_name" value="{$jobs.worker.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">
+								<div class="layui-upload">
+									<button type="button" class="layui-btn attachment-upload-images" data-input="picall" data-amount="9">上传图片</button>
+									<div class="layui-inline layui-word-aux"> 最佳尺寸:750px*375px </div>
+									<div class="layui-upload-list echo-attachment-image-list" id="picall">
+										{volist name="jobs.picall" id="vo"}
+										<div>
+											<input type="hidden" name="picall[]" value="{$vo}">
+											<img src="{$vo}"> <button type="button" class="attachmentdel layui-btn layui-btn-primary layui-btn-xs layui-btn-fluid">删除</button>
+										</div>
+										{/volist}
+									</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="num" value="{$jobs.num|default=1}" lay-verify="number" placeholder="请输入..."
+									   autocomplete="off" class="layui-input">
+							</div>
+						</div>
+						<div class="layui-form-item" id="LAY-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="{$jobs.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="{$jobs.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="{$jobs.district}" lay-filter="district-2"
+								 lay-verify="required">
+									<option value="">请选择区</option>
+								</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="address" value="{$jobs.address}" lay-verify="required" placeholder="请输入..."
+									   autocomplete="off" class="layui-input">
+							</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="agegroup" value="{$jobs.agegroup}" lay-verify="required" placeholder="18岁到60岁"
+								 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="tags" id="tags">
+									<input type="text" name="" id="inputTags" placeholder="回车生成标签" autocomplete="off">
+								</div>
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">岗位要求</label>
+							<div class="layui-input-block">
+								<textarea name="requirement" placeholder="请输入..." rows="6" class="layui-textarea">{$jobs.requirement}</textarea>
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">企业简介</label>
+							<div class="layui-input-block">
+								<textarea name="comdetails" placeholder="请输入..." rows="6" class="layui-textarea">{$jobs.comdetails}</textarea>
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">工资</label>
+							<div class="layui-input-block">
+								<input type="text" name="salary" value="{$jobs.zwagall}" placeholder="5000/月"
+								 autocomplete="off" class="layui-input">
+							</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="telephone" value="{$jobs.telephone}" 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">
+								<textarea name="remark" placeholder="请输入..." class="layui-textarea">{$jobs.remark}</textarea>
+							</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="market_content" id="market_content" placeholder="例如:一次性交通补贴:1000元;入职前3个月,每个月600元。" rows="6" class="layui-textarea"></textarea>
+							</div>
+						</div>
+						<div class="layui-form-item" pane>
+							<label class="layui-form-label">可否议价</label>
+							<div class="layui-input-block">
+								<input type="radio" id="is_bargain1" name="is_bargain" value="1" title="是" checked />
+								<input type="radio" id="is_bargain2" name="is_bargain" value="2" title="否" />
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<div class="layui-input-block">
+								<input type="button" value="获取市场行情参考价" class="layui-btn get-market">
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<div class="layui-input-block">
+								<input type="button" lay-submit lay-filter="LAY-outjob-recruitform-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', 'inputTags', 'layarea'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin,
+			form = layui.form,
+			inputTags = layui.inputTags,
+			upload = layui.upload,
+			layarea = layui.layarea;
+		form.render();
+
+		inputTags.render({
+			elem: '#inputTags',
+			content: {:json_encode($jobs.tags)} == null ? [] : {:json_encode($jobs.tags)},
+			aldaBtn: true,
+			count: 6,
+			done: function(value) {}
+		});
+		
+		layarea.render({
+			elem: '#LAY-areapicker',
+			data: {
+                province: '福建省',
+                city: '泉州市',
+                district: '晋江市',
+			}
+		});
+
+		$('.echo-attachment-image-list').on('click', '.attachmentdel', function() {
+			$(this).parent().remove();
+		});
+		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 + '"></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');
+			}
+		});
+
+		form.on('submit(LAY-outjob-recruitform-edit-submit)', function(obj) {
+			var index = parent.layer.getFrameIndex(window.name);
+			admin.req({
+				url: setter.baseWorkerUrl + 'outjob/editrecruit',
+				data: obj.field,
+				type: 'post',
+				done: function(res) {
+					layer.msg("提交成功", {
+						icon: 1
+					});
+					parent.layer.close(index);
+				}
+			});
+		});
+
+		//获取市场行情
+		$('.get-market').click(function() {
+			var index = layer.open({
+				type: 2,
+				title: '市场行情信息',
+				content: 'market.html',
+				maxmin: true,
+				area: ['1400px', '480px']
+			});
+		});
+
+	});
+
+	function marketFill(data) {
+		layui.$('#market_content').val(data.content);
+		layui.$('#is_bargain'+data.is_bargain).prop('checked',true);
+		layui.form.render("radio");
+	}
+</script>