<template> <div class="flexOne"> <div class="query-box"> <ul> <li><span><em>公司</em><el-select filterable v-model='msg.BranchId' @change='linkageDepartment()'> <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.DepartmentId' @change='linkageEmployeeMsg()'> <el-option label='不限' value='-1'></el-option> <el-option v-for='item in departmentList' :label='item.DepartmentName' :value='item.DepartmentID' :key='item.DepartmentID'> </el-option> </el-select> </span></li> <li><span><em>员工</em><el-select filterable v-model='msg.EmployeeId'> <el-option label='不限' value='-1'></el-option> <el-option v-for='item in employeeList' :label='item.name' :value='item.empId' :key='item.empId'> </el-option> </el-select> </span></li> <li><span><em>时间</em><el-date-picker :picker-options="pickerOptions0" v-model='msg.StartTime' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker> - <el-date-picker :picker-options="pickerOptions1" 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()" /> <input type="button" class="normalBtn" value="导出报表" @click="exportExcel()" /> </li> </ul> </div> <el-table :data="dataList" stripe style="width: 100%" v-loading='loading'> <el-table-column fixed prop="EmName" label="姓名" min-width="100"> </el-table-column> <el-table-column fixed prop="EmployeeId" label="工号" min-width="80"> </el-table-column> <el-table-column prop="DepartmentName" label="部门" min-width="120"> </el-table-column> <el-table-column prop="PostName" label="岗位" min-width="100"> </el-table-column> <el-table-column prop="DateStr" label="日期" min-width="150"> </el-table-column> <el-table-column prop="BeOnDutyTime" label="上班打卡时间" min-width="150"> </el-table-column> <el-table-column prop="BeOnResult" label="上班打卡状态" min-width="150"> </el-table-column> <el-table-column prop="OffDutyTime" label="下班打卡时间" min-width="150"> </el-table-column> <el-table-column prop="OffResult" label="下班打卡状态" min-width="150"> </el-table-column> <el-table-column label="上班关联审批单号" min-width="200"> <template slot-scope="scope"> <p @click="getWorkflow(scope.row.BeOnRelevance,scope.row.BeOnRelevanceType)">{{scope.row.BeOnRelevance}}</p> </template> </el-table-column> <el-table-column prop="OffRelevance" label="下班关联审批单号" min-width="200"> <template slot-scope="scope"> <p @click="getWorkflow(scope.row.OffRelevance,scope.row.OffRelevanceType)">{{scope.row.OffRelevance}}</p> </template> </el-table-column> </el-table> <el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage" layout="total,prev, pager, next, jumper" :page-size=msg.pageSize :total=total> </el-pagination> </div> </template> <script> export default { data() { return { pickerOptions0: { disabledDate: (time) => { //disabledDate true 为禁止选择 let endTime=new Date(this.msg.EndTime) return time.getTime() > Date.now()||time.getTime()>endTime.getTime() //return time.getTime() > Date.now()||time.getTime() < endTime.getTime()-2.592e9 //禁止选择的日期:(今天之后的日期,结束日期之后一个月以前的日期) } }, pickerOptions1: { disabledDate: (time) => { let starTime=new Date(this.msg.StartTime) return time.getTime() > Date.now()||time.getTime()<starTime.getTime() //return time.getTime() <starTime.getTime() ||time.getTime() > starTime.getTime()+2.592e9 || time.getTime() > Date.now();//禁止选择的日期:(开始日期之前,开始日期一个月以后的日期,今天之后的日期) } }, loading:true, //分页 total: 0, pageSize: '', currentPage: 1, //请求数据 msg: { pageIndex: 1, pageSize: 15, BranchId: '-1', DepartmentId: '-1', EmployeeId: '-1', StartTime: '', EndTime: '', }, exportMsg:{ BranchId: '-1', DepartmentId: '-1', EmployeeId: '-1', StartTime: '', EndTime: '', }, companyMsg: { Status: '0', is_show: '0', RB_Group_Id: '0', }, departmentMsg: { RB_Group_Id: '0', RB_Branch_Id:'-1', Status:'0', ParentId:'-1', Tier:'0', }, employeeMsg: { RB_Group_id:'0', RB_Branch_id:'-1', departmentId:'0', IsLeave:'-1', }, //返回数据 dataList: [], companyList: [], departmentList: [], employeeList: [], } }, methods: { exportExcel(){ this.exportMsg.BranchId=this.msg.BranchId; this.exportMsg.DepartmentId=this.msg.DepartmentId; this.exportMsg.EmployeeId=this.msg.EmployeeId; this.exportMsg.StartTime=this.msg.StartTime; this.exportMsg.EndTime=this.msg.EndTime; this.apipost('User_get_GetEveryDayAttendanceRecordExcel',this.exportMsg,res=>{ if(res.data.resultCode==1){ console.log(res.data) const link = document.createElement('a'); let _loadUrl=this.domainManager().DomainUrl; link.href = _loadUrl+res.data.data; document.body.appendChild(link); link.click(); } },err=>{}) }, getWorkflow(id,type){ if(id!=null&&type!=null){ this.apipost('app_user_workflow_GetAuditInfo',{WorkFlowId:id,TemplateType:type},res=>{ console.log(res.data) },err=>{}) } }, getCompany() { this.apipost('admin_get_BranchGetList', this.companyMsg, res => { if(res.data.resultCode == 1) { this.companyList = res.data.data; //console.log(this.companyList) } }, err => {}) }, linkageDepartment(){ this.departmentMsg.RB_Branch_Id=this.msg.BranchId; this.employeeMsg.RB_Branch_id=this.msg.BranchId; this.msg.DepartmentId='-1'; this.msg.EmployeeId='-1'; this.getDepartment(); this.linkageEmployeeMsg() }, getDepartment() { this.apipost('admin_get_DepartmentGetList', this.departmentMsg, res => { if(res.data.resultCode == 1) { this.departmentList = res.data.data; } }, err => {}) }, linkageEmployeeMsg(){ this.employeeMsg.departmentId=this.msg.DepartmentId; this.msg.EmployeeId='-1'; this.getEmployee(); }, getEmployee() { this.apipost('app_get_company_employee', this.employeeMsg, res => { if(res.data.resultCode == 1) { this.employeeList = res.data.data; //console.log(this.employeeList) } }, err => {}) }, getList() { this.loading=true; let endTime = new Date(this.msg.EndTime) let starTime = new Date(this.msg.StartTime) if(endTime - starTime > 2.6784e9) { this.$alert('时间跨度不能超过31天!!', '提示') return } this.apipost('User_get_GetEveryDayAttendanceRecordList',this.msg, res => { if(res.data.resultCode == 1) { this.loading=false; this.$nextTick(() => { this.dataList = res.data.data.pageData; }); this.total = res.data.data.count; } }, err => {}) }, handleCurrentChange(val) { this.msg.pageIndex = val; this.getList(); }, resetPageIndex() { this.msg.pageIndex = 1; this.currentPage = 1 } }, mounted() { let userInfo = this.getLocalStorage(); this.departmentMsg.RB_Group_Id=this.employeeMsg.RB_Group_id=this.companyMsg.RB_Group_Id = userInfo.RB_Group_id; //集团 // this.employeeMsg.RB_Branch_id=userInfo.RB_Branch_id; //公司 let myDate = new Date(); let _year=myDate.getFullYear(); let _month=myDate.getMonth()>=9?myDate.getMonth()+1:'0'+(myDate.getMonth()+1); let _date=myDate.getDate()>9?myDate.getDate():'0'+myDate.getDate(); this.msg.StartTime=_year+'-'+_month+'-'+'01'; this.msg.EndTime=_year+'-'+_month+'-'+_date; this.getList() this.getCompany() this.getDepartment() this.getEmployee() } } </script> <style> .el-table .el-table__row { font-size: 12px!important; } .el-table__row td { padding: 5px 0; } .has-gutter tr th,.el-table th.is-leaf{background:#EAEAEA!important;} </style>