<template>
	<div>
		<common @asynCallBack="asynCallBack"></common>
		<top-header :pageTitle="pageTitle" :routeName="'Master'"></top-header>

		<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">
					<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>
					</a>
					<a @click="reloadList('3')" :class="'mui-control-item '+(listForm.status==3?'mui-active':'')">
						已处理
					</a>
				</div>
			</div>

			<NullList :remark="'暂无审批记录'" v-if="!recordList.length"></NullList>

			<div v-if="recordList.length" id="slider" class="mui-slider mui-fullscreen vongi-over">

				<div class="mui-slider-group">

					<div v-if="listForm.status==0" class="mui-slider-item mui-control-content">
						<div class="mui-scroll-wrapper vongi-over-hei">
							<div class="mui-scroll">
								<form class="mui-input-group fyy-checkbox">
									<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">
											<div class="mui-media-object mui-pull-left vongi-buka"><img :src="item.faceImageUrl"></div>
											<div class="mui-media-body">
												{{item.personName}}
												<p class='mui-ellipsis'><span class="colorfe616c" v-text="item.typeN"></span>申请</p>
												<p class='mui-ellipsis' v-if="item.type=='1' && item.address">打卡位置：{{item.address}}</p>
												<p class='mui-ellipsis' v-if="item.type=='2' && item.content">申请理由：{{item.content}}</p>
												<h5 class="vongi-bksp-time" v-text="item.createTime.substr(5)"></h5>
											</div>
										</router-link>
										<input name="checkbox" v-model="selectIdList" :value="item.id" type="checkbox">
									</div>
								</form>
							</div>

						</div>
					</div>

					<div v-if="listForm.status==3" class="mui-slider-item mui-control-content">
						<div class="mui-scroll-wrapper">
							<div class="mui-scroll">
								<ul class="mui-table-view mui-table-view-chevron">
									<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">
											<div class="mui-media-object mui-pull-left vongi-buka"><img :src="item.faceImageUrl"></div>
											<div class="mui-media-body">
												{{item.personName}}
												<span class="mui-pull-right mui-h6" v-if="item.approvalTime" v-text="item.approvalTime.substr(5)"></span>
												<p class='mui-ellipsis'>
													<span class="colorfe616c" v-text="item.typeN"></span>申请
													<button type="button" :class="'mui-btn mui-btn-success mui-btn-outlined mui-pull-right '+(item.status>0?(item.status==1?'status_a':'status_r'):'')"
													 v-text="item.statusN"></button>
												</p>
												<p class='mui-ellipsis' v-if="item.type=='1' && item.address">打卡位置：{{item.address}}</p>
												<p class='mui-ellipsis' v-if="item.type=='2' && item.content">申请理由：{{item.content}}</p>
											</div>
										</router-link>
									</li>
								</ul>
							</div>
						</div>
					</div>

				</div>
			</div>

			<div v-show="recordList.length>0 && listForm.status==0" class="fyy-bindfyy-btn">
				<form class="mui-input-group">
					<div class="mui-input-row mui-checkbox mui-left">
						<label>全选</label>
						<input v-model="allSelect" value="1" type="checkbox" @click="selectAll" :checked="recordList.length==selectIdList.length">
					</div>
				</form>
				<button type="button" class="mui-btn mui-btn-danger" @click="openFrom('2')">拒绝</button>
				<button type="button" class="mui-btn mui-btn-success" @click="openFrom('1')">同意</button>
			</div>
		</div>

		<!-- 审批弹窗 -->
		<div v-show="openFromVisible" class="mui-popup mui-popup-in vongi-mui-pop">
			<div class="mui-popup-inner vongi-pop-inner">
				<div class="mui-popup-title">填写意见</div>
				<div class="mui-popup-input">
					<textarea  v-model="subForm.content" rows="3" placeholder="请输入"></textarea>
				</div>
			</div>
			<div class="mui-popup-buttons"><span class="mui-popup-button mui-popup-button-bold" @click="doAction">提交</span></div>
		</div>
		<div v-show="openFromVisible" @click="openFromVisible=false"  class="mui-popup-backdrop mui-active"></div>

		<loading :visible="isLoading"></loading>
	</div>
</template>

<script>
	import * as API_Attendance from '@/apis/Master/attendance'
	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: 'MasterAttendanceVerifyList',
		components: {
			Common,
			Loading,
			TopHeader,
			NullList
		},
		data() {
			return {
				pageTitle: '考勤审批',

				isLoading: false,

				listForm: {
					pageIndex: 1,
					pageSize: 20,
					totalPage: 1,
					status: this.$route.query.status ? this.$route.query.status : 0,
				},
				recordList: [],
				selectIdList: [],
				allSelect: [],
				subForm: {
					ids: '',
					content: '',
					status: ''
				},
				//审批内容弹窗显示
				openFromVisible: false,
				firstRecordsTotal: 0,

			}
		},
		created() {

		},
		methods: {
			//获取列表
			getList() {
				this.isLoading = true;
				API_Attendance.getVerifyList(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
							];
						}
					}

					if (this.listForm.status == 0) {
						this.firstRecordsTotal = response.recordsTotal;
					}

					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;
					}
				}
			},
			//切换
			reloadList(status) {
				this.listForm.status = status;
				this.listForm.pageIndex = 1;
				this.getList();
			},
			//选择所有
			selectAll() {
				if (this.allSelect.length) {
					this.selectIdList = [];
				} else {
					var selectIdList = [];
					this.recordList.forEach(function(item, index) {
						selectIdList.push(item.id);
					})
					this.selectIdList = selectIdList;
				}
			},
			//显示内容表单
			openFrom(status) {
				if (!this.selectIdList.length) {
					mui.toast('请选择要处理的信息');
				} else {
					this.subForm.status = status;
					this.subForm.content = status == 1 ? '同意' : '拒绝';
					this.openFromVisible = true;
					//直接点击处理，不需要弹窗理由框,又需要弹窗理由框了
					//this.doAction();
				}
			},
			//检测表单
			checkForm() {
				if (!this.subForm.ids) {
					mui.toast('请选择要处理的信息');
					return false;
				} else {
					return true;
				}
			},
			//同意拒绝
			doAction() {
				this.subForm.ids = this.selectIdList.join(',');
				if (this.checkForm()) {
					this.isLoading = true;
					API_Attendance.doVerify(this.subForm).then(response => {
						this.isLoading = false;

						this.openFromVisible = false;
						this.listForm.pageIndex = 1;
						this.getList();
					}).catch(error => {
						this.isLoading = false;
						mui.toast(error);
					})
				}
			},
			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',
			})
		},
		watch: {
			//本页面监听到路由（参数）改变
			/* '$route': function(to, from) {
				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>

<style scoped src="$project/assets/css/xpwyfyy.css"></style>
<style src="$project/assets/css/iconfont.css"></style>
<style scoped>
	.status_r {
		color: #fe616c !important;
		border: 1px solid #fe616c !important;
	}

	.status_a {
		color: #05c8af !important;
		border: 1px solid #05c8af !important;
	}

	.mui-segmented-control {
		position: fixed;
		top: 44px;
		z-index: 99;
		background-color: #eee;
	}

	.mui-fullscreen {
		position: unset;
		margin-top: 45px;
	}
</style>
