From 92ce7d104ce175cf869bdf9ee87ce4123805050e Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期三, 29 十月 2025 20:17:32 +0800
Subject: [PATCH] 班级考勤统计
---
src/views/class/index.vue | 92 ++++++++++++++++++++++++++++++++-------------
1 files changed, 65 insertions(+), 27 deletions(-)
diff --git a/src/views/class/index.vue b/src/views/class/index.vue
index 11fdb70..c37b30e 100644
--- a/src/views/class/index.vue
+++ b/src/views/class/index.vue
@@ -4,7 +4,7 @@
<el-tab-pane label="鍏ㄩ儴" name="all" />
<el-tab-pane label="宸插仠鐢�" name="deactivated" />
</el-tabs>
- <div style="display: flex; flex-direction: row-reverse">
+ <div style="display: flex;">
<div style="width: 300px">
<el-input
placeholder="鎸夌彮绾у悕绉版悳绱�"
@@ -20,7 +20,7 @@
</el-input>
</div>
</div>
- <div style="height: calc(100vh - 248px)">
+ <div style="height: calc(100vh - 208px)">
<el-table
v-loading="listLoading"
:data="list"
@@ -29,25 +29,25 @@
v-if="activeName == 'all'"
height="100%"
>
- <el-table-column label="鐝骇鍚嶇О">
+ <el-table-column label="鐝骇鍚嶇О" prop="team.name"> </el-table-column>
+ <el-table-column label="鐝骇浜烘暟" width="200" prop="playerCount">
+ </el-table-column>
+ <el-table-column label="璇惧寘" width="200" prop="voucher.name">
+ </el-table-column>
+ <el-table-column label="鏁欏笀" width="" prop="sessionStaffs">
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" width="200">
<template slot-scope="scope">
- <el-link type="primary" :underline="false">{{
- scope.row.team.name
- }}</el-link>
+ <el-link
+ @click="handleExport(scope.row)"
+ type="primary"
+ :underline="false"
+ >瀵煎嚭</el-link
+ >
+ <!-- <el-button type="text" @click="handleExport(scope.row)">
+ 瀵煎嚭
+ </el-button> -->
</template>
- </el-table-column>
- <el-table-column label="鐝骇浜烘暟" width="200">
- <template slot-scope="scope">{{ scope.row.playerCount }} 浜�</template>
- </el-table-column>
- <el-table-column label="璇惧寘/浼氬憳鍗�" width="200">
- <template slot-scope="scope">{{
- scope.row.team.voucher.name
- }}</template>
- </el-table-column>
- <el-table-column label="鏁欏笀" width="">
- <template slot-scope="scope">{{
- concatenateArray(scope.row.team.sessionStaffs)
- }}</template>
</el-table-column>
</el-table>
<el-table
@@ -58,12 +58,8 @@
height="100%"
v-else
>
- <el-table-column label="鐝骇鍚嶇О">
- <template slot-scope="scope">{{ scope.row.name }} </template>
- </el-table-column>
- <el-table-column label="鍋滅敤鏃堕棿">
- <template slot-scope="scope">{{ scope.row.modifyTime }} </template>
- </el-table-column>
+ <el-table-column label="鐝骇鍚嶇О" prop="name"> </el-table-column>
+ <el-table-column label="鍋滅敤鏃堕棿" prop="modifyTime"> </el-table-column>
<el-table-column label="鎿嶄綔" width="200">
<template slot-scope="">
<el-link type="primary" :underline="false">鎭㈠</el-link>
@@ -83,6 +79,24 @@
>
</el-pagination>
</div>
+ <el-dialog title="瀵煎嚭" :visible.sync="dialogVisible" width="50%">
+ <el-form ref="form" :model="form" label-width="180px">
+ <el-form-item label="鏃ユ湡鑼冨洿">
+ <el-date-picker
+ v-model="form.dateRange"
+ type="daterange"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ value-format="yyyy-MM-dd"
+ ></el-date-picker>
+ </el-form-item>
+ </el-form>
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="confirmExport">瀵� 鍑�</el-button>
+ </div>
+ </el-dialog>
</div>
</template>
@@ -102,12 +116,18 @@
},
data() {
return {
+ dialogVisible: false,
+ form: {
+ dateRange: [],
+ teamId: "",
+ name: "",
+ },
list: null,
listLoading: true,
activeName: "all",
total: 0,
data: {
- staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+ staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
keyword: "",
pageIn: {
//鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿��
@@ -126,6 +146,24 @@
this.fetchData();
},
methods: {
+ handleExport(row) {
+ this.form.dateRange = [];
+ this.form.teamId = row.team.id;
+ this.form.name = row.team.name;
+ this.dialogVisible = true;
+ },
+ confirmExport() {
+ this.download(
+ "exportSignIn?teamId=" +
+ this.form.teamId +
+ "&startTime=" +
+ this.form.dateRange[0] +
+ "&endTime=" +
+ this.form.dateRange[1],
+ {},
+ `${this.form.name}涓婅绛惧埌琛�.xlsx`
+ );
+ },
handleSizeChange(val) {
this.data.pageIn.size = val;
this.fetchData("pageIn");
@@ -151,7 +189,7 @@
this.listLoading = true;
let data = {
itemType: "TEAM",
- staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+ staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
keyword: this.data.keyword,
pageIn: { ...this.data.pageIn },
};
--
Gitblit v1.8.0