From 1137f44c4468b46f534646ce6b4483818d399a97 Mon Sep 17 00:00:00 2001
From: SunWuyuan <1847261658@qq.com>
Date: Sun, 24 Nov 2024 16:52:47 +0800
Subject: [PATCH] 1
---
src/components/ServerSelection.vue | 86 ++++++++++++++++++++++--------
src/pages/index.vue | 61 +++++++++++++++------
2 files changed, 109 insertions(+), 38 deletions(-)
diff --git a/src/components/ServerSelection.vue b/src/components/ServerSelection.vue
index d099e8f..9ce50c4 100644
--- a/src/components/ServerSelection.vue
+++ b/src/components/ServerSelection.vue
@@ -1,59 +1,101 @@
-
-
-
-
- 保存
-
-
-
+
+
+ 选择服务器
+ 没事别乱动
+
+
+ 保存
+
+
+
+ 设置学生列表
+ 没事别乱动
+
+
+
+
+ 保存
+
+
+
{{ snackbarText }}
diff --git a/src/pages/index.vue b/src/pages/index.vue
index 4c82492..4405ad7 100644
--- a/src/pages/index.vue
+++ b/src/pages/index.vue
@@ -1,7 +1,7 @@
-
+
@@ -28,7 +28,7 @@
style="padding: 2px !important"
@click="openDialog(subject)"
>
-
+
{{ homeworkData[subject].name }}
@@ -47,6 +47,7 @@
+
出勤
应到:{{ studentList.length }}人
- 实到:{{ studentList.length - selectedSet.size }}人
- 请假:{{ selectedSet.size }} 人
-
+
+ 实到:{{ studentList.length - selectedSet.size - lateSet.size }}人
+
+ 请假:{{ selectedSet.size }} 人
+
+ {{ `${index + 1}. ${studentList[i]}` }}
+
+ 迟到:{{ lateSet.size }} 人
+
+
{{ `${index + 1}. ${studentList[i]}` }}
-
@@ -91,8 +98,9 @@
-
+
{{ dialogTitle }}
+ 写完后点击上传谢谢喵
- 设置未到学生列表
-
+ 设置学生出勤状态
+ 全勤
{{ `${i + 1}. ${name}` }}
@@ -134,6 +148,7 @@
+
@@ -147,6 +162,7 @@
import axios from "axios";
import { useDisplay } from "vuetify";
import ServerSelection from "../components/ServerSelection.vue";
+
export default {
name: "HomeworkBoard",
components: { ServerSelection },
@@ -155,7 +171,8 @@ export default {
backurl: localStorage.getItem("backendServerUrl") || "",
currentEditSubject: null,
studentList: ["加载中"],
- selectedSet: new Set(),
+ selectedSet: new Set(), // Absent students
+ lateSet: new Set(), // Late students
dialogVisible: false,
dialogTitle: "",
textarea: "",
@@ -194,6 +211,7 @@ export default {
async initializeData() {
const res = await axios.get(this.backurl + "/config.json");
this.studentList = res.data.studentList;
+ localStorage.setItem("studentList", res.data.studentList);
this.homeworkArrange = res.data.homeworkArrange;
this.initializeHomeworkData();
@@ -261,15 +279,24 @@ export default {
this.attendDialogVisible = true;
},
- toggleStudent(index) {
+ toggleStudentStatus(index) {
if (this.selectedSet.has(index)) {
this.selectedSet.delete(index);
+ this.lateSet.add(index); // Toggle to late
+ } else if (this.lateSet.has(index)) {
+ this.lateSet.delete(index);
} else {
- this.selectedSet.add(index);
+ this.selectedSet.add(index); // Toggle to late
}
this.synced = false;
},
+ cleanstudentslist()
+ {
+ this.selectedSet.clear();
+ this.lateSet.clear();
+ this.synced = false;
+ },
zoom(direction) {
const step = 2;
if (direction === "up" && this.fontSize < 100) {
@@ -289,6 +316,7 @@ export default {
date: this.dateString,
data: this.homeworkData,
attendance: Array.from(this.selectedSet),
+ late: Array.from(this.lateSet), // Upload late students as well
});
this.synced = true;
this.showSyncMessage();
@@ -363,6 +391,7 @@ export default {
return acc;
}, {});
this.selectedSet = new Set(res.data.attendance || []);
+ this.lateSet = new Set(res.data.late || []); // Initialize late set
this.synced = true;
},