zhanghua
2025-10-29 2bbd8d78ad6c901c6e42ddd58ea1f04879ab63da
班级考勤汇总表
2个文件已修改
59 ■■■■ 已修改文件
src/views/attendance/index.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/classAttendance/index.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/attendance/index.vue
@@ -10,7 +10,7 @@
                    end-placeholder="结束日期"
                    value-format="yyyy-MM-dd"
                    style="margin-right: 10px"
                    @change="dateChange"
                    @change="dateChange" :picker-options="pickerOptions"
                >
                </el-date-picker>
            </div>
@@ -105,6 +105,33 @@
                },
            },
            dialogVisible: false,
            pickerOptions: {
                shortcuts: [{
                    text: '最近一周',
                    onClick(picker) {
                        const end = new Date();
                        const start = new Date();
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
                        picker.$emit('pick', [start, end]);
                    }
                }, {
                    text: '最近一个月',
                    onClick(picker) {
                        const end = new Date();
                        const start = new Date();
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
                        picker.$emit('pick', [start, end]);
                    }
                }, {
                    text: '最近三个月',
                    onClick(picker) {
                        const end = new Date();
                        const start = new Date();
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
                        picker.$emit('pick', [start, end]);
                    }
                }]
            },
        };
    },
    created() {
src/views/classAttendance/index.vue
@@ -12,21 +12,20 @@
            </div>
        </div>
        <div style="height: calc(100vh - 168px)">
            <el-table v-loading="listLoading" :data="list" element-loading-text="Loading"
                fit height="100%">
                <el-table-column label="班级" prop="className" width="180">
            <el-table v-loading="listLoading" :data="list" element-loading-text="Loading" fit height="100%">
                <el-table-column label="班级" prop="teamName" width="230">
                </el-table-column>
                <el-table-column label="课包" prop="className" width="180">
                <el-table-column label="出勤率" prop="attendanceRate" width="150">
                </el-table-column>
                <el-table-column label="出勤率" prop="A1" width="180">
                <el-table-column label="到课" prop="completeCount" min-width="100">
                </el-table-column>
                <el-table-column label="到课" prop="A2" width="180">
                <el-table-column label="请假" min-width="100" prop="leaveCount">
                </el-table-column>
                <el-table-column label="请假" min-width="200" prop="A3">
                <el-table-column label="缺勤" prop="absenceCount" min-width="100">
                </el-table-column>
                <el-table-column label="缺勤" prop="A4" min-width="100">
                <el-table-column label="教师" prop="staffName" width="230">
                </el-table-column>
                <el-table-column label="教师" prop="className" width="180">
                <el-table-column label="教室" prop="placeName" width="200">
                </el-table-column>
            </el-table>
        </div>
@@ -72,7 +71,7 @@
                    index: 0, //必选
                    size: 10, //每页的大小。默认20
                    sorts: {
                        name: "id, a.staff_name", //排序字段名称
                        name: "id", //排序字段名称
                        direction: "ASC", //排序方向
                    },
                },
@@ -136,14 +135,12 @@
                return;
            }
            this.download(
                "exportAttendanceReport?staffId=" + this.data.staffId + "&startDate=" +
                "exportClassAttendanceReport?staffId=" + this.data.staffId + "&startDate=" +
                this.dateRange[0] +
                "&endDate=" +
                this.dateRange[1] +
                "&type=" +
                this.data.reportType,
                this.dateRange[1],
                {},
                `学员考勤报表导出_${new Date().getTime()}.xlsx`
                `班级考勤汇总表导出_${new Date().getTime()}.xlsx`
            );
        },
        handleImport() {
@@ -160,6 +157,9 @@
            this.data.staffId = JSON.parse(localStorage.getItem("selectStaff")).id;
            findClassAttendance(this.data).then((response) => {
                this.list = response.data.findClassAttendance.ls;
                this.list.forEach(e => {
                    e.attendanceRate = (e.completeCount / e.allCount * 100).toFixed(0) + "%"
                });
                this.total = response.data.findClassAttendance.pageOut.total;
                this.listLoading = false;
            });