const { getModule, isModuleEnabled } = require("./modules"); function getActiveClassId() { const app = getApp(); const user = app.globalData.user || wx.getStorageSync("auth_user"); const memberships = user && Array.isArray(user.memberships) ? user.memberships : []; const activeMembership = user && user.active_membership ? user.active_membership : null; const firstMembership = memberships.length ? memberships[0] : null; return app.globalData.activeClassId || (activeMembership && activeMembership.class_id) || (firstMembership && firstMembership.class_id) || null; } function getEnabledModules() { const app = getApp(); const user = app.globalData.user || wx.getStorageSync("auth_user"); return app.globalData.enabledModules || (user && user.enabled_modules) || null; } function getActiveClassName() { const app = getApp(); const user = app.globalData.user || wx.getStorageSync("auth_user"); const classId = getActiveClassId(); const savedClass = wx.getStorageSync("active_class") || null; if (savedClass && savedClass.id === classId && savedClass.name) return savedClass.name; const memberships = user && Array.isArray(user.memberships) ? user.memberships : []; const membership = memberships.find((item) => item.class_id === classId); const activeMembership = user && user.active_membership ? user.active_membership : null; return (membership && membership.class_name) || (activeMembership && activeMembership.class_name) || "HKU ICB"; } function ensureModuleOpen(moduleKey) { const enabledModules = getEnabledModules(); if (isModuleEnabled(moduleKey, enabledModules)) return true; const module = getModule(moduleKey); const title = module ? module.title : "功能"; wx.redirectTo({ url: `/pages/module-unavailable/index?title=${encodeURIComponent(title)}` }); return false; } function showError(error, fallback = "加载失败") { wx.showToast({ title: (error && error.message) || fallback, icon: "none" }); } module.exports = { ensureModuleOpen, getActiveClassId, getActiveClassName, getEnabledModules, showError };