diff --git a/src/App.vue b/src/App.vue index 2c216f9..f4bc2ff 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,12 +1,7 @@ diff --git a/src/components/GlobalMessage.vue b/src/components/GlobalMessage.vue new file mode 100644 index 0000000..462ee1f --- /dev/null +++ b/src/components/GlobalMessage.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/components/MessageLog.vue b/src/components/MessageLog.vue index f6ac0de..399bb9d 100644 --- a/src/components/MessageLog.vue +++ b/src/components/MessageLog.vue @@ -1,268 +1,111 @@ - {{ state.boardData }} +
@@ -610,7 +610,6 @@ export default { ); if (!response.success) { - // 处理错误情况 if (response.error.code === "NOT_FOUND") { this.state.showNoDataMessage = true; this.state.noDataMessage = response.error.message; @@ -622,14 +621,13 @@ export default { throw new Error(response.error.message); } } else { - // 处理成功情况 this.state.boardData = response.data; this.state.synced = true; this.state.showNoDataMessage = false; - this.showMessage("下载成功", "数据已更新"); + this.$message.success("下载成功", "数据已更新"); } } catch (error) { - this.showError("下载失败", error.message); + this.$message.error("下载失败", error.message); } finally { this.loading.download = false; } @@ -658,7 +656,7 @@ export default { await this.uploadData(); return true; } catch (error) { - this.showError('保存失败', error.message || '请重试'); + this.$message.error('保存失败', error.message || '请重试'); return false; } }, @@ -703,7 +701,7 @@ export default { } this.state.synced = true; - this.showMessage(response.message || "保存成功"); + this.$message.success(response.message || "保存成功"); } finally { this.loading.upload = false; } @@ -723,18 +721,12 @@ export default { this.state.studentList = response.data.studentList || []; } catch (error) { console.error("加载配置失败:", error); - this.showError("加载配置失败", error.message); + this.$message.error("加载配置失败", error.message); } }, showSyncMessage() { - this.state.snackbar = true; - this.state.snackbarText = "数据已完成与服务器同步"; - }, - - showError(message) { - this.state.snackbar = true; - this.state.snackbarText = message; + this.$message.success("数据已同步", "数据已完成与服务器同步"); }, async openDialog(subject) { @@ -743,7 +735,7 @@ export default { await this.downloadData(); } catch (err) { console.error("刷新数据失败:", err); - this.showError("刷新数据失败,可能显示的不是最新数据"); + this.$message.error("刷新数据失败,可能显示的不是最新数据"); } } @@ -1020,7 +1012,7 @@ export default { this.state.attendanceDialog = false; } catch (error) { console.error("保存出勤状态失败:", error); - this.showError("保存失败,请重试"); + this.$message.error("保存失败", "请重试"); } }, diff --git a/src/pages/settings.vue b/src/pages/settings.vue index 937f83f..791dc32 100644 --- a/src/pages/settings.vue +++ b/src/pages/settings.vue @@ -273,6 +273,25 @@ + + + + + 禁用消息日志记录 + 关闭保存消息到本地存储的功能 + + + + +
@@ -385,7 +404,8 @@ export default { }, developer: { enabled: getSetting('developer.enabled'), - showDebugConfig: getSetting('developer.showDebugConfig') + showDebugConfig: getSetting('developer.showDebugConfig'), + disableMessageLog: getSetting('developer.disableMessageLog') }, message: { showSidebar: getSetting('message.showSidebar'), diff --git a/src/utils/settings.js b/src/utils/settings.js index 005ca5f..4396fe1 100644 --- a/src/utils/settings.js +++ b/src/utils/settings.js @@ -110,6 +110,12 @@ const settingsDefinitions = { default: false, description: "是否显示调试配置", }, + // 新增的配置项:禁止将消息日志记录到localStorage + "developer.disableMessageLog": { + type: "boolean", + default: false, + description: "是否禁用将消息日志记录到localStorage", + }, // 消息设置 "message.showSidebar": { @@ -236,25 +242,35 @@ function getSetting(key) { return null; } - // 添加对开发者选项依赖的检查 - if (definition.requireDeveloper && !settingsCache["developer.enabled"]) { - return definition.default; + // 确保开发者相关设置正确处理 + if (definition.requireDeveloper) { + const devEnabled = settingsCache['developer.enabled']; + if (!devEnabled) { + return definition.default; + } } const value = settingsCache[key]; return value !== undefined ? value : definition.default; } -// 添加设置变更日志函数 +// 修改 logSettingsChange 函数,优化检查逻辑 function logSettingsChange(key, oldValue, newValue) { - if ( - settingsCache["developer.enabled"] && - settingsCache["developer.showDebugConfig"] - ) { + // 确保设置已加载 + if (!settingsCache) { + loadSettings(); + } + + const shouldLog = + settingsCache['developer.enabled'] && + settingsCache['developer.showDebugConfig'] && + !settingsCache['developer.disableMessageLog']; + + if (shouldLog) { console.log(`[Settings] ${key}:`, { old: oldValue, new: newValue, - time: new Date().toLocaleTimeString(), + time: new Date().toLocaleTimeString() }); } }