瀏覽代碼

Merge branch 'master' of http://47.92.161.104:10080/wgl/jp-xpgj

zhengkaixin 4 年之前
父節點
當前提交
0223c65717

+ 1 - 1
config/project.js

@@ -1 +1 @@
-exports.name = 'pension'
+exports.name = 'business'

+ 5 - 0
src/assets/css/sczpfyy.css

@@ -170,6 +170,9 @@
 	border-bottom:1px #eee solid
 	border-bottom:1px #eee solid
 }
 }
 
 
+.fyydate-out{
+	display: flex;
+}
 .fyydate-name {
 .fyydate-name {
 	width: 100px;
 	width: 100px;
 	float: left
 	float: left
@@ -190,11 +193,13 @@
 
 
 .fyydate-temper {
 .fyydate-temper {
 	float: left;
 	float: left;
+	overflow-x: scroll;
 }
 }
 
 
 .fyydate-temper-list {
 .fyydate-temper-list {
 	height: 60px;
 	height: 60px;
 	display: flex;
 	display: flex;
+	overflow-x: scroll;
 }
 }
 
 
 .fyydate-temper-num {
 .fyydate-temper-num {

+ 36 - 0
src/projects/business/apis/Master/business_travel.js

@@ -0,0 +1,36 @@
+import request from '@/utils/request'
+import Qs from 'qs';
+
+/**
+ * 出差相关
+ * @param params
+ */
+
+//提交出差申请
+export function submitBusiness(params) {
+	return request({
+		url: '/mobile/businessOutApiController/submitBusiness',
+		data: Qs.stringify(params),
+		method: 'post',
+	})
+}
+
+//出差申请详情
+export function businessOutDetail(id) {
+	return request({
+		url: '/mobile/businessOutApiController/businessOutDetail',
+		data: Qs.stringify({
+			id: id
+		}),
+		method: 'post',
+	})
+}
+
+//出差申请审核
+export function businessOutApproval(params) {
+	return request({
+		url: '/mobile/businessOutApiController/businessOutApproval',
+		data: Qs.stringify(params),
+		method: 'post',
+	})
+}

+ 3 - 2
src/projects/business/router/index.js

@@ -30,9 +30,10 @@ const router = new VueRouter({
 	//base: process.env.BASE_URL,
 	//base: process.env.BASE_URL,
 	routes,
 	routes,
 
 
+	// keep-alive 返回缓存页面后记录浏览位置  
 	scrollBehavior(to, from, savedPosition) {
 	scrollBehavior(to, from, savedPosition) {
 		if (savedPosition) {
 		if (savedPosition) {
-			return savedPosition
+			return savedPosition;
 		} else {
 		} else {
 			return {
 			return {
 				x: 0,
 				x: 0,
@@ -40,7 +41,7 @@ const router = new VueRouter({
 			}
 			}
 		}
 		}
 	},
 	},
-	
+
 })
 })
 
 
 export default router
 export default router

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

@@ -741,7 +741,6 @@ const routesMaster = [
 							role: [],
 							role: [],
 							title: '考勤补卡申请审核列表',
 							title: '考勤补卡申请审核列表',
 							mode: true,
 							mode: true,
-							//keepAlive: true
 						}
 						}
 					},
 					},
 					//考勤补卡申请详情
 					//考勤补卡申请详情
@@ -824,8 +823,6 @@ const routesMaster = [
 							role: [],
 							role: [],
 							title: '考勤统计列表',
 							title: '考勤统计列表',
 							mode: true,
 							mode: true,
-							keepAlive: true,
-							deepth: 1
 						}
 						}
 					},
 					},
 					//考勤记录测温详情
 					//考勤记录测温详情

+ 1 - 1
src/projects/business/views/Common/Health/TemperatureRecord.vue

@@ -56,7 +56,7 @@
 		},
 		},
 		data() {
 		data() {
 			return {
 			return {
-				pageTitle: '测温记录',
+				pageTitle: '测温统计',
 
 
 				isLoading: false,
 				isLoading: false,
 
 

+ 13 - 3
src/projects/business/views/Layout.vue

@@ -1,13 +1,23 @@
 <template>
 <template>
 	<div>
 	<div>
-		<keep-alive>
-			<router-view v-if='$route.meta.keepAlive'></router-view>
+		<keep-alive :include="keep_alive_components">
+			<router-view></router-view>
 		</keep-alive>
 		</keep-alive>
-		<router-view v-if='!$route.meta.keepAlive'></router-view>
 	</div>
 	</div>
 </template>
 </template>
 
 
 <script>
 <script>
+	import {
+		mapGetters,
+		mapMutations
+	} from 'vuex'
+	export default {
+		computed: {
+			...mapGetters({
+				keep_alive_components: 'keep_alive_components',
+			})
+		}
+	}
 </script>
 </script>
 
 
 <style>
 <style>

+ 10 - 0
src/projects/business/views/Master/Attendance/StatisticList.vue

@@ -373,6 +373,16 @@
 				person_popedom: 'person_popedom',
 				person_popedom: 'person_popedom',
 			})
 			})
 		},
 		},
+		//keepalive监控判断
+		beforeRouteLeave(to, from, next) {
+			console.log(to.name);
+			if (['MasterAttendanceTemperatureInfo', 'MasterAttendanceLeaveInfo', 'MasterAttendanceInfo'].indexOf(to.name) > -1) {
+				this.$store.commit('SET_KEEP_ALIVE_COMPONENTS', ['MasterAttendanceStatisticList'])
+			} else {
+				this.$store.commit('SET_KEEP_ALIVE_COMPONENTS', [])
+			}
+			next()
+		},
 	}
 	}
 </script>
 </script>
 
 

+ 17 - 7
src/projects/business/views/Master/Attendance/VerifyList.vue

@@ -6,12 +6,12 @@
 		<div class="mui-content vongi-wordcard-sp">
 		<div class="mui-content vongi-wordcard-sp">
 			<div class="mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted">
 			<div class="mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted">
 				<div class="mui-scroll">
 				<div class="mui-scroll">
-					<router-link :to="{name:'MasterAttendanceVerifyList',query:{status:0}}" :class="'mui-control-item '+(listForm.status==0?'mui-active':'')">
+					<a @click="reloadList('0')" :class="'mui-control-item '+(listForm.status==0?'mui-active':'')">
 						<span class="fyy-badge">待处理<span class="mui-badge" v-if="firstRecordsTotal" v-text="firstRecordsTotal"></span></span>
 						<span class="fyy-badge">待处理<span class="mui-badge" v-if="firstRecordsTotal" v-text="firstRecordsTotal"></span></span>
-					</router-link>
-					<router-link :to="{name:'MasterAttendanceVerifyList',query:{status:3}}" :class="'mui-control-item '+(listForm.status==3?'mui-active':'')">
+					</a>
+					<a @click="reloadList('3')" :class="'mui-control-item '+(listForm.status==3?'mui-active':'')">
 						已处理
 						已处理
-					</router-link>
+					</a>
 				</div>
 				</div>
 			</div>
 			</div>
 
 
@@ -25,7 +25,7 @@
 						<div class="mui-scroll-wrapper vongi-over-hei">
 						<div class="mui-scroll-wrapper vongi-over-hei">
 							<div class="mui-scroll">
 							<div class="mui-scroll">
 								<form class="mui-input-group fyy-checkbox">
 								<form class="mui-input-group fyy-checkbox">
-									<div v-for="(item,index) in recordList" :key="item.id" class="mui-input-row mui-checkbox mui-left">
+									<div v-for="(item,index) in recordList" :key="'s0_'+item.id" class="mui-input-row mui-checkbox mui-left">
 										<router-link :to="{name:'MasterAttendanceVerifyInfo',query:{id:item.id}}" class="mui-navigate-right">
 										<router-link :to="{name:'MasterAttendanceVerifyInfo',query:{id:item.id}}" class="mui-navigate-right">
 											<div class="mui-media-object mui-pull-left vongi-buka"><img :src="item.faceImageUrl"></div>
 											<div class="mui-media-object mui-pull-left vongi-buka"><img :src="item.faceImageUrl"></div>
 											<div class="mui-media-body">
 											<div class="mui-media-body">
@@ -48,7 +48,7 @@
 						<div class="mui-scroll-wrapper">
 						<div class="mui-scroll-wrapper">
 							<div class="mui-scroll">
 							<div class="mui-scroll">
 								<ul class="mui-table-view mui-table-view-chevron">
 								<ul class="mui-table-view mui-table-view-chevron">
-									<li v-for="(item,index) in recordList" :key="item.id" class="mui-table-view-cell mui-media">
+									<li v-for="(item,index) in recordList" :key="'s3_'+item.id" class="mui-table-view-cell mui-media">
 										<router-link :to="{name:'MasterAttendanceVerifyInfo',query:{id:item.id}}" class="mui-navigate-right">
 										<router-link :to="{name:'MasterAttendanceVerifyInfo',query:{id:item.id}}" class="mui-navigate-right">
 											<div class="mui-media-object mui-pull-left vongi-buka"><img :src="item.faceImageUrl"></div>
 											<div class="mui-media-object mui-pull-left vongi-buka"><img :src="item.faceImageUrl"></div>
 											<div class="mui-media-body">
 											<div class="mui-media-body">
@@ -269,9 +269,19 @@
 		},
 		},
 		watch: {
 		watch: {
 			//本页面监听到路由(参数)改变
 			//本页面监听到路由(参数)改变
-			'$route': function(to, from) {
+			/* '$route': function(to, from) {
 				this.reloadList(to.query.status ? to.query.status : 0)
 				this.reloadList(to.query.status ? to.query.status : 0)
+			} */
+		},
+		//keepalive监控判断
+		beforeRouteLeave(to, from, next) {
+			console.log(to.name);
+			if (['MasterAttendanceVerifyInfo'].indexOf(to.name) > -1) {
+				this.$store.commit('SET_KEEP_ALIVE_COMPONENTS', ['MasterAttendanceVerifyList'])
+			} else {
+				this.$store.commit('SET_KEEP_ALIVE_COMPONENTS', [])
 			}
 			}
+			next()
 		},
 		},
 	}
 	}
 </script>
 </script>

+ 50 - 7
src/projects/business/views/Master/BusinessTravel/Form.vue

@@ -1,9 +1,8 @@
 <template>
 <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>
+		<common @asynCallBack="asynCallBack"></common>
+		<top-header :pageTitle="pageTitle"></top-header>
+
 		<div class="mui-content margin60">
 		<div class="mui-content margin60">
 			<div class="mui-content-padded vongi-qingjiadt vongi-editme">
 			<div class="mui-content-padded vongi-qingjiadt vongi-editme">
 				<form class="mui-input-group">
 				<form class="mui-input-group">
@@ -45,12 +44,56 @@
 			</div>
 			</div>
 		</div>
 		</div>
 		<div class="fyy-footer">
 		<div class="fyy-footer">
-			<div class="bindfyy-btn"><button type="submit" class="mui-btn mui-btn-primary ">保  存</button></div>
+			<div class="bindfyy-btn"><button type="submit" class="mui-btn mui-btn-primary ">保 存</button></div>
 		</div>
 		</div>
-</div>
+
+		<loading :visible="isLoading"></loading>
+	</div>
 </template>
 </template>
 
 
 <script>
 <script>
+	import * as API_BusinessTravel from '@/apis/Master/business_travel'
+	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'
+	export default {
+		name: 'MasterBusinessTravelForm',
+		components: {
+			Common,
+			Loading,
+			TopHeader,
+		},
+		data() {
+			return {
+				pageTitle: '出差申请单',
+
+				isLoading: false,
+
+
+			}
+		},
+		created() {},
+		methods: {
+
+			asynCallBack() {
+
+			},
+		},
+		mounted() {
+
+		},
+		destroyed() {},
+		computed: {
+			...mapGetters({
+				openId: 'wx_openid',
+				token: 'token',
+			})
+		},
+	}
 </script>
 </script>
 
 
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>

+ 106 - 63
src/projects/business/views/Master/BusinessTravel/Info.vue

@@ -1,77 +1,120 @@
 <template>
 <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>
-			<div class="mui-content vongi-qingjiadt">
-				<div class="vongi-qingjiadt-head flew-sp">
-					<div class="flew-items">
-						<div class="flew"><img src="~$project/assets/img/03.jpg" width="50" /></div>
-						<h4>郭麒麟 申请 <span class="color4fc5f7">出差</span></h4>
-					</div>
-					<button class="mui-btn  mui-btn-primary mui-btn-outlined">审批中</button>
-					<!--<button class="mui-btn  mui-btn-danger mui-btn-outlined">已拒绝</button>
+	<div>
+		<common @asynCallBack="asynCallBack"></common>
+		<top-header :pageTitle="pageTitle"></top-header>
+
+		<div class="mui-content vongi-qingjiadt">
+			<div class="vongi-qingjiadt-head flew-sp">
+				<div class="flew-items">
+					<div class="flew"><img src="~$project/assets/img/03.jpg" width="50" /></div>
+					<h4>郭麒麟 申请 <span class="color4fc5f7">出差</span></h4>
+				</div>
+				<button class="mui-btn  mui-btn-primary mui-btn-outlined">审批中</button>
+				<!--<button class="mui-btn  mui-btn-danger mui-btn-outlined">已拒绝</button>
 					<button class="mui-btn  mui-btn-success mui-btn-outlined">已批准</button>-->
 					<button class="mui-btn  mui-btn-success mui-btn-outlined">已批准</button>-->
+			</div>
+			<form class="mui-input-group margin10">
+				<div class="mui-input-row">
+					<label>所属部门</label>
+					<span>信息工程中心-软件研发部</span>
 				</div>
 				</div>
-				<form class="mui-input-group margin10">
-					<div class="mui-input-row">
-						<label>所属部门</label>
-						<span>信息工程中心-软件研发部</span>
-					</div>
-					<div class="mui-input-row">
-						<label>出差地点</label>
-						<span>湖南长沙</span>
-					</div>
-					<div class="mui-input-row">
-						<label>出差时间</label>
-						<span>2020-11-28 上午</span>
-					</div>
-					<div class="mui-input-row">
-						<label>预估天数</label>
-						<span>2天</span>
-					</div>
-					<div class="mui-input-row">
-						<label>出差事由</label>
-						<span>去长沙沟通设备调试问题</span>
-					</div>
-					<div class="mui-input-row">
-						<label>申请单编号</label>
-						<span>00000000</span>
-					</div>
-					<div class="mui-input-row">
-						<label>申请时间</label>
-						<span>2020-04-27 12:00:00</span>
-					</div>
-				</form>				
-				<div class="vongi-slot">
-					<div class="vongi-slot-block">
-						<div class="vongi-slot-img"><img src="~$project/assets/img/02.jpg"></div>
-						<div class="vongi-slot-content">
-							<h4>审批人1<span class="mui-pull-right mui-h5 color999">2020-11-26 13:00</span></h4>
-							<p>高进权 <span class="color55f868">同意</span></p>
-						</div>
+				<div class="mui-input-row">
+					<label>出差地点</label>
+					<span>湖南长沙</span>
+				</div>
+				<div class="mui-input-row">
+					<label>出差时间</label>
+					<span>2020-11-28 上午</span>
+				</div>
+				<div class="mui-input-row">
+					<label>预估天数</label>
+					<span>2天</span>
+				</div>
+				<div class="mui-input-row">
+					<label>出差事由</label>
+					<span>去长沙沟通设备调试问题</span>
+				</div>
+				<div class="mui-input-row">
+					<label>申请单编号</label>
+					<span>00000000</span>
+				</div>
+				<div class="mui-input-row">
+					<label>申请时间</label>
+					<span>2020-04-27 12:00:00</span>
+				</div>
+			</form>
+			<div class="vongi-slot">
+				<div class="vongi-slot-block">
+					<div class="vongi-slot-img"><img src="~$project/assets/img/02.jpg"></div>
+					<div class="vongi-slot-content">
+						<h4>审批人1<span class="mui-pull-right mui-h5 color999">2020-11-26 13:00</span></h4>
+						<p>高进权 <span class="color55f868">同意</span></p>
 					</div>
 					</div>
-					<div class="vongi-slot-block">
-						<div class="vongi-slot-img"><img src="~$project/assets/img/02.jpg"></div>
-						<div class="vongi-slot-content">
-							<h4>审批人1</h4>
-							<p>高进权 <span class="color4fc5f7">审批中</span></p>
-						</div>
+				</div>
+				<div class="vongi-slot-block">
+					<div class="vongi-slot-img"><img src="~$project/assets/img/02.jpg"></div>
+					<div class="vongi-slot-content">
+						<h4>审批人1</h4>
+						<p>高进权 <span class="color4fc5f7">审批中</span></p>
 					</div>
 					</div>
-                    <div class="vongi-slot-block">
-						<div class="vongi-slot-img"><img src="~$project/assets/img/02.jpg"></div>
-						<div class="vongi-slot-content">
-							<h4>审批人1<span class="mui-pull-right mui-h5 color999">2020-11-26 13:00</span></h4>
-							<p>高进权 <span class="colorfe616c">拒绝</span></p>
-						</div>
+				</div>
+				<div class="vongi-slot-block">
+					<div class="vongi-slot-img"><img src="~$project/assets/img/02.jpg"></div>
+					<div class="vongi-slot-content">
+						<h4>审批人1<span class="mui-pull-right mui-h5 color999">2020-11-26 13:00</span></h4>
+						<p>高进权 <span class="colorfe616c">拒绝</span></p>
 					</div>
 					</div>
 				</div>
 				</div>
 			</div>
 			</div>
-</div>
+		</div>
+
+		<loading :visible="isLoading"></loading>
+	</div>
 </template>
 </template>
 
 
 <script>
 <script>
+	import * as API_BusinessTravel from '@/apis/Master/business_travel'
+	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'
+	export default {
+		name: 'MasterBusinessTravelInfo',
+		components: {
+			Common,
+			Loading,
+			TopHeader,
+		},
+		data() {
+			return {
+				pageTitle: '出差申请详情',
+
+				isLoading: false,
+
+
+			}
+		},
+		created() {},
+		methods: {
+
+			asynCallBack() {
+
+			},
+		},
+		mounted() {
+
+		},
+		destroyed() {},
+		computed: {
+			...mapGetters({
+				openId: 'wx_openid',
+				token: 'token',
+			})
+		},
+	}
 </script>
 </script>
 
 
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>

+ 98 - 6
src/projects/business/views/Master/BusinessTravel/List.vue

@@ -1,9 +1,9 @@
 <template>
 <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>
+		<common @asynCallBack="asynCallBack"></common>
+		<top-header :pageTitle="pageTitle"></top-header>
+
+
 		<div class="mui-content vongi-hdsq">
 		<div class="mui-content vongi-hdsq">
 			<div class="mui-slider-group">
 			<div class="mui-slider-group">
 				<ul class="mui-table-view">
 				<ul class="mui-table-view">
@@ -52,10 +52,102 @@
 		<div class="fyy-footer">
 		<div class="fyy-footer">
 			<div class="bindfyy-btn"><button type="submit" class="mui-btn mui-btn-primary ">填写出差申请单</button></div>
 			<div class="bindfyy-btn"><button type="submit" class="mui-btn mui-btn-primary ">填写出差申请单</button></div>
 		</div>
 		</div>
-</div>
+
+		<loading :visible="isLoading"></loading>
+	</div>
 </template>
 </template>
 
 
 <script>
 <script>
+	import * as API_BusinessTravel from '@/apis/Master/business_travel'
+	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 NullList from '$project/components/NullList.vue'
+	import {
+		mapGetters,
+		mapMutations
+	} from 'vuex'
+	export default {
+		name: 'MasterBusinessTravelList',
+		components: {
+			Common,
+			Loading,
+			TopHeader,
+			NullList
+		},
+		data() {
+			return {
+				pageTitle: '出差申请记录',
+
+				isLoading: false,
+
+				listForm: {
+					pageIndex: 1,
+					pageSize: 20,
+					totalPage: 1,
+				},
+				recordList: [],
+			}
+		},
+		created() {},
+		methods: {
+			//获取列表
+			getList() {
+				this.isLoading = true;
+				API_BusinessTravel.pageList(this.listForm).then(response => {
+					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>
 </script>
 
 
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>

+ 49 - 6
src/projects/business/views/Master/BusinessTravel/VerifyInfo.vue

@@ -1,9 +1,8 @@
 <template>
 <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>
+		<common @asynCallBack="asynCallBack"></common>
+		<top-header :pageTitle="pageTitle"></top-header>
+
 		<div class="mui-content vongi-wordcard">
 		<div class="mui-content vongi-wordcard">
 			<div class="mui-content-padded vongi-wordcard-top">
 			<div class="mui-content-padded vongi-wordcard-top">
 				<div class="mui-media-object mui-pull-left">
 				<div class="mui-media-object mui-pull-left">
@@ -74,10 +73,54 @@
 				<div class="examine-btn examine-btn2">通过</div>
 				<div class="examine-btn examine-btn2">通过</div>
 			</div>
 			</div>
 		</div>
 		</div>
-</div>
+
+		<loading :visible="isLoading"></loading>
+	</div>
 </template>
 </template>
 
 
 <script>
 <script>
+	import * as API_BusinessTravel from '@/apis/Master/business_travel'
+	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'
+	export default {
+		name: 'MasterBusinessTravelVerifyInfo',
+		components: {
+			Common,
+			Loading,
+			TopHeader,
+		},
+		data() {
+			return {
+				pageTitle: '出差审批详情',
+
+				isLoading: false,
+
+
+			}
+		},
+		created() {},
+		methods: {
+
+			asynCallBack() {
+
+			},
+		},
+		mounted() {
+
+		},
+		destroyed() {},
+		computed: {
+			...mapGetters({
+				openId: 'wx_openid',
+				token: 'token',
+			})
+		},
+	}
 </script>
 </script>
 
 
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>

+ 97 - 6
src/projects/business/views/Master/BusinessTravel/VerifyList.vue

@@ -1,9 +1,8 @@
 <template>
 <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>
+		<common @asynCallBack="asynCallBack"></common>
+		<top-header :pageTitle="pageTitle"></top-header>
+
 		<div class="mui-content vongi-wordcard-sp">
 		<div class="mui-content vongi-wordcard-sp">
 			<div id="slider" class="mui-slider mui-fullscreen vongi-over">
 			<div id="slider" class="mui-slider mui-fullscreen vongi-over">
 				<div id="sliderSegmentedControl" class="mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted">
 				<div id="sliderSegmentedControl" class="mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted">
@@ -99,10 +98,102 @@
 				<button type="button" class="mui-btn mui-btn-success">同意</button>
 				<button type="button" class="mui-btn mui-btn-success">同意</button>
 			</div>
 			</div>
 		</div>
 		</div>
-</div>
+
+		<loading :visible="isLoading"></loading>
+	</div>
 </template>
 </template>
 
 
 <script>
 <script>
+	import * as API_BusinessTravel from '@/apis/Master/business_travel'
+	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 NullList from '$project/components/NullList.vue'
+	import {
+		mapGetters,
+		mapMutations
+	} from 'vuex'
+	export default {
+		name: 'MasterBusinessTravelList',
+		components: {
+			Common,
+			Loading,
+			TopHeader,
+			NullList
+		},
+		data() {
+			return {
+				pageTitle: '出差审批',
+
+				isLoading: false,
+
+				listForm: {
+					pageIndex: 1,
+					pageSize: 20,
+					totalPage: 1,
+				},
+				recordList: [],
+			}
+		},
+		created() {},
+		methods: {
+			//获取列表
+			getList() {
+				this.isLoading = true;
+				API_BusinessTravel.pageList(this.listForm).then(response => {
+					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>
 </script>
 
 
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>

+ 3 - 1
src/store/getters.js

@@ -34,4 +34,6 @@ export const invitation_code = state => state.invitation_code
 
 
 export const default_examine_person = state => state.default_examine_person
 export const default_examine_person = state => state.default_examine_person
 
 
-export const activity_form_data = state => state.activity_form_data
+export const activity_form_data = state => state.activity_form_data
+
+export const keep_alive_components = state => state.keep_alive_components

+ 3 - 1
src/store/mutation-types.js

@@ -17,4 +17,6 @@ export const SET_REGISTER_EXAMINE_FORM = 'SET_REGISTER_EXAMINE_FORM'
 export const SET_WD_MESSAGE_NUM = 'SET_WD_MESSAGE_NUM'
 export const SET_WD_MESSAGE_NUM = 'SET_WD_MESSAGE_NUM'
 export const SET_INVITATION_CODE = 'SET_INVITATION_CODE'
 export const SET_INVITATION_CODE = 'SET_INVITATION_CODE'
 export const SET_DEFAULT_EXAMINE_PERSON = 'SET_DEFAULT_EXAMINE_PERSON'
 export const SET_DEFAULT_EXAMINE_PERSON = 'SET_DEFAULT_EXAMINE_PERSON'
-export const SET_ACTIVITY_FORM_DATA = 'SET_ACTIVITY_FORM_DATA'
+export const SET_ACTIVITY_FORM_DATA = 'SET_ACTIVITY_FORM_DATA'
+
+export const SET_KEEP_ALIVE_COMPONENTS = 'SET_KEEP_ALIVE_COMPONENTS'

+ 4 - 0
src/store/mutations.js

@@ -120,6 +120,10 @@ const mutations = {
 		setActivityFormData(storage_prefix, data)
 		setActivityFormData(storage_prefix, data)
 		state.activity_form_data = data
 		state.activity_form_data = data
 	},
 	},
+	
+	[types.SET_KEEP_ALIVE_COMPONENTS](state, data) {
+		state.keep_alive_components = data
+	},
 
 
 }
 }
 
 

+ 2 - 1
src/store/state.js

@@ -41,7 +41,8 @@ const state = {
 	wd_message_num: getWdMessageNum(storage_prefix),
 	wd_message_num: getWdMessageNum(storage_prefix),
 	invitation_code: getInvitationCode(storage_prefix),
 	invitation_code: getInvitationCode(storage_prefix),
 	default_examine_person: getDefaultExaminePerson(storage_prefix),
 	default_examine_person: getDefaultExaminePerson(storage_prefix),
-	activity_form_data: getActivityFormData(storage_prefix)
+	activity_form_data: getActivityFormData(storage_prefix),
+	keep_alive_components: '',
 }
 }
 
 
 export default state
 export default state