From edc6b742457bcdfcfbd49ff41a625f956a733459 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 25 五月 2026 11:16:04 +0800
Subject: [PATCH] 合格率统计:明细数据表格高度显示异常修复
---
src/views/performance/attendance/index.vue | 91 +++++++++++++++++++++++++++++++++++++++++----
1 files changed, 82 insertions(+), 9 deletions(-)
diff --git a/src/views/performance/attendance/index.vue b/src/views/performance/attendance/index.vue
index d8089c8..93bb3a5 100644
--- a/src/views/performance/attendance/index.vue
+++ b/src/views/performance/attendance/index.vue
@@ -30,12 +30,12 @@
</div>
</div>
<div class="search_thing">
- <el-button size="mini" type="primary" @click="refreshTable()"
- >鏌� 璇�</el-button
+ <el-button icon="el-icon-search" size="mini" type="primary" @click="refreshTable()">鏌� 璇�</el-button
>
- <el-button size="mini" @click="resetQuery">閲嶇疆</el-button>
- <el-button size="mini" type="primary" @click="openAddAttendanceDialog()">鎵嬪姩鏂板</el-button>
- <el-button size="mini" type="success" @click="openSyncAttendanceDialog()">鍚屾鑰冨嫟璁板綍</el-button>
+ <el-button icon="el-icon-refresh-left" size="mini" @click="resetQuery">閲嶇疆</el-button>
+ <el-button icon="el-icon-plus" size="mini" type="primary" @click="openAddAttendanceDialog()">鎵嬪姩鏂板</el-button>
+ <el-button icon="el-icon-refresh" size="mini" type="success" @click="openSyncAttendanceDialog()">鍚屾鑰冨嫟璁板綍</el-button>
+ <el-button plain icon="el-icon-download" size="mini" type="primary" @click="openAttendanceRecordDialog()">瀵煎嚭</el-button>
</div>
</div>
<div class="container">
@@ -211,21 +211,70 @@
<el-button type="primary" @click="confirmSyncAttendance">纭� 瀹�</el-button>
</span>
</el-dialog>
+ <el-dialog
+ title="瀵煎嚭鑰冨嫟璁板綍"
+ :visible.sync="attendanceRecordVisible"
+ width="40%">
+ <el-row>
+ <el-col :span="4">
+ <label>缁熻缁村害:</label>
+ </el-col>
+ <el-col :span="20">
+ <el-radio-group @change="()=>{this.reportDate = null}" v-model="reportType" size="mini">
+ <el-radio label="YEAR">骞村害</el-radio>
+ <el-radio label="MONTH">鏈堝害</el-radio>
+ </el-radio-group>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top:20px">
+ <el-col :span="4">
+ <label>缁熻鏃ユ湡:</label>
+ </el-col>
+ <el-col :span="20">
+ <el-date-picker
+ v-if="reportType==='YEAR'"
+ size="small"
+ v-model="reportDate"
+ style="width:100%"
+ type="year"
+ format="yyyy"
+ value-format="yyyy"
+ placeholder="璇烽�夋嫨骞翠唤">
+ </el-date-picker>
+ <el-date-picker
+ v-if="reportType==='MONTH'"
+ size="small"
+ v-model="reportDate"
+ style="width:100%"
+ type="month"
+ format="yyyy-MM"
+ value-format="yyyy-MM"
+ placeholder="璇烽�夋嫨鏈堜唤">
+ </el-date-picker>
+ </el-col>
+ </el-row>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="attendanceRecordVisible = false">鍙� 娑�</el-button>
+ <el-button :loading="exportLoading" type="primary" @click="exportStaffAttendanceRecords()">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
</div>
</template>
<script>
import StaffClockInRecord from "./components/staffClockInRecord.vue";
-import {selectAllUser} from '@/api/system/user'
+import {selectUserListByPerformance} from '@/api/system/user'
import {
pageAttendanceRecord,
checkDutyDate,
saveOrUpdateStaffAttendanceTrackingRecord,
removeStaffAttendanceTrackingRecord,
- syncAttendanceRecord
+ syncAttendanceRecord,
+ exportStaffAttendanceRecords
} from '@/api/performance/attendance'
import {getDicts} from "@/api/system/dict/data";
-import {getTimeRange} from "@/utils/date";
+import {getTimeRange,isOverOneMonth} from "@/utils/date";
+import {transformExcel} from '@/utils/file'
export default {
name: "Attendance",
components: {
@@ -233,8 +282,12 @@
},
data() {
return {
+ reportDate: null,
+ reportType:"MONTH",
+ attendanceRecordVisible:false,
syncDateRange:[],
syncAttendanceVisible: false,
+ exportLoading: false,
attendanceForm:{
workDataId: null,
offWorkDataId: null,
@@ -313,6 +366,26 @@
window.removeEventListener("resize",this.resizeHandler)
},
methods: {
+ openAttendanceRecordDialog (){
+ this.attendanceRecordVisible = true
+ },
+ //瀵煎嚭鑰冨嫟璁板綍
+ exportStaffAttendanceRecords(){
+ this.exportLoading = true
+ let params = {
+ attendanceReportType:this.reportType,
+ reportDate: this.reportDate,
+ keyword: this.queryParams.keyword
+ }
+ exportStaffAttendanceRecords({...params}).then(res=>{
+ transformExcel(res, "涓ぉ鑰愪笣璐ㄩ噺鑰冨嫟姹囨��.xlsx")
+ this.$message.success("瀵煎嚭鎴愬姛")
+ }).catch(error=>{
+ console.error(error)
+ }).finally(()=>{
+ this.exportLoading = false
+ })
+ },
getShiftByDic(e) {
let obj = this.dailyTypeList.find((m) => m.dictValue == e);
if (obj) {
@@ -542,7 +615,7 @@
},
//鏌ヨ鐢ㄦ埛鍒楄〃
getUserList(){
- selectAllUser().then(res=>{
+ selectUserListByPerformance().then(res=>{
this.userList = res.data
}).catch(error=>{
console.error(error)
--
Gitblit v1.9.3