This commit is contained in:
SunWuyuan
2025-03-15 21:09:08 +08:00
parent 6ab280e484
commit efd622f819
5 changed files with 244 additions and 16 deletions
View File
+15 -1
View File
@@ -627,6 +627,7 @@ export default {
if (response.error.code === "NOT_FOUND") {
this.state.showNoDataMessage = true;
this.state.noDataMessage = response.error.message;
// 确保数据结构完整
this.state.boardData = {
homework: {},
attendance: { absent: [], late: [], exclude: [] },
@@ -635,12 +636,25 @@ export default {
throw new Error(response.error.message);
}
} else {
this.state.boardData = response.data;
// 确保数据结构完整
this.state.boardData = {
homework: response.data.homework || {},
attendance: {
absent: response.data.attendance?.absent || [],
late: response.data.attendance?.late || [],
exclude: response.data.attendance?.exclude || [],
},
};
this.state.synced = true;
this.state.showNoDataMessage = false;
this.$message.success("下载成功", "数据已更新");
}
} catch (error) {
// 发生错误时也要确保数据结构完整
this.state.boardData = {
homework: {},
attendance: { absent: [], late: [], exclude: [] },
};
this.$message.error("下载失败", error.message);
} finally {
this.loading.download = false;
+12 -4
View File
@@ -15,26 +15,32 @@
<v-row>
<v-col cols="12" md="6">
<server-settings-card
border
:loading="loading.server"
@saved="onSettingsSaved"
/>
</v-col>
<v-col cols="12" md="6">
<edit-settings-card @saved="onSettingsSaved" />
<data-provider-settings-card border />
</v-col>
<v-col cols="12" md="6">
<refresh-settings-card @saved="onSettingsSaved" />
<edit-settings-card @saved="onSettingsSaved" border/>
</v-col>
<v-col cols="12" md="6">
<display-settings-card @saved="onSettingsSaved" />
<refresh-settings-card @saved="onSettingsSaved" border/>
</v-col>
<v-col cols="12" md="6">
<display-settings-card @saved="onSettingsSaved" border/>
</v-col>
<!-- 开发者选项卡片 -->
<v-col :cols="12" :md="settings.developer.enabled ? 12 : 6">
<settings-card
border
title="开发者选项"
icon="mdi-developer-board"
>
@@ -139,6 +145,7 @@ import ServerSettingsCard from '@/components/settings/cards/ServerSettingsCard.v
import EditSettingsCard from '@/components/settings/cards/EditSettingsCard.vue';
import RefreshSettingsCard from '@/components/settings/cards/RefreshSettingsCard.vue';
import DisplaySettingsCard from '@/components/settings/cards/DisplaySettingsCard.vue';
import DataProviderSettingsCard from '@/components/settings/cards/DataProviderSettingsCard.vue';
import {
getSetting,
setSetting,
@@ -162,7 +169,8 @@ export default {
MessageLog,
SettingsCard,
StudentListCard,
AboutCard
AboutCard,
DataProviderSettingsCard
},
setup() {
const { mobile } = useDisplay();