<template>
	<div class="flexOne">
		<div class="query-box" style="border-bottom: none;">
			<ul>
				<li>
					<span><em>公司</em><el-select filterable @change='getUser' v-model='msg.RB_BranchId'>
						<el-option label='不限' value='-1'></el-option>
						<el-option v-for='item in companyList' :label='item.BName' :value='item.Id' :key='item.Id'></el-option>
						</el-select>
					</span>
				</li>
				<li>
					<span><em>申请人</em><el-select filterable v-model='msg.CreateBy'>
						<el-option label='不限' value='0'></el-option>
						<el-option v-for='item in userList' :label='item.name' :value='item.empId' :key='item.empId'></el-option>
						</el-select>
					</span>
				</li>
				<li>
					<span><em>待审核人</em><el-select filterable v-model='msg.ToAuditId'>
						<el-option label='不限' value='0'></el-option>
						<el-option v-for='item in userList' :label='item.name' :value='item.empId' :key='item.empId'></el-option>
						</el-select>
					</span>
				</li>
				<li>
					<span><em>已审核人</em><el-select filterable v-model='msg.AuditedId'>
						<el-option label='不限' value='0'></el-option>
						<el-option v-for='item in userList' :label='item.name' :value='item.empId' :key='item.empId'></el-option>
						</el-select>
					</span>
				</li>
				<li>
					<span><em>请假类型</em><el-select v-model='msg.TemplateId'>
						<el-option v-for='item in ApplyTypeList' :label='item.label' :value='item.value' :key='item.value'></el-option>
					</el-select></span>
				</li>
				<li>
					<span><em>申请审核状态</em><el-select v-model='msg.appAuditStatus'>
						<el-option v-for='item in appAuditStatusList' :label='item.label' :value='item.value' :key='item.value'></el-option>
					</el-select></span>
				</li>				
				<li><span><em>申请时间</em><el-date-picker v-model='msg.StartTime' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
										-
			                            <el-date-picker v-model='msg.EndTime'  class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
			            </span>
				</li>
				<li>
					<input type="button" class="hollowFixedBtn" value="查询" @click="resetPageIndex(),getList()" />
				</li>
			</ul>
		</div>
		<div style="width: 100%; overflow: auto;">
			<table style="min-width: 1400px;" class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
				<tr>
					<th>公司</th>					
					<th>申请人</th>
					<th>请假类型</th>
					<th width="300">待审核人</th>
					<th width="300">已审核人</th>
					<th>申请时间</th>
					<th>{{$t('admin.admin_status')}}</th>
					<th width="150">{{$t('system.table_operation')}}</th>
				</tr>
				
				<tr v-for='item in list'  v-loading='loading'>
					<td>{{item.BName}}</td>					
					<td>{{item.EmName}}</td>
					<td>{{item.TemplateName}}</td>
					<td>{{item.ToAuditName}}</td>
					<td>{{item.AuditedName}}</td>
					<td>{{item.CreateTime}}</td>
					<td>{{item.Status}}</td>
					<td>
						<el-tooltip class="item" effect="dark" content="详情" placement="top">
							<el-button type="primary" icon="el-icon-tickets" circle  @click="getDetail(item.Id,item.TemplateType)"></el-button>
						</el-tooltip>					
					</td>
				</tr>
			</table>
		</div>
		<el-pagination background 
			@current-change="handleCurrentChange" 
			:current-page.sync="currentPage"
			 layout="total,prev, pager, next, jumper"
			:page-size=msg.pageSize 
			:total=total>
		</el-pagination>		
		
		<el-dialog custom-class='w500' :title="dialogTitle" :visible.sync="outerVisible" center >	
				<div class="approvalStatisticalDialog">
						<div class="title">{{detailList.Proposer}}{{detailList.TempleteTypeName}}</div>
						<div class="user">
						  	<img v-if="!detailList.ProposerPhoto" src="../../assets/img/litheader.png" alt="">
		                  	<img v-else :src="detailList.ProposerPhoto" alt="" :onerror="defaultImg">							
							<p>{{detailList.Proposer}}</p>
							<p><span style="color:#257BF1; font-size: 14px;">{{detailList.Status}}</span></p>
						</div>
						
						<div class="detail">
							<table border="0" cellspacing="0" cellpadding="0" class="myApprovalTable">
								<tr v-for="(item,index) in detailList.Details" v-if="(item.formType=='Image' && item.value.length>0) || item.formType!='Image'">
									<td width="80" >{{item.title}}:</td>
									
									<td v-if="item.formType=='String'">{{item.value}}</td>
									<td v-if="item.formType=='Json'">
										<div v-for="(i,index) in item.value" style="border-bottom: 1px solid #ccc; padding:10px 0;">
											<p style="line-height: 24px;" v-for="o in i">{{o.title}}:{{o.value}}</p>
										</div>
									</td>
									<td v-if="item.formType=='Image'">
										<img v-if='item.value.length>0' style="width: 50px; height: 50px; border-radius: 4px; margin:0 10px 0 0;" v-for="(img,index) in item.value" :src="img" 
											 @click="getPic(item.value)"/>
									</td>
								</tr>
							</table>
						</div>
						
												<div class="audit">
							<div class="auditItem">
							  	<img v-if="!detailList.ProposerPhoto" src="../../assets/img/litheader.png" alt="">
			                  	<img v-else :src="detailList.ProposerPhoto" alt="" :onerror="defaultImg">									
								<p>
									<span>{{detailList.Proposer}}</span>&nbsp;&nbsp;<span>发起申请</span><span class="fr">{{detailList.ProposerTime}}</span>
								</p>
							</div>								
							<div class="auditItem" v-for="(item,index) in detailList.arList">
								<img  v-if='item.AuditRecordList.length==1&&!item.AuditRecordList[0].AuditEmPhoto' src="../../assets/img/litheader.png"   />
								<img  v-if='item.AuditRecordList.length==1&&item.AuditRecordList[0].AuditEmPhoto' :src='item.AuditRecordList[0].AuditEmPhoto' alt="" :onerror="defaultImg"  />
								<img  v-if='item.AuditRecordList.length>1' src="../../assets/img/bg_z1@2x.png" />
								<p v-if='item.AuditRecordList.length==1'>
									<span>{{item.AuditRecordList[0].AuditEmName}}</span>
									<span :style="'color: ' + item.AuditRecordList[0].StatusColor + ' !important'">{{item.AuditRecordList[0].Stauts}}</span>
									<span class="fr">{{item.AuditRecordList[0].AuditTime}}</span>
									<span style="display:block; padding-left: 40px; text-indent: 0; font-size: 12px; line-height: 24px; color: #333;">{{item.AuditRecordList[0].Description}}</span>
									<span  v-if="item.AuditRecordList[0].CareOfList!=null" style="display: inline-block; line-height: 24px; font-size: 12px; text-indent: 0; padding-left:40px; color: #666;">
										<b style="color: red;">由 </b>{{item.AuditRecordList[0].CareOfList[0].BeFrom}} <b style="color: red;">转</b> {{item.AuditRecordList[0].CareOfList[0].Target}}
										<br/>
									   {{item.AuditRecordList[0].CareOfList[0].Remarks}}
									</span>
									
								</p>
								<p v-if='item.AuditRecordList.length>1' style="cursor: pointer;">
									<span>{{item.AuditDescription}}{{item.AuditWay}}</span>
									<i class="el-icon-arrow-right"></i>
								</p>
								
								<div v-if='item.AuditRecordList.length>1'  style=" width: 300px; height: auto; margin:15px 0; border-radius: 4px; background: #F0F3FA;">
								   <p v-if='item.AuditWayStatus==2' style="padding: 10px; color: #666;">须以下人员全部审批通过</p>
								   <p v-if='item.AuditWayStatus==3' style="padding: 10px; color: #666;">以下人员大于等于一人审批通过即可</p>
								   
								   <div v-for="i in item.AuditRecordList">
								    	<p class="auditItemDetailtitle"> 
										  	<img  width="28" height="28" v-if="!i.AuditEmPhoto" src="../../assets/img/litheader.png" alt="">
						                  	<img  width="28" height="28" v-else :src="i.AuditEmPhoto" alt="" :onerror="defaultImg">									    		
									    	<span>{{i.AuditEmName}}</span>
									    	<span :style="'color: ' + i.StatusColor + ' !important'">{{i.Stauts}}</span>
									    	<span style="display:block; padding-left: 40px; text-indent: 0; font-size: 12px; line-height: 24px; color: #333;">{{i.Description}}</span>
									    	<span v-if='i.CareOfList!=null' style="display: inline-block; line-height: 24px; font-size: 12px; text-indent: 0; padding-left:40px; color: #666;">
					    						<b style="color: red;">由 </b>{{i.CareOfList[0].BeFrom}} <b style="color: red;">转</b> {{i.CareOfList[0].Target}}
												<br/>
											   {{i.CareOfList[0].Remarks}}
									    	</span>
								    	</p>
								    	<div class="auditItemImgList" v-if="toArr(i.Image).length>0">
								    	  <img  v-for='img in toArr(i.Image)' :src="img" @click="getPic(toArr(i.Image))"/>
								    	</div>
								    </div>
								</div>
							</div>
						</div>  <!--audit end-->
						
						
						<div class="send" v-if="detailList.AuditStatus==5">   <!--v-if="detailList.AuditStatus==5"-->
							<p class="sentTitle">抄送<span>审批通过后,通知抄送人</span></p>
							<div class="sendList">
								<div v-for="(item,index) in detailList.CopyToPeopleList">
								  	<img v-if="!item.EmPhoto" src="../../assets/img/litheader.png" alt="">
				                  	<img v-else :src="item.EmPhoto" alt="" :onerror="defaultImg">					                  			
									<br/>
									{{item.EmName}}
								</div>
							</div>
						</div>  <!--send end-->
				</div>			
			
				<div :class="{viewBigPicLayer:true,viewBigPicLayerDisplayNone:dspNone}" @click="closePicLayer">
				    <i @click="closePicLayer" class="el-icon-circle-close-outline clolseViewBigPicLayer" ></i>
				    <el-carousel height="600px" :interval="5000" trigger="click">
				      <el-carousel-item  v-for="(item,index) in picObj" :key="index">
				         <img :src="item" />
				      </el-carousel-item>
				    </el-carousel>
				</div>

			<div slot="footer" class="dialog-footer">
				<button class="hollowFixedBtn" @click="outerVisible=false">关闭</button>
			</div>				
		</el-dialog>				
		
		
	</div>
</template>

<script>
	export default {
		data() {
			return {
				picObj:[],
				dspNone:true,					
				loading:true,
				outerVisible:false,
				dialogTitle:"",	
				total:0,
				currentPage: 1,	
				defaultImg: 'this.src="' + require('../../assets/img/litheader.png') + '"',						
				//请求数据
				msg:{
					RB_BranchId:'-1',
					Status:'0',
					CreateBy:'0',
					ToAuditId:'0',
					AuditedId:'0',
					TemplateId:0,
					pageIndex:1,
					pageSize:15,
					StartTime:'',
					EndTime:'',
				},
				getCompanyMsg:{
					RB_Group_Id:'0',
					Status:'0',
				},
				getUserMsg:{
					RB_Branch_id:'-1',
				},
				//返回数据
				list:[],
				companyList:[],
				userList:[],
				ApplyTypeList:[],
				appAuditStatusList:[],	
				detailList:{},
			}
		},
		methods: {
			getPic(obj){
				this.picObj=obj
				this.dspNone=false;
			},
			closePicLayer(){
				this.dspNone=true
			},			
			toArr(val){
                let arr=[]
                if(val!="[]")
                {
				    val.substring(1,val.length-1).split(',').forEach(item=>{
				    	arr.push(item.substring(1,item.length-1))
				    });                	
                }
			    return arr;
			},			
			getDetail(id,type){
				this.apipost('app_user_workflow_GetAuditInfo',{WorkFlowId:id,TemplateType:type},res=>{
					if(res.data.resultCode == 1) {
						this.outerVisible=true;
						this.dialogTitle='审批详情'
						this.detailList=res.data.data
					}
				},err=>{})
			},			
			getAppAuditStatus(){
				this.apipost('app_user_workflow_get_myinitiate_auditstatus',{},res=>{
					if(res.data.resultCode == 1) {
						res.data.data.forEach(item=>{
							for(let key in item){
								 if (item.hasOwnProperty(key)){
								 	 this.appAuditStatusList.push({label:key,value:item[key]})	
								 }
							}
						})
					}
				},err=>{})
			},			
			getApplyType(){  //模板类型
				this.apipost('app_user_workflow_get_templatetype',{},res=>{
					if(res.data.resultCode == 1) {
						res.data.data.forEach(item=>{
							for(let key in item){
								 if (item.hasOwnProperty(key)){
								 	 this.ApplyTypeList.push({label:key,value:item[key]})	
								 }
							}
						})
					}
				},err=>{})
			},			
			getCompany(){
				this.apipost('admin_get_BranchGetList',this.getCompanyMsg,res=>{
					if(res.data.resultCode==1){
							this.companyList=res.data.data;
					}else{}
				},err=>{})
			},	
			getUser(){
				this.msg.CreateBy='0'
				this.msg.ToAuditId='0'
				this.msg.AuditedId='0'
				this.getUserMsg.RB_Branch_id=this.msg.RB_BranchId;
				this.apipost('app_get_company_employee',this.getUserMsg,res=>{
					if(res.data.resultCode==1){
							this.userList=res.data.data;
					}else{}
				},err=>{})				
			},
			getList(){
				this.loading=true;
				this.apipost('WorkFlow_get_GetOAPageList',this.msg,res=>{
					if(res.data.resultCode==1){
							this.list=res.data.data.pageData;
							this.total=res.data.data.count;
							this.loading=false							
						  	
					}else{}
				},err=>{})				
			},
			handleCurrentChange(val) {
				this.msg.pageIndex = val;
				this.getList();
			},
			resetPageIndex() {
				this.msg.pageIndex = 1;
				this.currentPage = 1

			},			

		},
		mounted() {
			let userInfo=this.getLocalStorage();
			this.getUserMsg.RB_Group_id=this.getCompanyMsg.RB_Group_Id=userInfo.RB_Group_id;    //集团ID		
			this.getCompany()
			this.getUser()
			this.getList()
			this.getApplyType()
			this.getAppAuditStatus()			
		}

	}
</script>

<style>
	
	.approvalStatisticalDialog{width: 400px; background: #fff}
	.approvalStatisticalDialog  .title{height: 48px; background: #EDEEF0; line-height: 48px; font-size:16px; color: #333; text-indent: 30px;}
	.approvalStatisticalDialog  .user{width: 340px; margin: 0 30px; border-bottom: 1px solid #E6E6E6; height: 60px; padding: 30px 0; box-sizing: content-box}
	.approvalStatisticalDialog  .user>p{line-height: 28px;}
	.approvalStatisticalDialog  .user>img{width:58px; height: 58px; border-radius: 29px; float: left; margin:0 12px 0 0;}
	.approvalStatisticalDialog  .detail{width: 340px; margin: 0 30px; padding: 25px 0; border-bottom: 1px solid #E6E6E6; min-height: 120px;}
	.approvalStatisticalDialog  .audit{width: 340px; margin: 30px 30px 0;  min-height: 120px; border-bottom: 1px solid #E6E6E6;}
	.approvalStatisticalDialog  .audit .auditItem{min-height: 80px; width: 320px; margin-left: 20px; border-left:1px solid #EDEDED; position: relative; font-size: 14px;}
	.approvalStatisticalDialog  .audit .auditItem:last-child{border-left: none;}
	.approvalStatisticalDialog  .audit .auditItem>p{line-height: 40px;text-indent: 40px;}
	.approvalStatisticalDialog  .audit .auditItem>img{width: 40px;  height: 40px; border-radius: 20px; position: absolute; left: -20px;}
	.approvalStatisticalDialog  .send{width: 340px; margin: 30px 30px 0;  min-height: 120px;}
	.approvalStatisticalDialog  .send .sentTitle{height: 14px; line-height: 14px; text-indent:10px; border-left:3px solid #E95252; font-size: 14px;}
	.approvalStatisticalDialog  .send .sentTitle span{color: #666; margin-left: 20px;}
	.approvalStatisticalDialog  .send .sendList>div{float: left; margin: 10px 10px 0 0; font-size: 12px; color: #666; width: 40px; text-align: center;}
	.approvalStatisticalDialog  .send .sendList>div>img{width: 40px; height: 40px; border-radius: 20px;}
	.approvalStatisticalDialog .myApprovalTable tr{height: 40px; font-size: 14px;}
	.approvalStatisticalDialog .myApprovalTable tr td:nth-child(1){text-align: right; color: #666; }
</style>