linwu 1 жил өмнө
parent
commit
b0fe261987

+ 159 - 0
app/worker/controller/Outjob.php

@@ -0,0 +1,159 @@
+<?php
+
+namespace app\worker\controller;
+
+use app\worker\BaseController;
+use app\common\model\AgentMarket as AgentMarketModel;
+use app\common\model\OutRecruit as OutRecruitModel;
+use app\common\model\OutRecruitReport as OutRecruitReportModel;
+
+use think\facade\Request;
+
+class Outjob extends BaseController
+{
+    /**
+     * 招聘信息
+     */
+    public function index()
+    {
+        $workerid = $this->access_worker['id'];
+        if (Request::isAjax()) {
+            $limit = input('limit/d', 20);
+            $page  = input('page/d', 1);
+
+            $map      = [];
+            $map[]    = ['worker_id', '=', $workerid];
+            $keywords = input('keywords/s', "");
+            if (!empty($keywords)) {
+                $map[] = ['title', 'like', '%' . $keywords . '%'];
+            }
+            $status = input('status/d');
+            if (!empty($status)) {
+                $map[] = ['status', '=', $status];
+            }
+
+            $list  = OutRecruitModel::where($map)
+                ->order(['priority' => 'desc', 'id' => 'desc'])
+                ->limit($limit)
+                ->page($page)
+                ->append(['status_text'])
+                ->select();
+            $count = OutRecruitModel::where($map)->count();
+            if ($count == 0) {
+                exit(json_encode([
+                    'code' => 1,
+                    'msg'  => "未查询到数据",
+                ]));
+            }
+            exit(json_encode([
+                'code'  => 0,
+                'msg'   => "",
+                'count' => $count,
+                'data'  => $list,
+            ]));
+
+        } else {
+            return view('outjob/index');
+        }
+
+    }
+
+    public function editrecruit()
+    {
+        $id = input('id/d', 0);
+
+        $data = [
+            'title'          => input('title/s', ""),
+            '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/a', []),
+            'requirement'    => input('requirement/s', ""),
+            'comdetails'     => input('comdetails/s', ""),
+            'picall'         => input('picall/a', []),
+            '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['status'] = 2;
+        if (empty($id)) {
+            $data['worker_id']  = $this->access_worker['id'];
+            $data['createtime'] = time();
+            OutRecruitModel::create($data);
+        } else {
+            OutRecruitModel::update($data, ['id' => $id]);
+        }
+
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+    public function delrecruit()
+    {
+        $id = input('id/d');
+
+        $res = OutRecruitReportModel::where('recruit_id', $id)->find();
+        if (!empty($res)) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "已有报备记录,无法删除",
+            ]));
+        }
+
+        OutRecruitModel::destroy($id);
+
+        exit(json_encode([
+            'code' => 0,
+        ]));
+    }
+
+    public function recruitform()
+    {
+        $id      = input('id/d, 0');
+        $recruit = OutRecruitModel::findOrEmpty($id);
+
+        return view('outjob/recruitform', [
+            'recruit' => $recruit,
+        ]);
+    }
+
+    public function market()
+    {
+        if (Request::isAjax()) {
+            $limit = input('limit/d', 20);
+            $page  = input('page/d', 1);
+
+            $list  = AgentMarketModel::limit($limit)
+                ->page($page)
+                ->append(['is_bargain_text'])
+                ->select();
+            $count = AgentMarketModel::count();
+            if ($count == 0) {
+                exit(json_encode([
+                    'code' => 1,
+                    'msg'  => "未查询到数据",
+                ]));
+            }
+            exit(json_encode([
+                'code'  => 0,
+                'msg'   => "",
+                'count' => $count,
+                'data'  => $list,
+            ]));
+
+        } else {
+            return view('outjob/market');
+        }
+    }
+}

+ 13 - 0
app/worker/view/index.html

@@ -162,6 +162,19 @@
 								</dd>
 							</dl>
 						</li>
+
+					{eq name="access_worker.wtype" value="2"}
+					<li data-name="worder" class="layui-nav-item">
+						<a href="javascript:;" lay-tips="省外专区">
+							<i class="layui-icon layui-icon-release"></i>
+							<cite>省外专区</cite>
+							<span class="layui-nav-more"></span></a>
+						<dl class="layui-nav-child">
+							<dd>
+								<a lay-href="{:url('/outjob/index')}" lay-text="招聘信息">招聘信息</a>
+							</dd>
+						</dl>
+					</li>
 					{/eq}
 					<li data-name="admin" class="layui-nav-item">
 						<a href="javascript:;" lay-tips="公司" lay-direction="2">

+ 142 - 0
app/worker/view/outjob/index.html

@@ -0,0 +1,142 @@
+<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-outjob-list-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>
+							<option value="3">审核不通过</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>
+					</button>
+				</div>
+			</div>
+		</div>
+
+		<div class="layui-card-body">
+			<div style="padding-bottom: 10px;">
+				<button class="layui-btn layuiadmin-btn" data-type="add">添加</button>
+			</div>
+
+			<table id="LAY-outjob-list-table" lay-filter="LAY-outjob-list-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', 'laydate', 'table'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin,
+			form = layui.form,
+			table = layui.table;
+		form.render();
+		
+		table.render({
+			elem: '#LAY-outjob-list-table',
+			url: setter.baseWorkerUrl + 'outjob/index',
+			cols: [
+				[
+					{ field: 'id', width: 80, title: '表ID', sort: true },
+					{ field: 'title', title: '岗位标题', minWidth: 300},
+					{ field: 'company_name', title: '公司名称', width: 250 },
+					{ field: 'num', title: '招聘人数', width: 100 },
+					{ field: 'province', title: '省', width: 100 },
+					{ field: 'city', title: '市', width: 100 },
+					{ field: 'district', title: '区县', width: 100 },
+					{ field: 'address', title: '地址', width: 100 },
+					{ field: 'agegroup', title: '招工年龄', edit: 'text', width: 120 },
+					{ field: 'salary', title: '工资' },
+					{ field: 'telephone', title: '咨询电话'},
+					{ field: 'status_text', title: '状态', width: 80, align: 'center' },
+					{ field: 'volume', title: '浏览量', width: 100, align: 'right' },
+					{ field: 'priority', width: 100, title: '排序', sort: true},
+					{ title: '操作', width: 160, align: 'center', fixed: 'right', toolbar: '#setTpl' }
+				]
+			],
+			page: true,
+			limit: 50,
+			toolbar: true,
+			cellMinWidth: 150,
+			text: '对不起,加载出现异常!'
+		});
+
+		form.on('submit(LAY-outjob-list-btn)', function(data) {
+			table.reload('LAY-outjob-list-table', {
+				where: data.field,
+				page: {
+					curr: 1
+				}
+			});
+		});
+
+		var active = {
+			add: function() {
+				var index = layer.open({
+					type: 2,
+					title: '添加招聘信息',
+					content: 'recruitform.html?id=0',
+					maxmin: true,
+					area: ['750px', '480px']
+				});
+				layer.full(index);
+			}
+		};
+
+		table.on('tool(LAY-outjob-list-table)', function(obj) {
+			var data = obj.data;
+			if (obj.event === 'del') {
+				layer.confirm('确定删除此招聘信息吗?', function(index) {
+					admin.req({
+						url: setter.baseWorkerUrl + 'outjob/delrecruit',
+						data: {
+							id: 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: 'recruitform.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>

+ 64 - 0
app/worker/view/outjob/market.html

@@ -0,0 +1,64 @@
+<div class="layui-fluid">
+	<div class="layui-card">
+		<div class="layui-card-body">
+			<table id="LAY-outjob-market-table" lay-filter="LAY-outjob-market-table"></table>
+			<script type="text/html" id="setTpl">
+				<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="select"><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', 'laydate', 'table'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin,
+			form = layui.form,
+			table = layui.table;
+		form.render();
+		
+		table.render({
+			elem: '#LAY-outjob-market-table',
+			url: setter.baseWorkerUrl + 'outjob/market',
+			cols: [
+				[
+					{ field: 'id', width: 60, title: '表ID'},
+					{ field: 'name', title: '姓名', width: 80},
+					{ field: 'mobile', title: '电话', width: 120 },
+					{ field: 'content', title: '内容' },
+					{ field: 'is_bargain_text', title: '可议价', width: 80, align: 'center' },
+					{ title: '操作', width: 80, align: 'center', fixed: 'right', toolbar: '#setTpl' }
+				]
+			],
+			page: true,
+			limit: 50,
+			toolbar: true,
+			cellMinWidth: 150,
+			text: '对不起,加载出现异常!'
+		});
+
+		form.on('submit(LAY-outjob-market-btn)', function(data) {
+			table.reload('LAY-outjob-market-table', {
+				where: data.field,
+				page: {
+					curr: 1
+				}
+			});
+		});
+
+		table.on('tool(LAY-outjob-market-table)', function(obj) {
+			var data = obj.data;
+			if (obj.event === 'select') {
+				console.log(parent);
+				parent.marketFill(data);
+				parent.layer.closeAll();
+			}
+		});
+
+	});
+</script>

+ 273 - 0
app/worker/view/outjob/recruitform.html

@@ -0,0 +1,273 @@
+<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">
+						<input type="hidden" name="id" value="{$recruit.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="title" value="{$recruit.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="{$recruit.company_name}" 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="recruit.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="{$recruit.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="{$recruit.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="{$recruit.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="{$recruit.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="{$recruit.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="{$recruit.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">{$recruit.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">{$recruit.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="{$recruit.salary}" 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="{$recruit.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">{$recruit.remark}</textarea>
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">推荐</label>
+							<div class="layui-input-block">
+								<input type="text" name="priority" value="{$recruit.priority|default=255}" lay-verify="required" 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">浏览量</label>
+							<div class="layui-input-block">
+								<input type="text" name="volume" value="{$recruit.volume|default=0}" lay-verify="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">
+								<textarea name="market_content" id="market_content" placeholder="例如:一次性交通补贴:1000元;入职前3个月,每个月600元。" rows="6" class="layui-textarea">{$recruit.market_content}</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="是" {eq name="recruit.is_bargain|default=1" value="1"}checked{/eq}>
+								<input type="radio" id="is_bargain2" name="is_bargain" value="2" title="否" {eq name="recruit.is_bargain" value="2"}checked{/eq}>
+							</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($recruit.tags)} == null ? [] : {:json_encode($recruit.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.layui.table.reload('LAY-outjob-list-table'); //重载表格
+					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>