mirror of
https://github.com/ZeroCatDev/Classworks.git
synced 2025-12-07 21:13:11 +00:00
feat: 优化标题显示,添加设备名称和命名空间信息的加载逻辑
This commit is contained in:
parent
6eb9bbd79c
commit
670666aa41
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-app-bar class="no-select">
|
<v-app-bar class="no-select">
|
||||||
<v-app-bar-title>
|
<v-app-bar-title>
|
||||||
{{ state.classNumber }} - {{ titleText }}
|
{{ titleText }}
|
||||||
</v-app-bar-title>
|
</v-app-bar-title>
|
||||||
|
|
||||||
<v-spacer />
|
<v-spacer />
|
||||||
@ -672,6 +672,7 @@ import {
|
|||||||
setSetting,
|
setSetting,
|
||||||
settingsDefinitions,
|
settingsDefinitions,
|
||||||
} from "@/utils/settings";
|
} from "@/utils/settings";
|
||||||
|
import { kvServerProvider } from "@/utils/providers/kvServerProvider";
|
||||||
import { useDisplay } from "vuetify";
|
import { useDisplay } from "vuetify";
|
||||||
import "../styles/index.scss";
|
import "../styles/index.scss";
|
||||||
import "../styles/transitions.scss";
|
import "../styles/transitions.scss";
|
||||||
@ -682,7 +683,6 @@ import { Base64 } from "js-base64";
|
|||||||
import {
|
import {
|
||||||
getSocket,
|
getSocket,
|
||||||
on as socketOn,
|
on as socketOn,
|
||||||
off as socketOff,
|
|
||||||
joinToken,
|
joinToken,
|
||||||
leaveAll,
|
leaveAll,
|
||||||
onConnect as onSocketConnect,
|
onConnect as onSocketConnect,
|
||||||
@ -720,6 +720,9 @@ export default {
|
|||||||
useDisplay: useDisplay,
|
useDisplay: useDisplay,
|
||||||
state: {
|
state: {
|
||||||
classNumber: "",
|
classNumber: "",
|
||||||
|
// 当前命名空间/设备信息(从云端加载)
|
||||||
|
namespaceInfo: null,
|
||||||
|
deviceName: "",
|
||||||
studentList: [],
|
studentList: [],
|
||||||
boardData: {
|
boardData: {
|
||||||
homework: {},
|
homework: {},
|
||||||
@ -816,6 +819,12 @@ export default {
|
|||||||
return useDisplay().mobile.value;
|
return useDisplay().mobile.value;
|
||||||
},
|
},
|
||||||
titleText() {
|
titleText() {
|
||||||
|
// 优先展示当前设备名称(如果已从云端获取)
|
||||||
|
const deviceName =
|
||||||
|
this.state.namespaceInfo?.device?.name ||
|
||||||
|
this.state.classNumber ||
|
||||||
|
"高三八班";
|
||||||
|
|
||||||
const today = this.getToday();
|
const today = this.getToday();
|
||||||
const yesterday = new Date(today);
|
const yesterday = new Date(today);
|
||||||
yesterday.setDate(yesterday.getDate() - 1);
|
yesterday.setDate(yesterday.getDate() - 1);
|
||||||
@ -825,11 +834,11 @@ export default {
|
|||||||
const yesterdayStr = this.formatDate(yesterday);
|
const yesterdayStr = this.formatDate(yesterday);
|
||||||
|
|
||||||
if (currentDateStr === todayStr) {
|
if (currentDateStr === todayStr) {
|
||||||
return "今天的作业";
|
return deviceName +" - 今天的作业";
|
||||||
} else if (currentDateStr === yesterdayStr) {
|
} else if (currentDateStr === yesterdayStr) {
|
||||||
return "昨天的作业";
|
return deviceName + " - 昨天的作业";
|
||||||
} else {
|
} else {
|
||||||
return `${currentDateStr}的作业`;
|
return `${deviceName} - ${currentDateStr}的作业`;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sortedItems() {
|
sortedItems() {
|
||||||
@ -1048,6 +1057,8 @@ export default {
|
|||||||
try {
|
try {
|
||||||
this.updateBackendUrl();
|
this.updateBackendUrl();
|
||||||
await this.initializeData();
|
await this.initializeData();
|
||||||
|
// 拉取设备/命名空间信息用于标题显示
|
||||||
|
await this.loadDeviceInfo();
|
||||||
this.setupAutoRefresh();
|
this.setupAutoRefresh();
|
||||||
this.unwatchSettings = watchSettings(() => {
|
this.unwatchSettings = watchSettings(() => {
|
||||||
this.updateSettings();
|
this.updateSettings();
|
||||||
@ -1143,6 +1154,26 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
// 加载设备/命名空间信息(仅云端模式)
|
||||||
|
async loadDeviceInfo() {
|
||||||
|
try {
|
||||||
|
const provider = getSetting("server.provider");
|
||||||
|
const useServer = provider === "kv-server" || provider === "classworkscloud";
|
||||||
|
if (!useServer) return;
|
||||||
|
|
||||||
|
const res = await kvServerProvider.loadNamespaceInfo();
|
||||||
|
if (res && res.success === false) return; // 忽略错误
|
||||||
|
|
||||||
|
this.state.namespaceInfo = res || null;
|
||||||
|
// 兜底填充设备名,避免重复解析
|
||||||
|
this.state.deviceName =
|
||||||
|
res?.account?.deviceName ||
|
||||||
|
"";
|
||||||
|
} catch (e) {
|
||||||
|
console.warn("加载设备信息失败:", e);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
// 更新 Token 显示信息
|
// 更新 Token 显示信息
|
||||||
updateTokenDisplayInfo() {
|
updateTokenDisplayInfo() {
|
||||||
const manager = this.$refs.studentNameManager
|
const manager = this.$refs.studentNameManager
|
||||||
@ -1558,6 +1589,8 @@ export default {
|
|||||||
this.state.contentStyle = { "font-size": `${this.state.fontSize}px` };
|
this.state.contentStyle = { "font-size": `${this.state.fontSize}px` };
|
||||||
this.setupAutoRefresh();
|
this.setupAutoRefresh();
|
||||||
this.updateBackendUrl();
|
this.updateBackendUrl();
|
||||||
|
// 设置更新时尝试刷新设备名称(例如 Token 或域名变更)
|
||||||
|
this.loadDeviceInfo();
|
||||||
// 触发依赖刷新(例如 shouldShowInit)
|
// 触发依赖刷新(例如 shouldShowInit)
|
||||||
this.settingsTick++;
|
this.settingsTick++;
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user