linwu 2 жил өмнө
parent
commit
dba590f721

+ 23 - 0
app/admin/BaseController.php

@@ -121,4 +121,27 @@ abstract class BaseController
         return $v->failException(true)->check($data);
     }
 
+    protected function dealEqualInput($result ,$equal_array)
+    {
+        foreach ($equal_array as $k => $v) {
+            $value = input($v);
+            if (!empty($value)) {
+                $result[] = [is_numeric($k) ? $v : $k,'=',$value];
+            }
+        }
+
+        return $result;
+    }
+
+    protected function dealLikeInput($result,$like_array)
+    {
+        foreach ($like_array as $k => $v) {
+            $value = input($v);
+            if (!empty($value)) {
+                $result[] = [is_numeric($k) ? $v : $k,'like',"%{$value}%"];
+            }
+        }
+
+        return $result;
+    }
 }

+ 74 - 1
app/admin/controller/Demand.php

@@ -9,6 +9,7 @@ use app\common\model\DemandOther as DemandOtherModel;
 use app\common\model\DemandCate as DemandCateModel;
 use app\common\model\DemandLog as DemandLogModel;
 use app\common\model\DemandSnatch as DemandSnatchModel;
+use app\common\model\DemandReport as DemandReportModel;
 
 use app\common\validate\Demand as DemandValidate;
 use think\exception\ValidateException;
@@ -20,12 +21,44 @@ class Demand extends BaseController
 
 
     // 报名记录
-    public function logList()
+    /*public function logList()
     {
         $workerlist = WorkerModel::with('demand')->order(['id' => 'desc'])->select();
         return view('demand/loglist', [
             'workerlist' => $workerlist,
         ]);
+    }*/
+
+    public function logList()
+    {
+        if (Request::isAjax()) {
+            $limit = input('limit/d', 20);
+            $page  = input('page/d', 1);
+            $map   = $this->dealLikeInput([], ['realname', 'mobile', 'idcard']);
+
+            $list  = DemandReportModel::with(['demand','snatch','snatch.worker','worker','agent', 'broker'])
+                ->where($map)
+                ->order(['id' => 'desc'])
+                ->limit($limit)
+                ->page($page)
+                ->select();
+            $count = DemandReportModel::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('demand/loglist');
+        }
     }
 
     public function delLog()
@@ -635,4 +668,44 @@ class Demand extends BaseController
             'code' => 0,
         ]));
     }
+
+    public function reportLog()
+    {
+        $id = input('id/d', 0);
+        if (empty($id)) {
+            return '未查询到数据';
+        }
+
+        if (Request::isAjax()) {
+            $limit = input('limit/d', 20);
+            $page  = input('page/d', 1);
+            $map   = [['snatchid', '=', $id]];
+            $map   = $this->dealLikeInput($map, ['realname', 'mobile', 'idcard']);
+
+            $list  = DemandReportModel::with(['agent', 'broker'])
+                ->where($map)
+                ->order(['id' => 'desc'])
+                ->limit($limit)
+                ->page($page)
+                ->select();
+            $count = DemandReportModel::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('demand/reportlog', [
+                'id' => $id,
+            ]);
+        }
+    }
 }

+ 40 - 127
app/admin/view/demand/loglist.html

@@ -1,39 +1,35 @@
 <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-demand-loglist-search">
+		<div class="layui-form layui-form-pane layui-card-header layuiadmin-card-header-auto" lay-filter="LAY-demand-demandlist-search">
 			<div class="layui-form-item">
 				<div class="layui-inline">
-					<label class="layui-form-label">公司/订单</label>
-					<div class="layui-input-block" id="workerdemand">
+					<label class="layui-form-label">姓名</label>
+					<div class="layui-input-block">
+						<input type="text" name="realname" placeholder="请输入姓名" autocomplete="off" class="layui-input">
 					</div>
 				</div>
 				<div class="layui-inline">
-					<button class="layui-btn" lay-submit lay-filter="LAY-demand-loglist-search-btn">
+					<label class="layui-form-label">电话</label>
+					<div class="layui-input-block">
+						<input type="text" name="mobile" placeholder="请输入电话" autocomplete="off" class="layui-input">
+					</div>
+				</div>
+				<div class="layui-inline">
+					<label class="layui-form-label">身份证号</label>
+					<div class="layui-input-block">
+						<input type="text" name="idcard" placeholder="请输入身份证号" autocomplete="off" class="layui-input">
+					</div>
+				</div>
+				<div class="layui-inline">
+					<button class="layui-btn" lay-submit lay-filter="LAY-demand-demandlist-btn">
 						<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
 					</button>
-					<button class="layui-btn" lay-submit lay-filter="LAY-demand-loglist-export-btn">
-						导出
-					</button>
 				</div>
 			</div>
 		</div>
 
 		<div class="layui-card-body">
-			<div style="padding-bottom: 10px;">
-				<button class="layui-btn layuiadmin-btn" data-type="batchdel">删除</button>
-			</div>
-
-			<table id="LAY-demand-loglist-table" lay-filter="LAY-demand-loglist-table"></table>
-			<script type="text/html" id="useravatarTpl">
-				{{#  if(d.user!=null && d.user.avatar != ''){ }}
-				<div id="pic{{d.id}}" lay-event="pic">
-					<img style="width: 100%; height: 100%;" src="{{d.user.avatar}}">
-				</div>
-				{{#  } }}
-			</script>
-			<script type="text/html" id="setTpl">
-				<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
-			</script>
+			<table id="LAY-demand-demandlist-table" lay-filter="LAY-demand-demandlist-table"></table>
 		</div>
 	</div>
 </div>
@@ -43,132 +39,49 @@
 		base: '/static/echoui/' //静态资源所在路径
 	}).extend({
 		index: 'lib/index' //主入口模块
-	}).use(['index', 'form', 'set', 'table', 'selectN', 'selectM'], function() {
+	}).use(['index', 'form', 'set', 'table'], function() {
 		var $ = layui.$,
-			setter = layui.setter,
-			admin = layui.admin,
-			form = layui.form,
-			table = layui.table,
-			selectN = layui.selectN,
-			selectM = layui.selectM;
-		form.render();
+				setter = layui.setter,
+				form = layui.form,
+				table = layui.table;
 
-		var workerdemand = selectN({
-			elem: '#workerdemand',
-			search: [true, true],
-			tips: ["请选择劳务公司(可搜索)", "请选择招聘信息(可搜索)"],
-			data: {$workerlist|raw},
-			selected: [0, 0],
-			field: { idName: 'id', titleName: 'title', childName: 'demand' }
-		});
+		form.render();
 
 		table.render({
-			elem: '#LAY-demand-loglist-table',
-			url: setter.baseAdminUrl + 'demand/listlog',
+			elem: '#LAY-demand-demandlist-table',
+			height: 'full-20',
+			url: setter.baseAdminUrl + 'demand/loglist',
 			cols: [
 				[
-					{ type: 'checkbox', fixed: 'left' },
 					{ field: 'id', width: 80, title: '表ID', sort: true },
-					{ field: 'gworkertitle', title: '接单公司名称', width: 300, templet: '<div>{{d.gworker.title||""}}</div>' },
-					{ field: 'gworkerrealname', title: '接单公司联系人', width: 150, templet: '<div>{{d.gworker.realname||""}}</div>' },
-					{ field: 'gworkermobile', title: '接单公司电话', width: 150, templet: '<div>{{d.gworker.mobile||""}}</div>' },
-					{ field: 'workerid', title: '发单公司', toolbar: '<div>{{d.worker.title||""}}</div>' },
-					{ field: 'demandid', title: '订单标题', width: 200, toolbar: '<div>{{d.demand.title||""}}</div>' },
-					{ field: 'createtime', title: '接单时间', width: 170 },
-					{ title: '操作', width: 100, align: 'center', fixed: 'right', toolbar: '#setTpl' }
+					{ field: 'realname', title: '姓名', width: 100 },
+					{ field: 'mobile', title: '手机号', width: 120 },
+					{ field: 'idcard', title: '身份证号', width: 180 },
+					{ field: 'arrivetime', title: '预计到达时间', width: 150 },
+					{ field: 'remark', title: '备注信息', width: 200 },
+					{ field: 'createtime', title: '报备时间', width: 150 },
+					{ field: 'workerid', title: '发单人', minWidth: 100, toolbar: '<div>{{d.worker.title}}</div>' },
+					{ field: 'snatchid', title: '接单人', minWidth: 100, toolbar: '<div>{{d.snatch.worker.title}}</div>' },
+					{ field: 'agentid', title: '门店', minWidth: 100, toolbar: '<div>{{d.agent ? d.agent.title : ""}}</div>' },
+					{ field: 'brokerid', title: '经纪人', minWidth: 100, toolbar: '<div>{{d.broker ? d.broker.title : ""}}</div>' },
 				]
 			],
 			page: true,
 			limit: 50,
-			cellMinWidth: 200,
+			toolbar: true,
+			cellMinWidth: 150,
 			text: '对不起,加载出现异常!'
 		});
 
-		form.on('submit(LAY-demand-loglist-search-btn)', function(data) {
-			table.reload('LAY-demand-loglist-table', {
+		form.on('submit(LAY-demand-demandlist-btn)', function(data) {
+			table.reload('LAY-demand-demandlist-table', {
 				where: data.field,
 				page: {
 					curr: 1
 				}
 			});
 		});
-		form.on('submit(LAY-demand-loglist-export-btn)', function(data) {
-			var url = setter.baseAdminUrl + 'demand/exportlog?';
-			for (var item in data.field) {
-				url = url + '&' + item + '=' + data.field[item];
-			}
-			window.location.href = url;
-		});
-
-		table.on('edit(LAY-demand-loglist-table)', function(obj) {
-			var id = obj.data.id,
-				field = obj.field,
-				value = obj.value;
-			admin.req({
-				url: setter.baseAdminUrl + 'demand/fieldlog',
-				data: { id: id, field: field, value: value },
-				done: function(res) {
-					layer.msg('修改成功');
-					layui.table.reload('LAY-demand-loglist-table');
-				}
-			});
-		});
 
-		var active = {
-			batchdel: function() {
-				var checkStatus = table.checkStatus('LAY-demand-loglist-table'),
-					checkData = checkStatus.data; //得到选中的数据
-				if (checkData.length === 0) {
-					return layer.msg('请选择数据');
-				}
-				var idarr = [];
-				for (var i = 0; i < checkData.length; i++) {
-					idarr.push(checkData[i].id);
-				}
-				layer.confirm('确定删除此报名记录吗?', function(index) {
-					admin.req({
-						url: setter.baseAdminUrl + 'demand/dellog',
-						data: {
-							idarr: idarr
-						},
-						done: function(res) {
-							table.reload('LAY-demand-loglist-table');
-							layer.msg('已删除');
-						}
-					});
-					layer.close(index);
-				});
-			}
-		};
-
-		table.on('tool(LAY-demand-loglist-table)', function(obj) {
-			var data = obj.data;
-			if (obj.event === 'del') {
-				layer.confirm('确定删除此报名记录吗?', function(index) {
-					admin.req({
-						url: setter.baseAdminUrl + 'demand/dellog',
-						data: {
-							idarr: [data.id]
-						},
-						done: function(res) {
-							obj.del();
-							layer.msg('已删除');
-						}
-					});
-					layer.close(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>

+ 174 - 0
app/admin/view/demand/loglist_bak.html

@@ -0,0 +1,174 @@
+<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-demand-loglist-search">
+			<div class="layui-form-item">
+				<div class="layui-inline">
+					<label class="layui-form-label">公司/订单</label>
+					<div class="layui-input-block" id="workerdemand">
+					</div>
+				</div>
+				<div class="layui-inline">
+					<button class="layui-btn" lay-submit lay-filter="LAY-demand-loglist-search-btn">
+						<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
+					</button>
+					<button class="layui-btn" lay-submit lay-filter="LAY-demand-loglist-export-btn">
+						导出
+					</button>
+				</div>
+			</div>
+		</div>
+
+		<div class="layui-card-body">
+			<div style="padding-bottom: 10px;">
+				<button class="layui-btn layuiadmin-btn" data-type="batchdel">删除</button>
+			</div>
+
+			<table id="LAY-demand-loglist-table" lay-filter="LAY-demand-loglist-table"></table>
+			<script type="text/html" id="useravatarTpl">
+				{{#  if(d.user!=null && d.user.avatar != ''){ }}
+				<div id="pic{{d.id}}" lay-event="pic">
+					<img style="width: 100%; height: 100%;" src="{{d.user.avatar}}">
+				</div>
+				{{#  } }}
+			</script>
+			<script type="text/html" id="setTpl">
+				<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', 'selectN', 'selectM'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin,
+			form = layui.form,
+			table = layui.table,
+			selectN = layui.selectN,
+			selectM = layui.selectM;
+		form.render();
+
+		var workerdemand = selectN({
+			elem: '#workerdemand',
+			search: [true, true],
+			tips: ["请选择劳务公司(可搜索)", "请选择招聘信息(可搜索)"],
+			data: {$workerlist|raw},
+			selected: [0, 0],
+			field: { idName: 'id', titleName: 'title', childName: 'demand' }
+		});
+
+		table.render({
+			elem: '#LAY-demand-loglist-table',
+			url: setter.baseAdminUrl + 'demand/listlog',
+			cols: [
+				[
+					{ type: 'checkbox', fixed: 'left' },
+					{ field: 'id', width: 80, title: '表ID', sort: true },
+					{ field: 'gworkertitle', title: '接单公司名称', width: 300, templet: '<div>{{d.gworker.title||""}}</div>' },
+					{ field: 'gworkerrealname', title: '接单公司联系人', width: 150, templet: '<div>{{d.gworker.realname||""}}</div>' },
+					{ field: 'gworkermobile', title: '接单公司电话', width: 150, templet: '<div>{{d.gworker.mobile||""}}</div>' },
+					{ field: 'workerid', title: '发单公司', toolbar: '<div>{{d.worker.title||""}}</div>' },
+					{ field: 'demandid', title: '订单标题', width: 200, toolbar: '<div>{{d.demand.title||""}}</div>' },
+					{ field: 'createtime', title: '接单时间', width: 170 },
+					{ title: '操作', width: 100, align: 'center', fixed: 'right', toolbar: '#setTpl' }
+				]
+			],
+			page: true,
+			limit: 50,
+			cellMinWidth: 200,
+			text: '对不起,加载出现异常!'
+		});
+
+		form.on('submit(LAY-demand-loglist-search-btn)', function(data) {
+			table.reload('LAY-demand-loglist-table', {
+				where: data.field,
+				page: {
+					curr: 1
+				}
+			});
+		});
+		form.on('submit(LAY-demand-loglist-export-btn)', function(data) {
+			var url = setter.baseAdminUrl + 'demand/exportlog?';
+			for (var item in data.field) {
+				url = url + '&' + item + '=' + data.field[item];
+			}
+			window.location.href = url;
+		});
+
+		table.on('edit(LAY-demand-loglist-table)', function(obj) {
+			var id = obj.data.id,
+				field = obj.field,
+				value = obj.value;
+			admin.req({
+				url: setter.baseAdminUrl + 'demand/fieldlog',
+				data: { id: id, field: field, value: value },
+				done: function(res) {
+					layer.msg('修改成功');
+					layui.table.reload('LAY-demand-loglist-table');
+				}
+			});
+		});
+
+		var active = {
+			batchdel: function() {
+				var checkStatus = table.checkStatus('LAY-demand-loglist-table'),
+					checkData = checkStatus.data; //得到选中的数据
+				if (checkData.length === 0) {
+					return layer.msg('请选择数据');
+				}
+				var idarr = [];
+				for (var i = 0; i < checkData.length; i++) {
+					idarr.push(checkData[i].id);
+				}
+				layer.confirm('确定删除此报名记录吗?', function(index) {
+					admin.req({
+						url: setter.baseAdminUrl + 'demand/dellog',
+						data: {
+							idarr: idarr
+						},
+						done: function(res) {
+							table.reload('LAY-demand-loglist-table');
+							layer.msg('已删除');
+						}
+					});
+					layer.close(index);
+				});
+			}
+		};
+
+		table.on('tool(LAY-demand-loglist-table)', function(obj) {
+			var data = obj.data;
+			if (obj.event === 'del') {
+				layer.confirm('确定删除此报名记录吗?', function(index) {
+					admin.req({
+						url: setter.baseAdminUrl + 'demand/dellog',
+						data: {
+							idarr: [data.id]
+						},
+						done: function(res) {
+							obj.del();
+							layer.msg('已删除');
+						}
+					});
+					layer.close(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>

+ 86 - 0
app/admin/view/demand/reportlog.html

@@ -0,0 +1,86 @@
+<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-demand-demandlist-search">
+			<div class="layui-form-item">
+				<input type="hidden" name="id" value="{$id}">
+				<div class="layui-inline">
+					<label class="layui-form-label">姓名</label>
+					<div class="layui-input-block">
+						<input type="text" name="realname" placeholder="请输入姓名" autocomplete="off" class="layui-input">
+					</div>
+				</div>
+				<div class="layui-inline">
+					<label class="layui-form-label">电话</label>
+					<div class="layui-input-block">
+						<input type="text" name="mobile" placeholder="请输入电话" autocomplete="off" class="layui-input">
+					</div>
+				</div>
+				<div class="layui-inline">
+					<label class="layui-form-label">身份证号</label>
+					<div class="layui-input-block">
+						<input type="text" name="idcard" placeholder="请输入身份证号" autocomplete="off" class="layui-input">
+					</div>
+				</div>
+				<div class="layui-inline">
+					<button class="layui-btn" lay-submit lay-filter="LAY-demand-demandlist-btn">
+						<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
+					</button>
+				</div>
+			</div>
+		</div>
+
+		<div class="layui-card-body">
+			<table id="LAY-demand-demandlist-table" lay-filter="LAY-demand-demandlist-table"></table>
+		</div>
+	</div>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use(['index', 'form', 'set', 'table'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			form = layui.form,
+			table = layui.table;
+
+		form.render();
+
+		table.render({
+			elem: '#LAY-demand-demandlist-table',
+			height: 'full-20',
+			url: setter.baseAdminUrl + 'demand/reportlog?id={$id}',
+			cols: [
+				[
+					{ field: 'id', width: 80, title: '表ID', sort: true },
+					{ field: 'realname', title: '姓名', width: 100 },
+					{ field: 'mobile', title: '手机号', width: 120 },
+					{ field: 'idcard', title: '身份证号', width: 180 },
+					{ field: 'arrivetime', title: '预计到达时间', width: 150 },
+					{ field: 'remark', title: '备注信息', width: 200 },
+					{ field: 'createtime', title: '报备时间', width: 150 },
+					{ field: 'agentid', title: '门店', minWidth: 100, toolbar: '<div>{{d.agent ? d.agent.title : ""}}</div>' },
+					{ field: 'brokerid', title: '经纪人', minWidth: 100, toolbar: '<div>{{d.broker ? d.broker.title : ""}}</div>' },
+				]
+			],
+			page: true,
+			limit: 50,
+			toolbar: true,
+			cellMinWidth: 150,
+			text: '对不起,加载出现异常!'
+		});
+
+		form.on('submit(LAY-demand-demandlist-btn)', function(data) {
+			table.reload('LAY-demand-demandlist-table', {
+				where: data.field,
+				page: {
+					curr: 1
+				}
+			});
+		});
+
+
+	});
+</script>

+ 12 - 0
app/admin/view/demand/snatchlist.html

@@ -42,6 +42,9 @@
 					<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="checkpass"><i class="layui-icon layui-icon-edit"></i>审核通过</a>
 					<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="checkreject"><i class="layui-icon layui-icon-delete"></i>审核不通过</a>
 				{{# } }}
+				{{# if(d.status == 2){ }}
+					<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="reportlog"><i class="layui-icon layui-icon-edit"></i>报备记录</a>
+				{{# } }}
 				<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="detail"><i class="layui-icon layui-icon-read"></i>订单详情</a>
 			</script>
 		</div>
@@ -136,6 +139,15 @@
 					});
 					table.reload('LAY-demand-demandlist-table');
 				});
+			}  else if (obj.event === 'reportlog') {
+				let index = layer.open({
+					type: 2,
+					title: '编辑其他订单信息',
+					content: 'reportLog.html?id=' + data.id,
+					maxmin: true,
+					area: ['750px', '480px']
+				});
+				layer.full(index);
 			}
 		});