diff --git a/src/renderer/src/components/ExamList.vue b/src/renderer/src/components/ExamList.vue
index 584180d..fcd377c 100644
--- a/src/renderer/src/components/ExamList.vue
+++ b/src/renderer/src/components/ExamList.vue
@@ -16,7 +16,9 @@
{{ item.date }} {{ item.period }}
|
- {{ item.name }} |
+
+ {{ item.name }}
+ |
{{ formatTime(item.start) }} |
{{ formatTime(item.end) }} |
diff --git a/src/renderer/src/components/SubjectInfo.vue b/src/renderer/src/components/SubjectInfo.vue
index 29d6cbb..838e651 100644
--- a/src/renderer/src/components/SubjectInfo.vue
+++ b/src/renderer/src/components/SubjectInfo.vue
@@ -45,8 +45,10 @@ const statusColor = computed(() => {
const start = new Date(props.exam.start);
const end = new Date(props.exam.end);
+ const fifteenMinutesBeforeStart = new Date(start.getTime() - 15 * 60 * 1000);
- if (now.value < start) return 'status-before';
+ if (now.value < fifteenMinutesBeforeStart) return 'status-before';
+ if (now.value >= fifteenMinutesBeforeStart && now.value < start) return 'status-soon';
if (now.value >= start && now.value < end) return 'status-middle';
if (now.value >= end) return 'status-after';
});
@@ -56,8 +58,10 @@ const statusText = computed(() => {
const start = new Date(props.exam.start);
const end = new Date(props.exam.end);
+ const fifteenMinutesBeforeStart = new Date(start.getTime() - 15 * 60 * 1000);
- if (now.value < start) return '未开始';
+ if (now.value < fifteenMinutesBeforeStart) return '未开始';
+ if (now.value >= fifteenMinutesBeforeStart && now.value < start) return '即将开始';
if (now.value >= start && now.value < end) return '进行中';
if (now.value >= end) return '已结束';
});
@@ -136,6 +140,10 @@ updateNow();
color: orange;
}
+.status-soon {
+ color: #ff9800; /* 即将开始的颜色 */
+}
+
.status-middle {
color: #00ff00;
}
diff --git a/src/renderer/src/layouts/default.vue b/src/renderer/src/layouts/default.vue
index adc9a83..9b4d6cb 100644
--- a/src/renderer/src/layouts/default.vue
+++ b/src/renderer/src/layouts/default.vue
@@ -4,15 +4,51 @@
+