const { clearSession, refreshMe, requireLogin } = require("../../utils/auth"); const { get } = require("../../utils/api"); const { showError } = require("../../utils/page-helpers"); Page({ data: { user: null, classes: [], activeClassId: null, activeClassName: "" }, async onShow() { if (!requireLogin()) return; try { const user = await refreshMe(); const classRes = await get("/api/classes/"); const app = getApp(); const activeClassId = app.globalData.activeClassId; const activeMembership = user.memberships?.find((item) => item.class_id === activeClassId) || user.active_membership; this.setData({ user, activeClassName: activeMembership?.class_name || "", classes: (classRes.items || []).map((item) => ({ ...item, is_active: item.id === activeClassId })), activeClassId }); } catch (error) { showError(error); } }, openProfile() { wx.navigateTo({ url: "/pages/profile-edit/index" }); }, logout() { clearSession(); wx.removeStorageSync("active_class"); wx.navigateTo({ url: "/pages/bind/index" }); }, switchClass(event) { const classId = Number(event.currentTarget.dataset.id); const classItem = this.data.classes.find((item) => item.id === classId); if (!classItem) return; wx.setStorageSync("active_class", classItem); const app = getApp(); app.globalData.activeClassId = classItem.id; app.globalData.enabledModules = classItem.enabled_modules || null; this.setData({ activeClassId: classItem.id, activeClassName: classItem.name, classes: this.data.classes.map((item) => ({ ...item, is_active: item.id === classItem.id })) }); wx.showToast({ title: "已切换班级", icon: "success" }); } });