<template> <div class="flexOne"> <div class="query-box"> <ul> <li><span><em>{{$t('system.table_company')}}</em> <el-select filterable v-model='msg.BranchId' @change='linkageDepartment()'> <el-option :label="$t('pub.unlimitedSel')" 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>{{$t('admin.admin_Department')}}</em> <el-select filterable v-model='msg.DepartmentId' @change='linkageEmployeeMsg()'> <el-option :label="$t('pub.unlimitedSel')" 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>{{$t('system.table_staffs')}}</em> <el-select filterable v-model='msg.EmployeeId'> <el-option :label="$t('pub.unlimitedSel')" 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>{{$t('adm.adm_time')}}</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="$t('pub.searchBtn')" @click="resetPageIndex(),getList()" /> <input type="button" class="normalBtn" :value="$t('adm.adm_exportexcel')" @click="exportExcel()" /> </li> </ul> </div> <el-table :data="dataList" stripe v-loading='loading'> <el-table-column fixed prop="EmName" :label="$t('system.query_name')" min-width="100"> </el-table-column> <el-table-column prop="DepartmentName" :label="$t('admin.admin_Department')" min-width="120"> </el-table-column> <el-table-column prop="EmployeeId" :label="$t('adm.adm_Jobnumber')" min-width="80"> </el-table-column> <el-table-column prop="PostName" :label="$t('admin.admin_Post')" min-width="120"> </el-table-column> <el-table-column v-for='(item,index) in newArr' :prop='item.value' :label="item.title" :key='index' min-width="120"> <template slot-scope="scope"> <p v-html='scope.row[""+item.value+""]'></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) => { let endTime = new Date(this.msg.EndTime) return time.getTime() > Date.now() || time.getTime() > endTime.getTime() } }, pickerOptions1: { disabledDate: (time) => { let starTime = new Date(this.msg.StartTime) return time.getTime() > Date.now() || time.getTime() < starTime.getTime() } }, //分页 total: 0, pageSize: '', currentPage: 1, loading: true, //请求数据 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: [], datesArr: [], newArr: [], } }, 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_GetClockTimeRecordExcel', this.exportMsg, res => { if (res.data.resultCode == 1) { const link = document.createElement('a'); let _loadUrl = this.domainManager().DomainUrl; link.href = _loadUrl + res.data.data; document.body.appendChild(link); link.click(); } }, 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(this.$t('adm.adm_timenomorethan'), this.$t('tips.tips')) return } this.apipost('User_get_GetClockTimeRecordList', this.msg, res => { if (res.data.resultCode == 1) { this.loading = false; this.$nextTick(() => { this.dataList = res.data.data.pageData; }); this.datesArr = res.data.data.columnData; this.newArr.length = 0; for (let i = 0; i < this.datesArr.length; i++) { this.newArr.push({ 'value': this.datesArr[i], "title": this.datesArr[i].substring(this.datesArr[i].length - 2, this.datesArr[i].length) + '(' + this.getWeekByDay(this.datesArr[i]) + ')' }) } this.total = res.data.data.count; } }, err => {}) }, getCompany() { this.apipost('admin_get_BranchGetList', this.companyMsg, res => { if (res.data.resultCode == 1) { this.companyList = res.data.data; } }, 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; } }, err => {}) }, getWeekByDay(dayValue) { let _this = this; var day = new Date(Date.parse(dayValue.replace(/-/g, '/'))); var today = new Array(_this.$t('adm.adm_Sunday'), _this.$t('adm.adm_Monday'), _this.$t('adm.adm_Tuesday'), _this .$t('adm.adm_Wednesday'), _this.$t('adm.adm_Thursday'), _this.$t('adm.adm_Friday'), _this.$t( 'adm.adm_Saturday')); return today[day.getDay()]; }, 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; //集团 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; } .flexOne .has-gutter tr th, .el-table th.is-leaf { background: #EAEAEA !important; } </style>