zhengkaixin 4 years ago
parent
commit
61ad347f51

+ 7 - 7
src/projects/business/apis/Guest/from.js

@@ -20,16 +20,16 @@ export function getDeviceList() {
 }
 
 //访客离开操作
-export function out(id) {
-    return request({
-        url: '/mobile/guestInfoRecordApi/out/'+id,
-        //data: Qs.stringify({id:id}),
-        method: 'get',
-    })
+export function out(params) {
+    return request.post( '/mobile/guestInfoRecordApi/out', params,{
+        headers: {
+            "Content-Type": "application/json"
+        }
+    });
 }
 
 
-//离开记录
+//访客记录详情
 export function getDetail(id) {
     return request({
         url: '/mobile/guestInfoRecordApi/get/'+id,

+ 2 - 44
src/projects/business/router/guest.js

@@ -47,28 +47,7 @@ const routesGuest = [
 							title: '访客详情',
 						}
 					},
-					//邀请函详情
-					{
-						path: 'infoPartner',
-						name: 'GuestFromInfoPartner',
-						component: () => import('../views/Guest/From/InfoPartner.vue'),
-						meta: {
-							requireAuth: false,
-							role: [],
-							title: '访客详情',
-						}
-					},
-					//邀请访客勾选下发设备
-					{
-						path: 'device',
-						name: 'GuestFromDevice',
-						component: () => import('../views/Guest/From/Device.vue'),
-						meta: {
-							requireAuth: false,
-							role: [],
-							title: '邀请访客勾选下发设备',
-						}
-					},
+
 				]
 			},
 			//受邀者
@@ -87,28 +66,7 @@ const routesGuest = [
 							title: '访问邀请函',
 						}
 					},
-					//添加同行人员
-					{
-						path: 'addPartner',
-						name: 'GuestToAddPartner',
-						component: () => import('../views/Guest/To/AddPartner.vue'),
-						meta: {
-							requireAuth: false,
-							role: [],
-							title: '添加同行人员',
-						}
-					},
-					//访客邀请码
-					{
-						path: 'code',
-						name: 'GuestToCode',
-						component: () => import('../views/Guest/To/Code.vue'),
-						meta: {
-							requireAuth: false,
-							role: [],
-							title: '访客邀请码',
-						}
-					},
+
 				]
 			},
 			//扫码通行

+ 12 - 0
src/projects/business/router/master.js

@@ -205,6 +205,18 @@ const routesMaster = [
 							mode: true
 						}
 					},
+					//出入记录
+					{
+						path: 'goto',
+						name: 'MasterGuestGoto',
+						component: () => import('../views/Master/Guest/Goto.vue'),
+						meta: {
+							requireAuth: false,
+							role: [],
+							title: '出入记录',
+							mode: true
+						}
+					},
 					//访客详情
 					{
 						path: 'info',

+ 4 - 0
src/projects/business/views/Guest/From/Add.vue

@@ -195,11 +195,15 @@
 			},
 			selectDevice(){
 				this.step='2'
+				document.body.scrollTop = 0;
+				document.documentElement.scrollTop = 0;
 				if(this.deviceList==null){
 					this.getDeviceList();
 				}
 			},
 			goBack() {
+				document.body.scrollTop = 0;
+				document.documentElement.scrollTop = 0;
 				this.step='1'
 			},
 			//选择时间

+ 0 - 123
src/projects/business/views/Guest/From/Device.vue

@@ -1,123 +0,0 @@
-<template>
-<div>
-	<common @asynCallBack="asynCallBack"></common>
-	<top-header :pageTitle="pageTitle"  ></top-header>
-	<a  class="mui-icon mui-icon-left-nav mui-pull-left"  @click="goBack"></a>
-
-	<div class="mui-content">
-			<div class="mui-content-padded">
-				<h5>请选择设备</h5>
-				<form class="mui-input-group">
-					<div class="mui-input-row mui-checkbox">
-						<label>A栋大堂正门人脸识别门禁</label>
-						<input name="checkbox1" value="Item 3" type="checkbox">
-					</div>
-					<div class="mui-input-row mui-checkbox">
-						<label>侧门门房人脸识别门禁</label>
-						<input name="checkbox1" value="Item 4" type="checkbox" checked>
-					</div>
-					<div class="mui-input-row mui-checkbox">
-						<label>8楼人脸识别门禁</label>
-						<input name="checkbox1" value="Item 3" type="checkbox">
-					</div>
-				</form>
-			</div>
-		</div>
-		<div class="fyy-footer">
-			<div class="bindfyy-btn">
-				<button type="button" class="mui-btn mui-btn-primary ">
-						保存
-					</button>
-			</div>
-		</div>
-	<loading :visible="isLoading"></loading>
-
-</div>
-</template>
-
-
-<script>
-	import * as API_From from '@/apis/Guest/from'
-	import Common from '$project/components/Common.vue'
-	import Loading from '$project/components/Loading.vue'
-	import TopHeader from '$project/components/TopHeader.vue'
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	import {
-		currentTimeStamp,
-		parseUnixTime
-	} from '$project/utils'
-	export default {
-		name: 'GuestFromDevice',
-		components: {
-			Common,
-			Loading,
-			TopHeader
-		},
-		data() {
-			return {
-				pageTitle: '勾选下发设备',
-
-				id: '',
-				detail: {
-					personHealthLedger :{
-						healthStatusN:null,
-						familyGreenCode:""
-					}
-				},
-				isLoading: false,
-			}
-		},
-		created() {
-			this.id = this.$route.query.id;
-		},
-		methods:  {
-			//返回上一层
-			goBack() {
-				if (this.routeName) {
-					this.$router.push({
-						name: this.routeName
-					})
-				} else {
-					this.$router.go(-1);
-				}
-			},
-			//获取详情
-			getDetail() {
-				this.isLoading = true;
-
-				API_ControlHealth.getDetail(this.id,'3').then(response => {
-					this.isLoading = false;
-
-					this.detail = response;
-				}).catch(error => {
-					this.isLoading = false;
-					mui.toast(error);
-				})
-			},asynCallBack(){},
-		},
-		mounted() {
-			this.getDetail();
-
-		},
-
-
-		destroyed() {
-
-		},
-		computed: {
-			...mapGetters({
-				openId: 'wx_openid',
-				token: 'token',
-				person_data: 'person_data',
-				person_popedom: 'person_popedom',
-			})
-		}
-	}
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style>
-</style>

+ 14 - 5
src/projects/business/views/Guest/From/Info.vue

@@ -46,7 +46,7 @@
           <div class="mui-input-row">
             <label style="width: 50%">同行人员</label>
             <span class="vongi-fkdat-name" style="width: 50%" >
-              <a class="flew mui-navigate-right vongi-padright"   v-if="list.length"  @click="step='2'" >
+              <a class="flew mui-navigate-right vongi-padright"   v-if="list.length"  @click="switchstep(2)" >
                    <h5 v-for="mod in getFellow()">{{mod}}</h5>
               </a>
             </span>
@@ -105,7 +105,7 @@
 
     <header class="mui-bar mui-bar-nav"  v-if="step=='2'">
       <h1 class="mui-title">同行人员</h1>
-      <a   class="mui-icon mui-icon-left-nav mui-pull-left"  @click="step='1'"></a>
+      <a   class="mui-icon mui-icon-left-nav mui-pull-left"  @click="switchstep(1)"></a>
 
     </header>
     <div   v-if="step=='2'" class="mui-content margin60">
@@ -148,7 +148,8 @@
     mapMutations
   } from 'vuex'
   import {
-
+    currentTimeStamp,
+    parseUnixTime
   } from '$project/utils'
   export default {
     name: 'GuestFromInfo',
@@ -186,7 +187,12 @@
       this.id = this.$route.query.id;
     },
     methods:  {
+      switchstep(num){
 
+        this.step=num;
+        document.body.scrollTop = 0;
+        document.documentElement.scrollTop = 0;
+      },
       getFellow(){
         var sz=[];
         if(this.list){
@@ -201,8 +207,11 @@
       },
       out(){
         this.isLoading = true;
-
-        API_From.out(this.id ).then(response => {
+        var sub={
+          id:this.id,
+          outTime:parseUnixTime(currentTimeStamp()),
+        }
+        API_From.out(sub ).then(response => {
           this.isLoading = false;
 
           this.detail.outTime = true;

+ 0 - 40
src/projects/business/views/Guest/From/InfoPartner.vue

@@ -1,40 +0,0 @@
-<template>
-  <div>
-    <header class="mui-bar mui-bar-nav">
-      <h1 class="mui-title">同行人员详情</h1>
-      <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
-    </header>
-    <div class="mui-content">
-      <div class="mui-content-padded vongi-qingjiadt">
-        <form class="mui-input-group">
-          <div class="mui-input-row">
-            <label>拜访人</label>
-            <span>刘韬</span>
-          </div>
-          <div class="mui-input-row">
-            <label>手机号码</label>
-            <span>15500001111</span>
-          </div>
-          <div class="mui-input-row">
-            <label>身份证号</label>
-            <span>420400199301011010</span>
-          </div>
-          <div class="mui-input-row">
-            <label style="width: 50%">人脸识别照片</label>
-            <span class="vongi-qingjiadt-photo"
-              ><img src="~$project/assets/img/audit1.png" />
-            </span>
-          </div>
-        </form>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style>
-</style>

+ 0 - 63
src/projects/business/views/Guest/To/AddPartner.vue

@@ -1,63 +0,0 @@
-<template>
-  <div>
-    <header class="mui-bar mui-bar-nav">
-      <h1 class="mui-title">添加同行人员</h1>
-      <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
-      <a class="mui-pull-right color4fc5f7" href="">保存</a>
-    </header>
-    <div class="mui-content margin60">
-      <div class="mui-content-padded vongi-editme vongi-qingjiadt">
-        <form class="mui-input-group">
-          <div class="mui-input-row">
-            <label>姓名<i class="colorfe616c">*</i></label>
-            <input
-              type="text"
-              class="mui-input-clear"
-              placeholder="请输入姓名"
-            />
-          </div>
-          <div class="mui-input-row">
-            <label>手机号码<i class="colorfe616c">*</i></label>
-            <input
-              type="text"
-              class="mui-input-clear"
-              placeholder="请输入手机号码"
-            />
-          </div>
-          <div class="mui-input-row">
-            <label>身份证号<i class="colorfe616c">*</i></label>
-            <input
-              type="text"
-              class="mui-input-clear"
-              placeholder="请输入单位名称"
-            />
-          </div>
-          <div class="mui-input-row">
-            <label style="width: 50%"
-              >人脸识别照片<i class="iconfont icon-tishi color4fc5f7"></i
-            ></label>
-            <button
-              class="mui-btn mui-btn-block mui-navigate-right"
-              type="button"
-              style="width: 50%"
-            >
-              请上传
-            </button>
-          </div>
-        </form>
-      </div>
-      <div class="vongi-btn vongi-yj-btn">
-        <button type="button" class="mui-btn mui-btn-primary mui-btn-outlined">
-          <i class="iconfont icon-zhuce"></i>添加同行人员
-        </button>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style>
-</style>

+ 0 - 53
src/projects/business/views/Guest/To/Code.vue

@@ -1,53 +0,0 @@
-<template>
-<div>
-    <header class="mui-bar mui-bar-nav">
-			<h1 class="mui-title">访客邀请码</h1>
-			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
-		</header>
-		<div class="mui-content vongi-yqma">
-			<div class="mui-content-padded">
-				<ul class="mui-table-view fyy-view">
-					<li class="mui-table-view-cell">
-						<label>受邀单位:</label>
-						<span>湖北荆鹏软件集团有限公司湖北荆鹏软件集团有限公司湖北荆鹏软</span>
-					</li>
-					<li class="mui-table-view-cell">
-						<label>受  邀 人:</label>
-						<span>刘成志</span>
-					</li>
-					<li class="mui-table-view-cell">
-						<label>访问单位:</label>
-						<span>湖北荆鹏软件集团有限公司</span>
-					</li>
-					<li class="mui-table-view-cell">
-						<label>邀请时间:</label>
-						<span>2020-09-28 15:00:00</span>
-					</li>
-					<li class="mui-table-view-cell">
-						<label>结束时间:</label>
-						<span>2020-09-28 15:00:00</span>
-					</li>
-					<li class="mui-table-view-cell">
-						<div class="vongi-yqma-ma">
-							 <img src="~$project/assets/img/02.jpg" />							 
-						</div>
-						<p>已生成访客邀请码</p>						
-					</li>
-					<li class="mui-table-view-cell">
-						<p class="color4fc5f7">可通过收藏页面或截图保存二维码,如已上传人脸照片,进门时可通过设备识别</p>						
-					</li>
-				</ul>				
-			</div>
-			<div class="vongi-yqma-logo">
-				<img src="~$project/assets/img/logo_02.png" width="100"/>
-			</div>										
-		</div>
-</div>
-</template>
-
-<script>
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style>
-</style>

+ 151 - 0
src/projects/business/views/Master/Guest/Goto.vue

@@ -0,0 +1,151 @@
+<template>
+	<div>
+		<common @asynCallBack="asynCallBack"></common>
+		<top-header :pageTitle="pageTitle"  :routeName="routeName" ></top-header>
+
+		<div class="mui-content vongi-fklist">
+			<ul class="mui-table-view openfyy-list">
+				<li class="mui-table-view-cell mui-media" v-for="mod in recordList" >
+					<a   class="mui-navigate-right" @click="goto(mod.id)">
+						{{mod.unit}}
+					</a>
+					<div class="mui-ellipsis">
+						来访人员:{{mod.name}}
+						<span>进厂时间:{{sub(mod.comeInTime)}}</span>
+					</div>
+					<p class="mui-ellipsis">
+						同行人员:{{mod.num}}
+						<span>出厂时间:{{sub(mod.outTime)}}</span>
+					</p>
+				</li>
+
+			</ul>
+		</div>
+		<loading :visible="isLoading"></loading>
+
+	</div>
+</template>
+
+
+<script>
+	import * as API_Guest from '@/apis/Master/guest'
+	import Common from '$project/components/Common.vue'
+	import Loading from '$project/components/Loading.vue'
+	import TopHeader from '$project/components/TopHeader.vue'
+	import isReachBottom from '$project/utils/isReachBottom'
+	import {
+		mapGetters,
+		mapMutations
+	} from 'vuex'
+	export default {
+		name: 'MasterGuestGoto',
+		components: {
+			Common,
+			Loading,
+			TopHeader
+		},
+		data() {
+			return {
+				pageTitle: '出入记录',
+
+				isLoading: false,
+
+				listForm: {
+					pageIndex: 1,
+					pageSize: 20,
+					//	token: '',
+					isToDay:1,//是否只查今天
+					totalPage: 1,
+					result: 0,
+				},
+				recordList: [],
+				status: ['待确认', '已确认', '已拒绝','已过期'],
+				statusColor: ['colorf8b155', 'color55f868', 'colorfe616c','color999'],
+				routeName: "Master",
+			}
+		},
+		created() {
+
+		},
+		methods: {
+			sub(time){
+				if(time==null){
+					return  '-';
+				}
+				return  String(time).substring(11);
+			},
+			//info
+			goto(id) {
+
+				this.$router.push({
+					name: 'MasterGuestApproval',
+					query: {
+						id: id
+					}
+				})
+			},
+
+			//获取列表
+			getList() {
+				this.isLoading = true;
+				API_Guest.accessRecords(this.listForm).then(res => {
+					var response=res.list;
+					if (response) {
+						if (this.listForm.pageIndex == 1) {
+							this.recordList = response.data;
+							this.listForm.pageIndex = response.pageNumber;
+							this.listForm.totalPage = response.totalPage;
+						} else {
+							this.recordList = [
+								...this.recordList,
+								...response.data
+							];
+						}
+					}
+					this.listForm.pageIndex++;
+					this.isLoading = false;
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},
+			//下拉事件
+			handleScrool() {
+				if (isReachBottom()) {
+					console.log('到达底部')
+					if (this.listForm.pageIndex <= this.listForm.totalPage && this.isLoading == false) {
+						this.getList();
+					} else {
+						return;
+					}
+				}
+			},
+
+			asynCallBack() {
+
+			},
+		},
+		mounted() {
+			this.getList();
+			//监控下拉加载事件
+			var _this = this;
+			window.addEventListener('scroll', _this.handleScrool);
+		},
+		destroyed() {
+			//销毁监听事件
+			var _this = this;
+			window.removeEventListener('scroll', _this.handleScrool);
+		},
+		computed: {
+			...mapGetters({
+				openId: 'wx_openid',
+				token: 'token',
+			})
+		},
+
+	}
+</script>
+
+<style scoped src="$project/assets/css/xpwyfyy.css"></style>
+<style>
+</style>

+ 137 - 43
src/projects/business/views/Master/Guest/Info.vue

@@ -1,131 +1,120 @@
 <template>
 	<div>
-		<header class="mui-bar mui-bar-nav">
-			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
-			<h1 class="mui-title">详情</h1>
-		</header>
+		<common @asynCallBack="asynCallBack"></common>
+		<top-header :pageTitle="pageTitle"    ></top-header>
 		<div class="mui-content vongi-qingjiadt">
 			<div id="slider" class="mui-slider mui-fullscreen">
 				<div id="sliderSegmentedControl" class="mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted">
 					<div class="mui-scroll">
-						<a class="mui-control-item mui-active" href="#item1mobile">
+						<a class="mui-control-item " @click="step=1" :class="step==1?'mui-active':''" >
 							访客信息
 						</a>
-						<a class="mui-control-item" href="#item2mobile">
+						<a class="mui-control-item"  @click="step=2"  :class="step==2?'mui-active':''" >
 							核验信息
 						</a>
 					</div>
 				</div>
-				<div class="mui-slider-group vongi-fkdat">
-					<div id="item1mobile" class="mui-slider-item mui-control-content mui-active">
+				<div class="mui-slider-group vongi-fkdat" >
+					<div id="item1mobile" v-if="step==1"
+						 class="mui-slider-item mui-control-content mui-active">
 						<div id="scroll1" class="mui-scroll-wrapper">
 							<div class="mui-scroll">
 								<form class="mui-input-group mui-content-padded">
 									<div class="mui-input-row">
 										<label>拜访人</label>
-										<span>王后雄</span>
+										<span>{{detail.name}}</span>
 									</div>
 									<div class="mui-input-row">
 										<label>预约时间</label>
-										<span>2020-9-18 15:00:00</span>
+										<span>{{detail.visitDate}}</span>
 									</div>
 									<div class="mui-input-row">
 										<label>来访单位</label>
-										<span>湖北荆盛商贸有限公司</span>
+										<span>{{detail.unit}}</span>
 									</div>
 									<div class="mui-input-row">
 										<label>同行人员</label>
 										<span class="vongi-fkdat-name">
 											<div class="flew">
-												<h5>冯</h5>
-												<h5>冯</h5>
-												<h5>冯</h5>
+											   <h5 v-for="mod in getFellow()">{{mod}}</h5>
 											</div>
 										</span>
 									</div>
 									<div class="mui-input-row">
 										<label>来访事由</label>
-										<span>业务洽谈</span>
+										<span>{{detail.visitReasons}}</span>
 									</div>
 									<div class="mui-input-row">
 										<label>车牌号</label>
-										<span>鄂D9999V</span>
+										<span>{{detail.numberPlate}}</span>
 									</div>
 								</form>
 								<form class="mui-input-group mui-content-padded">
 									<div class="mui-input-row">
 										<label>受访人员</label>
-										<span>其他</span>
-									</div>
-									<div class="mui-input-row">
-										<label>审核状态</label>
-										<span class="color55f868">已通过</span>
+										<span>{{person?person.name:'其他'}}</span>
 									</div>
+
 									<div class="mui-input-row">
-										<label>审核时间</label>
-										<span>2020-09-17 11:00:00</span>
+										<label>创建时间</label>
+										<span>{{detail.createTime}}</span>
 									</div>
 									<div class="mui-input-row">
 										<label>访问时间</label>
-										<span>15:00:00-17:30:00</span>
+										<span>{{sub(detail.comeInTime)}}-{{sub(detail.outTime)}}</span>
 									</div>
 									<div class="mui-input-row">
 										<label>总耗时</label>
-										<span>2小时30分0秒</span>
+										<span>{{gethour(detail.comeInTime,detail.outTime)}}</span>
 									</div>
 
 								</form>
 							</div>
 						</div>
 					</div>
-					<div id="item2mobile" class="mui-slider-item mui-control-content">
+					<div id="item2mobile"  v-if="step==2"
+						 class="mui-slider-item mui-control-content">
 						<div class="mui-scroll-wrapper">
 							<div class="mui-scroll">
 								<form class="mui-input-group mui-content-padded">
 									<div class="mui-input-row">
 										<label>姓名</label>
-										<span>刘韬</span>
+										<span>{{detail.name}}</span>
 									</div>
 
 									<div class="mui-input-row">
 										<label>手机号码</label>
-										<span>15500001111</span>
+										<span>{{detail.mobilePhone}}</span>
 									</div>
 									<div class="mui-input-row">
 										<label>身份证号</label>
-										<span>420400199301011010</span>
+										<span>{{detail.idCard}}</span>
 									</div>
 									<div class="mui-input-row">
 										<label>入场测温</label>
-										<span class="color55f868">36.3℃</span>
+										<span class="color55f868" v-if="detail.temperature">{{detail.temperature}}℃</span>
 									</div>
 									<div class="mui-input-row">
 										<label>出场测温</label>
-										<span class="color55f868">36.3℃</span>
+										<span class="color55f868"  v-if="detail.temperatureBack">{{detail.temperatureBack}}℃</span>
 									</div>
 								</form>
-								<form class="mui-input-group mui-content-padded">
+								<form class="mui-input-group mui-content-padded"  v-for="(item,index) in list">
 									<div class="mui-input-row">
 										<label>姓名</label>
-										<span>刘韬</span>
+										<span>{{item.name}}</span>
+
 									</div>
 
 									<div class="mui-input-row">
 										<label>手机号码</label>
-										<span>15500001111</span>
+										<span>{{item.mobilePhone}}</span>
 									</div>
 									<div class="mui-input-row">
 										<label>身份证号</label>
-										<span>420400199301011010</span>
-									</div>
-									<div class="mui-input-row">
-										<label>入场测温</label>
-										<span class="color55f868">36.3℃</span>
-									</div>
-									<div class="mui-input-row">
-										<label>出场测温</label>
-										<span class="color55f868">36.3℃</span>
+										<span>{{item.idCard}}</span>
 									</div>
+
 								</form>
 							</div>
 						</div>
@@ -135,10 +124,115 @@
 			</div>
 
 		</div>
+		<loading :visible="isLoading"></loading>
+
 	</div>
 </template>
 
+
 <script>
+
+	import * as API_From from '@/apis/Guest/from'
+	import Common from '$project/components/Common.vue'
+	import Loading from '$project/components/Loading.vue'
+	import TopHeader from '$project/components/TopHeader.vue'
+	import {
+		mapGetters,
+		mapMutations
+	} from 'vuex'
+	import {
+		hourDistance
+	} from '$project/utils'
+	export default {
+		name: 'GuestFromInfo',
+		components: {
+			Common,
+			Loading,
+			TopHeader
+		},
+		data() {
+			return {
+				pageTitle: '详情',
+				step:'1',
+
+				detail: {
+					id:'',
+					name:'',
+					mobilePhone:'',
+					unit:'',
+					visitReasons:'',
+
+					visitDate: '请选择',
+					expirationTime: '请选择',
+					issueDevice: '',
+					isUpPhoto:1,
+				},
+				person:null,
+				list:[],
+				isLoading: false,
+
+				status: ['待确认', '已确认', '已拒绝','已过期'],
+				statusColor: ['colorf8b155', 'color55f868', 'colorfe616c','color999'],
+
+			}
+		},
+		created() {
+			this.detail.id = this.$route.query.id;
+		},
+		methods:  {
+			gethour(t1,t2){
+				return hourDistance(t1,t2)
+			},
+			sub(time){
+				if(time==null){
+					return  '';
+				}
+				return  String(time).substring(11);
+			},
+			getFellow(){
+				var sz=[];
+				if(this.list){
+					for(var  m in this.list){
+						var mod =this.list[m];
+						if(mod.name){
+							sz.push(mod.name.substring(0,1))
+						}
+					}
+				}
+				return sz;
+			},
+
+			//获取详情
+			getDetail() {
+				this.isLoading = true;
+
+				API_From.getDetail(this.detail.id ).then(response => {
+					this.isLoading = false;
+					this.person=response.person;
+					this.detail = response.info;
+					this.list=response.list;
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},asynCallBack(){},
+		},
+		mounted() {
+
+			this.getDetail();
+		},
+
+
+		destroyed() {
+
+		},
+		computed: {
+			...mapGetters({
+				openId: 'wx_openid',
+				token: 'token',
+			})
+		}
+	}
 </script>
 
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>

+ 138 - 23
src/projects/business/views/Master/Guest/List.vue

@@ -1,43 +1,158 @@
 <template>
 	<div>
-		<header class="mui-bar mui-bar-nav">
-			<h1 class="mui-title">访客记录</h1>
-			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
-		</header>
+		<common @asynCallBack="asynCallBack"></common>
+		<top-header :pageTitle="pageTitle"  :routeName="routeName" ></top-header>
+
 		<div class="mui-content vongi-fklist">
 			<ul class="mui-table-view openfyy-list">
-				<li class="mui-table-view-cell mui-media">
-					<a href="javascript:;" class="mui-navigate-right">
-						远鹏众创空间
+				<li class="mui-table-view-cell mui-media" v-for="mod in recordList" >
+					<a   class="mui-navigate-right" @click="goto(mod.id)">
+						{{mod.unit}}
 					</a>
 					<div class="mui-ellipsis">
-						来访人员:刘韬
-						<span>访问时间:15:00:00-17:30:00</span>
-					</div>
-					<p class="mui-ellipsis">
-						同行人员:2
-						<span>总计耗时:2小时30分0秒</span>
-					</p>
-				</li>
-				<li class="mui-table-view-cell mui-media">
-					<a href="javascript:;" class="mui-navigate-right">
-						远鹏众创空间
-					</a>
+						来访人员:{{mod.name}}
+ 					</div>
 					<div class="mui-ellipsis">
-						来访人员:刘韬
-						<span>访问时间:15:00:00-17:30:00</span>
+
+					访问时间:{{sub(mod.comeInTime)}}-{{sub(mod.outTime)}}
 					</div>
 					<p class="mui-ellipsis">
-						同行人员:2
-						<span>总计耗时:2小时30分0秒</span>
+						同行人员:{{mod.num}}
+						<span>总计耗时:{{gethour(mod.comeInTime,mod.outTime)}}</span>
 					</p>
 				</li>
+
 			</ul>
 		</div>
+		<loading :visible="isLoading"></loading>
+
 	</div>
 </template>
 
+
 <script>
+	import * as API_Guest from '@/apis/Master/guest'
+	import Common from '$project/components/Common.vue'
+	import Loading from '$project/components/Loading.vue'
+	import TopHeader from '$project/components/TopHeader.vue'
+	import isReachBottom from '$project/utils/isReachBottom'
+	import {
+		hourDistance
+	} from '$project/utils'
+	import {
+		mapGetters,
+		mapMutations
+	} from 'vuex'
+	export default {
+		name: 'MasterGuestList',
+		components: {
+			Common,
+			Loading,
+			TopHeader
+		},
+		data() {
+			return {
+				pageTitle: '访客记录',
+
+				isLoading: false,
+
+				listForm: {
+					pageIndex: 1,
+					pageSize: 20,
+					//	token: '',
+					isToDay:1,//是否只查今天
+					totalPage: 1,
+					result: 0,
+				},
+				recordList: [],
+				status: ['待确认', '已确认', '已拒绝','已过期'],
+				statusColor: ['colorf8b155', 'color55f868', 'colorfe616c','color999'],
+				routeName: "Master",
+			}
+		},
+		created() {
+
+		},
+		methods: {
+			gethour(t1,t2){
+				return hourDistance(t1,t2)
+			},
+			sub(time){
+				if(time==null){
+					return  '';
+				}
+				return  String(time).substring(11);
+			},
+			//info
+			goto(id) {
+
+				this.$router.push({
+					name: 'MasterGuestInfo',
+					query: {
+						id: id
+					}
+				})
+			},
+
+			//获取列表
+			getList() {
+				this.isLoading = true;
+				API_Guest.accessRecords(this.listForm).then(res => {
+					var response=res.list;
+					if (response) {
+						if (this.listForm.pageIndex == 1) {
+							this.recordList = response.data;
+							this.listForm.pageIndex = response.pageNumber;
+							this.listForm.totalPage = response.totalPage;
+						} else {
+							this.recordList = [
+								...this.recordList,
+								...response.data
+							];
+						}
+					}
+					this.listForm.pageIndex++;
+					this.isLoading = false;
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},
+			//下拉事件
+			handleScrool() {
+				if (isReachBottom()) {
+					console.log('到达底部')
+					if (this.listForm.pageIndex <= this.listForm.totalPage && this.isLoading == false) {
+						this.getList();
+					} else {
+						return;
+					}
+				}
+			},
+
+			asynCallBack() {
+
+			},
+		},
+		mounted() {
+			this.getList();
+			//监控下拉加载事件
+			var _this = this;
+			window.addEventListener('scroll', _this.handleScrool);
+		},
+		destroyed() {
+			//销毁监听事件
+			var _this = this;
+			window.removeEventListener('scroll', _this.handleScrool);
+		},
+		computed: {
+			...mapGetters({
+				openId: 'wx_openid',
+				token: 'token',
+			})
+		},
+
+	}
 </script>
 
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>

+ 46 - 13
src/projects/business/views/Master/Guest/Scan.vue

@@ -1,12 +1,11 @@
 <template>
 <div>
-    <header class="mui-bar mui-bar-nav">
-			<h1 class="mui-title">扫码核验</h1>
-			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
-		</header>
+	<common @asynCallBack="asynCallBack"></common>
+	<top-header :pageTitle="pageTitle"  :routeName="routeName" ></top-header>
+
 		<div class="mui-content vongi-fklist">
 			<div class="vongi-clasadmin">
-				<h4>湖北荆鹏软件有限公司</h4>
+				<h4>{{person_data.position1}}</h4>
 				<div class="vongi-clasadmin-list">
 					<div class="vongi-clasadmin-ma mui-col-xs-6">
 						<p class="mui-ellipsis">{{nowTime()}}</p>
@@ -48,6 +47,8 @@
 				</ul>				
 			</div>			
 		</div>
+	<loading :visible="isLoading"></loading>
+
 </div>
 </template>
 
@@ -69,7 +70,7 @@
 	} from '$project/utils'
 	import wx from "weixin-js-sdk";
 	export default {
-		name: 'Master',
+		name: 'MasterGuestScan',
 		components: {
 			Common,
 			Loading,
@@ -78,6 +79,15 @@
 		},
 		data() {
 			return {
+				pageTitle: '扫码核验',
+				listForm: {
+					pageIndex: 1,
+					pageSize: 3,
+					//	token: '',
+					isToDay:1,//是否只查今天
+					totalPage: 1,
+					result: 0,
+				},
 				isLoading: false,
 				num:{},
 				list:[],
@@ -87,25 +97,45 @@
 		created() {},
 		methods: {
 			scan(){
-
+				var _this= this;
 				wx.scanQRCode({
 					needResult: 1,
 					scanType: ["qrCode"],
 					success: function (res) {
-						debugger
 						var url = res.resultStr;
-						alert(url)
+						_this.checkForm(url)
 					},faile: function(res) {
-
+						mui.toast("扫码失败");
 					},
 					complete() {
 
 					}
 				})
+				//_this.checkForm('http://xpgj.xiaoxinda.com/#/guest/to/info?id=60304478-a8ff-4095-b20b-a66633bd87f7')
 
 			},
+			checkForm(url) {
+				debugger
+				var sz=url.split("#");
+				var ck1=window.location.href.split("#")[0];
+				var ck2=sz[0];
+
+				if(ck1!=ck2){
+					mui.toast('非访客二维码');
+					return false
+				}
+				var sz1=sz[1].toLowerCase();
+				if(!sz1.indexOf('/guest/to/info?id=')==0){
+					mui.toast('非访客二维码');
+					return false
+				}
+				var id=sz1.substring('/guest/to/info?id='.length);
+				this.goto(id);
+			},
 			goList(){
-			  this.step='2';
+				this.$router.push({
+					name: 'MasterGuestGoto',
+				})
 			},
 			goto(id){
 				this.$router.push({
@@ -116,6 +146,9 @@
 				})
 			},
 			sub(time){
+				if(time==null){
+					return  '-';
+				}
 				return  String(time).substring(11);
 			},
 			nowTime(){
@@ -127,7 +160,7 @@
 			},getList(){
 				this.isLoading = true;
 
-				API_Guest.accessRecords().then(response => {
+				API_Guest.accessRecords(this.listForm).then(response => {
 					this.isLoading = false;
 					this.list = response.list.data;
 					this.num = response.num;
@@ -140,7 +173,7 @@
 		},
 		mounted() {
 			//获取微信配置
-			//this.getList();
+			this.getList();
 			WxJsApi.getWxConfig();
 		},
 		destroyed() {

+ 16 - 0
src/utils/index.js

@@ -51,6 +51,22 @@ export const daysDistance = (date1, date2) => {
 	var days = parseInt(Math.floor(ms / (24 * 3600 * 1000)));
 	return days;
 }
+//计算两个时间的相差小时数
+export const hourDistance = (date1, date2) => {
+	if(!date1||!date2){
+		return '-';
+	}
+	date1 = Date.parse(date1);
+	date2 = Date.parse(date2);
+	var ms = date2 - date1;
+	ms = ms < 0 ? 0 : ms;
+	ms=ms/1000;//s
+	var Hour = parseInt(Math.floor(ms /(60*60)));
+	var Fen = parseInt(Math.floor(ms % (60*60)/60));
+	var s = parseInt(Math.floor(ms % (60)));
+	//600000
+	return  Hour+'小时'+Fen+'分钟'+s+'秒';
+}
 
 export const parseUnixTime = (time, cFormat) => {
 	if (arguments.length === 0) {