diff --git a/README.md b/README.md index de133e7..056dc32 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ ### 开发进度 -- 在`main`分支上保留原作者`0.1.0`版本; +- 正在`main`分支上维护`1.1.0`版本。 - 正在`dev`分支上开发`1.1-Malkuth`版本。 ### Project Setup diff --git a/src/renderer/src/components/AppTopBar.vue b/src/renderer/src/components/AppTopBar.vue index 71bdcd1..d374b3c 100644 --- a/src/renderer/src/components/AppTopBar.vue +++ b/src/renderer/src/components/AppTopBar.vue @@ -5,6 +5,7 @@ diff --git a/src/renderer/src/components/ExamList.vue b/src/renderer/src/components/ExamList.vue index 9ba01a8..f9fafe3 100644 --- a/src/renderer/src/components/ExamList.vue +++ b/src/renderer/src/components/ExamList.vue @@ -73,6 +73,7 @@ const headers = [ const formatTime = (isoString: string) => { const date = new Date(isoString); + date.setSeconds(date.getSeconds() + 1); // 加1秒 return `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}`; }; diff --git a/src/renderer/src/components/SubjectInfo.vue b/src/renderer/src/components/SubjectInfo.vue index 4e3cc6e..c2c28bc 100644 --- a/src/renderer/src/components/SubjectInfo.vue +++ b/src/renderer/src/components/SubjectInfo.vue @@ -11,6 +11,7 @@ 考试状态: {{ statusText }}
考试即将结束
+
剩余时间: {{ remainingTime }}
@@ -69,6 +70,27 @@ const isWarning = computed(() => { return now.value >= fifteenMinutesBeforeEnd && now.value < end; }); +const showRemainingTime = computed(() => { + if (!props.exam) return false; + + const start = new Date(props.exam.start); + const end = new Date(props.exam.end); + const fifteenMinutesBeforeStart = new Date(start.getTime() - 15 * 60 * 1000); + + return now.value >= fifteenMinutesBeforeStart && now.value < end; +}); + +const remainingTime = computed(() => { + if (!props.exam) return ''; + + const end = new Date(props.exam.end); + const timeDiff = end.getTime() - now.value.getTime(); + const minutes = Math.floor(timeDiff / (1000 * 60)); + const seconds = Math.floor((timeDiff % (1000 * 60)) / 1000); + + return `${minutes}分${seconds}秒`; +}); + // Update the current time every second const updateNow = () => { now.value = new Date(); @@ -86,6 +108,10 @@ updateNow(); color: #ffc107 !important; /* Vuetify's default warning color */ } +.text--info { + color: #17a2b8 !important; /* Info color */ +} + .status-before { color: orange; } diff --git a/src/renderer/src/pages/about.vue b/src/renderer/src/pages/about.vue new file mode 100644 index 0000000..985dfa0 --- /dev/null +++ b/src/renderer/src/pages/about.vue @@ -0,0 +1,47 @@ + + + diff --git a/src/renderer/src/pages/testComponents.vue b/src/renderer/src/pages/testComponents.vue deleted file mode 100644 index 2b3c6fc..0000000 --- a/src/renderer/src/pages/testComponents.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/src/renderer/src/stores/app.js b/src/renderer/src/stores/app.js index cba549d..8fd3214 100644 --- a/src/renderer/src/stores/app.js +++ b/src/renderer/src/stores/app.js @@ -4,7 +4,7 @@ import { defineStore } from 'pinia'; export const useProfileStore = defineStore('app', { state: () => ({ examName: '考试名称', - appHeader: 'DSZ考试看板', + appHeader: '考试看板', message: '考试提醒信息', examInfos: [] }), diff --git a/src/renderer/src/typed-router.d.ts b/src/renderer/src/typed-router.d.ts index b49550c..42863d8 100644 --- a/src/renderer/src/typed-router.d.ts +++ b/src/renderer/src/typed-router.d.ts @@ -19,8 +19,8 @@ declare module 'vue-router/auto-routes' { */ export interface RouteNamedMap { '/': RouteRecordInfo<'/', '/', Record, Record>, + '/about': RouteRecordInfo<'/about', '/about', Record, Record>, '/infoPage': RouteRecordInfo<'/infoPage', '/infoPage', Record, Record>, '/mainWindow': RouteRecordInfo<'/mainWindow', '/mainWindow', Record, Record>, - '/testComponents': RouteRecordInfo<'/testComponents', '/testComponents', Record, Record>, } }